diff --git a/404.html b/404.html index 85b54a86ba..8f1ee4a61e 100644 --- a/404.html +++ b/404.html @@ -17,13 +17,13 @@ - - + + -

404

There's nothing here.
+ - + diff --git a/assets/css/0.styles.596ea335.css b/assets/css/0.styles.b74cd268.css similarity index 98% rename from assets/css/0.styles.596ea335.css rename to assets/css/0.styles.b74cd268.css index 205f805b1a..d958749fe3 100644 --- a/assets/css/0.styles.596ea335.css +++ b/assets/css/0.styles.b74cd268.css @@ -6,4 +6,4 @@ * Copyright 2023 Fonticons, Inc. */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-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-classic,.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.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{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{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-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.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-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.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-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.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-style-family-brands:"Font Awesome 6 Brands";--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(/assets/fonts/fa-brands-400.8b0ddedb.woff2) format("woff2"),url(/assets/fonts/fa-brands-400.0ab3921d.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}: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(/assets/fonts/fa-regular-400.61f30b79.woff2) format("woff2"),url(/assets/fonts/fa-regular-400.20206738.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--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(/assets/fonts/fa-solid-900.c6427838.woff2) format("woff2"),url(/assets/fonts/fa-solid-900.e2ceb839.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:Font Awesome\ 5 Brands;font-display:block;font-weight:400;src:url(/assets/fonts/fa-brands-400.8b0ddedb.woff2) format("woff2"),url(/assets/fonts/fa-brands-400.0ab3921d.ttf) format("truetype")}@font-face{font-family:Font Awesome\ 5 Free;font-display:block;font-weight:900;src:url(/assets/fonts/fa-solid-900.c6427838.woff2) format("woff2"),url(/assets/fonts/fa-solid-900.e2ceb839.ttf) format("truetype")}@font-face{font-family:Font Awesome\ 5 Free;font-display:block;font-weight:400;src:url(/assets/fonts/fa-regular-400.61f30b79.woff2) format("woff2"),url(/assets/fonts/fa-regular-400.20206738.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:block;src:url(/assets/fonts/fa-solid-900.c6427838.woff2) format("woff2"),url(/assets/fonts/fa-solid-900.e2ceb839.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:block;src:url(/assets/fonts/fa-brands-400.8b0ddedb.woff2) format("woff2"),url(/assets/fonts/fa-brands-400.0ab3921d.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:block;src:url(/assets/fonts/fa-regular-400.61f30b79.woff2) format("woff2"),url(/assets/fonts/fa-regular-400.20206738.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(data:font/woff2;base64,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) format("woff2"),url(/assets/fonts/fa-v4compatibility.d20cedd7.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+f27a}@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/44*27);height:var(--swiper-navigation-size);margin-top:calc(var(--swiper-navigation-size)*-1/2);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:normal;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:"next"}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#fff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:opacity .3s;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white{--swiper-pagination-color:#fff}.swiper-pagination-black{--swiper-pagination-color:#000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s linear infinite;box-sizing:border-box;border-radius:50%;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-top:4px solid transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{to{transform:rotate(1turn)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}#toolbar-close-icon[data-v-4140cd12]{cursor:pointer}.settings-page{z-index:19;height:100%;display:flex;flex-flow:column nowrap;background-color:#eef0f2}.dark-mode .settings-page{background-color:#121212}.settings-page>.toolbar,.settings-page>:not(.toolbar)>div:not(.ps__thumb-x):not(.ps__thumb-y){padding:1rem 2rem;border-bottom:1px solid #cfd4db;height:unset}.settings-page .toolbar{max-height:2rem}.settings-page input{white-space:nowrap;color:#404040;display:inline-block;border:1px solid #cfd4db;border-radius:1rem;width:100%;font-size:.9rem;line-height:2rem;outline:none;transition:all .2s ease}.settings-page>div.toolbar{border-top:1px solid #667386;display:flex;flex-flow:row nowrap;align-items:baseline;justify-content:space-between;flex:1 1 100%;font-size:1.4rem;font-weight:500;color:#000}.dark-mode .settings-page>div.toolbar{color:#5a7b86}.settings-page>div:not(.toolbar){font-size:1.2rem}@media (max-width:456px){.settings-page>.toolbar,.settings-page>:not(.toolbar)>div{padding:1rem .75rem}.settings-page>div:not(.toolbar){font-size:1rem}.settings-page>div:not(.toolbar) div.title{margin-left:.25rem}}#dark-mode-buttons[data-v-000b9ec2]{margin-top:1rem;display:flex;flex-flow:row nowrap;justify-content:space-evenly}#dark-mode-buttons button[data-v-000b9ec2]{cursor:pointer;background-color:#7f8b9d;color:#fff;border:none;border-radius:2px;padding:16px;font-size:1.4rem;margin-right:1rem;width:100%}#dark-mode-buttons button[data-v-000b9ec2]:last-child{margin-right:0}#dark-mode-buttons button[data-v-000b9ec2]:hover{background-color:#0b81a8;background-color:#525c6b}#dark-mode-buttons button[disabled=disabled][data-v-000b9ec2]{cursor:default;background-color:#0ea1d2}.title[data-v-3fbaee58]{margin-bottom:.5rem}form[data-v-3fbaee58]{display:flex;flex-flow:row nowrap}form input[data-v-3fbaee58]{padding-left:.6rem}form .controls[data-v-3fbaee58]{display:flex;flex-flow:row nowrap;align-items:center;position:absolute;opacity:0;transition:opacity 2s ease-in!important;transition:padding 1s ease-in!important}form .controls svg[data-v-3fbaee58]{cursor:pointer;padding:.5rem .7rem;width:1rem}form:focus-within input[data-v-3fbaee58],form:hover input[data-v-3fbaee58]{padding-left:2.2rem}form:focus-within .controls[data-v-3fbaee58],form:hover .controls[data-v-3fbaee58]{opacity:1}.settings-view{position:absolute;top:3.6rem;height:calc(100% - 3.6rem);width:100%;background-color:#eef0f2}.dark-mode .settings-view{background-color:#121212}.toast[data-v-004f2b8f]{background-color:#edeff1;border:1px solid #c2c8d0;box-shadow:1px 1px 3px 1px #717f93;border-radius:.25rem;margin:1rem auto;width:305px;font-size:.8rem;opacity:.6}.toast[data-v-004f2b8f]:first-child{margin-top:0}.toast[data-v-004f2b8f]:last-child{margin-bottom:0}.toast[data-v-004f2b8f]:hover{opacity:1}.toast .toast-header[data-v-004f2b8f]{font-weight:500;display:flex;flex-flow:row nowrap;justify-content:space-between;border-bottom:1px solid #c2c8d0}.toast .toast-content[data-v-004f2b8f],.toast .toast-header[data-v-004f2b8f]{padding:.5rem 1rem}@media (max-width:999px){.toast[data-v-004f2b8f]{opacity:1}}ul[data-v-613826d5]{list-style:initial}ol[data-v-f7aa2bf6]{padding-top:.25rem;padding-left:1.5rem}#toaster[data-v-40409937]{pointer-events:all;list-style-type:none;flex-flow:column nowrap;padding:0;margin:0}.ps[data-v-40409937]{height:100%}.list-item[data-v-40409937]{transition:all .5s}.list-enter[data-v-40409937],.list-leave-to[data-v-40409937]{opacity:0;transform:translateY(30px)}.list-leave-active[data-v-40409937]{position:absolute}#toasts-view[data-v-93e8c1e2]{z-index:15;position:fixed;height:calc(100% - 3.6rem);top:3.6rem;right:0;margin:15px 15px 15px 0;width:350px;pointer-events:none}@media (max-width:456px){#toasts-view[data-v-93e8c1e2]{width:100%;margin-left:auto;margin-right:auto}}.go-to-top[data-v-02efbe36]{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;color:#0ea1d2;z-index:1}.go-to-top[data-v-02efbe36]:hover{color:#43c7f2}@media (max-width:959px){.go-to-top[data-v-02efbe36]{display:none}}.fade-enter-active[data-v-02efbe36],.fade-leave-active[data-v-02efbe36]{transition:opacity .3s}.fade-enter[data-v-02efbe36],.fade-leave-to[data-v-02efbe36]{opacity:0}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#333;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#0ea1d2}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#000}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#000}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:1234px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:456px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#000}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#0ea1d2}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;-webkit-user-select:none;user-select:none;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:1000px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:1234px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:999px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:456px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.nav-addon{padding-left:4rem;display:block}@media (max-width:1234px){.nav-item{margin-left:1rem!important}.sidebar .nav-item,.sidebar:first-child{margin-left:0!important}.nav-addon{padding-left:1rem}}@media (max-width:999px){.nav-addon{padding-left:0;padding-top:1rem;border-top:1px solid #eaecef}}html.dark-mode{background-color:#121212!important}html.dark-mode .nav-dropdown,html.dark-mode .navbar,html.dark-mode .search-box input,html.dark-mode .sidebar,html.dark-mode .theme-default-content:not(.custom) h1,html.dark-mode .theme-default-content:not(.custom) h2,html.dark-mode .theme-default-content:not(.custom) h3,html.dark-mode .theme-default-content:not(.custom) h4,html.dark-mode .theme-default-content:not(.custom) h5,html.dark-mode .theme-default-content:not(.custom) h6{border-color:#5a7b86}html.dark-mode .dropdown-title,html.dark-mode .links,html.dark-mode .nav-dropdown,html.dark-mode .nav-item>.nav-link,html.dark-mode .navbar,html.dark-mode .search-box,html.dark-mode .sidebar,html.dark-mode .sidebar-heading,html.dark-mode .sidebar-link,html.dark-mode .site-name,html.dark-mode body,html.dark-mode html,html.dark-mode input{background-color:#121212!important;color:#5a7b86!important}html.dark-mode .custom-block{background-color:#1e1e1e!important}html.dark-mode .custom-block.danger p{color:#8d0000}html.dark-mode code{color:#707070}.swiper{box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .swiper{box-shadow:1px 1px 3px 1px #48636c}.swiper-button-next,.swiper-button-prev{color:#0ea1d2;top:511.25px}.swiper-button-prev{left:20px}.swiper-button-next{right:20px}.swiper-pagination{transform:scale(2)!important;width:160px!important;margin-left:-80px;bottom:20px!important}.dark-mode .swiper-pagination .swiper-pagination-bullet{background-color:#5a7b86}.swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{background-color:#0ea1d2}.slide{display:flex;flex-flow:column wrap}.slide .media{height:416.25px}.slide .media .media-default{background-color:#0ea1d2;width:100%;height:100%}.slide .content,.slide .controls{min-height:150px;margin:0 70px 40px;width:-moz-fit-content;width:fit-content}.slide .controls{margin:0 auto 40px}.slide .badge{font-size:.9rem;font-weight:500;display:flex;flex-flow:row nowrap;padding:4px;margin:.5rem 4px 2px 2px;background-color:#0ea1d2;color:#fff;border-radius:.25rem;box-shadow:1px 1px 3px 1px #03202a}@media (max-width:999px){.slide .content{margin:40px 30px}}@media (max-width:456px){.swiper-pagination{width:100px!important;margin-left:-50px}}:focus,a:focus{outline:3px solid #0ea1d2!important;outline-offset:.1rem!important}img.emoji{height:1.2rem;margin:0 .05em 0 .1em;vertical-align:-.1em}.sw-update-popup{border:2px solid #0ea1d2!important}.sw-update-popup>button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;-webkit-font-smoothing:antialiased!important;text-align:center!important;line-height:1.2!important;font-weight:500!important;text-decoration:none!important;display:inline-block!important;font-size:1.1rem!important;color:#fff!important;background-color:#0ea1d2!important;padding:.8rem 1.6rem!important;border-radius:4px!important;transition:background-color .1s ease!important;box-sizing:border-box!important;border:none!important;border-bottom:1px solid #0f303e!important}.dropdown-wrapper .dropdown-title{pointer-events:auto!important}#nprogress{pointer-events:none}#nprogress .bar{background:#0ea1d2;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #0ea1d2,0 0 5px #0ea1d2;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#0ea1d2 transparent transparent #0ea1d2;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}html{scroll-behavior:smooth}.sw-update-popup[data-v-ecc056f6]{position:fixed;right:1em;bottom:1em;padding:1em;border:1px solid #3eaf7c;border-radius:3px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center;z-index:3}.sw-update-popup>button[data-v-ecc056f6]{margin-top:.5em;padding:.25em 2em}.sw-update-popup-enter-active[data-v-ecc056f6],.sw-update-popup-leave-active[data-v-ecc056f6]{transition:opacity .3s,transform .3s}.sw-update-popup-enter[data-v-ecc056f6],.sw-update-popup-leave-to[data-v-ecc056f6]{opacity:0;transform:translateY(50%) scale(.5)}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#666}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#0ea1d2;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #0d91bd}.home .hero .action-button:hover{background-color:#10b6ed}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#1a1a1a}.home .feature p{color:#404040}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#404040}@media (max-width:999px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:456px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}} -/*! @docsearch/css 3.3.3 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,0.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,0.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,0.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,0.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,0.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,0.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,0.5),0 -4px 8px 0 rgba(0,0,0,0.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::-moz-placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}#search-form{margin-right:1rem}.DocSearch-Button-Container,.DocSearch-Button-Keys{display:flex!important}.DocSearch-Button-Placeholder{height:.9rem}.DocSearch-Input:focus{outline:unset!important}.DocSearch-Logo svg .cls-1,.DocSearch-Logo svg .cls-2{fill:var(--docsearch-logo-color)}@media (max-width:999px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none!important}}:root{--docsearch-logo-color:#0ea1d2;--docsearch-primary-color:#0ea1d2;--docsearch-highlight-color:#0ea1d2}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:999px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#000;pointer-events:none}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#0ea1d2}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #0ea1d2;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:999px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{font-weight:600;font-size:inherit}.dropdown-wrapper .dropdown-title:hover{color:#0ea1d2}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:999px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.settings-button[data-v-ef43f700]{cursor:pointer}#settings-label[data-v-ef43f700]{display:none;font-weight:700}#settings-icon[data-v-ef43f700]{display:block}@media (max-width:999px){#settings-label[data-v-ef43f700]{display:block}#settings-icon[data-v-ef43f700]{display:none}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#0ea1d2}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:999px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:999px){.nav-links a.router-link-active,.nav-links a:hover{color:#000}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #0fb1e7}}svg#asterics-logo path#back[data-v-55a54dcc]{fill:#000}svg#asterics-logo path#front[data-v-55a54dcc]{fill:#0ea1d2}.dark-mode svg#asterics-logo path#back[data-v-55a54dcc]{fill:#eaecef}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#000;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:999px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.asterics-sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:2px solid #0ea1d2;border-radius:4px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.asterics-sw-update-popup button{display:inline-block;background-color:#0ea1d2;color:#fff;border:none;border-bottom:1px solid #0d91bd;border-radius:4px;padding:.8rem 1.6rem;font-size:1rem;font-weight:500;transition:background-color .1s ease;margin-top:1rem}.asterics-sw-update-popup-enter-active,.asterics-sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.asterics-sw-update-popup-enter,.asterics-sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}#action-group[data-v-9c64e234]{font-size:1.4rem}#action-group>div[data-v-9c64e234]{padding:4px 0}@media (max-width:999px){#action-group[data-v-9c64e234]{font-size:1.3rem}}@media (max-width:456px){#action-group[data-v-9c64e234]{font-size:1rem}}.action[data-v-66fb803e]{display:inline-block;color:#fff;background-color:#0ea1d2;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #0d91bd}.dark-mode .action[data-v-66fb803e]{background-color:#0a799d}.action.dark[data-v-66fb803e]{background-color:#064054}.dark-mode .action[data-v-66fb803e]{border-bottom:1px solid #096989}.action.dark[data-v-66fb803e]{border-bottom:1px solid #04303f}.action[data-v-66fb803e]:hover{background-color:#10b6ed}.dark-mode .action[data-v-66fb803e]:hover{background-color:#0c89b3}.action:hover.dark[data-v-66fb803e]:hover{background-color:#075169}#actions[data-v-0c986244]{display:flex;flex-flow:row nowrap;margin-top:4px}#actions>a[data-v-0c986244]{margin-right:1rem}#actions>a[data-v-0c986244]:last-child{margin-right:0}@media (max-width:456px){#actions[data-v-0c986244]{flex-flow:column nowrap}#actions>a[data-v-0c986244]{margin:.25em 0;width:100%;font-size:1.2rem;padding:.8rem}}#funding[data-v-797f4a9c]{display:flex;flex-flow:row nowrap;align-items:center;padding-left:0;list-style-type:none}#funding>li[data-v-797f4a9c]{justify-content:center;flex-basis:0;flex-grow:1}@media (max-width:456px){#funding[data-v-797f4a9c]{flex-flow:row wrap;justify-content:center}#funding li[data-v-797f4a9c]{flex:1 1 40%;max-width:40%}#funding li[data-v-797f4a9c]:nth-child(2n-1){margin-right:3rem}}#header[data-v-328d38ff]{font-size:6rem;font-weight:500}@media (max-width:999px){#header[data-v-328d38ff]{font-size:5rem}}@media (max-width:456px){#header[data-v-328d38ff]{font-size:2.5rem;padding-bottom:.5rem}}.container[data-v-986bc34a],img[data-v-986bc34a]{width:100%;height:100%;vertical-align:middle}img[data-v-986bc34a]{-o-object-fit:cover;object-fit:cover}@media (max-width:456px){.container[data-v-986bc34a],img[data-v-986bc34a]{box-shadow:unset;max-width:unset;max-height:unset}}li[data-v-08980368]{margin:auto 18px}.partner[data-v-08980368]{min-width:80px}@media (max-width:456px){.partner .container img{max-height:150px;-o-object-fit:contain;object-fit:contain}}.player[data-v-07090fc0],div[data-v-07090fc0],iframe[data-v-07090fc0]{height:100%!important;width:100%!important}.os-badge>[data-v-d24d64e2]{padding-right:4px}.os-badge .icon[data-v-d24d64e2]{width:1.2rem;color:#04303f}.badge[data-v-7ad3e67f]{background-color:#064054}.badge span[data-v-7ad3e67f]{padding:0 4px}.information[data-v-6432c13c]{display:flex;flex-flow:column nowrap;margin:1rem;min-width:30%}.information>div[data-v-6432c13c]{padding:5px 0}.information .category[data-v-6432c13c]{margin:0 0 .5rem;font-size:1.1rem;font-weight:500;color:#04303f;border-bottom:1px solid #04303f}.dark-mode .information .category[data-v-6432c13c]{color:#7e9ea9;border-bottom-color:#7e9ea9}.information .title[data-v-6432c13c]{font-size:1.4rem;font-weight:600}.information .badges[data-v-6432c13c],.information .os[data-v-6432c13c]{display:flex;flex-flow:row nowrap}.information .os[data-v-6432c13c]{flex-flow:row wrap}.information .description[data-v-6432c13c]{margin-top:1rem;line-height:1.7}.description[data-v-3df55efe]{display:flex;flex-flow:row nowrap;height:312.1875px;background:linear-gradient(#fbfbfc,transparent 60%)}.dark-mode .description[data-v-3df55efe]{background:linear-gradient(#5a7b86 -150%,transparent 60%)}.description .description-information[data-v-3df55efe],.description .description-media[data-v-3df55efe]{height:unset;transition:width 3s ease 0s}.description .description-media[data-v-3df55efe]{transition:width 2s ease 0s;width:60%}.description .description-information[data-v-3df55efe]{width:40%}.description-information[data-v-3df55efe]:hover,.description-media[data-v-3df55efe]:hover{transition:width 3s ease 1s;width:80%!important}.description-media[data-v-3df55efe]{box-shadow:3px 2px 3px 1px #667386}.dark-mode .description-media[data-v-3df55efe]{box-shadow:3px 2px 3px 1px #48636c}@media (max-width:999px){.description[data-v-3df55efe]{height:unset;flex-flow:column nowrap}.description .description-media[data-v-3df55efe]{margin:auto;width:100%!important;order:2;height:277.5px;max-height:416.25px}.description .description-information[data-v-3df55efe]{min-height:208.125px;order:1;width:-moz-fit-content;width:fit-content}}@media (max-width:456px){.description .description-media[data-v-3df55efe]{box-shadow:none}.description .description-information[data-v-3df55efe]{min-height:30vh}}.model-controls-wrapper[data-v-44501ca1]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;margin:3em auto 0;width:-moz-fit-content;width:fit-content}.model-controls-wrapper .control[data-v-44501ca1]{margin-right:2em}.model-controls-wrapper .control[data-v-44501ca1]:last-child{margin-right:0}.model-controls-wrapper .icon-background[data-v-44501ca1]{cursor:pointer;width:70px;height:70px;border-radius:50%;background-color:#0ea1d2;box-shadow:2px 2px 3px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-44501ca1]{box-shadow:2px 2px 3px 1px #2d3e43}.model-controls-wrapper .icon-background[data-v-44501ca1]:hover{background-color:#10b6ed;box-shadow:3px 3px 4px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-44501ca1]:hover{box-shadow:3px 3px 4px 1px #3f565e}.model-controls-wrapper .icon-background.small[data-v-44501ca1]{width:50px;height:50px}.model-controls-wrapper .icon-background.small .icon[data-v-44501ca1]{width:34px;height:34px;margin:0}.model-controls-wrapper .icon-background.small .icon.small[data-v-44501ca1]{width:24px;height:24px;padding:13px}.model-controls-wrapper .icon-background.dark[data-v-44501ca1]{background-color:#04303f}.model-controls-wrapper .icon-background.dark[data-v-44501ca1]:hover{background-color:#064054}.model-controls-wrapper .icon-background.external[data-v-44501ca1]{background-color:#0a7193}.model-controls-wrapper .icon-background.external[data-v-44501ca1]:hover{background-color:#0b81a8}.model-controls-wrapper .icon-background .icon[data-v-44501ca1]{color:#fff;width:36px;height:36px;padding:17px}.model-controls-wrapper .icon-background .icon svg[data-v-44501ca1]{width:100%;height:100%}.disabled .icon-background[data-v-44501ca1]{background-color:#667386!important;cursor:auto}.disabled .icon-background[data-v-44501ca1]:hover{box-shadow:2px 2px 3px 1px #667386}.dark-mode .disabled .icon-background[data-v-44501ca1]:hover{box-shadow:2px 2px 3px 1px #2d3e43}@media (max-width:999px){.model-controls-wrapper .control[data-v-44501ca1]{margin-right:2rem}}@media (max-width:456px){.model-controls-wrapper[data-v-44501ca1]{margin:2em auto 1em}.model-controls-wrapper .control[data-v-44501ca1]{margin-right:.75rem}.model-controls-wrapper .control .icon-background[data-v-44501ca1]{width:40px;height:40px}.model-controls-wrapper .control .icon-background.small[data-v-44501ca1]{width:30px;height:30px}.model-controls-wrapper .control .icon-background .icon[data-v-44501ca1]{width:20px;height:20px;padding:10px}.model-controls-wrapper .control .icon-background .icon.small[data-v-44501ca1]{width:14px;height:14px;padding:0}.model-controls-wrapper .control .icon-background .icon.small svg[data-v-44501ca1]{width:14px;height:14px;padding:8px}svg#asterics-logo[data-v-44501ca1]{transform:scale(1.25)}}.model-controls-wrapper[data-v-98cdf960]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;margin:3em auto 0;width:-moz-fit-content;width:fit-content}.model-controls-wrapper .control[data-v-98cdf960]{margin-right:2em}.model-controls-wrapper .control[data-v-98cdf960]:last-child{margin-right:0}.model-controls-wrapper .icon-background[data-v-98cdf960]{cursor:pointer;width:70px;height:70px;border-radius:50%;background-color:#0ea1d2;box-shadow:2px 2px 3px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-98cdf960]{box-shadow:2px 2px 3px 1px #2d3e43}.model-controls-wrapper .icon-background[data-v-98cdf960]:hover{background-color:#10b6ed;box-shadow:3px 3px 4px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-98cdf960]:hover{box-shadow:3px 3px 4px 1px #3f565e}.model-controls-wrapper .icon-background.small[data-v-98cdf960]{width:50px;height:50px}.model-controls-wrapper .icon-background.small .icon[data-v-98cdf960]{width:34px;height:34px;margin:0}.model-controls-wrapper .icon-background.small .icon.small[data-v-98cdf960]{width:24px;height:24px;padding:13px}.model-controls-wrapper .icon-background.dark[data-v-98cdf960]{background-color:#04303f}.model-controls-wrapper .icon-background.dark[data-v-98cdf960]:hover{background-color:#064054}.model-controls-wrapper .icon-background.external[data-v-98cdf960]{background-color:#0a7193}.model-controls-wrapper .icon-background.external[data-v-98cdf960]:hover{background-color:#0b81a8}.model-controls-wrapper .icon-background .icon[data-v-98cdf960]{color:#fff;width:36px;height:36px;padding:17px}.model-controls-wrapper .icon-background .icon svg[data-v-98cdf960]{width:100%;height:100%}.disabled .icon-background[data-v-98cdf960]{background-color:#667386!important;cursor:auto}.disabled .icon-background[data-v-98cdf960]:hover{box-shadow:2px 2px 3px 1px #667386}.dark-mode .disabled .icon-background[data-v-98cdf960]:hover{box-shadow:2px 2px 3px 1px #2d3e43}@media (max-width:999px){.model-controls-wrapper .control[data-v-98cdf960]{margin-right:2rem}}@media (max-width:456px){.model-controls-wrapper[data-v-98cdf960]{margin:2em auto 1em}.model-controls-wrapper .control[data-v-98cdf960]{margin-right:.75rem}.model-controls-wrapper .control .icon-background[data-v-98cdf960]{width:40px;height:40px}.model-controls-wrapper .control .icon-background.small[data-v-98cdf960]{width:30px;height:30px}.model-controls-wrapper .control .icon-background .icon[data-v-98cdf960]{width:20px;height:20px;padding:10px}.model-controls-wrapper .control .icon-background .icon.small[data-v-98cdf960]{width:14px;height:14px;padding:0}.model-controls-wrapper .control .icon-background .icon.small svg[data-v-98cdf960]{width:14px;height:14px;padding:8px}svg#asterics-logo[data-v-98cdf960]{transform:scale(1.25)}}.swiper-slide[data-v-60c80fad]{margin:1rem 0;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .swiper-slide[data-v-60c80fad]{box-shadow:1px 1px 3px 1px #48636c}.solution-media[data-v-60c80fad]{width:100%}@media (max-width:456px){.slide .controls{min-height:unset!important}}.container>div[data-v-4392e75a]{margin:20px 0}.container .title[data-v-4392e75a]{font-size:1.4rem;font-weight:600}.container .description[data-v-4392e75a]{line-height:1.7}.swiper-slide{margin:1rem 0;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .swiper-slide{box-shadow:1px 1px 3px 1px #48636c}@media (max-width:999px){.swiper-button-next,.swiper-button-prev{display:none}}.plugin-search[data-v-3357ab27]{display:flex;flex-flow:row nowrap;font-size:1.2rem}#plugin-search-icon[data-v-3357ab27]{position:absolute;padding:1rem;color:#cfd4db}.dark-mode #plugin-search-icon[data-v-3357ab27]{color:#7698a3}#plugin-search-input[data-v-3357ab27]{width:100%;padding:.8rem .8rem .8rem 3rem;border-radius:2rem;font-size:inherit;outline:none}#plugin-search-input[data-v-3357ab27]:focus{border:2px solid #0ea1d2}.dark-mode #plugin-search-input[data-v-3357ab27]{border-color:#516f79}#plugin-search-input[data-v-3357ab27]::-moz-placeholder{color:#5a7b86}#plugin-search-input[data-v-3357ab27]::placeholder{color:#5a7b86}.title[data-v-50653d92]{cursor:pointer;padding:.5rem 0;font-size:1.2rem;display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center}.title div[data-v-50653d92]{flex:2 1 46%}.title div[data-v-50653d92]:first-child{margin:1%;flex:2 1 44%}.title div:last-child label[data-v-50653d92]{cursor:auto}form[data-v-e2596472]{margin:8px 0}form fieldset[data-v-e2596472]{display:flex;flex-flow:column nowrap;border:none;background-color:#fbfbfc;box-shadow:1px 1px 3px 1px #7f8b9d}.dark-mode form fieldset[data-v-e2596472]{background-color:#1e1e1e;box-shadow:1px 1px 3px 1px #2a2a2a}.plugin-filter{display:flex;flex-flow:row wrap}.plugin-filter input[type=radio]{opacity:0;position:fixed;width:0}.plugin-filter input[type=radio]:checked+label{background-color:#0ea1d2;color:#fff}.dark-mode .plugin-filter input[type=radio]:checked+label{background-color:#0a799d}.plugin-filter input[type=radio]:checked+label:hover{font-weight:400}.plugin-filter input[type=radio]+label:hover{background-color:#29bff1;color:#fff}.dark-mode .plugin-filter input[type=radio]+label:hover{background-color:#0d99c8}.plugin-filter label{font-size:1.2rem;margin:2px;padding:9px;cursor:pointer;display:inline-block;text-align:center;flex:2 1 46%;background-color:#fff;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .plugin-filter label{background-color:#243136;box-shadow:1px 1px 3px 1px #0e0e0e;color:#999}img.default[data-v-2fc6d2a0]{width:75%!important;height:75%!important;-o-object-fit:contain!important;object-fit:contain!important}div[data-v-9d11ee74]{padding:4px 8px;font-size:1.2rem;font-weight:500;border-top:1px solid #eaecef;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dark-mode div[data-v-9d11ee74]{border-top:1px solid #5a7b86}.search-grid-link[data-v-3bf036a2]{cursor:pointer;width:230.66666666666666px;height:230.66666666666666px;margin:8px;border:none;box-shadow:1px 1px 2px 1px #7f8b9d}.dark-mode .search-grid-link[data-v-3bf036a2]{box-shadow:1px 1px 2px 1px #717171;background-color:#1e1e1e!important}.search-grid-link a[data-v-3bf036a2]{color:#000}.dark-mode .search-grid-link a[data-v-3bf036a2]{color:#5a7b86}.search-grid-link>a[data-v-3bf036a2]:hover{text-decoration:none!important;box-shadow:1px 1px 2px 1px #0b81a8;color:#0ea1d2}.search-grid-element[data-v-3bf036a2]{display:flex;flex-flow:column nowrap;border:none;list-style-type:none;padding:0}.dark-mode .search-grid-element[data-v-3bf036a2]{box-shadow:1px 1px 2px 1px #5a7b86}.search-grid-element .search-grid-image-container[data-v-3bf036a2]{display:flex;flex-flow:row;justify-content:space-around;align-items:center;width:100%;height:190.66666666666666px;margin:auto}.search-grid-element .search-grid-image-container img[data-v-3bf036a2]{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%;height:100%}@media (max-width:1234px){.search-grid-link[data-v-3bf036a2]{width:328px;height:328px}.search-grid-link .search-grid-image-container[data-v-3bf036a2]{height:288px}}@media (max-width:999px){.search-grid-link[data-v-3bf036a2]{width:314px;height:314px}.search-grid-link .search-grid-image-container[data-v-3bf036a2]{height:274px}}@media (max-width:456px){.search-grid-link[data-v-3bf036a2]{width:100vw;max-height:40vh}.search-grid-link .search-grid-image-container[data-v-3bf036a2]{height:274px;max-height:32vh}}.plugins[data-v-068fd960]{margin:2em 0;width:100%;padding:0}.plugins ul[data-v-068fd960]{list-style-type:none;padding:0;margin:0;display:flex;flex-flow:row wrap;justify-content:flex-start}.plugins ul li[data-v-068fd960]{margin-left:0}.plugins .no-results[data-v-068fd960]{background-color:#eaecef;padding:1rem;margin:8px 0;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .plugins .no-results[data-v-068fd960]{background-color:#1e1e1e;box-shadow:1px 1px 3px 1px #2a2a2a}.swiper-button-next[data-v-5df8abdc],.swiper-button-prev[data-v-5df8abdc]{top:407.1875px}.swiper-container .swiper-slide{border:unset!important;margin:unset!important;box-shadow:unset!important}#subtitle[data-v-61570546]{font-size:1.8rem;font-weight:400;margin-bottom:2rem;border-bottom:.1rem solid #dde0e5}.dark-mode #subtitle[data-v-61570546]{border-bottom:1px solid #7f8b9d}@media (max-width:999px){#subtitle[data-v-61570546]{font-size:1.6rem}}@media (max-width:456px){#subtitle[data-v-61570546]{font-size:1.2rem;margin-bottom:.5rem}}.yt-player[data-v-055f0ec9]{width:100%}div.video-container[data-v-055f0ec9]{height:416.25px;box-shadow:1px 1px 3px 1px #7f8b9d}@media (max-width:740px){div.video-container[data-v-055f0ec9]{height:740px;width:100%;max-height:370px}}.badge[data-v-14acdff0]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-14acdff0],.badge.tip[data-v-14acdff0],.badge[data-v-14acdff0]{background-color:#42b983}.badge.error[data-v-14acdff0]{background-color:#da5961}.badge.warn[data-v-14acdff0],.badge.warning[data-v-14acdff0],.badge.yellow[data-v-14acdff0]{background-color:#e7c000}.badge+.badge[data-v-14acdff0]{margin-left:5px}.theme-code-block[data-v-c3402832]{display:none}.theme-code-block__active[data-v-c3402832]{display:block}.theme-code-block>pre[data-v-c3402832]{background-color:orange}.theme-code-group__nav[data-v-c02030d4]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-c02030d4]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-c02030d4]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-c02030d4]{border-bottom:1px solid #42b983}.pre-blank[data-v-c02030d4]{color:#42b983}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#000;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#0ea1d2;border-left-color:#0ea1d2}.sidebar-heading.clickable:hover{color:#0ea1d2}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:1234px){.page-edit{padding:2rem}}@media (max-width:456px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto;transition:color 1s ease}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#404040}.page-edit .edit-link .edit-guides a,.page-edit .edit-link svg{margin-right:.25rem}.page-edit .edit-link a>svg{margin-right:0}.page-edit .edit-link .edit-preamble,.page-edit .edit-link .edit-text{font-style:italic}.page-edit .edit-link .edit-guides a,.page-edit .edit-link .edit-preamble{color:#aaa}.page-edit:hover #editor-guide{color:#45b784}.page-edit:hover #markdown-guide{color:#0ea1d2}.page-edit:hover #developer-guide{color:#04303f}.page-edit .last-updated{float:right;text-align:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#404040}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:999px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#000;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#0ea1d2}a.sidebar-link.active{font-weight:600;color:#0ea1d2;border-left-color:#0ea1d2}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:1234px){.page-nav{padding:2rem}}@media (max-width:456px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:999px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}#home-jumbotron[data-v-3d754ff6]{background:radial-gradient(#fff 0,#dde0e5 80%);display:flex;flex-flow:column nowrap;box-shadow:1px 1px 0 2px #7f8b9d;transition:box-shadow 1.5s ease-out;border-top:1px solid #7f8b9d}.dark-mode #home-jumbotron[data-v-3d754ff6]{background:unset;background-color:#1b2528;box-shadow:1px 1px 0 2px #364a51;border-bottom:1px solid #12191b!important}.dark-mode #home-jumbotron.lock[data-v-3d754ff6]{box-shadow:1px 1px 14px 2px #364a51!important}#home-jumbotron.mounted[data-v-3d754ff6]{box-shadow:1px 1px 2rem 2px #7f8b9d;border-bottom:1px solid #b4bbc6}.dark-mode #home-jumbotron.mounted[data-v-3d754ff6]{box-shadow:1px 1px 14px 2px #364a51!important}#home-jumbotron>div[data-v-3d754ff6]{flex:1 1 100%;margin:10rem 6rem;transition:margin 1s ease-out}#home-jumbotron.lock[data-v-3d754ff6]{transition-duration:3s;box-shadow:1px 1px 4px 2px #7f8b9d}#home-jumbotron.lock>div[data-v-3d754ff6]{margin:4rem 6rem}#home-jumbotron.lock>div>div[data-v-3d754ff6]{padding:8px 0}@media (max-width:456px){#home-jumbotron>div[data-v-3d754ff6]{margin:6rem 1rem}#home-jumbotron.lock>div[data-v-3d754ff6]{margin:1rem}} \ No newline at end of file +/*! @docsearch/css 3.3.3 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,0.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,0.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,0.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,0.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,0.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,0.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,0.5),0 -4px 8px 0 rgba(0,0,0,0.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::-moz-placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}#search-form{margin-right:1rem}.DocSearch-Button-Container,.DocSearch-Button-Keys{display:flex!important}.DocSearch-Button-Placeholder{height:.9rem}.DocSearch-Input:focus{outline:unset!important}.DocSearch-Logo svg .cls-1,.DocSearch-Logo svg .cls-2{fill:var(--docsearch-logo-color)}@media (max-width:999px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none!important}}:root{--docsearch-logo-color:#0ea1d2;--docsearch-primary-color:#0ea1d2;--docsearch-highlight-color:#0ea1d2}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:999px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#000;pointer-events:none}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#0ea1d2}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #0ea1d2;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:999px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{font-weight:600;font-size:inherit}.dropdown-wrapper .dropdown-title:hover{color:#0ea1d2}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:999px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.settings-button[data-v-ef43f700]{cursor:pointer}#settings-label[data-v-ef43f700]{display:none;font-weight:700}#settings-icon[data-v-ef43f700]{display:block}@media (max-width:999px){#settings-label[data-v-ef43f700]{display:block}#settings-icon[data-v-ef43f700]{display:none}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#0ea1d2}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:999px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:999px){.nav-links a.router-link-active,.nav-links a:hover{color:#000}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #0fb1e7}}svg#asterics-logo path#back[data-v-55a54dcc]{fill:#000}svg#asterics-logo path#front[data-v-55a54dcc]{fill:#0ea1d2}.dark-mode svg#asterics-logo path#back[data-v-55a54dcc]{fill:#eaecef}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#000;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:999px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.asterics-sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:2px solid #0ea1d2;border-radius:4px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.asterics-sw-update-popup button{display:inline-block;background-color:#0ea1d2;color:#fff;border:none;border-bottom:1px solid #0d91bd;border-radius:4px;padding:.8rem 1.6rem;font-size:1rem;font-weight:500;transition:background-color .1s ease;margin-top:1rem}.asterics-sw-update-popup-enter-active,.asterics-sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.asterics-sw-update-popup-enter,.asterics-sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}.action[data-v-66fb803e]{display:inline-block;color:#fff;background-color:#0ea1d2;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #0d91bd}.dark-mode .action[data-v-66fb803e]{background-color:#0a799d}.action.dark[data-v-66fb803e]{background-color:#064054}.dark-mode .action[data-v-66fb803e]{border-bottom:1px solid #096989}.action.dark[data-v-66fb803e]{border-bottom:1px solid #04303f}.action[data-v-66fb803e]:hover{background-color:#10b6ed}.dark-mode .action[data-v-66fb803e]:hover{background-color:#0c89b3}.action:hover.dark[data-v-66fb803e]:hover{background-color:#075169}#action-group[data-v-9c64e234]{font-size:1.4rem}#action-group>div[data-v-9c64e234]{padding:4px 0}@media (max-width:999px){#action-group[data-v-9c64e234]{font-size:1.3rem}}@media (max-width:456px){#action-group[data-v-9c64e234]{font-size:1rem}}#actions[data-v-0c986244]{display:flex;flex-flow:row nowrap;margin-top:4px}#actions>a[data-v-0c986244]{margin-right:1rem}#actions>a[data-v-0c986244]:last-child{margin-right:0}@media (max-width:456px){#actions[data-v-0c986244]{flex-flow:column nowrap}#actions>a[data-v-0c986244]{margin:.25em 0;width:100%;font-size:1.2rem;padding:.8rem}}#funding[data-v-797f4a9c]{display:flex;flex-flow:row nowrap;align-items:center;padding-left:0;list-style-type:none}#funding>li[data-v-797f4a9c]{justify-content:center;flex-basis:0;flex-grow:1}@media (max-width:456px){#funding[data-v-797f4a9c]{flex-flow:row wrap;justify-content:center}#funding li[data-v-797f4a9c]{flex:1 1 40%;max-width:40%}#funding li[data-v-797f4a9c]:nth-child(2n-1){margin-right:3rem}}#header[data-v-328d38ff]{font-size:6rem;font-weight:500}@media (max-width:999px){#header[data-v-328d38ff]{font-size:5rem}}@media (max-width:456px){#header[data-v-328d38ff]{font-size:2.5rem;padding-bottom:.5rem}}.container[data-v-986bc34a],img[data-v-986bc34a]{width:100%;height:100%;vertical-align:middle}img[data-v-986bc34a]{-o-object-fit:cover;object-fit:cover}@media (max-width:456px){.container[data-v-986bc34a],img[data-v-986bc34a]{box-shadow:unset;max-width:unset;max-height:unset}}li[data-v-08980368]{margin:auto 18px}.partner[data-v-08980368]{min-width:80px}@media (max-width:456px){.partner .container img{max-height:150px;-o-object-fit:contain;object-fit:contain}}.player[data-v-07090fc0],div[data-v-07090fc0],iframe[data-v-07090fc0]{height:100%!important;width:100%!important}.os-badge>[data-v-d24d64e2]{padding-right:4px}.os-badge .icon[data-v-d24d64e2]{width:1.2rem;color:#04303f}.badge[data-v-7ad3e67f]{background-color:#064054}.badge span[data-v-7ad3e67f]{padding:0 4px}.information[data-v-6432c13c]{display:flex;flex-flow:column nowrap;margin:1rem;min-width:30%}.information>div[data-v-6432c13c]{padding:5px 0}.information .category[data-v-6432c13c]{margin:0 0 .5rem;font-size:1.1rem;font-weight:500;color:#04303f;border-bottom:1px solid #04303f}.dark-mode .information .category[data-v-6432c13c]{color:#7e9ea9;border-bottom-color:#7e9ea9}.information .title[data-v-6432c13c]{font-size:1.4rem;font-weight:600}.information .badges[data-v-6432c13c],.information .os[data-v-6432c13c]{display:flex;flex-flow:row nowrap}.information .os[data-v-6432c13c]{flex-flow:row wrap}.information .description[data-v-6432c13c]{margin-top:1rem;line-height:1.7}.description[data-v-3df55efe]{display:flex;flex-flow:row nowrap;height:312.1875px;background:linear-gradient(#fbfbfc,transparent 60%)}.dark-mode .description[data-v-3df55efe]{background:linear-gradient(#5a7b86 -150%,transparent 60%)}.description .description-information[data-v-3df55efe],.description .description-media[data-v-3df55efe]{height:unset;transition:width 3s ease 0s}.description .description-media[data-v-3df55efe]{transition:width 2s ease 0s;width:60%}.description .description-information[data-v-3df55efe]{width:40%}.description-information[data-v-3df55efe]:hover,.description-media[data-v-3df55efe]:hover{transition:width 3s ease 1s;width:80%!important}.description-media[data-v-3df55efe]{box-shadow:3px 2px 3px 1px #667386}.dark-mode .description-media[data-v-3df55efe]{box-shadow:3px 2px 3px 1px #48636c}@media (max-width:999px){.description[data-v-3df55efe]{height:unset;flex-flow:column nowrap}.description .description-media[data-v-3df55efe]{margin:auto;width:100%!important;order:2;height:277.5px;max-height:416.25px}.description .description-information[data-v-3df55efe]{min-height:208.125px;order:1;width:-moz-fit-content;width:fit-content}}@media (max-width:456px){.description .description-media[data-v-3df55efe]{box-shadow:none}.description .description-information[data-v-3df55efe]{min-height:30vh}}.model-controls-wrapper[data-v-44501ca1]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;margin:3em auto 0;width:-moz-fit-content;width:fit-content}.model-controls-wrapper .control[data-v-44501ca1]{margin-right:2em}.model-controls-wrapper .control[data-v-44501ca1]:last-child{margin-right:0}.model-controls-wrapper .icon-background[data-v-44501ca1]{cursor:pointer;width:70px;height:70px;border-radius:50%;background-color:#0ea1d2;box-shadow:2px 2px 3px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-44501ca1]{box-shadow:2px 2px 3px 1px #2d3e43}.model-controls-wrapper .icon-background[data-v-44501ca1]:hover{background-color:#10b6ed;box-shadow:3px 3px 4px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-44501ca1]:hover{box-shadow:3px 3px 4px 1px #3f565e}.model-controls-wrapper .icon-background.small[data-v-44501ca1]{width:50px;height:50px}.model-controls-wrapper .icon-background.small .icon[data-v-44501ca1]{width:34px;height:34px;margin:0}.model-controls-wrapper .icon-background.small .icon.small[data-v-44501ca1]{width:24px;height:24px;padding:13px}.model-controls-wrapper .icon-background.dark[data-v-44501ca1]{background-color:#04303f}.model-controls-wrapper .icon-background.dark[data-v-44501ca1]:hover{background-color:#064054}.model-controls-wrapper .icon-background.external[data-v-44501ca1]{background-color:#0a7193}.model-controls-wrapper .icon-background.external[data-v-44501ca1]:hover{background-color:#0b81a8}.model-controls-wrapper .icon-background .icon[data-v-44501ca1]{color:#fff;width:36px;height:36px;padding:17px}.model-controls-wrapper .icon-background .icon svg[data-v-44501ca1]{width:100%;height:100%}.disabled .icon-background[data-v-44501ca1]{background-color:#667386!important;cursor:auto}.disabled .icon-background[data-v-44501ca1]:hover{box-shadow:2px 2px 3px 1px #667386}.dark-mode .disabled .icon-background[data-v-44501ca1]:hover{box-shadow:2px 2px 3px 1px #2d3e43}@media (max-width:999px){.model-controls-wrapper .control[data-v-44501ca1]{margin-right:2rem}}@media (max-width:456px){.model-controls-wrapper[data-v-44501ca1]{margin:2em auto 1em}.model-controls-wrapper .control[data-v-44501ca1]{margin-right:.75rem}.model-controls-wrapper .control .icon-background[data-v-44501ca1]{width:40px;height:40px}.model-controls-wrapper .control .icon-background.small[data-v-44501ca1]{width:30px;height:30px}.model-controls-wrapper .control .icon-background .icon[data-v-44501ca1]{width:20px;height:20px;padding:10px}.model-controls-wrapper .control .icon-background .icon.small[data-v-44501ca1]{width:14px;height:14px;padding:0}.model-controls-wrapper .control .icon-background .icon.small svg[data-v-44501ca1]{width:14px;height:14px;padding:8px}svg#asterics-logo[data-v-44501ca1]{transform:scale(1.25)}}.model-controls-wrapper[data-v-98cdf960]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;margin:3em auto 0;width:-moz-fit-content;width:fit-content}.model-controls-wrapper .control[data-v-98cdf960]{margin-right:2em}.model-controls-wrapper .control[data-v-98cdf960]:last-child{margin-right:0}.model-controls-wrapper .icon-background[data-v-98cdf960]{cursor:pointer;width:70px;height:70px;border-radius:50%;background-color:#0ea1d2;box-shadow:2px 2px 3px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-98cdf960]{box-shadow:2px 2px 3px 1px #2d3e43}.model-controls-wrapper .icon-background[data-v-98cdf960]:hover{background-color:#10b6ed;box-shadow:3px 3px 4px 1px #667386}.dark-mode .model-controls-wrapper .icon-background[data-v-98cdf960]:hover{box-shadow:3px 3px 4px 1px #3f565e}.model-controls-wrapper .icon-background.small[data-v-98cdf960]{width:50px;height:50px}.model-controls-wrapper .icon-background.small .icon[data-v-98cdf960]{width:34px;height:34px;margin:0}.model-controls-wrapper .icon-background.small .icon.small[data-v-98cdf960]{width:24px;height:24px;padding:13px}.model-controls-wrapper .icon-background.dark[data-v-98cdf960]{background-color:#04303f}.model-controls-wrapper .icon-background.dark[data-v-98cdf960]:hover{background-color:#064054}.model-controls-wrapper .icon-background.external[data-v-98cdf960]{background-color:#0a7193}.model-controls-wrapper .icon-background.external[data-v-98cdf960]:hover{background-color:#0b81a8}.model-controls-wrapper .icon-background .icon[data-v-98cdf960]{color:#fff;width:36px;height:36px;padding:17px}.model-controls-wrapper .icon-background .icon svg[data-v-98cdf960]{width:100%;height:100%}.disabled .icon-background[data-v-98cdf960]{background-color:#667386!important;cursor:auto}.disabled .icon-background[data-v-98cdf960]:hover{box-shadow:2px 2px 3px 1px #667386}.dark-mode .disabled .icon-background[data-v-98cdf960]:hover{box-shadow:2px 2px 3px 1px #2d3e43}@media (max-width:999px){.model-controls-wrapper .control[data-v-98cdf960]{margin-right:2rem}}@media (max-width:456px){.model-controls-wrapper[data-v-98cdf960]{margin:2em auto 1em}.model-controls-wrapper .control[data-v-98cdf960]{margin-right:.75rem}.model-controls-wrapper .control .icon-background[data-v-98cdf960]{width:40px;height:40px}.model-controls-wrapper .control .icon-background.small[data-v-98cdf960]{width:30px;height:30px}.model-controls-wrapper .control .icon-background .icon[data-v-98cdf960]{width:20px;height:20px;padding:10px}.model-controls-wrapper .control .icon-background .icon.small[data-v-98cdf960]{width:14px;height:14px;padding:0}.model-controls-wrapper .control .icon-background .icon.small svg[data-v-98cdf960]{width:14px;height:14px;padding:8px}svg#asterics-logo[data-v-98cdf960]{transform:scale(1.25)}}.swiper-slide[data-v-60c80fad]{margin:1rem 0;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .swiper-slide[data-v-60c80fad]{box-shadow:1px 1px 3px 1px #48636c}.solution-media[data-v-60c80fad]{width:100%}@media (max-width:456px){.slide .controls{min-height:unset!important}}.container>div[data-v-4392e75a]{margin:20px 0}.container .title[data-v-4392e75a]{font-size:1.4rem;font-weight:600}.container .description[data-v-4392e75a]{line-height:1.7}.swiper-slide{margin:1rem 0;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .swiper-slide{box-shadow:1px 1px 3px 1px #48636c}@media (max-width:999px){.swiper-button-next,.swiper-button-prev{display:none}}.plugin-search[data-v-3357ab27]{display:flex;flex-flow:row nowrap;font-size:1.2rem}#plugin-search-icon[data-v-3357ab27]{position:absolute;padding:1rem;color:#cfd4db}.dark-mode #plugin-search-icon[data-v-3357ab27]{color:#7698a3}#plugin-search-input[data-v-3357ab27]{width:100%;padding:.8rem .8rem .8rem 3rem;border-radius:2rem;font-size:inherit;outline:none}#plugin-search-input[data-v-3357ab27]:focus{border:2px solid #0ea1d2}.dark-mode #plugin-search-input[data-v-3357ab27]{border-color:#516f79}#plugin-search-input[data-v-3357ab27]::-moz-placeholder{color:#5a7b86}#plugin-search-input[data-v-3357ab27]::placeholder{color:#5a7b86}.title[data-v-50653d92]{cursor:pointer;padding:.5rem 0;font-size:1.2rem;display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center}.title div[data-v-50653d92]{flex:2 1 46%}.title div[data-v-50653d92]:first-child{margin:1%;flex:2 1 44%}.title div:last-child label[data-v-50653d92]{cursor:auto}form[data-v-e2596472]{margin:8px 0}form fieldset[data-v-e2596472]{display:flex;flex-flow:column nowrap;border:none;background-color:#fbfbfc;box-shadow:1px 1px 3px 1px #7f8b9d}.dark-mode form fieldset[data-v-e2596472]{background-color:#1e1e1e;box-shadow:1px 1px 3px 1px #2a2a2a}.plugin-filter{display:flex;flex-flow:row wrap}.plugin-filter input[type=radio]{opacity:0;position:fixed;width:0}.plugin-filter input[type=radio]:checked+label{background-color:#0ea1d2;color:#fff}.dark-mode .plugin-filter input[type=radio]:checked+label{background-color:#0a799d}.plugin-filter input[type=radio]:checked+label:hover{font-weight:400}.plugin-filter input[type=radio]+label:hover{background-color:#29bff1;color:#fff}.dark-mode .plugin-filter input[type=radio]+label:hover{background-color:#0d99c8}.plugin-filter label{font-size:1.2rem;margin:2px;padding:9px;cursor:pointer;display:inline-block;text-align:center;flex:2 1 46%;background-color:#fff;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .plugin-filter label{background-color:#243136;box-shadow:1px 1px 3px 1px #0e0e0e;color:#999}img.default[data-v-2fc6d2a0]{width:75%!important;height:75%!important;-o-object-fit:contain!important;object-fit:contain!important}div[data-v-9d11ee74]{padding:4px 8px;font-size:1.2rem;font-weight:500;border-top:1px solid #eaecef;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dark-mode div[data-v-9d11ee74]{border-top:1px solid #5a7b86}.search-grid-link[data-v-3bf036a2]{cursor:pointer;width:230.66666666666666px;height:230.66666666666666px;margin:8px;border:none;box-shadow:1px 1px 2px 1px #7f8b9d}.dark-mode .search-grid-link[data-v-3bf036a2]{box-shadow:1px 1px 2px 1px #717171;background-color:#1e1e1e!important}.search-grid-link a[data-v-3bf036a2]{color:#000}.dark-mode .search-grid-link a[data-v-3bf036a2]{color:#5a7b86}.search-grid-link>a[data-v-3bf036a2]:hover{text-decoration:none!important;box-shadow:1px 1px 2px 1px #0b81a8;color:#0ea1d2}.search-grid-element[data-v-3bf036a2]{display:flex;flex-flow:column nowrap;border:none;list-style-type:none;padding:0}.dark-mode .search-grid-element[data-v-3bf036a2]{box-shadow:1px 1px 2px 1px #5a7b86}.search-grid-element .search-grid-image-container[data-v-3bf036a2]{display:flex;flex-flow:row;justify-content:space-around;align-items:center;width:100%;height:190.66666666666666px;margin:auto}.search-grid-element .search-grid-image-container img[data-v-3bf036a2]{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;width:100%;height:100%}@media (max-width:1234px){.search-grid-link[data-v-3bf036a2]{width:328px;height:328px}.search-grid-link .search-grid-image-container[data-v-3bf036a2]{height:288px}}@media (max-width:999px){.search-grid-link[data-v-3bf036a2]{width:314px;height:314px}.search-grid-link .search-grid-image-container[data-v-3bf036a2]{height:274px}}@media (max-width:456px){.search-grid-link[data-v-3bf036a2]{width:100vw;max-height:40vh}.search-grid-link .search-grid-image-container[data-v-3bf036a2]{height:274px;max-height:32vh}}.plugins[data-v-068fd960]{margin:2em 0;width:100%;padding:0}.plugins ul[data-v-068fd960]{list-style-type:none;padding:0;margin:0;display:flex;flex-flow:row wrap;justify-content:flex-start}.plugins ul li[data-v-068fd960]{margin-left:0}.plugins .no-results[data-v-068fd960]{background-color:#eaecef;padding:1rem;margin:8px 0;box-shadow:1px 1px 3px 1px #b4bbc6}.dark-mode .plugins .no-results[data-v-068fd960]{background-color:#1e1e1e;box-shadow:1px 1px 3px 1px #2a2a2a}.swiper-button-next[data-v-5df8abdc],.swiper-button-prev[data-v-5df8abdc]{top:407.1875px}.swiper-container .swiper-slide{border:unset!important;margin:unset!important;box-shadow:unset!important}#subtitle[data-v-61570546]{font-size:1.8rem;font-weight:400;margin-bottom:2rem;border-bottom:.1rem solid #dde0e5}.dark-mode #subtitle[data-v-61570546]{border-bottom:1px solid #7f8b9d}@media (max-width:999px){#subtitle[data-v-61570546]{font-size:1.6rem}}@media (max-width:456px){#subtitle[data-v-61570546]{font-size:1.2rem;margin-bottom:.5rem}}.yt-player[data-v-055f0ec9]{width:100%}div.video-container[data-v-055f0ec9]{height:416.25px;box-shadow:1px 1px 3px 1px #7f8b9d}@media (max-width:740px){div.video-container[data-v-055f0ec9]{height:740px;width:100%;max-height:370px}}.theme-code-block[data-v-c3402832]{display:none}.theme-code-block__active[data-v-c3402832]{display:block}.theme-code-block>pre[data-v-c3402832]{background-color:orange}.theme-code-group__nav[data-v-c02030d4]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-c02030d4]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-c02030d4]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-c02030d4]{border-bottom:1px solid #42b983}.pre-blank[data-v-c02030d4]{color:#42b983}.badge[data-v-14acdff0]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-14acdff0],.badge.tip[data-v-14acdff0],.badge[data-v-14acdff0]{background-color:#42b983}.badge.error[data-v-14acdff0]{background-color:#da5961}.badge.warn[data-v-14acdff0],.badge.warning[data-v-14acdff0],.badge.yellow[data-v-14acdff0]{background-color:#e7c000}.badge+.badge[data-v-14acdff0]{margin-left:5px}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#000;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#0ea1d2;border-left-color:#0ea1d2}.sidebar-heading.clickable:hover{color:#0ea1d2}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:1234px){.page-edit{padding:2rem}}@media (max-width:456px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto;transition:color 1s ease}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#404040}.page-edit .edit-link .edit-guides a,.page-edit .edit-link svg{margin-right:.25rem}.page-edit .edit-link a>svg{margin-right:0}.page-edit .edit-link .edit-preamble,.page-edit .edit-link .edit-text{font-style:italic}.page-edit .edit-link .edit-guides a,.page-edit .edit-link .edit-preamble{color:#aaa}.page-edit:hover #editor-guide{color:#45b784}.page-edit:hover #markdown-guide{color:#0ea1d2}.page-edit:hover #developer-guide{color:#04303f}.page-edit .last-updated{float:right;text-align:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#404040}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:999px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#000;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#0ea1d2}a.sidebar-link.active{font-weight:600;color:#0ea1d2;border-left-color:#0ea1d2}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:1234px){.page-nav{padding:2rem}}@media (max-width:456px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:999px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}#home-jumbotron[data-v-3d754ff6]{background:radial-gradient(#fff 0,#dde0e5 80%);display:flex;flex-flow:column nowrap;box-shadow:1px 1px 0 2px #7f8b9d;transition:box-shadow 1.5s ease-out;border-top:1px solid #7f8b9d}.dark-mode #home-jumbotron[data-v-3d754ff6]{background:unset;background-color:#1b2528;box-shadow:1px 1px 0 2px #364a51;border-bottom:1px solid #12191b!important}.dark-mode #home-jumbotron.lock[data-v-3d754ff6]{box-shadow:1px 1px 14px 2px #364a51!important}#home-jumbotron.mounted[data-v-3d754ff6]{box-shadow:1px 1px 2rem 2px #7f8b9d;border-bottom:1px solid #b4bbc6}.dark-mode #home-jumbotron.mounted[data-v-3d754ff6]{box-shadow:1px 1px 14px 2px #364a51!important}#home-jumbotron>div[data-v-3d754ff6]{flex:1 1 100%;margin:10rem 6rem;transition:margin 1s ease-out}#home-jumbotron.lock[data-v-3d754ff6]{transition-duration:3s;box-shadow:1px 1px 4px 2px #7f8b9d}#home-jumbotron.lock>div[data-v-3d754ff6]{margin:4rem 6rem}#home-jumbotron.lock>div>div[data-v-3d754ff6]{padding:8px 0}@media (max-width:456px){#home-jumbotron>div[data-v-3d754ff6]{margin:6rem 1rem}#home-jumbotron.lock>div[data-v-3d754ff6]{margin:1rem}} \ No newline at end of file diff --git a/assets/js/100.b1b5b1f1.js b/assets/js/100.9e38f532.js similarity index 88% rename from assets/js/100.b1b5b1f1.js rename to assets/js/100.9e38f532.js index 24fbf94baa..cff4d1baa3 100644 --- a/assets/js/100.b1b5b1f1.js +++ b/assets/js/100.9e38f532.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{1256:function(e,t,r){"use strict";r.r(t);var a=r(2),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"rfid-reader"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rfid-reader"}},[e._v("#")]),e._v(" RFID Reader")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("The RFIDReader component provides an interface to the ID-Innovations RFID reader modules. These modules are available for example from Sparkfun electronics. The recognized ID-Tags are transferred from the module to a COM port, where the RFIDReader components reads the ID and puts it to the output port as an ASCII string. The RFIDReader can be useful to switch to a different a model (e.g. for another users or use cases) or to change parameters of a running model.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(831),alt:"Screenshot: RFIDReader plugin",title:"Screenshot: RFIDReader plugin"}})]),e._v(" "),t("p",[e._v("RFIDReader plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an ID-Innovations RFID reader to be connected to a COM port via the Sparkfun USB breakout board or a UART/USB bridge or converter cable. Dedicated drivers have to be installed (e.g. the FTDI VCP drivers for the Sparkfun breakout board). All needed components are contained in the Sparkfun RFID Starter Kit:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(832),alt:"RFID Starter Kit",title:"RFID Starter Kit"}})]),e._v(" "),t("p",[e._v("RFID Starter Kit")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("tagID [string]:")]),e._v(" A recognized TagID is put out on this port as a sequence of 12 hexadecimal numbers in an ASCII string.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("comPort [string]:")]),e._v(" The COM port where the RFID reader module is connected to (e.g “COM5”)")]),e._v(" "),t("li",[t("strong",[e._v("baudRate [integer]:")]),e._v(" The baudrate for communication with the RFID reader module, should be 9600 for the ID Innovations modules")])])])}),[],!1,null,null,null);t.default=o.exports},831:function(e,t,r){e.exports=r.p+"assets/img/rfidreader.808198ba.jpg"},832:function(e,t,r){e.exports=r.p+"assets/img/rfidreader_kit.967bb765.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{1257:function(e,t,r){"use strict";r.r(t);var a=r(2),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"rfid-reader"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rfid-reader"}},[e._v("#")]),e._v(" RFID Reader")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("The RFIDReader component provides an interface to the ID-Innovations RFID reader modules. These modules are available for example from Sparkfun electronics. The recognized ID-Tags are transferred from the module to a COM port, where the RFIDReader components reads the ID and puts it to the output port as an ASCII string. The RFIDReader can be useful to switch to a different a model (e.g. for another users or use cases) or to change parameters of a running model.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(834),alt:"Screenshot: RFIDReader plugin",title:"Screenshot: RFIDReader plugin"}})]),e._v(" "),t("p",[e._v("RFIDReader plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an ID-Innovations RFID reader to be connected to a COM port via the Sparkfun USB breakout board or a UART/USB bridge or converter cable. Dedicated drivers have to be installed (e.g. the FTDI VCP drivers for the Sparkfun breakout board). All needed components are contained in the Sparkfun RFID Starter Kit:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(835),alt:"RFID Starter Kit",title:"RFID Starter Kit"}})]),e._v(" "),t("p",[e._v("RFID Starter Kit")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("tagID [string]:")]),e._v(" A recognized TagID is put out on this port as a sequence of 12 hexadecimal numbers in an ASCII string.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("comPort [string]:")]),e._v(" The COM port where the RFID reader module is connected to (e.g “COM5”)")]),e._v(" "),t("li",[t("strong",[e._v("baudRate [integer]:")]),e._v(" The baudrate for communication with the RFID reader module, should be 9600 for the ID Innovations modules")])])])}),[],!1,null,null,null);t.default=o.exports},834:function(e,t,r){e.exports=r.p+"assets/img/rfidreader.808198ba.jpg"},835:function(e,t,r){e.exports=r.p+"assets/img/rfidreader_kit.967bb765.jpg"}}]); \ No newline at end of file diff --git a/assets/js/101.936783b2.js b/assets/js/101.698f5272.js similarity index 89% rename from assets/js/101.936783b2.js rename to assets/js/101.698f5272.js index 8810a6672e..213d2bf6f2 100644 --- a/assets/js/101.936783b2.js +++ b/assets/js/101.698f5272.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{1259:function(t,e,r){"use strict";r.r(e);var a=r(2),o=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Inertial Measurement)")]),t._v(" "),e("p",[t._v("The RazorIMU plugin provides the serial output of the 9DOF Razor Inertial Measurement Unit at three output ports: pitch, yaw and roll. These three values represent the orientation in terms of rotation along the three axes of the coordinate system.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(834),alt:"Screenshot: RazorIMU plugin",title:"Screenshot: RazorIMU plugin"}})]),t._v(" "),e("p",[t._v("RazorIMU plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This plugin requires a 9DOF Razor IMU module connected to the AsTeRICS platform via a UART/USB converter cable (e.g. an FTDI cable) which creates a COM port. The Razor IMU module (and also the converter cable) is available at SparkFun electronics. It has to be updated with the Sparkfun 9DOF Razor IMU AHRS firmware. (The COM port must be determined by looking in the device manager window and cannot be automatically detected like with dedicated AsTeRICS CIMs.) The required baud rate is 57600.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(835),alt:"RazorIMU",title:"RazorIMU"}})]),t._v(" "),e("p",[t._v("RazorIMU module")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pitch [double]:")]),t._v(" The value for the current pitch.")]),t._v(" "),e("li",[e("strong",[t._v("yaw [double]:")]),t._v(" The value for the current yaw.")]),t._v(" "),e("li",[e("strong",[t._v("roll [double]:")]),t._v(" The value for the current roll.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("comPort [String]:")]),t._v(" The name of the COM port the IMU is connected to.")]),t._v(" "),e("li",[e("strong",[t._v("baudRate [integer]:")]),t._v(" The baud rate the IMU is transferring its data at.")]),t._v(" "),e("li",[e("strong",[t._v("operationMode [String]:")]),t._v(" Designates the operation mode (currently only “PitchYawRoll” is available).")])])])}),[],!1,null,null,null);e.default=o.exports},834:function(t,e,r){t.exports=r.p+"assets/img/razorimu.870eca5a.jpg"},835:function(t,e,r){t.exports=r.p+"assets/img/razorimu_picture.a4cedfe8.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{1258:function(t,e,r){"use strict";r.r(e);var a=r(2),o=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Inertial Measurement)")]),t._v(" "),e("p",[t._v("The RazorIMU plugin provides the serial output of the 9DOF Razor Inertial Measurement Unit at three output ports: pitch, yaw and roll. These three values represent the orientation in terms of rotation along the three axes of the coordinate system.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(836),alt:"Screenshot: RazorIMU plugin",title:"Screenshot: RazorIMU plugin"}})]),t._v(" "),e("p",[t._v("RazorIMU plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This plugin requires a 9DOF Razor IMU module connected to the AsTeRICS platform via a UART/USB converter cable (e.g. an FTDI cable) which creates a COM port. The Razor IMU module (and also the converter cable) is available at SparkFun electronics. It has to be updated with the Sparkfun 9DOF Razor IMU AHRS firmware. (The COM port must be determined by looking in the device manager window and cannot be automatically detected like with dedicated AsTeRICS CIMs.) The required baud rate is 57600.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(837),alt:"RazorIMU",title:"RazorIMU"}})]),t._v(" "),e("p",[t._v("RazorIMU module")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pitch [double]:")]),t._v(" The value for the current pitch.")]),t._v(" "),e("li",[e("strong",[t._v("yaw [double]:")]),t._v(" The value for the current yaw.")]),t._v(" "),e("li",[e("strong",[t._v("roll [double]:")]),t._v(" The value for the current roll.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("comPort [String]:")]),t._v(" The name of the COM port the IMU is connected to.")]),t._v(" "),e("li",[e("strong",[t._v("baudRate [integer]:")]),t._v(" The baud rate the IMU is transferring its data at.")]),t._v(" "),e("li",[e("strong",[t._v("operationMode [String]:")]),t._v(" Designates the operation mode (currently only “PitchYawRoll” is available).")])])])}),[],!1,null,null,null);e.default=o.exports},836:function(t,e,r){t.exports=r.p+"assets/img/razorimu.870eca5a.jpg"},837:function(t,e,r){t.exports=r.p+"assets/img/razorimu_picture.a4cedfe8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/102.b043e1e5.js b/assets/js/102.cc9a7f84.js similarity index 93% rename from assets/js/102.b043e1e5.js rename to assets/js/102.cc9a7f84.js index 6446b2c58b..5af5a073d8 100644 --- a/assets/js/102.b043e1e5.js +++ b/assets/js/102.cc9a7f84.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{1263:function(e,t,r){"use strict";r.r(t);var o=r(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"sensorboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensorboard"}},[e._v("#")]),e._v(" Sensorboard")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides the sensor signals from the Sensorboard CIM module, which has been developed in course of the Master Thesis of Yat-Sin Yeung at the UAS Technikum Wien. The Sensorboard is part of the head-mounted Smart Vision Module setup but can also be used as a stand-alone unit for movement analysis. The Sensorboard contains a 3-axis accelerometer, a 3-axis gyroscope, a 3-axis compass module, one analogue pressure sensor (a sip/puff sensor) and a connection to an optical IR-object tracking sensor which can track the position of up to 4 infrared LEDs in the field of view of the sensor."),t("br"),e._v("\nFurthermore, the Sensorboard contains a USB hub so that a USB camera can be connected.")]),e._v(" "),t("p",[e._v("The sensorboard is necessary for the headpose-compensated eye gaze tracking applications of the SVM. It can be used also for other applications like remote IR-led tracking or as inertial measurement unit."),t("br"),e._v("\nFor a detailled description of the Sensorboard and its application for eye-tracking please refer to the files Documentation/DIYGuides/SVM_Eyetracking_Yeung.pdf and Documentation/DIYGuides/SmartVisionModule.pdf")]),e._v(" "),t("p",[t("img",{attrs:{src:r(839),alt:"Screenshot: Sensorboard plugin",title:"Screenshot: Sensorboard plugin"}})]),e._v(" "),t("p",[e._v("The Sensorboard plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Sensorboard has to be connected to an USB port. Design files and firmware of the Sensorboard can be found in the folder CIMs/Sensorboard.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(840),alt:"Screenshot: the Sensorboard PCB",title:"Screenshot: Sensorboard PCB"}})]),e._v(" "),t("p",[e._v("The Sensorboard PCB")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("accX/Y/Z [integer]:")]),e._v(" the three axis output of the acceleration sensor")]),e._v(" "),t("li",[t("strong",[e._v("gyroX/Y/Z [integer]:")]),e._v(" the three axis output of the gyroscope sensor")]),e._v(" "),t("li",[t("strong",[e._v("compassX/Y/Z [integer]:")]),e._v(" the three axis output of the compass sensor")]),e._v(" "),t("li",[t("strong",[e._v("pt1x - pt4x [integer]:")])]),e._v(" "),t("li",[t("strong",[e._v("pt1y - pt4y [integer]:")]),e._v(" The x/y corrdinates of the IR-LED tracking camera (0-1022, 1023 if no LED detected)")]),e._v(" "),t("li",[t("strong",[e._v("pressure [integer]:")]),e._v(" the output of the pressure (sip/puff) sensor")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("refreshInterval [integer]:")]),e._v(" the refresh interval for sensor values in milliseconds (should not be less than 20).")])])])}),[],!1,null,null,null);t.default=s.exports},839:function(e,t,r){e.exports=r.p+"assets/img/sensorboard_plugin.38fd7418.jpg"},840:function(e,t,r){e.exports=r.p+"assets/img/sensorboard.0f3cc561.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{1263:function(e,t,r){"use strict";r.r(t);var o=r(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"sensorboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensorboard"}},[e._v("#")]),e._v(" Sensorboard")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides the sensor signals from the Sensorboard CIM module, which has been developed in course of the Master Thesis of Yat-Sin Yeung at the UAS Technikum Wien. The Sensorboard is part of the head-mounted Smart Vision Module setup but can also be used as a stand-alone unit for movement analysis. The Sensorboard contains a 3-axis accelerometer, a 3-axis gyroscope, a 3-axis compass module, one analogue pressure sensor (a sip/puff sensor) and a connection to an optical IR-object tracking sensor which can track the position of up to 4 infrared LEDs in the field of view of the sensor."),t("br"),e._v("\nFurthermore, the Sensorboard contains a USB hub so that a USB camera can be connected.")]),e._v(" "),t("p",[e._v("The sensorboard is necessary for the headpose-compensated eye gaze tracking applications of the SVM. It can be used also for other applications like remote IR-led tracking or as inertial measurement unit."),t("br"),e._v("\nFor a detailled description of the Sensorboard and its application for eye-tracking please refer to the files Documentation/DIYGuides/SVM_Eyetracking_Yeung.pdf and Documentation/DIYGuides/SmartVisionModule.pdf")]),e._v(" "),t("p",[t("img",{attrs:{src:r(841),alt:"Screenshot: Sensorboard plugin",title:"Screenshot: Sensorboard plugin"}})]),e._v(" "),t("p",[e._v("The Sensorboard plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Sensorboard has to be connected to an USB port. Design files and firmware of the Sensorboard can be found in the folder CIMs/Sensorboard.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(842),alt:"Screenshot: the Sensorboard PCB",title:"Screenshot: Sensorboard PCB"}})]),e._v(" "),t("p",[e._v("The Sensorboard PCB")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("accX/Y/Z [integer]:")]),e._v(" the three axis output of the acceleration sensor")]),e._v(" "),t("li",[t("strong",[e._v("gyroX/Y/Z [integer]:")]),e._v(" the three axis output of the gyroscope sensor")]),e._v(" "),t("li",[t("strong",[e._v("compassX/Y/Z [integer]:")]),e._v(" the three axis output of the compass sensor")]),e._v(" "),t("li",[t("strong",[e._v("pt1x - pt4x [integer]:")])]),e._v(" "),t("li",[t("strong",[e._v("pt1y - pt4y [integer]:")]),e._v(" The x/y corrdinates of the IR-LED tracking camera (0-1022, 1023 if no LED detected)")]),e._v(" "),t("li",[t("strong",[e._v("pressure [integer]:")]),e._v(" the output of the pressure (sip/puff) sensor")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("refreshInterval [integer]:")]),e._v(" the refresh interval for sensor values in milliseconds (should not be less than 20).")])])])}),[],!1,null,null,null);t.default=s.exports},841:function(e,t,r){e.exports=r.p+"assets/img/sensorboard_plugin.38fd7418.jpg"},842:function(e,t,r){e.exports=r.p+"assets/img/sensorboard.0f3cc561.jpg"}}]); \ No newline at end of file diff --git a/assets/js/103.829727bb.js b/assets/js/103.60605569.js similarity index 92% rename from assets/js/103.829727bb.js rename to assets/js/103.60605569.js index c348cab506..23b309f94c 100644 --- a/assets/js/103.829727bb.js +++ b/assets/js/103.60605569.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{1265:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The SignalShaper component can be used to generate signal composed from basic linear functions.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(842),alt:"Screenshot: SignalShaper plugin",title:"Screenshot: SignalShaper plugin"}})]),e._v(" "),t("p",[e._v("SignalShaper plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:n(843),alt:"Example composed signal created from three linear signals",title:"Example composed signal"}})]),e._v(" "),t("p",[e._v("Example composed signal created from three linear signals")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [double]:")]),e._v(" The output port for the signal.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" Start the signal generation. If this event is received during signal generation, the signal generation is restarted.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("interval [integer]:")]),e._v(" The sampling  rate in milliseconds.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("numberOfLines [integer]:")]),e._v(" The number of linear signals used to shape the output signal.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("behaviourAfterFinish [**"),t("strong",[e._v("integer*")]),e._v("*]:")]),e._v(" Defines the component behaviour after all signal lines have been sent:")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("do nothing:")]),e._v(" stop any action.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("repeat:")]),e._v(" Send the signal lines from beginning.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("send the last value:")]),e._v(" Continue to send the last value of the signal.")])])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("beginValue1…beginValue5 [double]:")]),e._v(" The begin value of the linear signals.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("endValue1…endValue5 [double]:")]),e._v(" The end value of the linear signals.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("time1…time5 [integer]:")]),e._v(" The duration of the linear signals in milliseconds.")])])])])}),[],!1,null,null,null);t.default=s.exports},842:function(e,t,n){e.exports=n.p+"assets/img/signalshaper.cb5abd80.jpg"},843:function(e,t,n){e.exports=n.p+"assets/img/signalshaper.0a42d503.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{1265:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The SignalShaper component can be used to generate signal composed from basic linear functions.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(844),alt:"Screenshot: SignalShaper plugin",title:"Screenshot: SignalShaper plugin"}})]),e._v(" "),t("p",[e._v("SignalShaper plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:n(845),alt:"Example composed signal created from three linear signals",title:"Example composed signal"}})]),e._v(" "),t("p",[e._v("Example composed signal created from three linear signals")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [double]:")]),e._v(" The output port for the signal.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" Start the signal generation. If this event is received during signal generation, the signal generation is restarted.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("interval [integer]:")]),e._v(" The sampling  rate in milliseconds.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("numberOfLines [integer]:")]),e._v(" The number of linear signals used to shape the output signal.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("behaviourAfterFinish [**"),t("strong",[e._v("integer*")]),e._v("*]:")]),e._v(" Defines the component behaviour after all signal lines have been sent:")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("do nothing:")]),e._v(" stop any action.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("repeat:")]),e._v(" Send the signal lines from beginning.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("send the last value:")]),e._v(" Continue to send the last value of the signal.")])])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("beginValue1…beginValue5 [double]:")]),e._v(" The begin value of the linear signals.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("endValue1…endValue5 [double]:")]),e._v(" The end value of the linear signals.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("time1…time5 [integer]:")]),e._v(" The duration of the linear signals in milliseconds.")])])])])}),[],!1,null,null,null);t.default=s.exports},844:function(e,t,n){e.exports=n.p+"assets/img/signalshaper.cb5abd80.jpg"},845:function(e,t,n){e.exports=n.p+"assets/img/signalshaper.0a42d503.png"}}]); \ No newline at end of file diff --git a/assets/js/104.6519c9e5.js b/assets/js/104.06644d41.js similarity index 97% rename from assets/js/104.6519c9e5.js rename to assets/js/104.06644d41.js index 69201750a2..a5c7c111bb 100644 --- a/assets/js/104.6519c9e5.js +++ b/assets/js/104.06644d41.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{1269:function(E,R,t){"use strict";t.r(R);var A=t(2),e=Object(A.a)({},(function(){var E=this,R=E._self._c;return R("ContentSlotsDistributor",{attrs:{"slot-key":E.$parent.slotKey}},[R("h1",{attrs:{id:"space-navigtor-3d-mouse"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#space-navigtor-3d-mouse"}},[E._v("#")]),E._v(" Space Navigtor 3D Mouse")]),E._v(" "),R("p",[E._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),E._v(" "),R("p",[E._v("This component interfaces the 3Dconnexion 3D Mouse device.")]),E._v(" "),R("p",[R("img",{attrs:{src:t(847),alt:"Screenshot: SpaceNavigator3DMouse plugin",title:"Screenshot: SpaceNavigator3DMouse plugin"}})]),E._v(" "),R("p",[E._v("SpaceNavigator3DMouse plugin")]),E._v(" "),R("h2",{attrs:{id:"requirements"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[E._v("#")]),E._v(" Requirements")]),E._v(" "),R("p",[E._v("The 3D Mouse device connected to the platform")]),E._v(" "),R("p",[R("img",{attrs:{src:t(848),alt:"SpaceNavigator 3DMouse",title:"SpaceNavigator 3DMouse"}})]),E._v(" "),R("p",[E._v("SpaceNavigator 3DMouse")]),E._v(" "),R("h2",{attrs:{id:"output-port-description"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[E._v("#")]),E._v(" Output Port Description")]),E._v(" "),R("ul",[R("li",[R("strong",[E._v("mouseX [integer]:")]),E._v(" Data of axis X.")]),E._v(" "),R("li",[R("strong",[E._v("mouseY [integer]:")]),E._v(" Data of axis Y.")]),E._v(" "),R("li",[R("strong",[E._v("mouseZ [integer]:")]),E._v(" Data of axis Z.")]),E._v(" "),R("li",[R("strong",[E._v("mouseRx [integer]:")]),E._v(" Data of rotation of axis X.")]),E._v(" "),R("li",[R("strong",[E._v("mouseRy [integer]:")]),E._v(" Data of rotation of axis Y.")]),E._v(" "),R("li",[R("strong",[E._v("mouseRz [integer]:")]),E._v(" Data of rotation of axis Z.")]),E._v(" "),R("li",[R("strong",[E._v("buttons [integer]:")]),E._v(" Data of selected buttons combination.")])]),E._v(" "),R("h2",{attrs:{id:"properties"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[E._v("#")]),E._v(" Properties")]),E._v(" "),R("ul",[R("li",[R("strong",[E._v("interval [integer]:")]),E._v(" The interval of capturing 3D mouse state (ms).")])])])}),[],!1,null,null,null);R.default=e.exports},847:function(E,R,t){E.exports=t.p+"assets/img/spacenavigator3dmouse.7ec48af0.jpg"},848:function(E,R){E.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAEYAUEDASIAAhEBAxEB/8QAHQABAAEFAQEBAAAAAAAAAAAAAAcBAwQFBgIICf/EAEgQAAEDAwIDBgMEBggEBQUAAAEAAgMEBREGIRIxQQcTIlFxgRRhoQgykbEjQmJygsEVJDNSkqKy8ENT4fEWFzRz0TWDk6PC/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAECAwQF/8QALhEBAQACAQMDAgQFBQAAAAAAAAECEQMEITEFEkFRkRMUYXEiI4Gh8AYyUuHx/9oADAMBAAIRAxEAPwD7LREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBETIQETK11xv1jtv/ANRvNuo//fqWR/mUGxRa23X+xXLj/o69W6s4McfcVTJOHJwM4Jxk7LZICISAmQgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgImVEnbp26ab7M2PtzWC8aicwOjt0UgaIgdw6Z+/dgjcDBcegxugliWRkTHSSPaxjRlznHAA8yVEWuvtH9luluOKO8SX+qacdzZ4xOD/APcJbH/m9l8edpHafrPtEqJH6nvchoHHMdspx3VKwZyBwD7/AO88uPpyXGungbsxrW4+S1Mfqzt9G6q+19qaoLmaW0db6Fp5S3KV87vXgYWAH3Puor1D2/8AbBd3ET6zqaNu/goYY4MfLLW5x75+aj19U3pjGeixamUS7kbhWyfBus666lvt8uEc19vNxur+L71bUvnLfTjJx7LKEcTHAiRo9OELRGur2f2coDQNgGt/+FnRw6gkpmVEQdM14yA1jDssd17NhE6Bjge+jaM7nwldNaNRttwBtd1qKCQc30tS+BxP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qZKvs303McwNrKT5RVBI/wA/EtPWdk1JLk096qYz07yFr/yws2LEVh++M8uasOIzspFquyS7MHFTXuimIOzZKd0Y/EF35LXS9lGrACWT2d/y+IkBP4x/zWdLtxkRA4t+YSnd+kB6fJdjB2Vaue4iSS0RDq41Dz9BGtnR9j9xyHVGoKZh6tjpXO+pcPyT2rtw1VKC0DO+Fr5JAHZ/NTBTdkltBHxl4rph5RtZH+YK3tu7OtIUXC4WhlRIB9+pkdLn2J4R7AK6R89xvdPOKenY+eY8o4ml7j7DddJadAauupaY7W6jjP8AxKt4iDfbd30X0LR0dLRQiCjpoaaIHPBEwNbn0Cvq6EVWLsdoo+GW+3OarcN+4ph3UfoScuPtwqQbHYbNZIjHabZTUgP3nRsHG/8Aedzd7lbRFRQBVREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREH//2Q=="}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{1266:function(E,R,t){"use strict";t.r(R);var A=t(2),e=Object(A.a)({},(function(){var E=this,R=E._self._c;return R("ContentSlotsDistributor",{attrs:{"slot-key":E.$parent.slotKey}},[R("h1",{attrs:{id:"space-navigtor-3d-mouse"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#space-navigtor-3d-mouse"}},[E._v("#")]),E._v(" Space Navigtor 3D Mouse")]),E._v(" "),R("p",[E._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),E._v(" "),R("p",[E._v("This component interfaces the 3Dconnexion 3D Mouse device.")]),E._v(" "),R("p",[R("img",{attrs:{src:t(846),alt:"Screenshot: SpaceNavigator3DMouse plugin",title:"Screenshot: SpaceNavigator3DMouse plugin"}})]),E._v(" "),R("p",[E._v("SpaceNavigator3DMouse plugin")]),E._v(" "),R("h2",{attrs:{id:"requirements"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[E._v("#")]),E._v(" Requirements")]),E._v(" "),R("p",[E._v("The 3D Mouse device connected to the platform")]),E._v(" "),R("p",[R("img",{attrs:{src:t(847),alt:"SpaceNavigator 3DMouse",title:"SpaceNavigator 3DMouse"}})]),E._v(" "),R("p",[E._v("SpaceNavigator 3DMouse")]),E._v(" "),R("h2",{attrs:{id:"output-port-description"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[E._v("#")]),E._v(" Output Port Description")]),E._v(" "),R("ul",[R("li",[R("strong",[E._v("mouseX [integer]:")]),E._v(" Data of axis X.")]),E._v(" "),R("li",[R("strong",[E._v("mouseY [integer]:")]),E._v(" Data of axis Y.")]),E._v(" "),R("li",[R("strong",[E._v("mouseZ [integer]:")]),E._v(" Data of axis Z.")]),E._v(" "),R("li",[R("strong",[E._v("mouseRx [integer]:")]),E._v(" Data of rotation of axis X.")]),E._v(" "),R("li",[R("strong",[E._v("mouseRy [integer]:")]),E._v(" Data of rotation of axis Y.")]),E._v(" "),R("li",[R("strong",[E._v("mouseRz [integer]:")]),E._v(" Data of rotation of axis Z.")]),E._v(" "),R("li",[R("strong",[E._v("buttons [integer]:")]),E._v(" Data of selected buttons combination.")])]),E._v(" "),R("h2",{attrs:{id:"properties"}},[R("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[E._v("#")]),E._v(" Properties")]),E._v(" "),R("ul",[R("li",[R("strong",[E._v("interval [integer]:")]),E._v(" The interval of capturing 3D mouse state (ms).")])])])}),[],!1,null,null,null);R.default=e.exports},846:function(E,R,t){E.exports=t.p+"assets/img/spacenavigator3dmouse.7ec48af0.jpg"},847:function(E,R){E.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAEYAUEDASIAAhEBAxEB/8QAHQABAAEFAQEBAAAAAAAAAAAAAAcBAwQFBgIICf/EAEgQAAEDAwIDBgMEBggEBQUAAAEAAgMEBREGIRIxQQcTIlFxgRRhoQgykbEjQmJygsEVJDNSkqKy8ENT4fEWFzRz0TWDk6PC/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAECAwQF/8QALhEBAQACAQMDAgQFBQAAAAAAAAECEQMEITEFEkFRkRMUYXEiI4Gh8AYyUuHx/9oADAMBAAIRAxEAPwD7LREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBETIQETK11xv1jtv/ANRvNuo//fqWR/mUGxRa23X+xXLj/o69W6s4McfcVTJOHJwM4Jxk7LZICISAmQgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgImVEnbp26ab7M2PtzWC8aicwOjt0UgaIgdw6Z+/dgjcDBcegxugliWRkTHSSPaxjRlznHAA8yVEWuvtH9luluOKO8SX+qacdzZ4xOD/APcJbH/m9l8edpHafrPtEqJH6nvchoHHMdspx3VKwZyBwD7/AO88uPpyXGungbsxrW4+S1Mfqzt9G6q+19qaoLmaW0db6Fp5S3KV87vXgYWAH3Puor1D2/8AbBd3ET6zqaNu/goYY4MfLLW5x75+aj19U3pjGeixamUS7kbhWyfBus666lvt8uEc19vNxur+L71bUvnLfTjJx7LKEcTHAiRo9OELRGur2f2coDQNgGt/+FnRw6gkpmVEQdM14yA1jDssd17NhE6Bjge+jaM7nwldNaNRttwBtd1qKCQc30tS+BxP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qZKvs303McwNrKT5RVBI/wA/EtPWdk1JLk096qYz07yFr/yws2LEVh++M8uasOIzspFquyS7MHFTXuimIOzZKd0Y/EF35LXS9lGrACWT2d/y+IkBP4x/zWdLtxkRA4t+YSnd+kB6fJdjB2Vaue4iSS0RDq41Dz9BGtnR9j9xyHVGoKZh6tjpXO+pcPyT2rtw1VKC0DO+Fr5JAHZ/NTBTdkltBHxl4rph5RtZH+YK3tu7OtIUXC4WhlRIB9+pkdLn2J4R7AK6R89xvdPOKenY+eY8o4ml7j7DddJadAauupaY7W6jjP8AxKt4iDfbd30X0LR0dLRQiCjpoaaIHPBEwNbn0Cvq6EVWLsdoo+GW+3OarcN+4ph3UfoScuPtwqQbHYbNZIjHabZTUgP3nRsHG/8Aedzd7lbRFRQBVREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREH//2Q=="}}]); \ No newline at end of file diff --git a/assets/js/105.388f6d20.js b/assets/js/105.8231b26f.js similarity index 96% rename from assets/js/105.388f6d20.js rename to assets/js/105.8231b26f.js index 4045bb770e..51438a63cd 100644 --- a/assets/js/105.388f6d20.js +++ b/assets/js/105.8231b26f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{1272:function(t,e,r){"use strict";r.r(e);var s=r(2),l=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"trackir"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#trackir"}},[t._v("#")]),t._v(" TrackIR")]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Computer Vision)")]),t._v(" "),e("p",[t._v("The TrackIR input component plugin provides an interface to the TrackIR 5 head tracker, see: https://www.trackir.com/\nThe TrackIR 5 can measure the head orientation in 6DOF (Yaw, Pitch, Roll, X, Y, Z).\nThis data can be utilized for mouse cursor control and other purposes.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(853),alt:"TrackIR device",title:"TrackIR device"}})]),t._v(" "),e("p",[e("img",{attrs:{src:r(854),alt:"Screenshot: TrackIR plugin",title:"Screenshot: TrackIR plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This software component requires the TrackIR device being connected to an USB port, and the TrackIR software running.")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Yaw [double], Pitch [double], Roll [double]:")]),t._v(" These output ports provide current yaw, pitch and roll rotation values (the range of the values depends on the speed settings in the TrackIR software).")]),t._v(" "),e("li",[e("strong",[t._v("X [double], Y [double], Z [double]:")]),t._v(" This output port provides the X, Y and Z translation values (the range of the values depends on the speed settings in the TrackIR software).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("start:")]),t._v(" An incoming event on this port starts the TrackIR data output.")]),t._v(" "),e("li",[e("strong",[t._v("stop:")]),t._v(" An incoming event on this port stops the TrackIR data output.")]),t._v(" "),e("li",[e("strong",[t._v("center:")]),t._v(" An incoming event on this port sets the TrackIR coordinates to 0 (the user should look straigt to the middle of the screen in order to get a correct center position).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("autoStart [boolean]:")]),t._v(" This property specifies if the data output is started automatically (if value is true) or if of a start event must be sent via the dedicated event listener port (if value is false).")]),t._v(" "),e("li",[e("strong",[t._v("pollingIntervar [integer]:")]),t._v(" This property defines the polling-interval (update-interval) for getting sensor value updates (given in milliseconds), for example: a value of 10 results in 100 updates per second. The maximum update rate for the TrackIR 5 is 125 Hz (8 ms)")])])])}),[],!1,null,null,null);e.default=l.exports},853:function(t,e,r){t.exports=r.p+"assets/img/trackir_device.1b95f179.jpg"},854:function(t,e){t.exports="data:image/png;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{1271:function(t,e,r){"use strict";r.r(e);var s=r(2),l=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"trackir"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#trackir"}},[t._v("#")]),t._v(" TrackIR")]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Computer Vision)")]),t._v(" "),e("p",[t._v("The TrackIR input component plugin provides an interface to the TrackIR 5 head tracker, see: https://www.trackir.com/\nThe TrackIR 5 can measure the head orientation in 6DOF (Yaw, Pitch, Roll, X, Y, Z).\nThis data can be utilized for mouse cursor control and other purposes.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(854),alt:"TrackIR device",title:"TrackIR device"}})]),t._v(" "),e("p",[e("img",{attrs:{src:r(855),alt:"Screenshot: TrackIR plugin",title:"Screenshot: TrackIR plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This software component requires the TrackIR device being connected to an USB port, and the TrackIR software running.")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Yaw [double], Pitch [double], Roll [double]:")]),t._v(" These output ports provide current yaw, pitch and roll rotation values (the range of the values depends on the speed settings in the TrackIR software).")]),t._v(" "),e("li",[e("strong",[t._v("X [double], Y [double], Z [double]:")]),t._v(" This output port provides the X, Y and Z translation values (the range of the values depends on the speed settings in the TrackIR software).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("start:")]),t._v(" An incoming event on this port starts the TrackIR data output.")]),t._v(" "),e("li",[e("strong",[t._v("stop:")]),t._v(" An incoming event on this port stops the TrackIR data output.")]),t._v(" "),e("li",[e("strong",[t._v("center:")]),t._v(" An incoming event on this port sets the TrackIR coordinates to 0 (the user should look straigt to the middle of the screen in order to get a correct center position).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("autoStart [boolean]:")]),t._v(" This property specifies if the data output is started automatically (if value is true) or if of a start event must be sent via the dedicated event listener port (if value is false).")]),t._v(" "),e("li",[e("strong",[t._v("pollingIntervar [integer]:")]),t._v(" This property defines the polling-interval (update-interval) for getting sensor value updates (given in milliseconds), for example: a value of 10 results in 100 updates per second. The maximum update rate for the TrackIR 5 is 125 Hz (8 ms)")])])])}),[],!1,null,null,null);e.default=l.exports},854:function(t,e,r){t.exports=r.p+"assets/img/trackir_device.1b95f179.jpg"},855:function(t,e){t.exports="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/106.51cde090.js b/assets/js/106.e77ed4f8.js similarity index 94% rename from assets/js/106.51cde090.js rename to assets/js/106.e77ed4f8.js index ff8c6eac55..9fb7f9f9bb 100644 --- a/assets/js/106.51cde090.js +++ b/assets/js/106.e77ed4f8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{1273:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"wiimote"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#wiimote"}},[e._v("#")]),e._v(" WiiMote")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),e._v(" "),t("p",[e._v("The WiiMote component interfaces to the Nintendo WiiMote controller via Bluetooth and the WiiYourself! library. It provides various sensor values including the Wiimote buttons and the tracked IR-points of the Wiimote IR front camera and the Joystick position of the Nunchuk extension.")]),e._v(" "),t("p",[e._v("Contains WiiYourself! wiimote code by gl.tter - see "),t("a",{attrs:{href:"http://gl.tter.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://gl.tter.org"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("For Wiimote connection and pairing, please see e.g. "),t("a",{attrs:{href:"http://code.google.com/p/giimote/wiki/GettingConnected",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:i(855),alt:"Screenshot: WiiMote plugin",title:"Screenshot: WiiMote plugin"}})]),e._v(" "),t("p",[e._v("WiiMote plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A Wiimote controller has to be available and paired with the Bluetooth radio module of the system.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(856),alt:"WiiMote and Nunchuk",title:"WiiMote and Nunchuk"}})]),e._v(" "),t("p",[e._v("WiiMote and Nunchuk")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pitch [integer]:")]),e._v(" The calculated pitch orientation of the Wiimote controller (in degrees)")]),e._v(" "),t("li",[t("strong",[e._v("roll [integer]:")]),e._v(" The calculated roll orientation of the Wiimote controller (in degrees)")]),e._v(" "),t("li",[t("strong",[e._v("point1X [integer]:")]),e._v(" The X position of the first visible IR point (0-1023)")]),e._v(" "),t("li",[t("strong",[e._v("point1Y [integer]:")]),e._v(" The Y position of the first visible IR point (0-768)")]),e._v(" "),t("li",[t("strong",[e._v("point2X [integer]:")]),e._v(" The X position of the second visible IR point (0-1023)")]),e._v(" "),t("li",[t("strong",[e._v("point2Y [integer]:")]),e._v(" The Y position of the second visible IR point (0-768)")]),e._v(" "),t("li",[t("strong",[e._v("nunX [integer]:")]),e._v(" The X-position of the analog joystick on the Nunchuk extension (if connected)")]),e._v(" "),t("li",[t("strong",[e._v("nunY [integer]:")]),e._v(" The Y-position of the analog joystick on the Nunchuk extension (if connected)")]),e._v(" "),t("li",[t("strong",[e._v("battery [integer]:")]),e._v(" The battery level (0-100%)")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pressedUp:")]),e._v(" Up direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedUp:")]),e._v(" Up direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedDown:")]),e._v(" Down direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedDown:")]),e._v(" Down direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedLeft:")]),e._v(" Left direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedLeft:")]),e._v(" Left direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedRight:")]),e._v(" Right direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedRight:")]),e._v(" Right direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedA:")]),e._v(" A direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedA:")]),e._v(" A direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedB:")]),e._v(" B direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedB:")]),e._v(" B direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressed1:")]),e._v(" 1 direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("released1:")]),e._v(" 1 direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressed2:")]),e._v(" 2 direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("released2:")]),e._v(" 2 direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedPlus:")]),e._v(" Plus direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedPlus:")]),e._v(" Plus direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedMinus:")]),e._v(" Minus direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedMinus:")]),e._v(" Minus direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedHome:")]),e._v(" Home direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedHome:")]),e._v(" Home direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedNunchuckC:")]),e._v(" NunchuckC direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedNunchuckC:")]),e._v(" NunchuckC direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedNunchuckZ:")]),e._v(" NunchuckZ direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedNunchuckZ:")]),e._v(" NunchuckZ direction button released")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("updatePeriod [integer]:")]),e._v(" This property defines how often the WiiMote is queried for new data (in milliseconds)")])])])}),[],!1,null,null,null);t.default=r.exports},855:function(e,t,i){e.exports=i.p+"assets/img/wiimote.7e82ebda.jpg"},856:function(e,t,i){e.exports=i.p+"assets/img/wiimote_picture.0684eac1.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{1272:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"wiimote"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#wiimote"}},[e._v("#")]),e._v(" WiiMote")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),e._v(" "),t("p",[e._v("The WiiMote component interfaces to the Nintendo WiiMote controller via Bluetooth and the WiiYourself! library. It provides various sensor values including the Wiimote buttons and the tracked IR-points of the Wiimote IR front camera and the Joystick position of the Nunchuk extension.")]),e._v(" "),t("p",[e._v("Contains WiiYourself! wiimote code by gl.tter - see "),t("a",{attrs:{href:"http://gl.tter.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://gl.tter.org"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("For Wiimote connection and pairing, please see e.g. "),t("a",{attrs:{href:"http://code.google.com/p/giimote/wiki/GettingConnected",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:i(856),alt:"Screenshot: WiiMote plugin",title:"Screenshot: WiiMote plugin"}})]),e._v(" "),t("p",[e._v("WiiMote plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A Wiimote controller has to be available and paired with the Bluetooth radio module of the system.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(857),alt:"WiiMote and Nunchuk",title:"WiiMote and Nunchuk"}})]),e._v(" "),t("p",[e._v("WiiMote and Nunchuk")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pitch [integer]:")]),e._v(" The calculated pitch orientation of the Wiimote controller (in degrees)")]),e._v(" "),t("li",[t("strong",[e._v("roll [integer]:")]),e._v(" The calculated roll orientation of the Wiimote controller (in degrees)")]),e._v(" "),t("li",[t("strong",[e._v("point1X [integer]:")]),e._v(" The X position of the first visible IR point (0-1023)")]),e._v(" "),t("li",[t("strong",[e._v("point1Y [integer]:")]),e._v(" The Y position of the first visible IR point (0-768)")]),e._v(" "),t("li",[t("strong",[e._v("point2X [integer]:")]),e._v(" The X position of the second visible IR point (0-1023)")]),e._v(" "),t("li",[t("strong",[e._v("point2Y [integer]:")]),e._v(" The Y position of the second visible IR point (0-768)")]),e._v(" "),t("li",[t("strong",[e._v("nunX [integer]:")]),e._v(" The X-position of the analog joystick on the Nunchuk extension (if connected)")]),e._v(" "),t("li",[t("strong",[e._v("nunY [integer]:")]),e._v(" The Y-position of the analog joystick on the Nunchuk extension (if connected)")]),e._v(" "),t("li",[t("strong",[e._v("battery [integer]:")]),e._v(" The battery level (0-100%)")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pressedUp:")]),e._v(" Up direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedUp:")]),e._v(" Up direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedDown:")]),e._v(" Down direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedDown:")]),e._v(" Down direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedLeft:")]),e._v(" Left direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedLeft:")]),e._v(" Left direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedRight:")]),e._v(" Right direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedRight:")]),e._v(" Right direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedA:")]),e._v(" A direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedA:")]),e._v(" A direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedB:")]),e._v(" B direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedB:")]),e._v(" B direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressed1:")]),e._v(" 1 direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("released1:")]),e._v(" 1 direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressed2:")]),e._v(" 2 direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("released2:")]),e._v(" 2 direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedPlus:")]),e._v(" Plus direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedPlus:")]),e._v(" Plus direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedMinus:")]),e._v(" Minus direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedMinus:")]),e._v(" Minus direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedHome:")]),e._v(" Home direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedHome:")]),e._v(" Home direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedNunchuckC:")]),e._v(" NunchuckC direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedNunchuckC:")]),e._v(" NunchuckC direction button released")]),e._v(" "),t("li",[t("strong",[e._v("pressedNunchuckZ:")]),e._v(" NunchuckZ direction button pressed")]),e._v(" "),t("li",[t("strong",[e._v("releasedNunchuckZ:")]),e._v(" NunchuckZ direction button released")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("updatePeriod [integer]:")]),e._v(" This property defines how often the WiiMote is queried for new data (in milliseconds)")])])])}),[],!1,null,null,null);t.default=r.exports},856:function(e,t,i){e.exports=i.p+"assets/img/wiimote.7e82ebda.jpg"},857:function(e,t,i){e.exports=i.p+"assets/img/wiimote_picture.0684eac1.jpg"}}]); \ No newline at end of file diff --git a/assets/js/107.91d7cd41.js b/assets/js/107.662e2da3.js similarity index 97% rename from assets/js/107.91d7cd41.js rename to assets/js/107.662e2da3.js index d46fb4e64f..0d3c563f43 100644 --- a/assets/js/107.91d7cd41.js +++ b/assets/js/107.662e2da3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{1282:function(A,e,o){"use strict";o.r(e);var t=o(2),r=Object(t.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"switch-mouse-solution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switch-mouse-solution"}},[A._v("#")]),A._v(" Switch Mouse Solution")]),A._v(" "),e("h2",{attrs:{id:"objective"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[A._v("#")]),A._v(" Objective")]),A._v(" "),e("p",[A._v("Mouse control by switch input. This model demonstrates mouse cursor control via 2 switches or (alternatively) 2 keyboard keys. (There are other models for "),e("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=https://127.0.0.1:8083&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_1key.acs",target:"_blank",rel:"noopener noreferrer"}},[A._v("single-switch"),e("OutboundLink")],1),A._v(" or "),e("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=https://127.0.0.1:8083&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_4keys%20_events.acs",target:"_blank",rel:"noopener noreferrer"}},[A._v("4-switch"),e("OutboundLink")],1),A._v(" cursor control available in the "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/models/useCaseDemos/mouseControl",target:"_blank",rel:"noopener noreferrer"}},[e("code",[A._v("ARE/models")]),e("OutboundLink")],1),A._v(" folder.)\nInstead of a mouse cursor, a crosshair indicator is displayed on the screen, scanning from the top to the bottom and from the left to the right.")]),A._v(" "),e("h2",{attrs:{id:"mouse-movement"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mouse-movement"}},[A._v("#")]),A._v(" Mouse movement")]),A._v(" "),e("p",[A._v("By pressing the "),e("code",[A._v("right")]),A._v(" cursor key the crosshair should move accordingly from the left to the right as long as you keep the key pressed. Subsequently, press the "),e("code",[A._v("down")]),A._v(" cursor key to move the cross from the top to the bottom. As soon as the keys are released, the left click is performed by dwelling (stopping movement and waiting for some time). When the crosshair exits the screen, it wraps around and enters the screen from the other side. Thus, every position on the screen can be reached.")]),A._v(" "),e("p",[e("img",{attrs:{src:o(862),alt:"Cross marking the click position on the screen"}})]),A._v(" "),e("p",[e("em",[A._v("Fig. 1: Crosshair indicating the current mouse position. Red horizontal line indicating a movement from top to bottom.")])]),A._v(" "),e("h2",{attrs:{id:"tooltips"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tooltips"}},[A._v("#")]),A._v(" Tooltips")]),A._v(" "),e("p",[A._v("In order to perform special clicks, so called “tooltips” are available: Press "),e("code",[A._v("right")]),A._v(" and "),e("code",[A._v("down")]),A._v(" cursor keys simultaneously in order to show the tooltips, which look like this:")]),A._v(" "),e("p",[e("img",{attrs:{src:o(863),alt:"Cross marking the click position on the screen"}})]),A._v(" "),e("p",[e("em",[A._v("Fig. 2: Tooltip next to the crosshair, shows symbol for double click")])]),A._v(" "),e("p",[A._v("By pressing one of "),e("code",[A._v("right")]),A._v(" or "),e("code",[A._v("down")]),A._v(" cursor keys again it’s possible to navigate through the tooltips where functions like double click, right click, dragging or keyboard shortcuts like "),e("code",[A._v("Ctrl + C")]),A._v(" and "),e("code",[A._v("Ctrl + V")]),A._v(" can be chosen.")]),A._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[A._v("#")]),A._v(" Requirements")]),A._v(" "),e("ul",[e("li",[A._v("Switch\n"),e("ul",[e("li",[A._v("Keyboard key ("),e("code",[A._v("Cursor right")]),A._v(", "),e("code",[A._v("Cursor down")]),A._v(") or")]),A._v(" "),e("li",[A._v("external Switch (e.g. "),e("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[A._v("FABI"),e("OutboundLink")],1),A._v(") attached and configured to emulate "),e("code",[A._v("Cursor right")]),A._v("and "),e("code",[A._v("Cursor down")]),A._v(" keys.")])])]),A._v(" "),e("li",[A._v("AsTeRICS installed and ARE running")]),A._v(" "),e("li",[A._v("OS: Windows, Linux (incl. RPi), Mac OSX")])]),A._v(" "),e("h2",{attrs:{id:"major-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[A._v("#")]),A._v(" Major Plugins")]),A._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"/plugins/sensors/KeyCapture"}},[A._v("KeyCapture")])]),A._v(" "),e("li",[e("a",{attrs:{href:"/plugins/actuators/Mouse"}},[A._v("Mouse")])]),A._v(" "),e("li",[e("a",{attrs:{href:"/plugins/actuators/CrosshairCursorControl"}},[A._v("CrosshairCursorControl")])]),A._v(" "),e("li",[e("a",{attrs:{href:"/plugins/actuators/Tooltip"}},[A._v("Tooltip")])])])])}),[],!1,null,null,null);e.default=r.exports},862:function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOcAAACICAYAAAAcVvyvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK6SURBVHhe7dqxCQQxEATBC/1CU2b6AF4gd6+pgjHXbEfo2WSstf7Gd4kzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SJOGEqcMNSz33fbx3dzurHxE2dhN6cbGz9xFnZzurHxE2dhN6cbGz9xFnZzurHx81oLQ4kzxCeEFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOEv2/gGKHeaVHFo/ZAAAAABJRU5ErkJggg=="},863:function(A,e){A.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{1281:function(A,e,o){"use strict";o.r(e);var t=o(2),r=Object(t.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"switch-mouse-solution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switch-mouse-solution"}},[A._v("#")]),A._v(" Switch Mouse Solution")]),A._v(" "),e("h2",{attrs:{id:"objective"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[A._v("#")]),A._v(" Objective")]),A._v(" "),e("p",[A._v("Mouse control by switch input. This model demonstrates mouse cursor control via 2 switches or (alternatively) 2 keyboard keys. (There are other models for "),e("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=https://127.0.0.1:8083&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_1key.acs",target:"_blank",rel:"noopener noreferrer"}},[A._v("single-switch"),e("OutboundLink")],1),A._v(" or "),e("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=https://127.0.0.1:8083&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_4keys%20_events.acs",target:"_blank",rel:"noopener noreferrer"}},[A._v("4-switch"),e("OutboundLink")],1),A._v(" cursor control available in the "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/models/useCaseDemos/mouseControl",target:"_blank",rel:"noopener noreferrer"}},[e("code",[A._v("ARE/models")]),e("OutboundLink")],1),A._v(" folder.)\nInstead of a mouse cursor, a crosshair indicator is displayed on the screen, scanning from the top to the bottom and from the left to the right.")]),A._v(" "),e("h2",{attrs:{id:"mouse-movement"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mouse-movement"}},[A._v("#")]),A._v(" Mouse movement")]),A._v(" "),e("p",[A._v("By pressing the "),e("code",[A._v("right")]),A._v(" cursor key the crosshair should move accordingly from the left to the right as long as you keep the key pressed. Subsequently, press the "),e("code",[A._v("down")]),A._v(" cursor key to move the cross from the top to the bottom. As soon as the keys are released, the left click is performed by dwelling (stopping movement and waiting for some time). When the crosshair exits the screen, it wraps around and enters the screen from the other side. Thus, every position on the screen can be reached.")]),A._v(" "),e("p",[e("img",{attrs:{src:o(863),alt:"Cross marking the click position on the screen"}})]),A._v(" "),e("p",[e("em",[A._v("Fig. 1: Crosshair indicating the current mouse position. Red horizontal line indicating a movement from top to bottom.")])]),A._v(" "),e("h2",{attrs:{id:"tooltips"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tooltips"}},[A._v("#")]),A._v(" Tooltips")]),A._v(" "),e("p",[A._v("In order to perform special clicks, so called “tooltips” are available: Press "),e("code",[A._v("right")]),A._v(" and "),e("code",[A._v("down")]),A._v(" cursor keys simultaneously in order to show the tooltips, which look like this:")]),A._v(" "),e("p",[e("img",{attrs:{src:o(864),alt:"Cross marking the click position on the screen"}})]),A._v(" "),e("p",[e("em",[A._v("Fig. 2: Tooltip next to the crosshair, shows symbol for double click")])]),A._v(" "),e("p",[A._v("By pressing one of "),e("code",[A._v("right")]),A._v(" or "),e("code",[A._v("down")]),A._v(" cursor keys again it’s possible to navigate through the tooltips where functions like double click, right click, dragging or keyboard shortcuts like "),e("code",[A._v("Ctrl + C")]),A._v(" and "),e("code",[A._v("Ctrl + V")]),A._v(" can be chosen.")]),A._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[A._v("#")]),A._v(" Requirements")]),A._v(" "),e("ul",[e("li",[A._v("Switch\n"),e("ul",[e("li",[A._v("Keyboard key ("),e("code",[A._v("Cursor right")]),A._v(", "),e("code",[A._v("Cursor down")]),A._v(") or")]),A._v(" "),e("li",[A._v("external Switch (e.g. "),e("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[A._v("FABI"),e("OutboundLink")],1),A._v(") attached and configured to emulate "),e("code",[A._v("Cursor right")]),A._v("and "),e("code",[A._v("Cursor down")]),A._v(" keys.")])])]),A._v(" "),e("li",[A._v("AsTeRICS installed and ARE running")]),A._v(" "),e("li",[A._v("OS: Windows, Linux (incl. RPi), Mac OSX")])]),A._v(" "),e("h2",{attrs:{id:"major-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[A._v("#")]),A._v(" Major Plugins")]),A._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"/plugins/sensors/KeyCapture"}},[A._v("KeyCapture")])]),A._v(" "),e("li",[e("a",{attrs:{href:"/plugins/actuators/Mouse"}},[A._v("Mouse")])]),A._v(" "),e("li",[e("a",{attrs:{href:"/plugins/actuators/CrosshairCursorControl"}},[A._v("CrosshairCursorControl")])]),A._v(" "),e("li",[e("a",{attrs:{href:"/plugins/actuators/Tooltip"}},[A._v("Tooltip")])])])])}),[],!1,null,null,null);e.default=r.exports},863:function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOcAAACICAYAAAAcVvyvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK6SURBVHhe7dqxCQQxEATBC/1CU2b6AF4gd6+pgjHXbEfo2WSstf7Gd4kzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SLOEHG2iDNEnC3iDBFnizhDxNkizhBxtogzRJwt4gwRZ4s4Q8TZIs4QcbaIM0ScLeIMEWeLOEPE2SJOGEqcMNSz33fbx3dzurHxE2dhN6cbGz9xFnZzurHxE2dhN6cbGz9xFnZzurHx81oLQ4kzxCeEFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOFvEGSLOFnGGiLNFnCHibBFniDhbxBkizhZxhoizRZwh4mwRZ4g4W8QZIs4WcYaIs0WcIeJsEWeIOEv2/gGKHeaVHFo/ZAAAAABJRU5ErkJggg=="},864:function(A,e){A.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/108.29118f8c.js b/assets/js/108.5bb7d9aa.js similarity index 97% rename from assets/js/108.29118f8c.js rename to assets/js/108.5bb7d9aa.js index bfe65e6b3e..abeee40c8c 100644 --- a/assets/js/108.29118f8c.js +++ b/assets/js/108.5bb7d9aa.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{399:function(e,t,n){e.exports=n.p+"assets/img/openhab-show-synced-control.2ac0761e.gif"},926:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"environmental-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#environmental-control"}},[e._v("#")]),e._v(" Environmental Control")]),e._v(" "),t("p",[e._v("AsTeRICS has many plugins for environmental control like "),t("strong",[e._v("KNX")]),e._v(", "),t("strong",[e._v("EnOcean")]),e._v(", "),t("strong",[e._v("IrTrans")]),e._v(", "),t("strong",[e._v("Phillips Hue")]),e._v(" or "),t("strong",[e._v("OpenHAB")]),e._v(". Check the "),t("RouterLink",{attrs:{to:"/plugins/"}},[e._v("Plugins")]),e._v(" page and filter by "),t("code",[e._v("Home Control")]),e._v(".")],1),e._v(" "),t("p",[e._v("On this page you will find some tutorials of how to use such plugins to control your environment and how to create and accessible user interface for it.")]),e._v(" "),t("h2",{attrs:{id:"openhab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openhab"}},[e._v("#")]),e._v(" OpenHAB")]),e._v(" "),t("p",[e._v("OpenHAB is an Open Source Home Automation SW that let’s you control light, heating and other appliances of your Smart Home. Such appliances or devices are called "),t("strong",[e._v("things")]),e._v(" which are represented as "),t("strong",[e._v("items")]),e._v(" in a user interface. OpenHAB provides several user interfaces and means of voice control.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Accessible User Interface")]),e._v(" "),t("p",[e._v("This tutorial explains how to control an OpenHAB instance and it’s configured items by an AsTeRICS model and how to create an "),t("strong",[e._v("accessible user interface")]),e._v(" for it using AsTeRICS Grid.")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("This tutorial is based on OpenHAB v3.x but should also work with OpenHAB v2.x")])]),e._v(" "),t("ol",[t("li",[e._v("Read the "),t("a",{attrs:{href:"https://www.openhab.org/docs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenHAB concept page"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.openhab.org/download/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Install OpenHAB"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Download the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v4.1.0/demo-conf-openhab2.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("openhab2 demo configuration zip file"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Restore the demo configuration using openhab-cli (Linux) by entering "),t("code",[e._v("sudo openhab-cli restore demo-conf-openhab2.zip")]),e._v(" in the command line. On other systems extract the .zip file and copy the "),t("code",[e._v("conf/items")]),e._v(" and the "),t("code",[e._v("conf/sitemaps")]),e._v(" folder to your OpenHAB config folder.")]),e._v(" "),t("li",[e._v("Start OpenHAB")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/processors/openHAB_simple_test.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("Download OpenHAB model"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/processors/openHAB_simple_test.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open OpenHAB model in WebACS"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Start the ARE ("),t("code",[e._v("ARE.exe")]),e._v(" or "),t("code",[e._v("start.bat")]),e._v(" or "),t("code",[e._v("start.sh")]),e._v(")")]),e._v(" "),t("li",[e._v("Open model in ARE or Upload model from ACS")]),e._v(" "),t("li",[e._v("Start model in ARE")]),e._v(" "),t("li",[e._v("Open the "),t("a",{attrs:{href:"http://localhost:8080/basicui/app?w=GF_Kitchen&sitemap=demo",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenHAB Basic UI of the Kitchen"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("In the ARE GUI: Click on "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling ON")]),e._v(" or "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling OFF")]),e._v(". You should see the switching of the item in the basic UI accordingly.\n"),t("img",{attrs:{src:n(399),alt:"Screenshot: OpenHAB Basic UI of Kitchen and ARE GUI with buttons to control OpenHAB items. Animation showing light and roller shutter items switched on and off and the temperature slider changing the temperature"}})]),e._v(" "),t("li",[e._v("Change a value in the basic UI, you should get an event in the event visualizer of the ARE GUI.")])]),e._v(" "),t("h3",{attrs:{id:"accessible-ui"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessible-ui"}},[e._v("#")]),e._v(" Accessible UI")]),e._v(" "),t("p",[e._v("You can use AsTeRICS Grid to create an accessible UI for controlling your Smart Home using OpenHAB.")]),e._v(" "),t("ol",[t("li",[e._v("Open "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Grid"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#asterics-action"}},[e._v("AsTeRICS Action")]),e._v(": To know how to execute an action of an AsTeRICS model in a running ARE instance.")],1),e._v(" "),t("li",[e._v("Click "),t("code",[e._v("Download from ARE")])]),e._v(" "),t("li",[e._v("In "),t("code",[e._v("Component")]),e._v(", select "),t("code",[e._v("openHAB.1_c")])]),e._v(" "),t("li",[e._v("In "),t("code",[e._v("Send data")]),e._v(" "),t("ol",[t("li",[e._v("Select "),t("code",[e._v("actionString")])]),e._v(" "),t("li",[e._v("Set item name and state value, e.g. "),t("code",[e._v("@OPENHAB:Light_GF_Kitchen_Ceiling,ON")]),e._v(" or "),t("code",[e._v("Light_GF_Kitchen_Ceiling,ON")]),e._v(" ("),t("RouterLink",{attrs:{to:"/plugins/processors/OpenHAB.html#input-port-description"}},[e._v("See plugin documentation")]),e._v(")")],1)])]),e._v(" "),t("li",[e._v("Test action by clicking on "),t("code",[e._v("Test Action")])]),e._v(" "),t("li",[e._v("Click "),t("code",[e._v("OK")]),e._v(" to save the action.")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{411:function(e,t,n){e.exports=n.p+"assets/img/openhab-show-synced-control.2ac0761e.gif"},929:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"environmental-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#environmental-control"}},[e._v("#")]),e._v(" Environmental Control")]),e._v(" "),t("p",[e._v("AsTeRICS has many plugins for environmental control like "),t("strong",[e._v("KNX")]),e._v(", "),t("strong",[e._v("EnOcean")]),e._v(", "),t("strong",[e._v("IrTrans")]),e._v(", "),t("strong",[e._v("Phillips Hue")]),e._v(" or "),t("strong",[e._v("OpenHAB")]),e._v(". Check the "),t("RouterLink",{attrs:{to:"/plugins/"}},[e._v("Plugins")]),e._v(" page and filter by "),t("code",[e._v("Home Control")]),e._v(".")],1),e._v(" "),t("p",[e._v("On this page you will find some tutorials of how to use such plugins to control your environment and how to create and accessible user interface for it.")]),e._v(" "),t("h2",{attrs:{id:"openhab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openhab"}},[e._v("#")]),e._v(" OpenHAB")]),e._v(" "),t("p",[e._v("OpenHAB is an Open Source Home Automation SW that let’s you control light, heating and other appliances of your Smart Home. Such appliances or devices are called "),t("strong",[e._v("things")]),e._v(" which are represented as "),t("strong",[e._v("items")]),e._v(" in a user interface. OpenHAB provides several user interfaces and means of voice control.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Accessible User Interface")]),e._v(" "),t("p",[e._v("This tutorial explains how to control an OpenHAB instance and it’s configured items by an AsTeRICS model and how to create an "),t("strong",[e._v("accessible user interface")]),e._v(" for it using AsTeRICS Grid.")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("This tutorial is based on OpenHAB v3.x but should also work with OpenHAB v2.x")])]),e._v(" "),t("ol",[t("li",[e._v("Read the "),t("a",{attrs:{href:"https://www.openhab.org/docs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenHAB concept page"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.openhab.org/download/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Install OpenHAB"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Download the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v4.1.0/demo-conf-openhab2.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("openhab2 demo configuration zip file"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Restore the demo configuration using openhab-cli (Linux) by entering "),t("code",[e._v("sudo openhab-cli restore demo-conf-openhab2.zip")]),e._v(" in the command line. On other systems extract the .zip file and copy the "),t("code",[e._v("conf/items")]),e._v(" and the "),t("code",[e._v("conf/sitemaps")]),e._v(" folder to your OpenHAB config folder.")]),e._v(" "),t("li",[e._v("Start OpenHAB")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/processors/openHAB_simple_test.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("Download OpenHAB model"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/processors/openHAB_simple_test.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open OpenHAB model in WebACS"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Start the ARE ("),t("code",[e._v("ARE.exe")]),e._v(" or "),t("code",[e._v("start.bat")]),e._v(" or "),t("code",[e._v("start.sh")]),e._v(")")]),e._v(" "),t("li",[e._v("Open model in ARE or Upload model from ACS")]),e._v(" "),t("li",[e._v("Start model in ARE")]),e._v(" "),t("li",[e._v("Open the "),t("a",{attrs:{href:"http://localhost:8080/basicui/app?w=GF_Kitchen&sitemap=demo",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenHAB Basic UI of the Kitchen"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("In the ARE GUI: Click on "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling ON")]),e._v(" or "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling OFF")]),e._v(". You should see the switching of the item in the basic UI accordingly.\n"),t("img",{attrs:{src:n(411),alt:"Screenshot: OpenHAB Basic UI of Kitchen and ARE GUI with buttons to control OpenHAB items. Animation showing light and roller shutter items switched on and off and the temperature slider changing the temperature"}})]),e._v(" "),t("li",[e._v("Change a value in the basic UI, you should get an event in the event visualizer of the ARE GUI.")])]),e._v(" "),t("h3",{attrs:{id:"accessible-ui"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessible-ui"}},[e._v("#")]),e._v(" Accessible UI")]),e._v(" "),t("p",[e._v("You can use AsTeRICS Grid to create an accessible UI for controlling your Smart Home using OpenHAB.")]),e._v(" "),t("ol",[t("li",[e._v("Open "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Grid"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#asterics-action"}},[e._v("AsTeRICS Action")]),e._v(": To know how to execute an action of an AsTeRICS model in a running ARE instance.")],1),e._v(" "),t("li",[e._v("Click "),t("code",[e._v("Download from ARE")])]),e._v(" "),t("li",[e._v("In "),t("code",[e._v("Component")]),e._v(", select "),t("code",[e._v("openHAB.1_c")])]),e._v(" "),t("li",[e._v("In "),t("code",[e._v("Send data")]),e._v(" "),t("ol",[t("li",[e._v("Select "),t("code",[e._v("actionString")])]),e._v(" "),t("li",[e._v("Set item name and state value, e.g. "),t("code",[e._v("@OPENHAB:Light_GF_Kitchen_Ceiling,ON")]),e._v(" or "),t("code",[e._v("Light_GF_Kitchen_Ceiling,ON")]),e._v(" ("),t("RouterLink",{attrs:{to:"/plugins/processors/OpenHAB.html#input-port-description"}},[e._v("See plugin documentation")]),e._v(")")],1)])]),e._v(" "),t("li",[e._v("Test action by clicking on "),t("code",[e._v("Test Action")])]),e._v(" "),t("li",[e._v("Click "),t("code",[e._v("OK")]),e._v(" to save the action.")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/109.90c524b0.js b/assets/js/109.38119d7c.js similarity index 96% rename from assets/js/109.90c524b0.js rename to assets/js/109.38119d7c.js index 715cdeaff4..8c31f20d05 100644 --- a/assets/js/109.90c524b0.js +++ b/assets/js/109.38119d7c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{289:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_74b8c615b8455605.d7a70de8.png"},941:function(e,t,n){"use strict";n.r(t);var o=n(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-development-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-development-overview"}},[e._v("#")]),e._v(" ARE Development Overview")]),e._v(" "),t("h2",{attrs:{id:"the-asterics-runtime-environment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-asterics-runtime-environment"}},[e._v("#")]),e._v(" The AsTeRICS Runtime Environment")]),e._v(" "),t("p",[e._v("The AsTeRICS Runtime environment (ARE) is an OSGi-based middleware [3] which allows software plugins to run in parallel. The plugins usually represent a sensor or an actuator and are implemented as independent OSGi bundles. The runtime environment identifies AsTeRICS plugins from other OSGi bundles based on metadata defined inside the plugins.")]),e._v(" "),t("p",[e._v("The ARE expects from plugin-developers to define the structure of their plugins (properties, inputs, outputs and event ports) in XML files. Based on these XMLs, the middleware constructs a runtime representation of each installed AsTeRICS plugin.")]),e._v(" "),t("p",[e._v("Furthermore, the ARE expects a runtime model (system model) which usually comes from the AsTeRICS Configuration Suite (ACS). The ACS is running on a Windows Personal Computer (.net 4.0 required) and mainly used to graphically design the layout of the system as a network of interconnected components. The system model is another XML file that defines the components participating in a specific application, connections between them, events and other properties. Based on this file, ARE knows which plugins to activate and how to define the data flow between them. Since the system model represents the main communication means between the ACS and the ARE, it is expected to be a serialisable object, easy to transfer and translate. ARE and ACS communicate through an appropriate TCP/IP-based communication protocol named ASAPI.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(289),alt:""}})]),e._v(" "),t("p",[e._v("The ARE also provides “services” to plugin developers (for example communication support for COM ports) and it allows reporting errors on the runtime environment, registering event listeners and interacting with its graphical user interface (ARE GUI).")]),e._v(" "),t("p",[e._v("The ARE GUI is a simple graphical environment developed to allow end-users to interact directly with the runtime environment. It may be used to modify runtime parameters of a model via buttons or sliders, and to monitor live signals and events of the running model.")]),e._v(" "),t("h2",{attrs:{id:"are-components"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-components"}},[e._v("#")]),e._v(" ARE Components")]),e._v(" "),t("p",[e._v("The ARE consist of the following main parts:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("The ARE middleware")])]),e._v(" "),t("li",[t("p",[e._v("ARE plugins (also referred to as “components”) – sensor, processor and actuator modules which provide functional building blocks for assistive functionalities")])]),e._v(" "),t("li",[t("p",[e._v("A service layer which provides infrastructure to the ARE components,"),t("br"),e._v("\nfor example COM port and communication management for connection of the Communication Interface Modules (CIMs)")])])]),e._v(" "),t("p",[e._v("The ARE is commonly deployed on an embedded device, running an appropriate operating system (OS), typically an embedded variant of Windows. On top of the OS, an appropriate Java Virtual Machine (JVM) is used to host the OSGi component framework which provides support for modularity and dynamic loading/unloading of components.")]),e._v(" "),t("p",[e._v("All the core components of the framework (described in detail later) are defined as OSGi modules. Certain components that need to access legacy code (e.g., written in C or C++) are also deployed on top of OSGi, and are interfaced to the native code using Java Native Interface (JNI) as needed. In this regard, and with the exception of the pluggable components that use native code interfaces with platform-specific JNI bindings, the ARE middleware is expected to be "),t("em",[e._v("platform independent")]),e._v(".")]),e._v(" "),t("p",[e._v("The implementation requires basically JAVA 1.7 (JDK/JRE 7) and an OSGi framework (which is part of the source code downloads).")]),e._v(" "),t("h2",{attrs:{id:"about-osgi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#about-osgi"}},[e._v("#")]),e._v(" About OSGi")]),e._v(" "),t("p",[e._v("The Open Service Gateway initiative (OSGi) is an open specification that enables the modular assembly of software built with the Java technology [3]. The OSGi Service Platform facilitates the componentization of software modules and applications and assures interoperability of applications and services over a variety of networked devices.")]),e._v(" "),t("p",[e._v("OSGi technology is the dynamic module system for Java™. Java provides the portability that is required to support products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployed; The OSGi Service Platform provides a service-oriented architecture that enables these components to dynamically discover each other for collaboration, and thereby forms the optimal basis for the AsTeRICS middleware.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{295:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_74b8c615b8455605.d7a70de8.png"},984:function(e,t,n){"use strict";n.r(t);var o=n(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-development-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-development-overview"}},[e._v("#")]),e._v(" ARE Development Overview")]),e._v(" "),t("h2",{attrs:{id:"the-asterics-runtime-environment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-asterics-runtime-environment"}},[e._v("#")]),e._v(" The AsTeRICS Runtime Environment")]),e._v(" "),t("p",[e._v("The AsTeRICS Runtime environment (ARE) is an OSGi-based middleware [3] which allows software plugins to run in parallel. The plugins usually represent a sensor or an actuator and are implemented as independent OSGi bundles. The runtime environment identifies AsTeRICS plugins from other OSGi bundles based on metadata defined inside the plugins.")]),e._v(" "),t("p",[e._v("The ARE expects from plugin-developers to define the structure of their plugins (properties, inputs, outputs and event ports) in XML files. Based on these XMLs, the middleware constructs a runtime representation of each installed AsTeRICS plugin.")]),e._v(" "),t("p",[e._v("Furthermore, the ARE expects a runtime model (system model) which usually comes from the AsTeRICS Configuration Suite (ACS). The ACS is running on a Windows Personal Computer (.net 4.0 required) and mainly used to graphically design the layout of the system as a network of interconnected components. The system model is another XML file that defines the components participating in a specific application, connections between them, events and other properties. Based on this file, ARE knows which plugins to activate and how to define the data flow between them. Since the system model represents the main communication means between the ACS and the ARE, it is expected to be a serialisable object, easy to transfer and translate. ARE and ACS communicate through an appropriate TCP/IP-based communication protocol named ASAPI.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(295),alt:""}})]),e._v(" "),t("p",[e._v("The ARE also provides “services” to plugin developers (for example communication support for COM ports) and it allows reporting errors on the runtime environment, registering event listeners and interacting with its graphical user interface (ARE GUI).")]),e._v(" "),t("p",[e._v("The ARE GUI is a simple graphical environment developed to allow end-users to interact directly with the runtime environment. It may be used to modify runtime parameters of a model via buttons or sliders, and to monitor live signals and events of the running model.")]),e._v(" "),t("h2",{attrs:{id:"are-components"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-components"}},[e._v("#")]),e._v(" ARE Components")]),e._v(" "),t("p",[e._v("The ARE consist of the following main parts:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("The ARE middleware")])]),e._v(" "),t("li",[t("p",[e._v("ARE plugins (also referred to as “components”) – sensor, processor and actuator modules which provide functional building blocks for assistive functionalities")])]),e._v(" "),t("li",[t("p",[e._v("A service layer which provides infrastructure to the ARE components,"),t("br"),e._v("\nfor example COM port and communication management for connection of the Communication Interface Modules (CIMs)")])])]),e._v(" "),t("p",[e._v("The ARE is commonly deployed on an embedded device, running an appropriate operating system (OS), typically an embedded variant of Windows. On top of the OS, an appropriate Java Virtual Machine (JVM) is used to host the OSGi component framework which provides support for modularity and dynamic loading/unloading of components.")]),e._v(" "),t("p",[e._v("All the core components of the framework (described in detail later) are defined as OSGi modules. Certain components that need to access legacy code (e.g., written in C or C++) are also deployed on top of OSGi, and are interfaced to the native code using Java Native Interface (JNI) as needed. In this regard, and with the exception of the pluggable components that use native code interfaces with platform-specific JNI bindings, the ARE middleware is expected to be "),t("em",[e._v("platform independent")]),e._v(".")]),e._v(" "),t("p",[e._v("The implementation requires basically JAVA 1.7 (JDK/JRE 7) and an OSGi framework (which is part of the source code downloads).")]),e._v(" "),t("h2",{attrs:{id:"about-osgi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#about-osgi"}},[e._v("#")]),e._v(" About OSGi")]),e._v(" "),t("p",[e._v("The Open Service Gateway initiative (OSGi) is an open specification that enables the modular assembly of software built with the Java technology [3]. The OSGi Service Platform facilitates the componentization of software modules and applications and assures interoperability of applications and services over a variety of networked devices.")]),e._v(" "),t("p",[e._v("OSGi technology is the dynamic module system for Java™. Java provides the portability that is required to support products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployed; The OSGi Service Platform provides a service-oriented architecture that enables these components to dynamically discover each other for collaboration, and thereby forms the optimal basis for the AsTeRICS middleware.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/110.010f8246.js b/assets/js/110.b63d17e4.js similarity index 99% rename from assets/js/110.010f8246.js rename to assets/js/110.b63d17e4.js index d575fe72ae..48d6f810d1 100644 --- a/assets/js/110.010f8246.js +++ b/assets/js/110.b63d17e4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{302:function(t,a,s){t.exports=s.p+"assets/img/DeveloperManual_html_17298a48a6d250c5.fbefb96e.png"},946:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"plugin-advanced"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugin-advanced"}},[t._v("#")]),t._v(" Plugin Advanced")]),t._v(" "),a("h2",{attrs:{id:"writing-asterics-plugin-code"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#writing-asterics-plugin-code"}},[t._v("#")]),t._v(" Writing AsTeRICS Plugin Code")]),t._v(" "),a("h3",{attrs:{id:"are-coding-guidelines"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#are-coding-guidelines"}},[t._v("#")]),t._v(" ARE Coding Guidelines")]),t._v(" "),a("p",[t._v("Coding guidelines are necessary to allow new developers to quickly find their through the code of the ARE. They are created in such a way to provide means for developers to understand code of each other but they also make sure that non-technical users can find their way through a model in ACS.")]),t._v(" "),a("p",[t._v("If you use Eclipse as IDE, "),a("strong",[t._v("you can import predefined clean up, code template and formatting settings")]),t._v(", which cover some of the coding guidelines (see 4.1.1).")]),t._v(" "),a("p",[t._v("The basic coding guidelines are:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("Plugins, ports and properties should be named intuitively in the bundle descriptor. Only if necessary, the corresponding variables in the plugin code should be named differently. However they should adhere to the naming conventions stated in section 4.1.3 and different names should be commented in the code sections which translate the name into the variable (getInputPort(), getRuntimeProperty() …)")])]),t._v(" "),a("li",[a("p",[t._v("Variable names should always use the Java naming conventions")])]),t._v(" "),a("li",[a("p",[t._v("Every method should be preceded by a JavaDoc compatible header in order to allow new developer to grasp what is going on in it")])]),t._v(" "),a("li",[a("p",[t._v("Where reasonable code comments should be added to improve understanding of code internals")])]),t._v(" "),a("li",[a("p",[t._v("Code should be indented by four spaces per indentations stage. Indentations should be done using space and "),a("strong",[t._v("not tabs")]),t._v(". Tabs should be converted to spaces.")])]),t._v(" "),a("li",[a("p",[t._v("Opening parentheses should be placed in the same line")])])]),t._v(" "),a("h2",{attrs:{id:"eclipse-code-style-settings"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-code-style-settings"}},[t._v("#")]),t._v(" Eclipse Code Style Settings")]),t._v(" "),a("p",[t._v("If you use Eclipse as IDE, you can import predefined clean up, code template and formatting settings. The files are located in the AsTeRICS/ARE folder of the checkout github repository.")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[t._v("Eclipse - Code Style - Clean Up.xml")]),t._v(": Definitions for cleanup, e.g. remove unused imports and unused variables")])]),t._v(" "),a("li",[a("p",[a("strong",[t._v("Eclipse - Code Style - Code Templates.xml")]),t._v(": Contains default file header including license information (see 4.1.5) and default class comment (see 4.1.6).")])]),t._v(" "),a("li",[a("p",[a("strong",[t._v("Eclipse - Code Style - Formatter.xml")]),t._v(": Contains code formatting definitions e.g. 4 spaces instead of tabs.")])])]),t._v(" "),a("p",[t._v("You can import the settings by")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("selecting the project folder and clicking right mouse button")])]),t._v(" "),a("li",[a("p",[t._v("opening ‘Properties’ entry of popup menu")])]),t._v(" "),a("li",[a("p",[t._v("Opening ‘Java Code Style’/Clean Up|Code Templates|Formatter respectively")])])]),t._v(" "),a("h2",{attrs:{id:"port-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#port-naming-conventions"}},[t._v("#")]),t._v(" Port Naming Conventions")]),t._v(" "),a("p",[t._v("Variables of port instances should be named with a prefix indicating what kind of port it is. The rest of the port name should indicate the port’s use and adhere to the standard Java variable naming conventions. The available prefixes are:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("ip: indicates that the port is an instance of IRuntimeInputPort")])]),t._v(" "),a("li",[a("p",[t._v("op: indicates that the port is an instance of IRuntimeOutputPort")])]),t._v(" "),a("li",[a("p",[t._v("elp: indicates that the port is an instance of IRuntimeEventListenerPort")])]),t._v(" "),a("li",[a("p",[t._v("etp: indicates that the port is an instance of IRuntimeEventTriggererPort")])])]),t._v(" "),a("p",[t._v("A variable holding an event listener port could therefore be named "),a("em",[t._v("elpKeyPressed")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"property-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#property-naming-conventions"}},[t._v("#")]),t._v(" Property Naming Conventions")]),t._v(" "),a("p",[t._v("Plugin properties should be directly mapped to a variable in the plugin code. The variable’s should be prepended with the prefix "),a("em",[t._v("prop")]),t._v(" and adhere to standard Java naming conventions. Thus a property could be named "),a("em",[t._v("InputGainValue")]),t._v(" and the corresponding variable should be named "),a("em",[t._v("propInputGainValue")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"bundle-descriptor-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bundle-descriptor-naming-conventions"}},[t._v("#")]),t._v(" Bundle Descriptor Naming Conventions")]),t._v(" "),a("p",[t._v("The bundle descriptor should serve as an abstraction layer between the user who creates models in the ACS and the developer. Thus the names for plugins, ports and properties in the bundle descriptor should be as intuitive as possible. Names in the bundle descriptor should not include prefixes because the added information is also conveyed in the presentation of plugins in the ACS.")]),t._v(" "),a("p",[t._v("The bundle descriptor can translate intuitive names (e.g. input.switch) to the canonical names of plugins (e.g. GpioInputInstance) allowing coexistence of a user and a developer language. This method of name translation can be applied for plugin names, port names and property names.")]),t._v(" "),a("h2",{attrs:{id:"asterics-are-service-and-plugin-source-file-header"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-are-service-and-plugin-source-file-header"}},[t._v("#")]),t._v(" AsTeRICS ARE, service and plugin source file header")]),t._v(" "),a("p",[t._v("Each source file of ARE, of ARE services, ARE plugins and tools which will be released as open source should have the following header:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('/*\n * AsTeRICS - Assistive Technology Rapid Integration and Construction Set\n * \n * \n * d8888 88888888888 8888888b. 8888888 .d8888b. .d8888b. \n * d88888 888 888 Y88b 888 d88P Y88b d88P Y88b\n * d88P888 888 888 888 888 888 888 Y88b. \n * d88P 888 .d8888b 888 .d88b. 888 d88P 888 888 "Y888b. \n * d88P 888 88K 888 d8P Y8b 8888888P" 888 888 "Y88b.\n * d88P 888 "Y8888b. 888 88888888 888 T88b 888 888 888 "888\n * d8888888888 X88 888 Y8b. 888 T88b 888 Y88b d88P Y88b d88P\n * d88P 888 88888P\' 888 "Y8888 888 T88b 8888888 "Y8888P" "Y8888P" \n *\n *\n * homepage: http://www.asterics.org \n *\n * This project has been partly funded by the European Commission, \n * Grant Agreement Number 247730\n * \n * \n * Dual License: MIT or GPL v3.0 with "CLASSPATH" exception\n * (please refer to the folder LICENSE)\n * \n */')]),t._v("\n")])])]),a("h2",{attrs:{id:"javadoc-compatible-comments"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javadoc-compatible-comments"}},[t._v("#")]),t._v(" JavaDoc compatible comments")]),t._v(" "),a("p",[t._v("JavaDoc compatible comments should be used to indicate the author of a source file, and to describe the purpose of a function/method/class and the respective parameters and return values.")]),t._v(" "),a("p",[t._v("Example for a source file header info:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Bardisplayinstance.java\n * Purpose of this module:\n * Implements the Bardisplay actuator plugin\n * \n * @author Chris Veigl [veigl@technikum-wien.at]\n * Date: Mar 7, 2011\n */")]),t._v("\n")])])]),a("p",[t._v("Example for a method of a class:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n* Returns the value of the given property\n* @param propertyName the name of the property\n* @return the property value\n*/")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"implementing-asterics-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implementing-asterics-components"}},[t._v("#")]),t._v(" Implementing AsTeRICS components")]),t._v(" "),a("p",[t._v("This section describes the basic steps required for implementing an AsTeRICS component including a brief introduction to OSGi. To illustrate the implementation steps, we take a walk-through with the implementation of a simple processor component.")]),t._v(" "),a("p",[t._v("The AsTeRICS schemata of the XML descriptors include two concepts: the "),a("em",[t._v("bundle descriptors")]),t._v(" and the "),a("em",[t._v("deployment descriptors")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"the-bundle-descriptors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-bundle-descriptors"}},[t._v("#")]),t._v(" The Bundle Descriptors")]),t._v(" "),a("p",[t._v("Bundle descriptors are used to describe the content of an individual bundle (typically encapsulating one or more components). As such, they contain information about the included "),a("em",[t._v("components")]),t._v(", their "),a("em",[t._v("ports")]),t._v(", their customizable "),a("em",[t._v("properties")]),t._v(" and optionally their GUI.")]),t._v(" "),a("p",[t._v("The following shows a bundle descriptor of a simple processor-plugin (subtype for the ACS components menu is “Basic Math”). The plugin provides an averaging function for n values (property “buffer-size”) and has one input port and one output port for integer values:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentTypes")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bundle_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentType")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.averager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("canonical_name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("eu.asterics.component.processor.averager.AveragerComponent"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("subtype")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Basic Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("processor"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Linked list-based averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Input port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("multiplicity")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("one-to-one"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mustBeConnected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("true"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("out_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Output port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("buffer-size"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("50"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("The size of the averager's buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-deployment-descriptor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-deployment-descriptor"}},[t._v("#")]),t._v(" The Deployment Descriptor")]),t._v(" "),a("p",[t._v("Deployment descriptors instruct the ARE of the desired application deployment structure. The deployment descriptor is typically composed in the AsTeRICS Configuration Suite (ACS) but can also be written with a text editor (as the bundle descriptor). Basically the deployment descriptor contains several component descriptions (copied from the corresponding bundle descriptors), actual property values and the channel connection between input- and output ports of the components.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The "),a("em",[t._v("type_id")]),t._v(" argument of the "),a("em",[t._v("component")]),t._v(" element in the deployment descriptor must match the "),a("em",[t._v("id")]),t._v(" argument of the "),a("em",[t._v("componentType")]),t._v(" element on the bundle descriptor. This is how the ARE detects the referred plugin type in the deployment model.")])]),t._v(" "),a("p",[t._v("The following demo deployment descriptor describes a simple model containing two plugins and one channel:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("model")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("deployment_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("components")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Source of two signal cahnnels "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Signal Target"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channel")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("channel.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Connects SignalSource.1 (outport 1) \n to SignalTarget.1 (in_x)"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("source")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-manifest-file"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-manifest-file"}},[t._v("#")]),t._v(" The Manifest file")]),t._v(" "),a("p",[t._v("The Manifest file tells the bundle name and other informations like import packages and .dlls to the OSGi. A typical Manifest looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-processors.averager\nBundle-SymbolicName: eu.asterics.component.processor.averager\nBundle-Version: 0.1.0\nDynamicImport-Package: *\n\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The empty line at the end of the Manifest file. It seems that OSGi needs that empty line in order to work properly.")])]),t._v(" "),a("h2",{attrs:{id:"structure-of-osgi-bundles-containing-are-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-osgi-bundles-containing-are-components"}},[t._v("#")]),t._v(" Structure of OSGi bundles containing ARE components")]),t._v(" "),a("p",[t._v("As a common OSGi bundle, an AsTeRICS component must be packaged in a JAR file, containing the class files (object code) and the Manifest file. In addition to these, the AsTeRICS middleware expects the "),a("em",[t._v("bundle descriptor")]),t._v(". At this point, it should be noted that it is possible to include "),a("em",[t._v("multiple")]),t._v(" AsTeRICS components in a single OSGi bundle, as long as the bundle descriptor describes all of them.")]),t._v(" "),a("p",[t._v("Overall, the file structure in a typical AsTeRICS bundle looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("/\n+- eu/\n +- asterics/\n +- component/\n +- ...\n+- lib/\n +- native/\n +- my_library.dll\n+- META-INF/\n +- MANIFEST.MF\n+- bundle_descriptor.xml\n")])])]),a("p",[t._v("The Java object code is included in the corresponding folders representing the package structure (e.g., “/eu/asterics/component/…” etc). Optionally, if libraries are needed - native or not-, then they are included in the “/lib” folder. The Manifest is included in the “META-INF” folder as per the standard Java/OSGi practice. Finally, the AsTeRICS bundle descriptor is included directly in the root of the JAR file (i.e. “/”).")]),t._v(" "),a("h2",{attrs:{id:"component-lifecyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#component-lifecyle"}},[t._v("#")]),t._v(" Component lifecyle")]),t._v(" "),a("p",[t._v("An ARE component implementation needs to realise the actual component with its lifecycle (i.e., ways to access its ports and properties, and methods realizing its lifecycle). This is illustrated in the following code:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("runtime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Lifecycle support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pause")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("resume")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Component support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeOutputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getOutputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventListenerPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventListenerPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventTriggererPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventTriggererPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token generics"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" syncedValuesReceived "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[a("img",{attrs:{src:s(302),alt:""}})]),t._v(" "),a("p",[t._v("The lifecycle support methods are used to intercept AsTeRICS events concerning the component’s lifecycle. In principle, a component can be any of the following:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("READY,")])]),t._v(" "),a("li",[a("p",[t._v("ACTIVE,")])]),t._v(" "),a("li",[a("p",[t._v("SUSPENDED and")])]),t._v(" "),a("li",[a("p",[t._v("STOPPED")])])]),t._v(" "),a("p",[t._v("These states and their possible transitions are illustrated in the figure on the right:")]),t._v(" "),a("p",[t._v("The rest of the methods are used for supporting the component operations, namely accessing the input/output ports of the component, as well as getting/setting its supported properties.")]),t._v(" "),a("h2",{attrs:{id:"threading"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#threading"}},[t._v("#")]),t._v(" Threading")]),t._v(" "),a("p",[t._v("For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"writing-plugins-using-swing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#writing-plugins-using-swing"}},[t._v("#")]),t._v(" Writing plugins using Swing")]),t._v(" "),a("p",[t._v("If a plugin provides a Swing GUI it should only use the asynchronous method")]),t._v(" "),a("p",[a("code",[t._v("SwingUtilities.invokeLater(…)")])]),t._v(" "),a("p",[t._v("(and not the synchronous one) to perform the GUI updates. This is to prevent a potential thread deadlock if an action was originally triggered by a Swing GUI event e.g. by a button click in the ARE GUI. For detailed information about the ARE threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"long-lasting-method-calls"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#long-lasting-method-calls"}},[t._v("#")]),t._v(" Long lasting method calls")]),t._v(" "),a("p",[t._v("If a method call performs a long lasting task and there is no need to await the termination of it, the task should be handed over to a worker thread (see 5.9) to not block ModelExecutor thread. For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"sensor-callbacks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sensor-callbacks"}},[t._v("#")]),t._v(" Sensor callbacks")]),t._v(" "),a("p",[t._v("In case you write a plugin that uses a separate thread to generate data (e.g. FrameGrabber, Timer,…) you should explicitly use the method")]),t._v(" "),a("p",[a("code",[t._v("AstericsModelExecutionThreadPool.instance.execute(…)")])]),t._v(" "),a("p",[t._v("This is to ensure that corresponding data will be delivered within the same task execution. For detailed information about the threading concept see 9. Below is an example of the FacetrackerLK plugin in the callback method for new arriving coordinates:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("newCoordinates_callback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsModelExecutionThreadPool")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("execute")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Runnable")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("run")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n opNoseX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opNoseY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"contributing-a-developed-plugin-git-pull-request"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributing-a-developed-plugin-git-pull-request"}},[t._v("#")]),t._v(" Contributing a developed plugin (git pull request)")]),t._v(" "),a("p",[t._v("The AsTeRICS platform is designed as an open and modular platform. The idea is to make it easy for others to develop assistive plugins any end-user in the world could benefit from. Hence, we would love to get your contribution back to the github repository to be able to ship the new plugin with future releases. For this purpose, please send a pull request.")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://help.github.com/articles/using-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://help.github.com/articles/using-pull-requests/"),a("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{296:function(t,a,s){t.exports=s.p+"assets/img/DeveloperManual_html_17298a48a6d250c5.fbefb96e.png"},945:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"plugin-advanced"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugin-advanced"}},[t._v("#")]),t._v(" Plugin Advanced")]),t._v(" "),a("h2",{attrs:{id:"writing-asterics-plugin-code"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#writing-asterics-plugin-code"}},[t._v("#")]),t._v(" Writing AsTeRICS Plugin Code")]),t._v(" "),a("h3",{attrs:{id:"are-coding-guidelines"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#are-coding-guidelines"}},[t._v("#")]),t._v(" ARE Coding Guidelines")]),t._v(" "),a("p",[t._v("Coding guidelines are necessary to allow new developers to quickly find their through the code of the ARE. They are created in such a way to provide means for developers to understand code of each other but they also make sure that non-technical users can find their way through a model in ACS.")]),t._v(" "),a("p",[t._v("If you use Eclipse as IDE, "),a("strong",[t._v("you can import predefined clean up, code template and formatting settings")]),t._v(", which cover some of the coding guidelines (see 4.1.1).")]),t._v(" "),a("p",[t._v("The basic coding guidelines are:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("Plugins, ports and properties should be named intuitively in the bundle descriptor. Only if necessary, the corresponding variables in the plugin code should be named differently. However they should adhere to the naming conventions stated in section 4.1.3 and different names should be commented in the code sections which translate the name into the variable (getInputPort(), getRuntimeProperty() …)")])]),t._v(" "),a("li",[a("p",[t._v("Variable names should always use the Java naming conventions")])]),t._v(" "),a("li",[a("p",[t._v("Every method should be preceded by a JavaDoc compatible header in order to allow new developer to grasp what is going on in it")])]),t._v(" "),a("li",[a("p",[t._v("Where reasonable code comments should be added to improve understanding of code internals")])]),t._v(" "),a("li",[a("p",[t._v("Code should be indented by four spaces per indentations stage. Indentations should be done using space and "),a("strong",[t._v("not tabs")]),t._v(". Tabs should be converted to spaces.")])]),t._v(" "),a("li",[a("p",[t._v("Opening parentheses should be placed in the same line")])])]),t._v(" "),a("h2",{attrs:{id:"eclipse-code-style-settings"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-code-style-settings"}},[t._v("#")]),t._v(" Eclipse Code Style Settings")]),t._v(" "),a("p",[t._v("If you use Eclipse as IDE, you can import predefined clean up, code template and formatting settings. The files are located in the AsTeRICS/ARE folder of the checkout github repository.")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[t._v("Eclipse - Code Style - Clean Up.xml")]),t._v(": Definitions for cleanup, e.g. remove unused imports and unused variables")])]),t._v(" "),a("li",[a("p",[a("strong",[t._v("Eclipse - Code Style - Code Templates.xml")]),t._v(": Contains default file header including license information (see 4.1.5) and default class comment (see 4.1.6).")])]),t._v(" "),a("li",[a("p",[a("strong",[t._v("Eclipse - Code Style - Formatter.xml")]),t._v(": Contains code formatting definitions e.g. 4 spaces instead of tabs.")])])]),t._v(" "),a("p",[t._v("You can import the settings by")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("selecting the project folder and clicking right mouse button")])]),t._v(" "),a("li",[a("p",[t._v("opening ‘Properties’ entry of popup menu")])]),t._v(" "),a("li",[a("p",[t._v("Opening ‘Java Code Style’/Clean Up|Code Templates|Formatter respectively")])])]),t._v(" "),a("h2",{attrs:{id:"port-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#port-naming-conventions"}},[t._v("#")]),t._v(" Port Naming Conventions")]),t._v(" "),a("p",[t._v("Variables of port instances should be named with a prefix indicating what kind of port it is. The rest of the port name should indicate the port’s use and adhere to the standard Java variable naming conventions. The available prefixes are:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("ip: indicates that the port is an instance of IRuntimeInputPort")])]),t._v(" "),a("li",[a("p",[t._v("op: indicates that the port is an instance of IRuntimeOutputPort")])]),t._v(" "),a("li",[a("p",[t._v("elp: indicates that the port is an instance of IRuntimeEventListenerPort")])]),t._v(" "),a("li",[a("p",[t._v("etp: indicates that the port is an instance of IRuntimeEventTriggererPort")])])]),t._v(" "),a("p",[t._v("A variable holding an event listener port could therefore be named "),a("em",[t._v("elpKeyPressed")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"property-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#property-naming-conventions"}},[t._v("#")]),t._v(" Property Naming Conventions")]),t._v(" "),a("p",[t._v("Plugin properties should be directly mapped to a variable in the plugin code. The variable’s should be prepended with the prefix "),a("em",[t._v("prop")]),t._v(" and adhere to standard Java naming conventions. Thus a property could be named "),a("em",[t._v("InputGainValue")]),t._v(" and the corresponding variable should be named "),a("em",[t._v("propInputGainValue")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"bundle-descriptor-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bundle-descriptor-naming-conventions"}},[t._v("#")]),t._v(" Bundle Descriptor Naming Conventions")]),t._v(" "),a("p",[t._v("The bundle descriptor should serve as an abstraction layer between the user who creates models in the ACS and the developer. Thus the names for plugins, ports and properties in the bundle descriptor should be as intuitive as possible. Names in the bundle descriptor should not include prefixes because the added information is also conveyed in the presentation of plugins in the ACS.")]),t._v(" "),a("p",[t._v("The bundle descriptor can translate intuitive names (e.g. input.switch) to the canonical names of plugins (e.g. GpioInputInstance) allowing coexistence of a user and a developer language. This method of name translation can be applied for plugin names, port names and property names.")]),t._v(" "),a("h2",{attrs:{id:"asterics-are-service-and-plugin-source-file-header"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-are-service-and-plugin-source-file-header"}},[t._v("#")]),t._v(" AsTeRICS ARE, service and plugin source file header")]),t._v(" "),a("p",[t._v("Each source file of ARE, of ARE services, ARE plugins and tools which will be released as open source should have the following header:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('/*\n * AsTeRICS - Assistive Technology Rapid Integration and Construction Set\n * \n * \n * d8888 88888888888 8888888b. 8888888 .d8888b. .d8888b. \n * d88888 888 888 Y88b 888 d88P Y88b d88P Y88b\n * d88P888 888 888 888 888 888 888 Y88b. \n * d88P 888 .d8888b 888 .d88b. 888 d88P 888 888 "Y888b. \n * d88P 888 88K 888 d8P Y8b 8888888P" 888 888 "Y88b.\n * d88P 888 "Y8888b. 888 88888888 888 T88b 888 888 888 "888\n * d8888888888 X88 888 Y8b. 888 T88b 888 Y88b d88P Y88b d88P\n * d88P 888 88888P\' 888 "Y8888 888 T88b 8888888 "Y8888P" "Y8888P" \n *\n *\n * homepage: http://www.asterics.org \n *\n * This project has been partly funded by the European Commission, \n * Grant Agreement Number 247730\n * \n * \n * Dual License: MIT or GPL v3.0 with "CLASSPATH" exception\n * (please refer to the folder LICENSE)\n * \n */')]),t._v("\n")])])]),a("h2",{attrs:{id:"javadoc-compatible-comments"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javadoc-compatible-comments"}},[t._v("#")]),t._v(" JavaDoc compatible comments")]),t._v(" "),a("p",[t._v("JavaDoc compatible comments should be used to indicate the author of a source file, and to describe the purpose of a function/method/class and the respective parameters and return values.")]),t._v(" "),a("p",[t._v("Example for a source file header info:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Bardisplayinstance.java\n * Purpose of this module:\n * Implements the Bardisplay actuator plugin\n * \n * @author Chris Veigl [veigl@technikum-wien.at]\n * Date: Mar 7, 2011\n */")]),t._v("\n")])])]),a("p",[t._v("Example for a method of a class:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n* Returns the value of the given property\n* @param propertyName the name of the property\n* @return the property value\n*/")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"implementing-asterics-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implementing-asterics-components"}},[t._v("#")]),t._v(" Implementing AsTeRICS components")]),t._v(" "),a("p",[t._v("This section describes the basic steps required for implementing an AsTeRICS component including a brief introduction to OSGi. To illustrate the implementation steps, we take a walk-through with the implementation of a simple processor component.")]),t._v(" "),a("p",[t._v("The AsTeRICS schemata of the XML descriptors include two concepts: the "),a("em",[t._v("bundle descriptors")]),t._v(" and the "),a("em",[t._v("deployment descriptors")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"the-bundle-descriptors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-bundle-descriptors"}},[t._v("#")]),t._v(" The Bundle Descriptors")]),t._v(" "),a("p",[t._v("Bundle descriptors are used to describe the content of an individual bundle (typically encapsulating one or more components). As such, they contain information about the included "),a("em",[t._v("components")]),t._v(", their "),a("em",[t._v("ports")]),t._v(", their customizable "),a("em",[t._v("properties")]),t._v(" and optionally their GUI.")]),t._v(" "),a("p",[t._v("The following shows a bundle descriptor of a simple processor-plugin (subtype for the ACS components menu is “Basic Math”). The plugin provides an averaging function for n values (property “buffer-size”) and has one input port and one output port for integer values:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentTypes")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bundle_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentType")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.averager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("canonical_name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("eu.asterics.component.processor.averager.AveragerComponent"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("subtype")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Basic Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("processor"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Linked list-based averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Input port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("multiplicity")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("one-to-one"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mustBeConnected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("true"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("out_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Output port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("buffer-size"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("50"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("The size of the averager's buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-deployment-descriptor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-deployment-descriptor"}},[t._v("#")]),t._v(" The Deployment Descriptor")]),t._v(" "),a("p",[t._v("Deployment descriptors instruct the ARE of the desired application deployment structure. The deployment descriptor is typically composed in the AsTeRICS Configuration Suite (ACS) but can also be written with a text editor (as the bundle descriptor). Basically the deployment descriptor contains several component descriptions (copied from the corresponding bundle descriptors), actual property values and the channel connection between input- and output ports of the components.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The "),a("em",[t._v("type_id")]),t._v(" argument of the "),a("em",[t._v("component")]),t._v(" element in the deployment descriptor must match the "),a("em",[t._v("id")]),t._v(" argument of the "),a("em",[t._v("componentType")]),t._v(" element on the bundle descriptor. This is how the ARE detects the referred plugin type in the deployment model.")])]),t._v(" "),a("p",[t._v("The following demo deployment descriptor describes a simple model containing two plugins and one channel:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("model")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("deployment_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("components")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Source of two signal cahnnels "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Signal Target"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channel")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("channel.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Connects SignalSource.1 (outport 1) \n to SignalTarget.1 (in_x)"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("source")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-manifest-file"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-manifest-file"}},[t._v("#")]),t._v(" The Manifest file")]),t._v(" "),a("p",[t._v("The Manifest file tells the bundle name and other informations like import packages and .dlls to the OSGi. A typical Manifest looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-processors.averager\nBundle-SymbolicName: eu.asterics.component.processor.averager\nBundle-Version: 0.1.0\nDynamicImport-Package: *\n\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The empty line at the end of the Manifest file. It seems that OSGi needs that empty line in order to work properly.")])]),t._v(" "),a("h2",{attrs:{id:"structure-of-osgi-bundles-containing-are-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-osgi-bundles-containing-are-components"}},[t._v("#")]),t._v(" Structure of OSGi bundles containing ARE components")]),t._v(" "),a("p",[t._v("As a common OSGi bundle, an AsTeRICS component must be packaged in a JAR file, containing the class files (object code) and the Manifest file. In addition to these, the AsTeRICS middleware expects the "),a("em",[t._v("bundle descriptor")]),t._v(". At this point, it should be noted that it is possible to include "),a("em",[t._v("multiple")]),t._v(" AsTeRICS components in a single OSGi bundle, as long as the bundle descriptor describes all of them.")]),t._v(" "),a("p",[t._v("Overall, the file structure in a typical AsTeRICS bundle looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("/\n+- eu/\n +- asterics/\n +- component/\n +- ...\n+- lib/\n +- native/\n +- my_library.dll\n+- META-INF/\n +- MANIFEST.MF\n+- bundle_descriptor.xml\n")])])]),a("p",[t._v("The Java object code is included in the corresponding folders representing the package structure (e.g., “/eu/asterics/component/…” etc). Optionally, if libraries are needed - native or not-, then they are included in the “/lib” folder. The Manifest is included in the “META-INF” folder as per the standard Java/OSGi practice. Finally, the AsTeRICS bundle descriptor is included directly in the root of the JAR file (i.e. “/”).")]),t._v(" "),a("h2",{attrs:{id:"component-lifecyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#component-lifecyle"}},[t._v("#")]),t._v(" Component lifecyle")]),t._v(" "),a("p",[t._v("An ARE component implementation needs to realise the actual component with its lifecycle (i.e., ways to access its ports and properties, and methods realizing its lifecycle). This is illustrated in the following code:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("runtime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Lifecycle support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pause")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("resume")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Component support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeOutputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getOutputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventListenerPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventListenerPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventTriggererPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventTriggererPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token generics"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" syncedValuesReceived "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[a("img",{attrs:{src:s(296),alt:""}})]),t._v(" "),a("p",[t._v("The lifecycle support methods are used to intercept AsTeRICS events concerning the component’s lifecycle. In principle, a component can be any of the following:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("READY,")])]),t._v(" "),a("li",[a("p",[t._v("ACTIVE,")])]),t._v(" "),a("li",[a("p",[t._v("SUSPENDED and")])]),t._v(" "),a("li",[a("p",[t._v("STOPPED")])])]),t._v(" "),a("p",[t._v("These states and their possible transitions are illustrated in the figure on the right:")]),t._v(" "),a("p",[t._v("The rest of the methods are used for supporting the component operations, namely accessing the input/output ports of the component, as well as getting/setting its supported properties.")]),t._v(" "),a("h2",{attrs:{id:"threading"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#threading"}},[t._v("#")]),t._v(" Threading")]),t._v(" "),a("p",[t._v("For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"writing-plugins-using-swing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#writing-plugins-using-swing"}},[t._v("#")]),t._v(" Writing plugins using Swing")]),t._v(" "),a("p",[t._v("If a plugin provides a Swing GUI it should only use the asynchronous method")]),t._v(" "),a("p",[a("code",[t._v("SwingUtilities.invokeLater(…)")])]),t._v(" "),a("p",[t._v("(and not the synchronous one) to perform the GUI updates. This is to prevent a potential thread deadlock if an action was originally triggered by a Swing GUI event e.g. by a button click in the ARE GUI. For detailed information about the ARE threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"long-lasting-method-calls"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#long-lasting-method-calls"}},[t._v("#")]),t._v(" Long lasting method calls")]),t._v(" "),a("p",[t._v("If a method call performs a long lasting task and there is no need to await the termination of it, the task should be handed over to a worker thread (see 5.9) to not block ModelExecutor thread. For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"sensor-callbacks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sensor-callbacks"}},[t._v("#")]),t._v(" Sensor callbacks")]),t._v(" "),a("p",[t._v("In case you write a plugin that uses a separate thread to generate data (e.g. FrameGrabber, Timer,…) you should explicitly use the method")]),t._v(" "),a("p",[a("code",[t._v("AstericsModelExecutionThreadPool.instance.execute(…)")])]),t._v(" "),a("p",[t._v("This is to ensure that corresponding data will be delivered within the same task execution. For detailed information about the threading concept see 9. Below is an example of the FacetrackerLK plugin in the callback method for new arriving coordinates:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("newCoordinates_callback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsModelExecutionThreadPool")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("execute")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Runnable")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("run")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n opNoseX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opNoseY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"contributing-a-developed-plugin-git-pull-request"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributing-a-developed-plugin-git-pull-request"}},[t._v("#")]),t._v(" Contributing a developed plugin (git pull request)")]),t._v(" "),a("p",[t._v("The AsTeRICS platform is designed as an open and modular platform. The idea is to make it easy for others to develop assistive plugins any end-user in the world could benefit from. Hence, we would love to get your contribution back to the github repository to be able to ship the new plugin with future releases. For this purpose, please send a pull request.")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://help.github.com/articles/using-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://help.github.com/articles/using-pull-requests/"),a("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/111.2d073331.js b/assets/js/111.aa000995.js similarity index 99% rename from assets/js/111.2d073331.js rename to assets/js/111.aa000995.js index 87b55afa2e..18f7861fbb 100644 --- a/assets/js/111.2d073331.js +++ b/assets/js/111.aa000995.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{422:function(t,s,a){t.exports=a.p+"assets/img/Websocket-echo-connection.441c16d0.jpg"},963:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"websocket-tutorial"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#websocket-tutorial"}},[t._v("#")]),t._v(" Websocket Tutorial")]),t._v(" "),s("p",[t._v("In this tutorial you will learn how to use the AsTeRICS websocket functionality with Javascript from within a web client.")]),t._v(" "),s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),s("p",[t._v("A web socket is defined as a two-way communication between the servers and the clients, which mean both the parties communicate and exchange data at the same time. The Websocket protocol is specified in the "),s("a",{attrs:{href:"https://tools.ietf.org/html/rfc6455",target:"_blank",rel:"noopener noreferrer"}},[t._v("RFC6455"),s("OutboundLink")],1),t._v(" and the corresponding client-side "),s("a",{attrs:{href:"https://www.w3.org/TR/websockets/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Websocket API"),s("OutboundLink")],1),t._v(" is defined by the W3C.\nFor more information about web sockets see the following tutorials")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mozilla - web sockets tutorial"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.tutorialspoint.com/websockets/websockets_overview.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tutorialspoint - web sockets tutorial"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("The AsTeRICS Runtime Environment (ARE) provides a websocket at "),s("code",[t._v("ws://localhost:8082/ws/astericsData")]),t._v(" which can be used to send data from a running AsTeRICS model to a web client or vice versa.")]),t._v(" "),s("h2",{attrs:{id:"example-1-web-socket-echo"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-1-web-socket-echo"}},[t._v("#")]),t._v(" Example 1 - Web socket echo")]),t._v(" "),s("p",[t._v("Sends a text message to the ARE model and echoes the sent message back to the web client.")]),t._v(" "),s("h3",{attrs:{id:"prerequisites"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed and ARE running"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&processors/WebSocket.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebSocket plugin"),s("OutboundLink")],1)])]),t._v(" "),s("h3",{attrs:{id:"create-model-with-websocket-plugin"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#create-model-with-websocket-plugin"}},[t._v("#")]),t._v(" Create model with WebSocket plugin")]),t._v(" "),s("ol",[s("li",[t._v("Open the "),s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("Add a WebSocket plugin (Components tab, Processors/Web/WebSocket)")]),t._v(" "),s("li",[t._v("Connect the output port "),s("code",[t._v("OutA")]),t._v(" to its input port "),s("code",[t._v("InA")]),t._v(": This sends messages received from a websocket client back to the client.")]),t._v(" "),s("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),s("li",[t._v("Deploy model to ARE by clicking "),s("code",[t._v("Connect to ARE")]),t._v(" and "),s("code",[t._v("Upload Model")])]),t._v(" "),s("li",[t._v("Start model by clicking "),s("code",[t._v("Start Model")])])]),t._v(" "),s("p",[s("img",{attrs:{src:a(422),alt:"Websocket plugin with output port OutA connected to input port InA"}})]),t._v(" "),s("h3",{attrs:{id:"create-web-page-with-web-socket-client"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#create-web-page-with-web-socket-client"}},[t._v("#")]),t._v(" Create web page with web socket client")]),t._v(" "),s("p",[t._v("Using a text editor, copy the following code and save it as websocket.html somewhere on your hard drive. Then simply open it in a browser. The page will automatically connect, send a message, display the response, and close the connection.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token doctype"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("charset")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("utf-8"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("WebSocket Test"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("language")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("javascript"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}},[s("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set URI of AsTERICS websocket.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" wsUri "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ws://localhost:8082/ws/astericsData"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" output"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n This method is called on page load.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("init")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n output "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"output"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("testWebSocket")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Opens a connection to the specified web socket and defines callback functions.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("testWebSocket")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Instantiates and opens web socket. ")]),t._v("\n websocket "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("WebSocket")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("wsUri"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onopen")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onOpen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onclose")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onClose")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onmessage")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onerror")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called as soon as the web socket was opened successfully.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onOpen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CONNECTED"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("doSend")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"WebSocket rocks"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called as soon as the web socket was closed.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onClose")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"DISCONNECTED"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called in case of a received message from the web socket server.\n */")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'RESPONSE: '")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("close")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called in case of an error during connect or send.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'ERROR: '")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("doSend")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("message")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SENT: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Actually sends the message to the web socket.")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("send")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("message")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" pre "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("createElement")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n pre"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("wordWrap "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"break-word"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n pre"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("innerHTML "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n output"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("appendChild")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("pre"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Register function init to be called on page load.")]),t._v("\n window"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addEventListener")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"load"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" init"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n ")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("WebSocket Test"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("output"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("h3",{attrs:{id:"resulting-output"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resulting-output"}},[t._v("#")]),t._v(" Resulting output")]),t._v(" "),s("p",[t._v("In case of success you should see something like this:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("WebSocket Test\n\nCONNECTED\n\nSENT: WebSocket rocks\n\nRESPONSE: WebSocket rocks\n\nDISCONNECTED\n")])])]),s("p",[t._v("In case of an error check if the ARE is running and the model with the WebSocket plugin is deployed and started.")]),t._v(" "),s("h2",{attrs:{id:"example-2-web-socket-demo-with-signal-data-live-chart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2-web-socket-demo-with-signal-data-live-chart"}},[t._v("#")]),t._v(" Example 2 - Web socket demo with signal data live chart")]),t._v(" "),s("p",[t._v("To try a more advanced web socket demo receiving signal data and visualizing it, please visit this "),s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuSolutionDemos:asterics-networkio-websocket",target:"_blank",rel:"noopener noreferrer"}},[t._v("web socket demo"),s("OutboundLink")],1),t._v(" to see how it works.\nYou can also clone and edit the corresponding "),s("a",{attrs:{href:"https://github.com/asterics/asterics-networkio-websocket",target:"_blank",rel:"noopener noreferrer"}},[t._v("git repository"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"references"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&processors/WebSocket.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebSocket plugin"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mozilla - web sockets tutorial"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.tutorialspoint.com/websockets/websockets_overview.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tutorialspoint - web sockets tutorial"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://tools.ietf.org/html/rfc6455",target:"_blank",rel:"noopener noreferrer"}},[t._v("RFC6455"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.w3.org/TR/websockets/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Websocket API"),s("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{422:function(t,s,a){t.exports=a.p+"assets/img/Websocket-echo-connection.441c16d0.jpg"},960:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"websocket-tutorial"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#websocket-tutorial"}},[t._v("#")]),t._v(" Websocket Tutorial")]),t._v(" "),s("p",[t._v("In this tutorial you will learn how to use the AsTeRICS websocket functionality with Javascript from within a web client.")]),t._v(" "),s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),s("p",[t._v("A web socket is defined as a two-way communication between the servers and the clients, which mean both the parties communicate and exchange data at the same time. The Websocket protocol is specified in the "),s("a",{attrs:{href:"https://tools.ietf.org/html/rfc6455",target:"_blank",rel:"noopener noreferrer"}},[t._v("RFC6455"),s("OutboundLink")],1),t._v(" and the corresponding client-side "),s("a",{attrs:{href:"https://www.w3.org/TR/websockets/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Websocket API"),s("OutboundLink")],1),t._v(" is defined by the W3C.\nFor more information about web sockets see the following tutorials")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mozilla - web sockets tutorial"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.tutorialspoint.com/websockets/websockets_overview.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tutorialspoint - web sockets tutorial"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("The AsTeRICS Runtime Environment (ARE) provides a websocket at "),s("code",[t._v("ws://localhost:8082/ws/astericsData")]),t._v(" which can be used to send data from a running AsTeRICS model to a web client or vice versa.")]),t._v(" "),s("h2",{attrs:{id:"example-1-web-socket-echo"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-1-web-socket-echo"}},[t._v("#")]),t._v(" Example 1 - Web socket echo")]),t._v(" "),s("p",[t._v("Sends a text message to the ARE model and echoes the sent message back to the web client.")]),t._v(" "),s("h3",{attrs:{id:"prerequisites"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed and ARE running"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&processors/WebSocket.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebSocket plugin"),s("OutboundLink")],1)])]),t._v(" "),s("h3",{attrs:{id:"create-model-with-websocket-plugin"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#create-model-with-websocket-plugin"}},[t._v("#")]),t._v(" Create model with WebSocket plugin")]),t._v(" "),s("ol",[s("li",[t._v("Open the "),s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("Add a WebSocket plugin (Components tab, Processors/Web/WebSocket)")]),t._v(" "),s("li",[t._v("Connect the output port "),s("code",[t._v("OutA")]),t._v(" to its input port "),s("code",[t._v("InA")]),t._v(": This sends messages received from a websocket client back to the client.")]),t._v(" "),s("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),s("li",[t._v("Deploy model to ARE by clicking "),s("code",[t._v("Connect to ARE")]),t._v(" and "),s("code",[t._v("Upload Model")])]),t._v(" "),s("li",[t._v("Start model by clicking "),s("code",[t._v("Start Model")])])]),t._v(" "),s("p",[s("img",{attrs:{src:a(422),alt:"Websocket plugin with output port OutA connected to input port InA"}})]),t._v(" "),s("h3",{attrs:{id:"create-web-page-with-web-socket-client"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#create-web-page-with-web-socket-client"}},[t._v("#")]),t._v(" Create web page with web socket client")]),t._v(" "),s("p",[t._v("Using a text editor, copy the following code and save it as websocket.html somewhere on your hard drive. Then simply open it in a browser. The page will automatically connect, send a message, display the response, and close the connection.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token doctype"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("charset")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("utf-8"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("WebSocket Test"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("language")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("javascript"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}},[s("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set URI of AsTERICS websocket.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" wsUri "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ws://localhost:8082/ws/astericsData"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" output"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n This method is called on page load.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("init")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n output "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"output"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("testWebSocket")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Opens a connection to the specified web socket and defines callback functions.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("testWebSocket")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Instantiates and opens web socket. ")]),t._v("\n websocket "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("WebSocket")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("wsUri"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onopen")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onOpen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onclose")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onClose")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onmessage")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onerror")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called as soon as the web socket was opened successfully.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onOpen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CONNECTED"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("doSend")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"WebSocket rocks"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called as soon as the web socket was closed.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onClose")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"DISCONNECTED"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called in case of a received message from the web socket server.\n */")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'RESPONSE: '")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("close")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/*\n Called in case of an error during connect or send.\n */")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'ERROR: '")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("doSend")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("message")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SENT: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Actually sends the message to the web socket.")]),t._v("\n websocket"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("send")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeToScreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("message")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" pre "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("createElement")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n pre"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("wordWrap "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"break-word"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n pre"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("innerHTML "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n output"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("appendChild")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("pre"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Register function init to be called on page load.")]),t._v("\n window"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addEventListener")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"load"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" init"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n ")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("WebSocket Test"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("output"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("h3",{attrs:{id:"resulting-output"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resulting-output"}},[t._v("#")]),t._v(" Resulting output")]),t._v(" "),s("p",[t._v("In case of success you should see something like this:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("WebSocket Test\n\nCONNECTED\n\nSENT: WebSocket rocks\n\nRESPONSE: WebSocket rocks\n\nDISCONNECTED\n")])])]),s("p",[t._v("In case of an error check if the ARE is running and the model with the WebSocket plugin is deployed and started.")]),t._v(" "),s("h2",{attrs:{id:"example-2-web-socket-demo-with-signal-data-live-chart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2-web-socket-demo-with-signal-data-live-chart"}},[t._v("#")]),t._v(" Example 2 - Web socket demo with signal data live chart")]),t._v(" "),s("p",[t._v("To try a more advanced web socket demo receiving signal data and visualizing it, please visit this "),s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuSolutionDemos:asterics-networkio-websocket",target:"_blank",rel:"noopener noreferrer"}},[t._v("web socket demo"),s("OutboundLink")],1),t._v(" to see how it works.\nYou can also clone and edit the corresponding "),s("a",{attrs:{href:"https://github.com/asterics/asterics-networkio-websocket",target:"_blank",rel:"noopener noreferrer"}},[t._v("git repository"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"references"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&processors/WebSocket.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebSocket plugin"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mozilla - web sockets tutorial"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.tutorialspoint.com/websockets/websockets_overview.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tutorialspoint - web sockets tutorial"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://tools.ietf.org/html/rfc6455",target:"_blank",rel:"noopener noreferrer"}},[t._v("RFC6455"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.w3.org/TR/websockets/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Websocket API"),s("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/112.4dce625e.js b/assets/js/112.6cb9c5a9.js similarity index 98% rename from assets/js/112.4dce625e.js rename to assets/js/112.6cb9c5a9.js index 66247578fe..3c6a988314 100644 --- a/assets/js/112.4dce625e.js +++ b/assets/js/112.6cb9c5a9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{423:function(e,t,r){e.exports=r.p+"assets/img/grid_default_en.e1d52b18.jpg"},964:function(e,t,r){"use strict";r.r(t);var i=r(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"dynamic-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-grid"}},[e._v("#")]),e._v(" Dynamic grid")]),e._v(" "),t("p",[e._v("This chapter is about the technical background of the dynamic grid system which visualizes grids and grid elements in AsTeRICS Grid.")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html#general"}},[e._v("General")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html#gridlist-and-gridjs"}},[e._v("GridList and grid.js")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html#repositioning-and-resizing-of-elements"}},[e._v("Repositioning and resizing of elements")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("p",[e._v("When opening AsTeRICS Grid in the main view the latest used grid is shown:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(423),alt:"default grid"}})]),e._v(" "),t("p",[e._v("From a technical perspective this grid is a unordered list ("),t("code",[e._v("
    ")]),e._v(") where each list element ("),t("code",[e._v("
  • ")]),e._v(") represents a grid element. HTML representations for these grid elements are generated in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/templates.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("templates.js"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"gridlist-and-grid-js"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gridlist-and-grid-js"}},[e._v("#")]),e._v(" GridList and grid.js")]),e._v(" "),t("p",[e._v("Positioning of the grid elements is done by the "),t("a",{attrs:{href:"https://github.com/klues/grid",target:"_blank",rel:"noopener noreferrer"}},[e._v("GridList library"),t("OutboundLink")],1),e._v(". It is initialized and used in the file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/grid.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("grid.js"),t("OutboundLink")],1),e._v(". All relevant code for functionalities like repositioning or resizing can be found there. Styling of the grid and it’s elements is done by the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/css/gridlist.css",target:"_blank",rel:"noopener noreferrer"}},[e._v("gridlist.css"),t("OutboundLink")],1),e._v(" stylesheet.")]),e._v(" "),t("p",[e._v("For undo and redo functionalities of the edit view "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/grid.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("grid.js"),t("OutboundLink")],1),e._v(" uses the functions of the file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/service/data/undoService.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("undoService.js"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"repositioning-and-resizing-of-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#repositioning-and-resizing-of-elements"}},[e._v("#")]),e._v(" Repositioning and resizing of elements")]),e._v(" "),t("p",[e._v("Repositioning of elements is already supported by default by the "),t("a",{attrs:{href:"https://github.com/klues/grid",target:"_blank",rel:"noopener noreferrer"}},[e._v("GridList library"),t("OutboundLink")],1),e._v(". For resizing of elements the "),t("a",{attrs:{href:"https://jqueryui.com/resizable/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Resizable"),t("OutboundLink")],1),e._v(" functionality of jQueryUI is used. The code for connecting jQueryUI Resizable with GridList can be found in the function "),t("code",[e._v("getResizeOptions()")]),e._v(" in the "),t("code",[e._v("resize")]),e._v(" handler about at "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/grid.js#L151",target:"_blank",rel:"noopener noreferrer"}},[e._v("grid.js:151"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{423:function(e,t,r){e.exports=r.p+"assets/img/grid_default_en.e1d52b18.jpg"},962:function(e,t,r){"use strict";r.r(t);var i=r(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"dynamic-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-grid"}},[e._v("#")]),e._v(" Dynamic grid")]),e._v(" "),t("p",[e._v("This chapter is about the technical background of the dynamic grid system which visualizes grids and grid elements in AsTeRICS Grid.")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html#general"}},[e._v("General")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html#gridlist-and-gridjs"}},[e._v("GridList and grid.js")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html#repositioning-and-resizing-of-elements"}},[e._v("Repositioning and resizing of elements")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("p",[e._v("When opening AsTeRICS Grid in the main view the latest used grid is shown:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(423),alt:"default grid"}})]),e._v(" "),t("p",[e._v("From a technical perspective this grid is a unordered list ("),t("code",[e._v("
      ")]),e._v(") where each list element ("),t("code",[e._v("
    • ")]),e._v(") represents a grid element. HTML representations for these grid elements are generated in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/templates.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("templates.js"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"gridlist-and-grid-js"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gridlist-and-grid-js"}},[e._v("#")]),e._v(" GridList and grid.js")]),e._v(" "),t("p",[e._v("Positioning of the grid elements is done by the "),t("a",{attrs:{href:"https://github.com/klues/grid",target:"_blank",rel:"noopener noreferrer"}},[e._v("GridList library"),t("OutboundLink")],1),e._v(". It is initialized and used in the file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/grid.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("grid.js"),t("OutboundLink")],1),e._v(". All relevant code for functionalities like repositioning or resizing can be found there. Styling of the grid and it’s elements is done by the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/css/gridlist.css",target:"_blank",rel:"noopener noreferrer"}},[e._v("gridlist.css"),t("OutboundLink")],1),e._v(" stylesheet.")]),e._v(" "),t("p",[e._v("For undo and redo functionalities of the edit view "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/grid.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("grid.js"),t("OutboundLink")],1),e._v(" uses the functions of the file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/service/data/undoService.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("undoService.js"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"repositioning-and-resizing-of-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#repositioning-and-resizing-of-elements"}},[e._v("#")]),e._v(" Repositioning and resizing of elements")]),e._v(" "),t("p",[e._v("Repositioning of elements is already supported by default by the "),t("a",{attrs:{href:"https://github.com/klues/grid",target:"_blank",rel:"noopener noreferrer"}},[e._v("GridList library"),t("OutboundLink")],1),e._v(". For resizing of elements the "),t("a",{attrs:{href:"https://jqueryui.com/resizable/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Resizable"),t("OutboundLink")],1),e._v(" functionality of jQueryUI is used. The code for connecting jQueryUI Resizable with GridList can be found in the function "),t("code",[e._v("getResizeOptions()")]),e._v(" in the "),t("code",[e._v("resize")]),e._v(" handler about at "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/grid.js#L151",target:"_blank",rel:"noopener noreferrer"}},[e._v("grid.js:151"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/113.2687132e.js b/assets/js/113.821c8369.js similarity index 99% rename from assets/js/113.2687132e.js rename to assets/js/113.821c8369.js index b45b2034ad..c5a68fff53 100644 --- a/assets/js/113.2687132e.js +++ b/assets/js/113.821c8369.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{424:function(e,t,n){e.exports=n.p+"assets/img/main.a269c26b.png"},965:function(e,t,n){"use strict";n.r(t);var r=n(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"vue-js"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#vue-js"}},[e._v("#")]),e._v(" Vue.js")]),e._v(" "),t("p",[e._v("This chapter is about "),t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vue.js"),t("OutboundLink")],1),e._v(", the single-page application framework used for AsTeRICS Grid.")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#general"}},[e._v("General")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#component-structure"}},[e._v("Component structure")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#used-components"}},[e._v("Used components")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("p",[e._v("In AsTeRICS Grid "),t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vue.js"),t("OutboundLink")],1),e._v(" is used in order to manage views and it’s elements in components and to create all kinds of interactivity in the UI. In Vue.js components can be organized in single "),t("code",[e._v(".vue")]),e._v(" files, containing the HTML, Javascript and CSS needed for this component. These are the files and folders that are important regarding the usage of Vue.js:")]),e._v(" "),t("ul",[t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/vue-components",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/vue-components"),t("OutboundLink")],1)]),e._v(": contains all Vue.js single-file components ("),t("code",[e._v(".vue")]),e._v(" files)")]),e._v(" "),t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.html"),t("OutboundLink")],1)]),e._v(": contains the HTML for the main Vue wrapper component consisting of the navigation sidebar and a placeholder for the currently show view")]),e._v(" "),t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/mainVue.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/vue/mainVue.js"),t("OutboundLink")],1)]),e._v(": Javascript part for the main Vue component in "),t("code",[e._v("index.html")])]),e._v(" "),t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/vuePluginManager.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/vue/vuePluginManager.js"),t("OutboundLink")],1)]),e._v(": defines custom Vue directives and filters that can be used globally, e.g. a "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#vuejs-filter"}},[e._v("translate filter")]),e._v(".")],1)]),e._v(" "),t("h2",{attrs:{id:"component-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-structure"}},[e._v("#")]),e._v(" Component structure")]),e._v(" "),t("p",[e._v("The main Vue wrapper component is defined in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.html"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/mainVue.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("mainVue.js"),t("OutboundLink")],1),e._v(". This line in "),t("code",[e._v("index.html")]),e._v(" is a placeholder for the currently shown view of the application:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('\n')])])]),t("p",[e._v("The method "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/mainVue.js",target:"_blank",rel:"noopener noreferrer"}},[t("code",[e._v("MainVue.setViewComponent()")]),t("OutboundLink")],1),e._v(" is used in order to change the currently shown view. This method is primarily used by "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/router.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("router.js"),t("OutboundLink")],1),e._v(" which chooses the correct view based on the current "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Fragment_identifier",target:"_blank",rel:"noopener noreferrer"}},[e._v("URL hash"),t("OutboundLink")],1),e._v(" in the address. For instance "),t("code",[e._v("https://grid.asterics.eu/#grids")]),e._v(" has the hash "),t("code",[e._v("#grids")]),e._v(" and therefore will render the "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#manage-grids-view"}},[e._v("manage grids")]),e._v(" component which is defined in file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/views/allGridsView.vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("allGridsView.vue"),t("OutboundLink")],1),e._v(".")],1),e._v(" "),t("p",[e._v("Figure 1 highlights the Vue.js components that are used for the main view:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(424),alt:""}}),e._v(" "),t("em",[e._v("Fig. 1: Vue component structure of the main view, red part is replaced depending on the current navigation")])]),e._v(" "),t("h2",{attrs:{id:"used-components"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#used-components"}},[e._v("#")]),e._v(" Used components")]),e._v(" "),t("p",[e._v("The used Vue components can be found in the folder "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/vue-components",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/vue-components"),t("OutboundLink")],1),e._v(" which contains the following folders:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("components")]),e._v(": generic components that can be used in various places across the application:\n"),t("ul",[t("li",[t("strong",[e._v("comparisonComponent.vue")]),e._v(": accordion component showing a comparison between online and offline users (information only)")]),e._v(" "),t("li",[t("strong",[e._v("headerIcon.vue")]),e._v(": component used in the header of different views which shows a hamburger menu and the AsTeRICS Grid logo")])])]),e._v(" "),t("li",[t("strong",[e._v("modals")]),e._v(": contains all kinds of modals (popup dialogs):\n"),t("ul",[t("li",[t("strong",[e._v("addMultipleModal.vue")]),e._v(": modal for importing multiple new grid elements at once, used in "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#edit-view"}},[e._v("edit view")])],1),e._v(" "),t("li",[t("strong",[e._v("editActionsModal.vue")]),e._v(": action edit modal for a grid element, see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/05_actions.html#edit-actions-modal"}},[e._v("Actions")]),e._v(" chapter in user documentation. The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/modals/editActionsSub/editAREAction.vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("editAREAction.vue"),t("OutboundLink")],1),e._v(" is a sub-component of this modal containing the configuration of an "),t("RouterLink",{attrs:{to:"/develop/documentation_user/05_actions.html#asterics-action"}},[e._v("AsTeRICS action")]),e._v(".")],1),e._v(" "),t("li",[t("strong",[e._v("editGridModal.vue")]),e._v(": edit modal for a grid element (label and image), see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/03_appearance_layout.html#edit-modal"}},[e._v("Grid appearance and layout")]),e._v(" in user documentation")],1),e._v(" "),t("li",[t("strong",[e._v("importDictionaryModal.vue")]),e._v(": modal for importing new words to a dictionary, see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/07_dictionaries.html#add-words"}},[e._v("Dictionaries")]),e._v(" in user documentation")],1),e._v(" "),t("li",[t("strong",[e._v("inputOptionsModal.vue")]),e._v(": modal for setting input options like e.g. scanning, see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/04_input_options.html"}},[e._v("Input Options")]),e._v(" in user documentation")],1)])]),e._v(" "),t("li",[t("strong",[e._v("views")]),e._v(": contains different views which are rendered into the component placeholder described in "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#component-structure"}},[e._v("component structure")]),e._v(":\n"),t("ul",[t("li",[t("strong",[e._v("aboutView.vue")]),e._v(": view containing general information about AsTeRICS Grid")]),e._v(" "),t("li",[t("strong",[e._v("addOfflineView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/06_users.html#offline-users"}},[e._v("Offline users")])],1),e._v(" "),t("li",[t("strong",[e._v("allGridsView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#manage-grids-view"}},[e._v("Manage grids view")])],1),e._v(" "),t("li",[t("strong",[e._v("dictionariesView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#manage-dictionaries-view"}},[e._v("Manage dictionaries view")])],1),e._v(" "),t("li",[t("strong",[e._v("gridEditView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#edit-view"}},[e._v("Edit view")])],1),e._v(" "),t("li",[t("strong",[e._v("gridView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#main-view"}},[e._v("Main view")])],1),e._v(" "),t("li",[t("strong",[e._v("loginView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#change-user-view"}},[e._v("Change user view")])],1),e._v(" "),t("li",[t("strong",[e._v("registerView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/06_users.html#online-users"}},[e._v("Online users")])],1),e._v(" "),t("li",[t("strong",[e._v("welcomeView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#welcome-view"}})],1)])],1)]),e._v(" "),t("p",[e._v("For general information about the structure and usage of Vue.js components, see the official documentation, for instance "),t("a",{attrs:{href:"https://vuejs.org/v2/guide/components.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Component Basics"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/05_datamodel.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{424:function(e,t,n){e.exports=n.p+"assets/img/main.a269c26b.png"},963:function(e,t,n){"use strict";n.r(t);var r=n(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"vue-js"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#vue-js"}},[e._v("#")]),e._v(" Vue.js")]),e._v(" "),t("p",[e._v("This chapter is about "),t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vue.js"),t("OutboundLink")],1),e._v(", the single-page application framework used for AsTeRICS Grid.")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#general"}},[e._v("General")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#component-structure"}},[e._v("Component structure")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#used-components"}},[e._v("Used components")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("p",[e._v("In AsTeRICS Grid "),t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vue.js"),t("OutboundLink")],1),e._v(" is used in order to manage views and it’s elements in components and to create all kinds of interactivity in the UI. In Vue.js components can be organized in single "),t("code",[e._v(".vue")]),e._v(" files, containing the HTML, Javascript and CSS needed for this component. These are the files and folders that are important regarding the usage of Vue.js:")]),e._v(" "),t("ul",[t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/vue-components",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/vue-components"),t("OutboundLink")],1)]),e._v(": contains all Vue.js single-file components ("),t("code",[e._v(".vue")]),e._v(" files)")]),e._v(" "),t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.html"),t("OutboundLink")],1)]),e._v(": contains the HTML for the main Vue wrapper component consisting of the navigation sidebar and a placeholder for the currently show view")]),e._v(" "),t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/mainVue.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/vue/mainVue.js"),t("OutboundLink")],1)]),e._v(": Javascript part for the main Vue component in "),t("code",[e._v("index.html")])]),e._v(" "),t("li",[t("strong",[t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/vuePluginManager.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/vue/vuePluginManager.js"),t("OutboundLink")],1)]),e._v(": defines custom Vue directives and filters that can be used globally, e.g. a "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#vuejs-filter"}},[e._v("translate filter")]),e._v(".")],1)]),e._v(" "),t("h2",{attrs:{id:"component-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-structure"}},[e._v("#")]),e._v(" Component structure")]),e._v(" "),t("p",[e._v("The main Vue wrapper component is defined in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.html"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/mainVue.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("mainVue.js"),t("OutboundLink")],1),e._v(". This line in "),t("code",[e._v("index.html")]),e._v(" is a placeholder for the currently shown view of the application:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('\n')])])]),t("p",[e._v("The method "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/mainVue.js",target:"_blank",rel:"noopener noreferrer"}},[t("code",[e._v("MainVue.setViewComponent()")]),t("OutboundLink")],1),e._v(" is used in order to change the currently shown view. This method is primarily used by "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/router.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("router.js"),t("OutboundLink")],1),e._v(" which chooses the correct view based on the current "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Fragment_identifier",target:"_blank",rel:"noopener noreferrer"}},[e._v("URL hash"),t("OutboundLink")],1),e._v(" in the address. For instance "),t("code",[e._v("https://grid.asterics.eu/#grids")]),e._v(" has the hash "),t("code",[e._v("#grids")]),e._v(" and therefore will render the "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#manage-grids-view"}},[e._v("manage grids")]),e._v(" component which is defined in file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/views/allGridsView.vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("allGridsView.vue"),t("OutboundLink")],1),e._v(".")],1),e._v(" "),t("p",[e._v("Figure 1 highlights the Vue.js components that are used for the main view:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(424),alt:""}}),e._v(" "),t("em",[e._v("Fig. 1: Vue component structure of the main view, red part is replaced depending on the current navigation")])]),e._v(" "),t("h2",{attrs:{id:"used-components"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#used-components"}},[e._v("#")]),e._v(" Used components")]),e._v(" "),t("p",[e._v("The used Vue components can be found in the folder "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/vue-components",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/vue-components"),t("OutboundLink")],1),e._v(" which contains the following folders:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("components")]),e._v(": generic components that can be used in various places across the application:\n"),t("ul",[t("li",[t("strong",[e._v("comparisonComponent.vue")]),e._v(": accordion component showing a comparison between online and offline users (information only)")]),e._v(" "),t("li",[t("strong",[e._v("headerIcon.vue")]),e._v(": component used in the header of different views which shows a hamburger menu and the AsTeRICS Grid logo")])])]),e._v(" "),t("li",[t("strong",[e._v("modals")]),e._v(": contains all kinds of modals (popup dialogs):\n"),t("ul",[t("li",[t("strong",[e._v("addMultipleModal.vue")]),e._v(": modal for importing multiple new grid elements at once, used in "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#edit-view"}},[e._v("edit view")])],1),e._v(" "),t("li",[t("strong",[e._v("editActionsModal.vue")]),e._v(": action edit modal for a grid element, see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/05_actions.html#edit-actions-modal"}},[e._v("Actions")]),e._v(" chapter in user documentation. The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/modals/editActionsSub/editAREAction.vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("editAREAction.vue"),t("OutboundLink")],1),e._v(" is a sub-component of this modal containing the configuration of an "),t("RouterLink",{attrs:{to:"/develop/documentation_user/05_actions.html#asterics-action"}},[e._v("AsTeRICS action")]),e._v(".")],1),e._v(" "),t("li",[t("strong",[e._v("editGridModal.vue")]),e._v(": edit modal for a grid element (label and image), see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/03_appearance_layout.html#edit-modal"}},[e._v("Grid appearance and layout")]),e._v(" in user documentation")],1),e._v(" "),t("li",[t("strong",[e._v("importDictionaryModal.vue")]),e._v(": modal for importing new words to a dictionary, see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/07_dictionaries.html#add-words"}},[e._v("Dictionaries")]),e._v(" in user documentation")],1),e._v(" "),t("li",[t("strong",[e._v("inputOptionsModal.vue")]),e._v(": modal for setting input options like e.g. scanning, see chapter "),t("RouterLink",{attrs:{to:"/develop/documentation_user/04_input_options.html"}},[e._v("Input Options")]),e._v(" in user documentation")],1)])]),e._v(" "),t("li",[t("strong",[e._v("views")]),e._v(": contains different views which are rendered into the component placeholder described in "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/04_vuejs.html#component-structure"}},[e._v("component structure")]),e._v(":\n"),t("ul",[t("li",[t("strong",[e._v("aboutView.vue")]),e._v(": view containing general information about AsTeRICS Grid")]),e._v(" "),t("li",[t("strong",[e._v("addOfflineView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/06_users.html#offline-users"}},[e._v("Offline users")])],1),e._v(" "),t("li",[t("strong",[e._v("allGridsView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#manage-grids-view"}},[e._v("Manage grids view")])],1),e._v(" "),t("li",[t("strong",[e._v("dictionariesView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#manage-dictionaries-view"}},[e._v("Manage dictionaries view")])],1),e._v(" "),t("li",[t("strong",[e._v("gridEditView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#edit-view"}},[e._v("Edit view")])],1),e._v(" "),t("li",[t("strong",[e._v("gridView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#main-view"}},[e._v("Main view")])],1),e._v(" "),t("li",[t("strong",[e._v("loginView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#change-user-view"}},[e._v("Change user view")])],1),e._v(" "),t("li",[t("strong",[e._v("registerView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/06_users.html#online-users"}},[e._v("Online users")])],1),e._v(" "),t("li",[t("strong",[e._v("welcomeView.vue")]),e._v(": see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/02_navigation.html#welcome-view"}})],1)])],1)]),e._v(" "),t("p",[e._v("For general information about the structure and usage of Vue.js components, see the official documentation, for instance "),t("a",{attrs:{href:"https://vuejs.org/v2/guide/components.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Component Basics"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/05_datamodel.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/114.6f7ee5f4.js b/assets/js/114.a5910d07.js similarity index 99% rename from assets/js/114.6f7ee5f4.js rename to assets/js/114.a5910d07.js index 564c284373..a46040afcc 100644 --- a/assets/js/114.6f7ee5f4.js +++ b/assets/js/114.a5910d07.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{425:function(e,t,a){e.exports=a.p+"assets/img/data_storage_layers_en.f40ca1cb.png"},967:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"data-storage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-storage"}},[e._v("#")]),e._v(" Data storage")]),e._v(" "),t("p",[e._v("This chapter is about the data storage concept used in AsTeRICS Grid, meaning where and how user configuration and application data is stored.")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#introduction"}},[e._v("Introduction")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#data-storage-abstraction-layers"}},[e._v("Abstraction layers")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#one-database-per-user"}},[e._v("One database per user")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#authentication-layer"}},[e._v("Authentication layer")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#inspecting-locally-saved-data"}},[e._v("Inspecting locally saved data")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"introduction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),t("p",[e._v("Since AsTeRICS Grid is designed to work offline, all configuration and user data have to be accessible without internet connection. There are the following possibilities for providing a data storage for an offline web-application:")]),e._v(" "),t("ol",[t("li",[e._v("Any external locally running storage service, e.g. any locally running database like MySQL or MariaDB. This possibility has the downside that users would have to install additional Software in order to use AsTeRICS Grid.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage",target:"_blank",rel:"noopener noreferrer"}},[e._v("LocalStorage"),t("OutboundLink")],1),e._v(", a browser internal storage which is capable to store key-value pairs of string values. However the amount of data is "),t("a",{attrs:{href:"https://www.html5rocks.com/en/tutorials/offline/quota-research/",target:"_blank",rel:"noopener noreferrer"}},[e._v("limited to about 5-10MB"),t("OutboundLink")],1),e._v(" in many browsers which is often too little to store all grids in AsTeRICS Grid.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("IndexedDB"),t("OutboundLink")],1),e._v(", a browser internal storage for big amounts of structured data")])]),e._v(" "),t("p",[e._v("AsTeRICS Grid uses LocalStorage for temporary data which should not synchronized with the cloud (e.g. hashed encryption password) and IndexedDB for the majority of configuration like e.g. data of stored grids. For online users all data that is stored in IndexedDB is synchronized with the cloud, for offline users (see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/06_users.html"}},[e._v("Users")]),e._v(") data is only stored locally on the device.")],1),e._v(" "),t("p",[e._v("For accessing IndexedDB in a more comfortable manner and making synchronization with a remote "),t("a",{attrs:{href:"http://couchdb.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CouchDB"),t("OutboundLink")],1),e._v(" possible, the Javascript library "),t("a",{attrs:{href:"https://pouchdb.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PouchDB"),t("OutboundLink")],1),e._v(" is used.")]),e._v(" "),t("h2",{attrs:{id:"data-storage-abstraction-layers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-storage-abstraction-layers"}},[e._v("#")]),e._v(" Data storage abstraction layers")]),e._v(" "),t("p",[e._v("All Javascript modules regarding storage of data in AsTeRICS Grid can be found in the folder "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/js/service/data",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/service/data"),t("OutboundLink")],1),e._v(". Figure 1 shows the relevant files and their relationships:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(425),alt:"Concept of data storage layers"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 1: Concept of data storage layers")])]),e._v(" "),t("p",[e._v("These are the responsibilities and functions of the different modules:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("dataService.js")]),e._v(": provides access to data objects on an application based abstraction level; implements methods that make it possible to get and save the objects described in chapter "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/05_datamodel.html"}},[e._v("Data model")]),e._v(", e.g. "),t("code",[e._v("GridData")]),e._v(" objects.")],1),e._v(" "),t("li",[t("strong",[e._v("databaseService.js")]),e._v(": implements "),t("a",{attrs:{href:"https://de.wikipedia.org/wiki/CRUD",target:"_blank",rel:"noopener noreferrer"}},[e._v("CRUD"),t("OutboundLink")],1),e._v(" methods for generic data model objects, methods for switching databases (users) and initializes databases with default data. This layer also does encryption and decryption of data using "),t("code",[e._v("convertServiceDb.js")]),e._v(". This level of abstraction is still quite independent of "),t("a",{attrs:{href:"https://pouchdb.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PouchDB"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("IndexedDB"),t("OutboundLink")],1),e._v(" and theoretically could also use a different backend.")]),e._v(" "),t("li",[t("strong",[e._v("pouchDbService.js")]),e._v(": performs queries and actions on a PouchDB instance actually accessing the IndexedDB or CouchDB databases. It also caches queries for performance optimizations and broadcasts events if updates from the remote database are recognized.")]),e._v(" "),t("li",[t("strong",[e._v("pouchDBAdapter.js")]),e._v(": manages which actual database should be used, a local PouchDB instance or a remote CouchDB. Also sets up synchronization between both.")]),e._v(" "),t("li",[t("strong",[e._v("undoService.js")]),e._v(": is used by "),t("code",[e._v("grid.js")]),e._v(" in order to pass updates on grids to "),t("code",[e._v("dataService.js")]),e._v(" while keeping track of changes and providing an undo and redo functionality")]),e._v(" "),t("li",[t("strong",[e._v("convertServiceDb.js")]),e._v(": provides methods in order to convert objects used in the application to (encrypted) objects that should be saved to database and vice versa. If an object with an outdated data model version passes these methods, additional filter functions are inserted in order to upgrade the data model.")]),e._v(" "),t("li",[t("strong",[e._v("encryptionService.js")]),e._v(": provides methods for AES encryption and decryption and hasing of data objects and strings using the "),t("a",{attrs:{href:"https://github.com/bitwiseshiftleft/sjcl",target:"_blank",rel:"noopener noreferrer"}},[e._v("sjcl"),t("OutboundLink")],1),e._v(" library")]),e._v(" "),t("li",[t("strong",[e._v("localStorageService.js")]),e._v(": accesses the browser internal "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage",target:"_blank",rel:"noopener noreferrer"}},[e._v("LocalStorage"),t("OutboundLink")],1),e._v(" for saving data like the last active user or hashed user passwords - in general data which should not be synchronized to cloud or aren’t suitable for a user’s database.")])]),e._v(" "),t("h2",{attrs:{id:"one-database-per-user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-database-per-user"}},[e._v("#")]),e._v(" One database per user")]),e._v(" "),t("p",[e._v("AsTeRICS Grid implements the idea of "),t("a",{attrs:{href:"https://www.joshmorony.com/creating-a-multiple-user-app-with-pouchdb-couchdb/",target:"_blank",rel:"noopener noreferrer"}},[e._v("one database per user"),t("OutboundLink")],1),e._v(". For each user a new database is created. Offline users have an own IndexedDB database within the browser and online users have both a local IndexedDB database and an online CouchDB database which are kept in sync by "),t("a",{attrs:{href:"https://pouchdb.com/guides/replication.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("replication features"),t("OutboundLink")],1),e._v(" of the PouchDB library. Advantages of this approach are:")]),e._v(" "),t("ul",[t("li",[e._v("access rights are easy to manage, each user can access their own database and nothing else")]),e._v(" "),t("li",[e._v("it’s easy to delete all data of a user, just delete their database")]),e._v(" "),t("li",[e._v("replication and synchronizing is simple, the whole user database can be replicated on the local device")])]),e._v(" "),t("h2",{attrs:{id:"authentication-layer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#authentication-layer"}},[e._v("#")]),e._v(" Authentication layer")]),e._v(" "),t("p",[e._v("The one-database-per-user approach needs a layer for managing user accounts and the corresponding CouchDB user databases (only for online users). For AsTeRICS Grid the framework "),t("a",{attrs:{href:"https://github.com/sen-su/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin"),t("OutboundLink")],1),e._v(" is used. It provides an API in order to register and login users and creates the corresponding CouchDB databases in the background. However the "),t("a",{attrs:{href:"https://github.com/colinskow/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("original superlogin project"),t("OutboundLink")],1),e._v(" seems to be no longer maintained and therefore AsTeRICS Grid uses a more up-to-date "),t("a",{attrs:{href:"https://github.com/sen-su/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("fork"),t("OutboundLink")],1),e._v(" of it.")]),e._v(" "),t("p",[e._v("The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/superlogin/start.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin/start.js"),t("OutboundLink")],1),e._v(" starts superlogin and contains it’s configuration (= server side). The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/service/loginService.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("loginService.js"),t("OutboundLink")],1),e._v(" is the client-side counterpart which uses the library "),t("a",{attrs:{href:"https://www.npmjs.com/package/superlogin-client",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin-client"),t("OutboundLink")],1),e._v(" in order to connect to and make use of the superlogin server.")]),e._v(" "),t("p",[e._v("In order to start superlogin a CouchDB instance must be running on the same machine and the correct CouchDB parameters have to be inserted in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/superlogin/start.js#L43",target:"_blank",rel:"noopener noreferrer"}},[e._v("start.js:43"),t("OutboundLink")],1),e._v(". Then use "),t("code",[e._v("npm run start-superlogin-dev")]),e._v(" or "),t("code",[e._v("npm run start-superlogin-prod")]),e._v(" in order to start superlogin in development or production mode.")]),e._v(" "),t("h2",{attrs:{id:"inspecting-locally-saved-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inspecting-locally-saved-data"}},[e._v("#")]),e._v(" Inspecting locally saved data")]),e._v(" "),t("p",[e._v("For examining the locally saved data of AsTeRICS Grid do the following (e.g. in Firefox or Chrome browser):")]),e._v(" "),t("ol",[t("li",[e._v("open developer tools ("),t("code",[e._v("Ctrl + Shift + I")]),e._v(" or "),t("code",[e._v("right click -> Inspect")]),e._v(")")]),e._v(" "),t("li",[e._v("go to "),t("code",[e._v("Application")]),e._v(" (Chrome) or "),t("code",[e._v("Web-Storage")]),e._v(" (Firefox)")]),e._v(" "),t("li",[e._v("open "),t("code",[e._v("LocalStorage")]),e._v(" or "),t("code",[e._v("IndexedDB")]),e._v(" to inspect the data saved in these storages")])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/05_datamodel.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{425:function(e,t,a){e.exports=a.p+"assets/img/data_storage_layers_en.f40ca1cb.png"},965:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"data-storage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-storage"}},[e._v("#")]),e._v(" Data storage")]),e._v(" "),t("p",[e._v("This chapter is about the data storage concept used in AsTeRICS Grid, meaning where and how user configuration and application data is stored.")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#introduction"}},[e._v("Introduction")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#data-storage-abstraction-layers"}},[e._v("Abstraction layers")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#one-database-per-user"}},[e._v("One database per user")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#authentication-layer"}},[e._v("Authentication layer")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html#inspecting-locally-saved-data"}},[e._v("Inspecting locally saved data")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"introduction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),t("p",[e._v("Since AsTeRICS Grid is designed to work offline, all configuration and user data have to be accessible without internet connection. There are the following possibilities for providing a data storage for an offline web-application:")]),e._v(" "),t("ol",[t("li",[e._v("Any external locally running storage service, e.g. any locally running database like MySQL or MariaDB. This possibility has the downside that users would have to install additional Software in order to use AsTeRICS Grid.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage",target:"_blank",rel:"noopener noreferrer"}},[e._v("LocalStorage"),t("OutboundLink")],1),e._v(", a browser internal storage which is capable to store key-value pairs of string values. However the amount of data is "),t("a",{attrs:{href:"https://www.html5rocks.com/en/tutorials/offline/quota-research/",target:"_blank",rel:"noopener noreferrer"}},[e._v("limited to about 5-10MB"),t("OutboundLink")],1),e._v(" in many browsers which is often too little to store all grids in AsTeRICS Grid.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("IndexedDB"),t("OutboundLink")],1),e._v(", a browser internal storage for big amounts of structured data")])]),e._v(" "),t("p",[e._v("AsTeRICS Grid uses LocalStorage for temporary data which should not synchronized with the cloud (e.g. hashed encryption password) and IndexedDB for the majority of configuration like e.g. data of stored grids. For online users all data that is stored in IndexedDB is synchronized with the cloud, for offline users (see "),t("RouterLink",{attrs:{to:"/develop/documentation_user/06_users.html"}},[e._v("Users")]),e._v(") data is only stored locally on the device.")],1),e._v(" "),t("p",[e._v("For accessing IndexedDB in a more comfortable manner and making synchronization with a remote "),t("a",{attrs:{href:"http://couchdb.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CouchDB"),t("OutboundLink")],1),e._v(" possible, the Javascript library "),t("a",{attrs:{href:"https://pouchdb.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PouchDB"),t("OutboundLink")],1),e._v(" is used.")]),e._v(" "),t("h2",{attrs:{id:"data-storage-abstraction-layers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-storage-abstraction-layers"}},[e._v("#")]),e._v(" Data storage abstraction layers")]),e._v(" "),t("p",[e._v("All Javascript modules regarding storage of data in AsTeRICS Grid can be found in the folder "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/js/service/data",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/service/data"),t("OutboundLink")],1),e._v(". Figure 1 shows the relevant files and their relationships:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(425),alt:"Concept of data storage layers"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 1: Concept of data storage layers")])]),e._v(" "),t("p",[e._v("These are the responsibilities and functions of the different modules:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("dataService.js")]),e._v(": provides access to data objects on an application based abstraction level; implements methods that make it possible to get and save the objects described in chapter "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/05_datamodel.html"}},[e._v("Data model")]),e._v(", e.g. "),t("code",[e._v("GridData")]),e._v(" objects.")],1),e._v(" "),t("li",[t("strong",[e._v("databaseService.js")]),e._v(": implements "),t("a",{attrs:{href:"https://de.wikipedia.org/wiki/CRUD",target:"_blank",rel:"noopener noreferrer"}},[e._v("CRUD"),t("OutboundLink")],1),e._v(" methods for generic data model objects, methods for switching databases (users) and initializes databases with default data. This layer also does encryption and decryption of data using "),t("code",[e._v("convertServiceDb.js")]),e._v(". This level of abstraction is still quite independent of "),t("a",{attrs:{href:"https://pouchdb.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PouchDB"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("IndexedDB"),t("OutboundLink")],1),e._v(" and theoretically could also use a different backend.")]),e._v(" "),t("li",[t("strong",[e._v("pouchDbService.js")]),e._v(": performs queries and actions on a PouchDB instance actually accessing the IndexedDB or CouchDB databases. It also caches queries for performance optimizations and broadcasts events if updates from the remote database are recognized.")]),e._v(" "),t("li",[t("strong",[e._v("pouchDBAdapter.js")]),e._v(": manages which actual database should be used, a local PouchDB instance or a remote CouchDB. Also sets up synchronization between both.")]),e._v(" "),t("li",[t("strong",[e._v("undoService.js")]),e._v(": is used by "),t("code",[e._v("grid.js")]),e._v(" in order to pass updates on grids to "),t("code",[e._v("dataService.js")]),e._v(" while keeping track of changes and providing an undo and redo functionality")]),e._v(" "),t("li",[t("strong",[e._v("convertServiceDb.js")]),e._v(": provides methods in order to convert objects used in the application to (encrypted) objects that should be saved to database and vice versa. If an object with an outdated data model version passes these methods, additional filter functions are inserted in order to upgrade the data model.")]),e._v(" "),t("li",[t("strong",[e._v("encryptionService.js")]),e._v(": provides methods for AES encryption and decryption and hasing of data objects and strings using the "),t("a",{attrs:{href:"https://github.com/bitwiseshiftleft/sjcl",target:"_blank",rel:"noopener noreferrer"}},[e._v("sjcl"),t("OutboundLink")],1),e._v(" library")]),e._v(" "),t("li",[t("strong",[e._v("localStorageService.js")]),e._v(": accesses the browser internal "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage",target:"_blank",rel:"noopener noreferrer"}},[e._v("LocalStorage"),t("OutboundLink")],1),e._v(" for saving data like the last active user or hashed user passwords - in general data which should not be synchronized to cloud or aren’t suitable for a user’s database.")])]),e._v(" "),t("h2",{attrs:{id:"one-database-per-user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-database-per-user"}},[e._v("#")]),e._v(" One database per user")]),e._v(" "),t("p",[e._v("AsTeRICS Grid implements the idea of "),t("a",{attrs:{href:"https://www.joshmorony.com/creating-a-multiple-user-app-with-pouchdb-couchdb/",target:"_blank",rel:"noopener noreferrer"}},[e._v("one database per user"),t("OutboundLink")],1),e._v(". For each user a new database is created. Offline users have an own IndexedDB database within the browser and online users have both a local IndexedDB database and an online CouchDB database which are kept in sync by "),t("a",{attrs:{href:"https://pouchdb.com/guides/replication.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("replication features"),t("OutboundLink")],1),e._v(" of the PouchDB library. Advantages of this approach are:")]),e._v(" "),t("ul",[t("li",[e._v("access rights are easy to manage, each user can access their own database and nothing else")]),e._v(" "),t("li",[e._v("it’s easy to delete all data of a user, just delete their database")]),e._v(" "),t("li",[e._v("replication and synchronizing is simple, the whole user database can be replicated on the local device")])]),e._v(" "),t("h2",{attrs:{id:"authentication-layer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#authentication-layer"}},[e._v("#")]),e._v(" Authentication layer")]),e._v(" "),t("p",[e._v("The one-database-per-user approach needs a layer for managing user accounts and the corresponding CouchDB user databases (only for online users). For AsTeRICS Grid the framework "),t("a",{attrs:{href:"https://github.com/sen-su/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin"),t("OutboundLink")],1),e._v(" is used. It provides an API in order to register and login users and creates the corresponding CouchDB databases in the background. However the "),t("a",{attrs:{href:"https://github.com/colinskow/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("original superlogin project"),t("OutboundLink")],1),e._v(" seems to be no longer maintained and therefore AsTeRICS Grid uses a more up-to-date "),t("a",{attrs:{href:"https://github.com/sen-su/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("fork"),t("OutboundLink")],1),e._v(" of it.")]),e._v(" "),t("p",[e._v("The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/superlogin/start.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin/start.js"),t("OutboundLink")],1),e._v(" starts superlogin and contains it’s configuration (= server side). The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/service/loginService.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("loginService.js"),t("OutboundLink")],1),e._v(" is the client-side counterpart which uses the library "),t("a",{attrs:{href:"https://www.npmjs.com/package/superlogin-client",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin-client"),t("OutboundLink")],1),e._v(" in order to connect to and make use of the superlogin server.")]),e._v(" "),t("p",[e._v("In order to start superlogin a CouchDB instance must be running on the same machine and the correct CouchDB parameters have to be inserted in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/superlogin/start.js#L43",target:"_blank",rel:"noopener noreferrer"}},[e._v("start.js:43"),t("OutboundLink")],1),e._v(". Then use "),t("code",[e._v("npm run start-superlogin-dev")]),e._v(" or "),t("code",[e._v("npm run start-superlogin-prod")]),e._v(" in order to start superlogin in development or production mode.")]),e._v(" "),t("h2",{attrs:{id:"inspecting-locally-saved-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inspecting-locally-saved-data"}},[e._v("#")]),e._v(" Inspecting locally saved data")]),e._v(" "),t("p",[e._v("For examining the locally saved data of AsTeRICS Grid do the following (e.g. in Firefox or Chrome browser):")]),e._v(" "),t("ol",[t("li",[e._v("open developer tools ("),t("code",[e._v("Ctrl + Shift + I")]),e._v(" or "),t("code",[e._v("right click -> Inspect")]),e._v(")")]),e._v(" "),t("li",[e._v("go to "),t("code",[e._v("Application")]),e._v(" (Chrome) or "),t("code",[e._v("Web-Storage")]),e._v(" (Firefox)")]),e._v(" "),t("li",[e._v("open "),t("code",[e._v("LocalStorage")]),e._v(" or "),t("code",[e._v("IndexedDB")]),e._v(" to inspect the data saved in these storages")])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/05_datamodel.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/115.689d29f5.js b/assets/js/115.04cbdea2.js similarity index 99% rename from assets/js/115.689d29f5.js rename to assets/js/115.04cbdea2.js index 92bca02eed..7e5f307029 100644 --- a/assets/js/115.689d29f5.js +++ b/assets/js/115.04cbdea2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{426:function(t,a,s){t.exports=s.p+"assets/img/Computer-Vision-BuildPath.ccb70d21.jpg"},984:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"computer-vision-using-javacv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#computer-vision-using-javacv"}},[t._v("#")]),t._v(" Computer Vision using JavaCV")]),t._v(" "),a("h2",{attrs:{id:"objective"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the APIs for computer vision tasks in AsTeRICS. The tutorial does not show how to create an "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),a("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("AsTeRICS has several computer vision plugins (e.g. "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/XFacetrackerLK.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("XFacetrackerLK"),a("OutboundLink")],1),t._v(" for face tracking).")]),t._v(" "),a("p",[t._v("To simplify the development of such plugins and adding crossplatform support easily, AsTeRICS 3.0 uses a subset of "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1),t._v(". Additionally, the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1),t._v(" provides helper classes for frame grabbing, face detection and frame visualization.")]),t._v(" "),a("h2",{attrs:{id:"javacv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javacv"}},[t._v("#")]),t._v(" JavaCV")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV"),a("OutboundLink")],1),t._v(" is a Java wrapper for commonly used computer vision libraries and uses "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP technology"),a("OutboundLink")],1),t._v(" for the binding of native libraries (based on JNI). "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp-presets/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP Presets"),a("OutboundLink")],1),t._v(" define the respective bindings (e.g. OpenCV, FFmpeg, OpenKinect, videoInput, flandmark, ARToolkitPlus, …) that can then be used within Java.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Java IDE ("),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),a("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Webcam or USB camera or RaspiCam")])]),t._v(" "),a("h2",{attrs:{id:"preparation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),a("ol",[a("li",[t._v("Start Eclipse")]),t._v(" "),a("li",[t._v("Create a new Java project ("),a("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),a("li",[t._v("Add the following libraries to the build configuration ("),a("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),a("li",[a("code",[t._v("/asterics.mw.computervision.jar")])]),t._v(" "),a("li",[a("code",[t._v("/javacv-1.3.0-basic-windows.jar")]),t._v(" (on Linux/Mac OSX use "),a("code",[t._v("javacv-1.3.0-basic-linux|macosx.jar")]),t._v(")")]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Copy the directory "),a("code",[t._v("/data/service.computervision")]),t._v(" to "),a("code",[t._v("/data/")])])]),t._v(" "),a("p",[a("img",{attrs:{src:s(426),alt:"Build path dialog with external libraries"}})]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Create a main class "),a("code",[t._v("FaceDetectionExample")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Imports OpenCV wrapper (classes, methods and constants)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_core"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_imgproc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility class which simplifies face detection and drawing.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define camera device and id for frame display window.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" camDeviceKey"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"FaceDetectionExample"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//CvPoint is an OpenCV structure for describing point: https://docs.opencv.org/3.2.0/dc/dd1/structCvPoint.html")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//We can allocate native arrays using constructors taking an integer as argument.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),t._v(" hatPoints "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Listener method which is called for each grabbed frame.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("imageGrabbed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IplImage")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),a("h2",{attrs:{id:"example-1-face-detection-and-face-rectangle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-face-detection-and-face-rectangle"}},[t._v("#")]),t._v(" Example 1 - Face detection and face rectangle")]),t._v(" "),a("p",[t._v("The computer vision service in AsTeRICS provides convinience methods that facilitate the task of frame grabbing ("),a("code",[t._v("class SharedFrameGrabber")]),t._v(") and visualization ("),a("code",[t._v("SharedCanvasFrame")]),t._v(").")]),t._v(" "),a("h3",{attrs:{id:"init-and-start-grabbing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-and-start-grabbing"}},[t._v("#")]),t._v(" Init and Start grabbing")]),t._v(" "),a("ol",[a("li",[t._v("Create a "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Video-Preview-and-Video-Recording-Classes",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("FrameGrabber")]),a("OutboundLink")],1),t._v(" instance, which is an abstraction of a frame grabbing functionality implemented by a computer vision library (e.g. videoInput, OpenCV). Using the method "),a("code",[t._v("getFrameGrabber(...)")]),t._v(" returns the default frame grabber ("),a("strong",[t._v("Windows")]),t._v(": videoInput, "),a("strong",[t._v("Linux")]),t._v(": FFmpeg, "),a("strong",[t._v("Mac OSX")]),t._v(": OpenCV) for the platform the program is running on.")]),t._v(" "),a("li",[t._v("Register a "),a("code",[t._v("GrabbedImageListener")]),t._v(" which receives grabbed frames")]),t._v(" "),a("li",[t._v("Create window for displaying video frames.")]),t._v(" "),a("li",[t._v("Start grabbing.")])]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void start()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Get a frame grabber for the device with the given key (either a number e.g. 0 or a device path e.g. /dev/video0)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//This is dependent on the used frame grabber (e.g. FFMpeg only supports device paths)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")]),t._v(" grabber "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Register a listener to receive the grabbed images of type IplImage.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("registerGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Create a window which is used to display the video frame.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("createCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Face Detection Example"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" grabber"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getGamma")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Starts grabbing in a dedicated thread and notifies all registered listeners with the IplImage frame grabbed.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"face-detection-and-drawing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#face-detection-and-drawing"}},[t._v("#")]),t._v(" Face detection and drawing")]),t._v(" "),a("p",[t._v("The class "),a("code",[t._v("FaceDetection")]),t._v(" provides convinience methods for face detection using a "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Haar cascade for the face"),a("OutboundLink")],1),t._v(" and drawing with typical parameters.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void imageGrabbed(IplImage frame)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("drawFaceRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h3",{attrs:{id:"stop-grabbing-cleanup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop-grabbing-cleanup"}},[t._v("#")]),t._v(" Stop grabbing & cleanup")]),t._v(" "),a("p",[t._v("Finally you must stop grabbing, deregister the "),a("code",[t._v("GrabbedImageListener")]),t._v(" and dispose the window showing the video frame.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void stop()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Stop the grabber thread.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Deregister this as listener.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("deregisterGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Dispose the window for frame visualization. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("disposeFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-drawing-a-hat-on-top-of-the-face"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-drawing-a-hat-on-top-of-the-face"}},[t._v("#")]),t._v(" Example 2 - Drawing a hat on top of the face")]),t._v(" "),a("p",[t._v("This example shows how to use the "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("drawing functions"),a("OutboundLink")],1),t._v(" of OpenCV to draw a hat on top of the facial position. Generally you can use both the C-API or the C+±API of OpenCV with similar syntax. Nevertheless, there are some rules of how to "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Converting-OpenCV",target:"_blank",rel:"noopener noreferrer"}},[t._v("convert OpenCV code to JavaCV code"),a("OutboundLink")],1),t._v(".\nYou can draw a rectangle with "),a("code",[t._v("cvRectangle(...)")]),t._v(" and draw a filled polygon with "),a("code",[t._v("cvFillConvexPoly(...)")]),t._v(".")]),t._v(" "),a("p",[t._v("Use the code of "),a("a",{attrs:{href:"#example-1---face-detection-and-face-rectangle"}},[t._v("Example 1")]),t._v(" and overwrite the implementation of the method "),a("code",[t._v("public void imageGrabbed(...)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("width")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("height")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a red face rectangle with cvRectangle")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvRectangle")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("w"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("h"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RED")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a green hat on top of the face.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To access or pass as argument the elements of a native array, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//call position() before. --\x3e position(0) refers to the first element.")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvFillConvexPoly")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("GREEN")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/components/sensor.XfacetrackerLK/src/main/java/eu/asterics/component/sensor/XfacetrackerLK/XFacetrackerLKInstance.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class XFacetrackerLK"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3 Wiki"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"groups.google.com/group/javacv"}},[t._v("JavaCV google group")])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv-examples",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV examples including OpenCV Cookbook"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/MasteringOpenCV/code",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenCV examples for HCI (ch6, ch7): Mastering OpenCV with Practical Computer Vision Projects"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{426:function(t,a,s){t.exports=s.p+"assets/img/Computer-Vision-BuildPath.ccb70d21.jpg"},982:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"computer-vision-using-javacv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#computer-vision-using-javacv"}},[t._v("#")]),t._v(" Computer Vision using JavaCV")]),t._v(" "),a("h2",{attrs:{id:"objective"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the APIs for computer vision tasks in AsTeRICS. The tutorial does not show how to create an "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),a("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("AsTeRICS has several computer vision plugins (e.g. "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/XFacetrackerLK.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("XFacetrackerLK"),a("OutboundLink")],1),t._v(" for face tracking).")]),t._v(" "),a("p",[t._v("To simplify the development of such plugins and adding crossplatform support easily, AsTeRICS 3.0 uses a subset of "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1),t._v(". Additionally, the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1),t._v(" provides helper classes for frame grabbing, face detection and frame visualization.")]),t._v(" "),a("h2",{attrs:{id:"javacv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javacv"}},[t._v("#")]),t._v(" JavaCV")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV"),a("OutboundLink")],1),t._v(" is a Java wrapper for commonly used computer vision libraries and uses "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP technology"),a("OutboundLink")],1),t._v(" for the binding of native libraries (based on JNI). "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp-presets/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP Presets"),a("OutboundLink")],1),t._v(" define the respective bindings (e.g. OpenCV, FFmpeg, OpenKinect, videoInput, flandmark, ARToolkitPlus, …) that can then be used within Java.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Java IDE ("),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),a("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Webcam or USB camera or RaspiCam")])]),t._v(" "),a("h2",{attrs:{id:"preparation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),a("ol",[a("li",[t._v("Start Eclipse")]),t._v(" "),a("li",[t._v("Create a new Java project ("),a("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),a("li",[t._v("Add the following libraries to the build configuration ("),a("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),a("li",[a("code",[t._v("/asterics.mw.computervision.jar")])]),t._v(" "),a("li",[a("code",[t._v("/javacv-1.3.0-basic-windows.jar")]),t._v(" (on Linux/Mac OSX use "),a("code",[t._v("javacv-1.3.0-basic-linux|macosx.jar")]),t._v(")")]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Copy the directory "),a("code",[t._v("/data/service.computervision")]),t._v(" to "),a("code",[t._v("/data/")])])]),t._v(" "),a("p",[a("img",{attrs:{src:s(426),alt:"Build path dialog with external libraries"}})]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Create a main class "),a("code",[t._v("FaceDetectionExample")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Imports OpenCV wrapper (classes, methods and constants)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_core"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_imgproc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility class which simplifies face detection and drawing.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define camera device and id for frame display window.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" camDeviceKey"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"FaceDetectionExample"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//CvPoint is an OpenCV structure for describing point: https://docs.opencv.org/3.2.0/dc/dd1/structCvPoint.html")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//We can allocate native arrays using constructors taking an integer as argument.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),t._v(" hatPoints "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Listener method which is called for each grabbed frame.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("imageGrabbed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IplImage")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),a("h2",{attrs:{id:"example-1-face-detection-and-face-rectangle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-face-detection-and-face-rectangle"}},[t._v("#")]),t._v(" Example 1 - Face detection and face rectangle")]),t._v(" "),a("p",[t._v("The computer vision service in AsTeRICS provides convinience methods that facilitate the task of frame grabbing ("),a("code",[t._v("class SharedFrameGrabber")]),t._v(") and visualization ("),a("code",[t._v("SharedCanvasFrame")]),t._v(").")]),t._v(" "),a("h3",{attrs:{id:"init-and-start-grabbing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-and-start-grabbing"}},[t._v("#")]),t._v(" Init and Start grabbing")]),t._v(" "),a("ol",[a("li",[t._v("Create a "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Video-Preview-and-Video-Recording-Classes",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("FrameGrabber")]),a("OutboundLink")],1),t._v(" instance, which is an abstraction of a frame grabbing functionality implemented by a computer vision library (e.g. videoInput, OpenCV). Using the method "),a("code",[t._v("getFrameGrabber(...)")]),t._v(" returns the default frame grabber ("),a("strong",[t._v("Windows")]),t._v(": videoInput, "),a("strong",[t._v("Linux")]),t._v(": FFmpeg, "),a("strong",[t._v("Mac OSX")]),t._v(": OpenCV) for the platform the program is running on.")]),t._v(" "),a("li",[t._v("Register a "),a("code",[t._v("GrabbedImageListener")]),t._v(" which receives grabbed frames")]),t._v(" "),a("li",[t._v("Create window for displaying video frames.")]),t._v(" "),a("li",[t._v("Start grabbing.")])]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void start()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Get a frame grabber for the device with the given key (either a number e.g. 0 or a device path e.g. /dev/video0)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//This is dependent on the used frame grabber (e.g. FFMpeg only supports device paths)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")]),t._v(" grabber "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Register a listener to receive the grabbed images of type IplImage.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("registerGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Create a window which is used to display the video frame.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("createCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Face Detection Example"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" grabber"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getGamma")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Starts grabbing in a dedicated thread and notifies all registered listeners with the IplImage frame grabbed.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"face-detection-and-drawing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#face-detection-and-drawing"}},[t._v("#")]),t._v(" Face detection and drawing")]),t._v(" "),a("p",[t._v("The class "),a("code",[t._v("FaceDetection")]),t._v(" provides convinience methods for face detection using a "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Haar cascade for the face"),a("OutboundLink")],1),t._v(" and drawing with typical parameters.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void imageGrabbed(IplImage frame)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("drawFaceRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h3",{attrs:{id:"stop-grabbing-cleanup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop-grabbing-cleanup"}},[t._v("#")]),t._v(" Stop grabbing & cleanup")]),t._v(" "),a("p",[t._v("Finally you must stop grabbing, deregister the "),a("code",[t._v("GrabbedImageListener")]),t._v(" and dispose the window showing the video frame.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void stop()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Stop the grabber thread.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Deregister this as listener.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("deregisterGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Dispose the window for frame visualization. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("disposeFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-drawing-a-hat-on-top-of-the-face"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-drawing-a-hat-on-top-of-the-face"}},[t._v("#")]),t._v(" Example 2 - Drawing a hat on top of the face")]),t._v(" "),a("p",[t._v("This example shows how to use the "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("drawing functions"),a("OutboundLink")],1),t._v(" of OpenCV to draw a hat on top of the facial position. Generally you can use both the C-API or the C+±API of OpenCV with similar syntax. Nevertheless, there are some rules of how to "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Converting-OpenCV",target:"_blank",rel:"noopener noreferrer"}},[t._v("convert OpenCV code to JavaCV code"),a("OutboundLink")],1),t._v(".\nYou can draw a rectangle with "),a("code",[t._v("cvRectangle(...)")]),t._v(" and draw a filled polygon with "),a("code",[t._v("cvFillConvexPoly(...)")]),t._v(".")]),t._v(" "),a("p",[t._v("Use the code of "),a("a",{attrs:{href:"#example-1---face-detection-and-face-rectangle"}},[t._v("Example 1")]),t._v(" and overwrite the implementation of the method "),a("code",[t._v("public void imageGrabbed(...)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("width")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("height")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a red face rectangle with cvRectangle")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvRectangle")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("w"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("h"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RED")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a green hat on top of the face.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To access or pass as argument the elements of a native array, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//call position() before. --\x3e position(0) refers to the first element.")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvFillConvexPoly")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("GREEN")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/components/sensor.XfacetrackerLK/src/main/java/eu/asterics/component/sensor/XfacetrackerLK/XFacetrackerLKInstance.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class XFacetrackerLK"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3 Wiki"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"groups.google.com/group/javacv"}},[t._v("JavaCV google group")])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv-examples",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV examples including OpenCV Cookbook"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/MasteringOpenCV/code",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenCV examples for HCI (ch6, ch7): Mastering OpenCV with Practical Computer Vision Projects"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/116.31c9e219.js b/assets/js/116.5b94955f.js similarity index 99% rename from assets/js/116.31c9e219.js rename to assets/js/116.5b94955f.js index 86e9dcbb35..8c014919c4 100644 --- a/assets/js/116.31c9e219.js +++ b/assets/js/116.5b94955f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{302:function(t,a,s){t.exports=s.p+"assets/img/DeveloperManual_html_17298a48a6d250c5.fbefb96e.png"},985:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"plugin-development-advanced"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugin-development-advanced"}},[t._v("#")]),t._v(" Plugin Development Advanced")]),t._v(" "),a("p",[t._v("In this manual some advanced topics of plugin development are listed.")]),t._v(" "),a("h2",{attrs:{id:"port-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#port-naming-conventions"}},[t._v("#")]),t._v(" Port Naming Conventions")]),t._v(" "),a("p",[t._v("Variables of port instances should be named with a prefix indicating what kind of port it is. The rest of the port name should indicate the port’s use and adhere to the standard Java variable naming conventions. The available prefixes are:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("ip: indicates that the port is an instance of IRuntimeInputPort")])]),t._v(" "),a("li",[a("p",[t._v("op: indicates that the port is an instance of IRuntimeOutputPort")])]),t._v(" "),a("li",[a("p",[t._v("elp: indicates that the port is an instance of IRuntimeEventListenerPort")])]),t._v(" "),a("li",[a("p",[t._v("etp: indicates that the port is an instance of IRuntimeEventTriggererPort")])])]),t._v(" "),a("p",[t._v("A variable holding an event listener port could therefore be named "),a("em",[t._v("elpKeyPressed")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"property-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#property-naming-conventions"}},[t._v("#")]),t._v(" Property Naming Conventions")]),t._v(" "),a("p",[t._v("Plugin properties should be directly mapped to a variable in the plugin code. The variable’s should be prepended with the prefix "),a("em",[t._v("prop")]),t._v(" and adhere to standard Java naming conventions. Thus a property could be named "),a("em",[t._v("InputGainValue")]),t._v(" and the corresponding variable should be named "),a("em",[t._v("propInputGainValue")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"bundle-descriptor-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bundle-descriptor-naming-conventions"}},[t._v("#")]),t._v(" Bundle Descriptor Naming Conventions")]),t._v(" "),a("p",[t._v("The bundle descriptor should serve as an abstraction layer between the user who creates models in the ACS and the developer. Thus the names for plugins, ports and properties in the bundle descriptor should be as intuitive as possible. Names in the bundle descriptor should not include prefixes because the added information is also conveyed in the presentation of plugins in the ACS.")]),t._v(" "),a("p",[t._v("The bundle descriptor can translate intuitive names (e.g. input.switch) to the canonical names of plugins (e.g. GpioInputInstance) allowing coexistence of a user and a developer language. This method of name translation can be applied for plugin names, port names and property names.")]),t._v(" "),a("h2",{attrs:{id:"asterics-are-service-and-plugin-source-file-header"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-are-service-and-plugin-source-file-header"}},[t._v("#")]),t._v(" AsTeRICS ARE, service and plugin source file header")]),t._v(" "),a("p",[t._v("Each source file of ARE, of ARE services, ARE plugins and tools which will be released as open source should have the following header:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('/*\n * AsTeRICS - Assistive Technology Rapid Integration and Construction Set\n * \n * \n * d8888 88888888888 8888888b. 8888888 .d8888b. .d8888b. \n * d88888 888 888 Y88b 888 d88P Y88b d88P Y88b\n * d88P888 888 888 888 888 888 888 Y88b. \n * d88P 888 .d8888b 888 .d88b. 888 d88P 888 888 "Y888b. \n * d88P 888 88K 888 d8P Y8b 8888888P" 888 888 "Y88b.\n * d88P 888 "Y8888b. 888 88888888 888 T88b 888 888 888 "888\n * d8888888888 X88 888 Y8b. 888 T88b 888 Y88b d88P Y88b d88P\n * d88P 888 88888P\' 888 "Y8888 888 T88b 8888888 "Y8888P" "Y8888P" \n *\n *\n * homepage: http://www.asterics.org \n *\n * This project has been partly funded by the European Commission, \n * Grant Agreement Number 247730\n * \n * \n * Dual License: MIT or GPL v3.0 with "CLASSPATH" exception\n * (please refer to the folder LICENSE)\n * \n */')]),t._v("\n")])])]),a("h2",{attrs:{id:"javadoc-compatible-comments"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javadoc-compatible-comments"}},[t._v("#")]),t._v(" JavaDoc compatible comments")]),t._v(" "),a("p",[t._v("JavaDoc compatible comments should be used to indicate the author of a source file, and to describe the purpose of a function/method/class and the respective parameters and return values.")]),t._v(" "),a("p",[t._v("Example for a source file header info:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Bardisplayinstance.java\n * Purpose of this module:\n * Implements the Bardisplay actuator plugin\n * \n * @author Chris Veigl [veigl@technikum-wien.at]\n * Date: Mar 7, 2011\n */")]),t._v("\n")])])]),a("p",[t._v("Example for a method of a class:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n* Returns the value of the given property\n* @param propertyName the name of the property\n* @return the property value\n*/")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"implementing-asterics-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implementing-asterics-components"}},[t._v("#")]),t._v(" Implementing AsTeRICS components")]),t._v(" "),a("p",[t._v("This section describes the basic steps required for implementing an AsTeRICS component including a brief introduction to OSGi. To illustrate the implementation steps, we take a walk-through with the implementation of a simple processor component.")]),t._v(" "),a("p",[t._v("The AsTeRICS schemata of the XML descriptors include two concepts: the "),a("em",[t._v("bundle descriptors")]),t._v(" and the "),a("em",[t._v("deployment descriptors")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"the-bundle-descriptors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-bundle-descriptors"}},[t._v("#")]),t._v(" The Bundle Descriptors")]),t._v(" "),a("p",[t._v("Bundle descriptors are used to describe the content of an individual bundle (typically encapsulating one or more components). As such, they contain information about the included "),a("em",[t._v("components")]),t._v(", their "),a("em",[t._v("ports")]),t._v(", their customizable "),a("em",[t._v("properties")]),t._v(" and optionally their GUI.")]),t._v(" "),a("p",[t._v("The following shows a bundle descriptor of a simple processor-plugin (subtype for the ACS components menu is “Basic Math”). The plugin provides an averaging function for n values (property “buffer-size”) and has one input port and one output port for integer values:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentTypes")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bundle_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentType")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.averager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("canonical_name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("eu.asterics.component.processor.averager.AveragerComponent"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("subtype")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Basic Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("processor"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Linked list-based averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Input port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("multiplicity")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("one-to-one"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mustBeConnected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("true"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("out_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Output port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("buffer-size"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("50"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("The size of the averager's buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-deployment-descriptor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-deployment-descriptor"}},[t._v("#")]),t._v(" The Deployment Descriptor")]),t._v(" "),a("p",[t._v("Deployment descriptors instruct the ARE of the desired application deployment structure. The deployment descriptor is typically composed in the AsTeRICS Configuration Suite (ACS) but can also be written with a text editor (as the bundle descriptor). Basically the deployment descriptor contains several component descriptions (copied from the corresponding bundle descriptors), actual property values and the channel connection between input- and output ports of the components.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The "),a("em",[t._v("type_id")]),t._v(" argument of the "),a("em",[t._v("component")]),t._v(" element in the deployment descriptor must match the "),a("em",[t._v("id")]),t._v(" argument of the "),a("em",[t._v("componentType")]),t._v(" element on the bundle descriptor. This is how the ARE detects the referred plugin type in the deployment model.")])]),t._v(" "),a("p",[t._v("The following demo deployment descriptor describes a simple model containing two plugins and one channel:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("model")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("deployment_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("components")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Source of two signal cahnnels "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Signal Target"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channel")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("channel.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Connects SignalSource.1 (outport 1) \n to SignalTarget.1 (in_x)"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("source")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-manifest-file"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-manifest-file"}},[t._v("#")]),t._v(" The Manifest file")]),t._v(" "),a("p",[t._v("The Manifest file tells the bundle name and other informations like import packages and .dlls to the OSGi. A typical Manifest looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-processors.averager\nBundle-SymbolicName: eu.asterics.component.processor.averager\nBundle-Version: 0.1.0\nDynamicImport-Package: *\n\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The empty line at the end of the Manifest file. It seems that OSGi needs that empty line in order to work properly.")])]),t._v(" "),a("h2",{attrs:{id:"structure-of-osgi-bundles-containing-are-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-osgi-bundles-containing-are-components"}},[t._v("#")]),t._v(" Structure of OSGi bundles containing ARE components")]),t._v(" "),a("p",[t._v("As a common OSGi bundle, an AsTeRICS component must be packaged in a JAR file, containing the class files (object code) and the Manifest file. In addition to these, the AsTeRICS middleware expects the "),a("em",[t._v("bundle descriptor")]),t._v(". At this point, it should be noted that it is possible to include "),a("em",[t._v("multiple")]),t._v(" AsTeRICS components in a single OSGi bundle, as long as the bundle descriptor describes all of them.")]),t._v(" "),a("p",[t._v("Overall, the file structure in a typical AsTeRICS bundle looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("/\n+- eu/\n +- asterics/\n +- component/\n +- ...\n+- lib/\n +- native/\n +- my_library.dll\n+- META-INF/\n +- MANIFEST.MF\n+- bundle_descriptor.xml\n")])])]),a("p",[t._v("The Java object code is included in the corresponding folders representing the package structure (e.g., “/eu/asterics/component/…” etc). Optionally, if libraries are needed - native or not-, then they are included in the “/lib” folder. The Manifest is included in the “META-INF” folder as per the standard Java/OSGi practice. Finally, the AsTeRICS bundle descriptor is included directly in the root of the JAR file (i.e. “/”).")]),t._v(" "),a("h2",{attrs:{id:"component-lifecyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#component-lifecyle"}},[t._v("#")]),t._v(" Component lifecyle")]),t._v(" "),a("p",[t._v("An ARE component implementation needs to realise the actual component with its lifecycle (i.e., ways to access its ports and properties, and methods realizing its lifecycle). This is illustrated in the following code:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("runtime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Lifecycle support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pause")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("resume")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Component support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeOutputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getOutputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventListenerPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventListenerPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventTriggererPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventTriggererPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token generics"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" syncedValuesReceived "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[a("img",{attrs:{src:s(302),alt:""}})]),t._v(" "),a("p",[t._v("The lifecycle support methods are used to intercept AsTeRICS events concerning the component’s lifecycle. In principle, a component can be any of the following:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("READY,")])]),t._v(" "),a("li",[a("p",[t._v("ACTIVE,")])]),t._v(" "),a("li",[a("p",[t._v("SUSPENDED and")])]),t._v(" "),a("li",[a("p",[t._v("STOPPED")])])]),t._v(" "),a("p",[t._v("These states and their possible transitions are illustrated in the figure on the right:")]),t._v(" "),a("p",[t._v("The rest of the methods are used for supporting the component operations, namely accessing the input/output ports of the component, as well as getting/setting its supported properties.")]),t._v(" "),a("h2",{attrs:{id:"threading"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#threading"}},[t._v("#")]),t._v(" Threading")]),t._v(" "),a("p",[t._v("For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"writing-plugins-using-swing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#writing-plugins-using-swing"}},[t._v("#")]),t._v(" Writing plugins using Swing")]),t._v(" "),a("p",[t._v("If a plugin provides a Swing GUI it should only use the asynchronous method")]),t._v(" "),a("p",[a("code",[t._v("SwingUtilities.invokeLater(…)")])]),t._v(" "),a("p",[t._v("(and not the synchronous one) to perform the GUI updates. This is to prevent a potential thread deadlock if an action was originally triggered by a Swing GUI event e.g. by a button click in the ARE GUI. For detailed information about the ARE threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"long-lasting-method-calls"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#long-lasting-method-calls"}},[t._v("#")]),t._v(" Long lasting method calls")]),t._v(" "),a("p",[t._v("If a method call performs a long lasting task and there is no need to await the termination of it, the task should be handed over to a worker thread (see 5.9) to not block ModelExecutor thread. For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"sensor-callbacks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sensor-callbacks"}},[t._v("#")]),t._v(" Sensor callbacks")]),t._v(" "),a("p",[t._v("In case you write a plugin that uses a separate thread to generate data (e.g. FrameGrabber, Timer,…) you should explicitly use the method")]),t._v(" "),a("p",[a("code",[t._v("AstericsModelExecutionThreadPool.instance.execute(…)")])]),t._v(" "),a("p",[t._v("This is to ensure that corresponding data will be delivered within the same task execution. For detailed information about the threading concept see 9. Below is an example of the FacetrackerLK plugin in the callback method for new arriving coordinates:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("newCoordinates_callback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsModelExecutionThreadPool")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("execute")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Runnable")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("run")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n opNoseX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opNoseY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"contributing-a-developed-plugin-git-pull-request"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributing-a-developed-plugin-git-pull-request"}},[t._v("#")]),t._v(" Contributing a developed plugin (git pull request)")]),t._v(" "),a("p",[t._v("The AsTeRICS platform is designed as an open and modular platform. The idea is to make it easy for others to develop assistive plugins any end-user in the world could benefit from. Hence, we would love to get your contribution back to the github repository to be able to ship the new plugin with future releases. For this purpose, please send a pull request.")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://help.github.com/articles/using-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://help.github.com/articles/using-pull-requests/"),a("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{296:function(t,a,s){t.exports=s.p+"assets/img/DeveloperManual_html_17298a48a6d250c5.fbefb96e.png"},985:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"plugin-development-advanced"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugin-development-advanced"}},[t._v("#")]),t._v(" Plugin Development Advanced")]),t._v(" "),a("p",[t._v("In this manual some advanced topics of plugin development are listed.")]),t._v(" "),a("h2",{attrs:{id:"port-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#port-naming-conventions"}},[t._v("#")]),t._v(" Port Naming Conventions")]),t._v(" "),a("p",[t._v("Variables of port instances should be named with a prefix indicating what kind of port it is. The rest of the port name should indicate the port’s use and adhere to the standard Java variable naming conventions. The available prefixes are:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("ip: indicates that the port is an instance of IRuntimeInputPort")])]),t._v(" "),a("li",[a("p",[t._v("op: indicates that the port is an instance of IRuntimeOutputPort")])]),t._v(" "),a("li",[a("p",[t._v("elp: indicates that the port is an instance of IRuntimeEventListenerPort")])]),t._v(" "),a("li",[a("p",[t._v("etp: indicates that the port is an instance of IRuntimeEventTriggererPort")])])]),t._v(" "),a("p",[t._v("A variable holding an event listener port could therefore be named "),a("em",[t._v("elpKeyPressed")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"property-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#property-naming-conventions"}},[t._v("#")]),t._v(" Property Naming Conventions")]),t._v(" "),a("p",[t._v("Plugin properties should be directly mapped to a variable in the plugin code. The variable’s should be prepended with the prefix "),a("em",[t._v("prop")]),t._v(" and adhere to standard Java naming conventions. Thus a property could be named "),a("em",[t._v("InputGainValue")]),t._v(" and the corresponding variable should be named "),a("em",[t._v("propInputGainValue")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"bundle-descriptor-naming-conventions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bundle-descriptor-naming-conventions"}},[t._v("#")]),t._v(" Bundle Descriptor Naming Conventions")]),t._v(" "),a("p",[t._v("The bundle descriptor should serve as an abstraction layer between the user who creates models in the ACS and the developer. Thus the names for plugins, ports and properties in the bundle descriptor should be as intuitive as possible. Names in the bundle descriptor should not include prefixes because the added information is also conveyed in the presentation of plugins in the ACS.")]),t._v(" "),a("p",[t._v("The bundle descriptor can translate intuitive names (e.g. input.switch) to the canonical names of plugins (e.g. GpioInputInstance) allowing coexistence of a user and a developer language. This method of name translation can be applied for plugin names, port names and property names.")]),t._v(" "),a("h2",{attrs:{id:"asterics-are-service-and-plugin-source-file-header"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-are-service-and-plugin-source-file-header"}},[t._v("#")]),t._v(" AsTeRICS ARE, service and plugin source file header")]),t._v(" "),a("p",[t._v("Each source file of ARE, of ARE services, ARE plugins and tools which will be released as open source should have the following header:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('/*\n * AsTeRICS - Assistive Technology Rapid Integration and Construction Set\n * \n * \n * d8888 88888888888 8888888b. 8888888 .d8888b. .d8888b. \n * d88888 888 888 Y88b 888 d88P Y88b d88P Y88b\n * d88P888 888 888 888 888 888 888 Y88b. \n * d88P 888 .d8888b 888 .d88b. 888 d88P 888 888 "Y888b. \n * d88P 888 88K 888 d8P Y8b 8888888P" 888 888 "Y88b.\n * d88P 888 "Y8888b. 888 88888888 888 T88b 888 888 888 "888\n * d8888888888 X88 888 Y8b. 888 T88b 888 Y88b d88P Y88b d88P\n * d88P 888 88888P\' 888 "Y8888 888 T88b 8888888 "Y8888P" "Y8888P" \n *\n *\n * homepage: http://www.asterics.org \n *\n * This project has been partly funded by the European Commission, \n * Grant Agreement Number 247730\n * \n * \n * Dual License: MIT or GPL v3.0 with "CLASSPATH" exception\n * (please refer to the folder LICENSE)\n * \n */')]),t._v("\n")])])]),a("h2",{attrs:{id:"javadoc-compatible-comments"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javadoc-compatible-comments"}},[t._v("#")]),t._v(" JavaDoc compatible comments")]),t._v(" "),a("p",[t._v("JavaDoc compatible comments should be used to indicate the author of a source file, and to describe the purpose of a function/method/class and the respective parameters and return values.")]),t._v(" "),a("p",[t._v("Example for a source file header info:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Bardisplayinstance.java\n * Purpose of this module:\n * Implements the Bardisplay actuator plugin\n * \n * @author Chris Veigl [veigl@technikum-wien.at]\n * Date: Mar 7, 2011\n */")]),t._v("\n")])])]),a("p",[t._v("Example for a method of a class:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n* Returns the value of the given property\n* @param propertyName the name of the property\n* @return the property value\n*/")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"implementing-asterics-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implementing-asterics-components"}},[t._v("#")]),t._v(" Implementing AsTeRICS components")]),t._v(" "),a("p",[t._v("This section describes the basic steps required for implementing an AsTeRICS component including a brief introduction to OSGi. To illustrate the implementation steps, we take a walk-through with the implementation of a simple processor component.")]),t._v(" "),a("p",[t._v("The AsTeRICS schemata of the XML descriptors include two concepts: the "),a("em",[t._v("bundle descriptors")]),t._v(" and the "),a("em",[t._v("deployment descriptors")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"the-bundle-descriptors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-bundle-descriptors"}},[t._v("#")]),t._v(" The Bundle Descriptors")]),t._v(" "),a("p",[t._v("Bundle descriptors are used to describe the content of an individual bundle (typically encapsulating one or more components). As such, they contain information about the included "),a("em",[t._v("components")]),t._v(", their "),a("em",[t._v("ports")]),t._v(", their customizable "),a("em",[t._v("properties")]),t._v(" and optionally their GUI.")]),t._v(" "),a("p",[t._v("The following shows a bundle descriptor of a simple processor-plugin (subtype for the ACS components menu is “Basic Math”). The plugin provides an averaging function for n values (property “buffer-size”) and has one input port and one output port for integer values:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentTypes")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bundle_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("componentType")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.averager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("canonical_name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("eu.asterics.component.processor.averager.AveragerComponent"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("subtype")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Basic Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("processor"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Linked list-based averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Input port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("multiplicity")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("one-to-one"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mustBeConnected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("true"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("out_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Output port of averager"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("dataType")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("buffer-size"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("integer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("50"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("The size of the averager's buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-deployment-descriptor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-deployment-descriptor"}},[t._v("#")]),t._v(" The Deployment Descriptor")]),t._v(" "),a("p",[t._v("Deployment descriptors instruct the ARE of the desired application deployment structure. The deployment descriptor is typically composed in the AsTeRICS Configuration Suite (ACS) but can also be written with a text editor (as the bundle descriptor). Basically the deployment descriptor contains several component descriptions (copied from the corresponding bundle descriptors), actual property values and the channel connection between input- and output ports of the components.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The "),a("em",[t._v("type_id")]),t._v(" argument of the "),a("em",[t._v("component")]),t._v(" element in the deployment descriptor must match the "),a("em",[t._v("id")]),t._v(" argument of the "),a("em",[t._v("componentType")]),t._v(" element on the bundle descriptor. This is how the ARE detects the referred plugin type in the deployment model.")])]),t._v(" "),a("p",[t._v("The following demo deployment descriptor describes a simple model containing two plugins and one channel:")]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token prolog"}},[t._v('')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("model")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xmlns:")]),t._v("xsi")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("http://www.w3.org/2001/XMLSchema-instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("xsi:")]),t._v("noNamespaceSchemaLocation")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("deployment_model.xsd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("components")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Source of two signal cahnnels "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("outputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("properties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type_id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A Signal Target"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ports")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("inputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("portTypeID")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("channel")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("channel.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("description")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Connects SignalSource.1 (outport 1) \n to SignalTarget.1 (in_x)"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("source")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("sensor.SignalSource.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("outport1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("actuator.SignalTarget.1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("port")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("in_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"the-manifest-file"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-manifest-file"}},[t._v("#")]),t._v(" The Manifest file")]),t._v(" "),a("p",[t._v("The Manifest file tells the bundle name and other informations like import packages and .dlls to the OSGi. A typical Manifest looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-processors.averager\nBundle-SymbolicName: eu.asterics.component.processor.averager\nBundle-Version: 0.1.0\nDynamicImport-Package: *\n\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The empty line at the end of the Manifest file. It seems that OSGi needs that empty line in order to work properly.")])]),t._v(" "),a("h2",{attrs:{id:"structure-of-osgi-bundles-containing-are-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-osgi-bundles-containing-are-components"}},[t._v("#")]),t._v(" Structure of OSGi bundles containing ARE components")]),t._v(" "),a("p",[t._v("As a common OSGi bundle, an AsTeRICS component must be packaged in a JAR file, containing the class files (object code) and the Manifest file. In addition to these, the AsTeRICS middleware expects the "),a("em",[t._v("bundle descriptor")]),t._v(". At this point, it should be noted that it is possible to include "),a("em",[t._v("multiple")]),t._v(" AsTeRICS components in a single OSGi bundle, as long as the bundle descriptor describes all of them.")]),t._v(" "),a("p",[t._v("Overall, the file structure in a typical AsTeRICS bundle looks as follows:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("/\n+- eu/\n +- asterics/\n +- component/\n +- ...\n+- lib/\n +- native/\n +- my_library.dll\n+- META-INF/\n +- MANIFEST.MF\n+- bundle_descriptor.xml\n")])])]),a("p",[t._v("The Java object code is included in the corresponding folders representing the package structure (e.g., “/eu/asterics/component/…” etc). Optionally, if libraries are needed - native or not-, then they are included in the “/lib” folder. The Manifest is included in the “META-INF” folder as per the standard Java/OSGi practice. Finally, the AsTeRICS bundle descriptor is included directly in the root of the JAR file (i.e. “/”).")]),t._v(" "),a("h2",{attrs:{id:"component-lifecyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#component-lifecyle"}},[t._v("#")]),t._v(" Component lifecyle")]),t._v(" "),a("p",[t._v("An ARE component implementation needs to realise the actual component with its lifecycle (i.e., ways to access its ports and properties, and methods realizing its lifecycle). This is illustrated in the following code:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("runtime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Lifecycle support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pause")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("resume")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ------------------ Component support methods ------------------------- //")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeOutputPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getOutputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventListenerPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventListenerPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeEventTriggererPort")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEventTriggererPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" eventPortID"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token generics"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" syncedValuesReceived "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[a("img",{attrs:{src:s(296),alt:""}})]),t._v(" "),a("p",[t._v("The lifecycle support methods are used to intercept AsTeRICS events concerning the component’s lifecycle. In principle, a component can be any of the following:")]),t._v(" "),a("ul",[a("li",[a("p",[t._v("READY,")])]),t._v(" "),a("li",[a("p",[t._v("ACTIVE,")])]),t._v(" "),a("li",[a("p",[t._v("SUSPENDED and")])]),t._v(" "),a("li",[a("p",[t._v("STOPPED")])])]),t._v(" "),a("p",[t._v("These states and their possible transitions are illustrated in the figure on the right:")]),t._v(" "),a("p",[t._v("The rest of the methods are used for supporting the component operations, namely accessing the input/output ports of the component, as well as getting/setting its supported properties.")]),t._v(" "),a("h2",{attrs:{id:"threading"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#threading"}},[t._v("#")]),t._v(" Threading")]),t._v(" "),a("p",[t._v("For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"writing-plugins-using-swing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#writing-plugins-using-swing"}},[t._v("#")]),t._v(" Writing plugins using Swing")]),t._v(" "),a("p",[t._v("If a plugin provides a Swing GUI it should only use the asynchronous method")]),t._v(" "),a("p",[a("code",[t._v("SwingUtilities.invokeLater(…)")])]),t._v(" "),a("p",[t._v("(and not the synchronous one) to perform the GUI updates. This is to prevent a potential thread deadlock if an action was originally triggered by a Swing GUI event e.g. by a button click in the ARE GUI. For detailed information about the ARE threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"long-lasting-method-calls"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#long-lasting-method-calls"}},[t._v("#")]),t._v(" Long lasting method calls")]),t._v(" "),a("p",[t._v("If a method call performs a long lasting task and there is no need to await the termination of it, the task should be handed over to a worker thread (see 5.9) to not block ModelExecutor thread. For detailed information about the threading concept see 9.")]),t._v(" "),a("h2",{attrs:{id:"sensor-callbacks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sensor-callbacks"}},[t._v("#")]),t._v(" Sensor callbacks")]),t._v(" "),a("p",[t._v("In case you write a plugin that uses a separate thread to generate data (e.g. FrameGrabber, Timer,…) you should explicitly use the method")]),t._v(" "),a("p",[a("code",[t._v("AstericsModelExecutionThreadPool.instance.execute(…)")])]),t._v(" "),a("p",[t._v("This is to ensure that corresponding data will be delivered within the same task execution. For detailed information about the threading concept see 9. Below is an example of the FacetrackerLK plugin in the callback method for new arriving coordinates:")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("newCoordinates_callback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsModelExecutionThreadPool")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("execute")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Runnable")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("run")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n opNoseX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opNoseY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point1_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n opChinY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToBytes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("point2_y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"contributing-a-developed-plugin-git-pull-request"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributing-a-developed-plugin-git-pull-request"}},[t._v("#")]),t._v(" Contributing a developed plugin (git pull request)")]),t._v(" "),a("p",[t._v("The AsTeRICS platform is designed as an open and modular platform. The idea is to make it easy for others to develop assistive plugins any end-user in the world could benefit from. Hence, we would love to get your contribution back to the github repository to be able to ship the new plugin with future releases. For this purpose, please send a pull request.")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://help.github.com/articles/using-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://help.github.com/articles/using-pull-requests/"),a("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/117.b0ec9a33.js b/assets/js/117.18a42da2.js similarity index 99% rename from assets/js/117.b0ec9a33.js rename to assets/js/117.18a42da2.js index dfbc61a64f..73e7bae51f 100644 --- a/assets/js/117.b0ec9a33.js +++ b/assets/js/117.18a42da2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{427:function(t,s,a){t.exports=a.p+"assets/img/Resource-Handling-BuildPath.c215c1df.jpg"},988:function(t,s,a){"use strict";a.r(s);var e=a(2),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"resource-handling-resourceregistry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resource-handling-resourceregistry"}},[t._v("#")]),t._v(" Resource Handling (ResourceRegistry)")]),t._v(" "),s("h2",{attrs:{id:"objective"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),s("p",[t._v("In this tutorial you will learn how to use the class ResourceRegistry, which is a central repository that must be used to compose resource URIs and fetch and store resource contents from within plugins and the whole ARE.")]),t._v(" "),s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),s("p",[t._v("The idea is to generically implement the fetching of resources to enable the same approach for the whole AsTeRICS framework. This way all plugins, services and other classes will be able to also support several URI schemes (e.g. file, http, jar,…). Furthermore base URIs can be reconfigured depending on platform specific or usecase specific requirements (e.g. readonly plugin respository hosted on a webserver). Currently only one file based repository URI ("),s("code",[t._v("ARE baseURI")]),t._v(") is supported. Later maybe the repository URIs could also be an http-URL and the plugin resources directly fetched from there.")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("ARE baseURI")]),t._v(" is set to the location of the ARE.jar file by default, but can be set to another location by the method "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L852",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("public void setAREBaseURI(URI areBaseURI)")]),s("OutboundLink")],1),t._v(" programmatically.")]),t._v(" "),s("h2",{attrs:{id:"main-benefits"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#main-benefits"}},[t._v("#")]),t._v(" Main benefits")]),t._v(" "),s("ul",[s("li",[t._v("Abstraction of ARE folder structure: So if folder structure changes models are not affected.")]),t._v(" "),s("li",[t._v("Centralized dealing with platform specific problems ("),s("code",[t._v("\\")]),t._v(", "),s("code",[t._v("/")]),t._v(", conversion between URI encoded path and file path,…)")]),t._v(" "),s("li",[t._v("Dealing with relative and absolute file paths.")]),t._v(" "),s("li",[t._v("By using URI syntax for describing the path of a resource, resources can be of different protocol types (file, http, …)")]),t._v(" "),s("li",[t._v("Many utility methods for checking resource existence and conversion between several types (File, String, URI,…)")]),t._v(" "),s("li",[t._v("Convinience methods for fetching resource contents or storing contents, ensuring proper encoding (UTF-8) and exception handling.")]),t._v(" "),s("li",[t._v("Centralized implementation of searching strategies for resources, e.g. Search in user home directory first and if not found search in ARE installation directory. (not supported yet)")]),t._v(" "),s("li",[t._v("Configurable base URIs depending on resource type (not supported yet)")])]),t._v(" "),s("h2",{attrs:{id:"resource-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resource-types"}},[t._v("#")]),t._v(" Resource types")]),t._v(" "),s("p",[t._v("As part of the abstraction, class ResourceRegistry provides several resource types ("),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L482",target:"_blank",rel:"noopener noreferrer"}},[t._v("RES_TYPE enum"),s("OutboundLink")],1),t._v("), which are then mapped to real folders (or maybe later to http-URLs depending on the supported ARE baseURI protocols).")]),t._v(" "),s("p",[t._v("As of AsTeRICS 3.0, these are:")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("MODEL")]),t._v(": Mapped to "),s("code",[t._v("/models/")])]),t._v(" "),s("li",[s("strong",[t._v("DATA")]),t._v(": Four step approach to search for a data file in either "),s("code",[t._v("/models/")]),t._v(" or "),s("code",[t._v("/data/")]),t._v(" or a subfolder of it.")]),t._v(" "),s("li",[s("strong",[t._v("JAR")]),t._v(": Mapped to "),s("code",[t._v("/")])]),t._v(" "),s("li",[s("strong",[t._v("PROFILE")]),t._v(": Mapped to "),s("code",[t._v("/profile/")])]),t._v(" "),s("li",[s("strong",[t._v("STORAGE")]),t._v(": Mapped to "),s("code",[t._v("/storage/")])]),t._v(" "),s("li",[s("strong",[t._v("LICENSE")]),t._v(": Mapped to "),s("code",[t._v("/LICENSE/")])]),t._v(" "),s("li",[s("strong",[t._v("IMAGE")]),t._v(": Mapped to "),s("code",[t._v("/images/")])]),t._v(" "),s("li",[s("strong",[t._v("TMP")]),t._v(": Mapped to "),s("code",[t._v("/tmp/")])]),t._v(" "),s("li",[s("strong",[t._v("WEB_DOCUMENT_ROOT")]),t._v(": Mapped to "),s("code",[t._v("/web/")])]),t._v(" "),s("li",[s("strong",[t._v("ANY")]),t._v(": Mapped to "),s("code",[t._v("/")])])]),t._v(" "),s("h2",{attrs:{id:"prerequisites"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("Java IDE ("),s("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),s("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),s("li",[s("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"preparation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),s("p",[t._v("This tutorial demonstrates how to use the API of class ResourceRegistry in general. The tutorial does not show how to create an "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),s("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),s("ol",[s("li",[t._v("Start Eclipse")]),t._v(" "),s("li",[t._v("Create a new Java project ("),s("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),s("li",[t._v("Add the following libraries to the build configuration ("),s("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),s("ul",[s("li",[s("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),s("p",[s("img",{attrs:{src:a(427),alt:"Build path dialog with external libraries"}})]),t._v(" "),s("ol",{attrs:{start:"4"}},[s("li",[t._v("Create a main class "),s("code",[t._v("ResourceRegistryExamples")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RES_TYPE")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistryExamples")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don't call these two lines if you are using the class ResourceRegistry from within the ARE (plugin).")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setOSGIMode(false) defines that we are using it as a library.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setOSGIMode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setAREBaseURI(URI ...) sets the location of the ARE.jar file, which will be set automatically when used within")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the ARE. If you are on Linux use the respective path of /bin/ARE")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAREBaseURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"C:\\\\Program Files (x86)\\\\AsTeRICS\\\\ARE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Define variables for our examples.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")]),t._v(" myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"example-1-getting-resource-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-1-getting-resource-uri"}},[t._v("#")]),t._v(" Example 1 - Getting resource URI")]),t._v(" "),s("h3",{attrs:{id:"get-model-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-model-uri"}},[t._v("#")]),t._v(" Get model URI")]),t._v(" "),s("p",[t._v("To get the URI of a model file normally located at "),s("code",[t._v("/models/")]),t._v(" or a subpath of it, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"grids\\\\eyeX_Environment\\\\eyeX_Environment.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This returns a valid URI if one can be constructed. The method does not check for resource existence.")]),t._v(" "),s("h3",{attrs:{id:"get-uri-of-a-data-file"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-uri-of-a-data-file"}},[t._v("#")]),t._v(" Get URI of a data file")]),t._v(" "),s("p",[t._v("To get the URIs of files with resource type data, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures/slide7.jpg"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//slashes may be \\\\ or / and even mixed up. The paths may contain spaces")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures\\\\symbols//walk the dog.png"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To indicate that a data file is in a plugin-specific subpath of the data folder, use the overridden getResource method ")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//and provide the componentTypeId")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"haarcascade_frontalface_alt.xml"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"facetrackerLK"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If you provide an absolute URI/URL it is returned as is, withou resolving it against the ARE baseURI.")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"example-2-getting-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2-getting-resource-content"}},[t._v("#")]),t._v(" Example 2 - Getting resource content")]),t._v(" "),s("p",[t._v("To get the contents of a resource as a String, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("ANY")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("When reading the resource content, character encoding is guessed best effort using the class "),s("a",{attrs:{href:"https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/input/BOMInputStream.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("BOMInputStream"),s("OutboundLink")],1),t._v(", with or without "),s("code",[t._v("ByteOrderMark")])]),t._v(" "),s("h2",{attrs:{id:"example-3-storing-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-3-storing-resource-content"}},[t._v("#")]),t._v(" Example 3 - Storing resource content")]),t._v(" "),s("p",[t._v("To store contents to a resource location, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"My new test data to save."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("storeResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"saveddata/testFile.txt"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("The method automatically creates missing directories in the path (if supported by the used protocol, e.g. file://) and ensures proper "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L94",target:"_blank",rel:"noopener noreferrer"}},[t._v("UTF8 character encoding"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"example-4-getting-a-resource-list"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-4-getting-a-resource-list"}},[t._v("#")]),t._v(" Example 4 - Getting a resource list")]),t._v(" "),s("p",[t._v("To get a list of models or data files, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all model resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getModelList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all data resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" dataList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDataList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the element's type must be of String, you can convert it")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelListAsStrings"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toStringList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelList"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("The parameter of "),s("code",[t._v("getModelList")]),t._v(" or "),s("code",[t._v("getDataList")]),t._v(" defines, if the paths should be relative or absolute.")]),t._v(" "),s("h2",{attrs:{id:"references"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L53",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class ResourceRegistry"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/test/java/eu/asterics/mw/services/TestResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Unit tests with usage examples"),s("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{427:function(t,s,a){t.exports=a.p+"assets/img/Resource-Handling-BuildPath.c215c1df.jpg"},989:function(t,s,a){"use strict";a.r(s);var e=a(2),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"resource-handling-resourceregistry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resource-handling-resourceregistry"}},[t._v("#")]),t._v(" Resource Handling (ResourceRegistry)")]),t._v(" "),s("h2",{attrs:{id:"objective"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),s("p",[t._v("In this tutorial you will learn how to use the class ResourceRegistry, which is a central repository that must be used to compose resource URIs and fetch and store resource contents from within plugins and the whole ARE.")]),t._v(" "),s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),s("p",[t._v("The idea is to generically implement the fetching of resources to enable the same approach for the whole AsTeRICS framework. This way all plugins, services and other classes will be able to also support several URI schemes (e.g. file, http, jar,…). Furthermore base URIs can be reconfigured depending on platform specific or usecase specific requirements (e.g. readonly plugin respository hosted on a webserver). Currently only one file based repository URI ("),s("code",[t._v("ARE baseURI")]),t._v(") is supported. Later maybe the repository URIs could also be an http-URL and the plugin resources directly fetched from there.")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("ARE baseURI")]),t._v(" is set to the location of the ARE.jar file by default, but can be set to another location by the method "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L852",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("public void setAREBaseURI(URI areBaseURI)")]),s("OutboundLink")],1),t._v(" programmatically.")]),t._v(" "),s("h2",{attrs:{id:"main-benefits"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#main-benefits"}},[t._v("#")]),t._v(" Main benefits")]),t._v(" "),s("ul",[s("li",[t._v("Abstraction of ARE folder structure: So if folder structure changes models are not affected.")]),t._v(" "),s("li",[t._v("Centralized dealing with platform specific problems ("),s("code",[t._v("\\")]),t._v(", "),s("code",[t._v("/")]),t._v(", conversion between URI encoded path and file path,…)")]),t._v(" "),s("li",[t._v("Dealing with relative and absolute file paths.")]),t._v(" "),s("li",[t._v("By using URI syntax for describing the path of a resource, resources can be of different protocol types (file, http, …)")]),t._v(" "),s("li",[t._v("Many utility methods for checking resource existence and conversion between several types (File, String, URI,…)")]),t._v(" "),s("li",[t._v("Convinience methods for fetching resource contents or storing contents, ensuring proper encoding (UTF-8) and exception handling.")]),t._v(" "),s("li",[t._v("Centralized implementation of searching strategies for resources, e.g. Search in user home directory first and if not found search in ARE installation directory. (not supported yet)")]),t._v(" "),s("li",[t._v("Configurable base URIs depending on resource type (not supported yet)")])]),t._v(" "),s("h2",{attrs:{id:"resource-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resource-types"}},[t._v("#")]),t._v(" Resource types")]),t._v(" "),s("p",[t._v("As part of the abstraction, class ResourceRegistry provides several resource types ("),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L482",target:"_blank",rel:"noopener noreferrer"}},[t._v("RES_TYPE enum"),s("OutboundLink")],1),t._v("), which are then mapped to real folders (or maybe later to http-URLs depending on the supported ARE baseURI protocols).")]),t._v(" "),s("p",[t._v("As of AsTeRICS 3.0, these are:")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("MODEL")]),t._v(": Mapped to "),s("code",[t._v("/models/")])]),t._v(" "),s("li",[s("strong",[t._v("DATA")]),t._v(": Four step approach to search for a data file in either "),s("code",[t._v("/models/")]),t._v(" or "),s("code",[t._v("/data/")]),t._v(" or a subfolder of it.")]),t._v(" "),s("li",[s("strong",[t._v("JAR")]),t._v(": Mapped to "),s("code",[t._v("/")])]),t._v(" "),s("li",[s("strong",[t._v("PROFILE")]),t._v(": Mapped to "),s("code",[t._v("/profile/")])]),t._v(" "),s("li",[s("strong",[t._v("STORAGE")]),t._v(": Mapped to "),s("code",[t._v("/storage/")])]),t._v(" "),s("li",[s("strong",[t._v("LICENSE")]),t._v(": Mapped to "),s("code",[t._v("/LICENSE/")])]),t._v(" "),s("li",[s("strong",[t._v("IMAGE")]),t._v(": Mapped to "),s("code",[t._v("/images/")])]),t._v(" "),s("li",[s("strong",[t._v("TMP")]),t._v(": Mapped to "),s("code",[t._v("/tmp/")])]),t._v(" "),s("li",[s("strong",[t._v("WEB_DOCUMENT_ROOT")]),t._v(": Mapped to "),s("code",[t._v("/web/")])]),t._v(" "),s("li",[s("strong",[t._v("ANY")]),t._v(": Mapped to "),s("code",[t._v("/")])])]),t._v(" "),s("h2",{attrs:{id:"prerequisites"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("Java IDE ("),s("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),s("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),s("li",[s("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"preparation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),s("p",[t._v("This tutorial demonstrates how to use the API of class ResourceRegistry in general. The tutorial does not show how to create an "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),s("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),s("ol",[s("li",[t._v("Start Eclipse")]),t._v(" "),s("li",[t._v("Create a new Java project ("),s("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),s("li",[t._v("Add the following libraries to the build configuration ("),s("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),s("ul",[s("li",[s("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),s("p",[s("img",{attrs:{src:a(427),alt:"Build path dialog with external libraries"}})]),t._v(" "),s("ol",{attrs:{start:"4"}},[s("li",[t._v("Create a main class "),s("code",[t._v("ResourceRegistryExamples")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RES_TYPE")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistryExamples")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don't call these two lines if you are using the class ResourceRegistry from within the ARE (plugin).")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setOSGIMode(false) defines that we are using it as a library.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setOSGIMode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setAREBaseURI(URI ...) sets the location of the ARE.jar file, which will be set automatically when used within")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the ARE. If you are on Linux use the respective path of /bin/ARE")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAREBaseURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"C:\\\\Program Files (x86)\\\\AsTeRICS\\\\ARE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Define variables for our examples.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")]),t._v(" myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"example-1-getting-resource-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-1-getting-resource-uri"}},[t._v("#")]),t._v(" Example 1 - Getting resource URI")]),t._v(" "),s("h3",{attrs:{id:"get-model-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-model-uri"}},[t._v("#")]),t._v(" Get model URI")]),t._v(" "),s("p",[t._v("To get the URI of a model file normally located at "),s("code",[t._v("/models/")]),t._v(" or a subpath of it, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"grids\\\\eyeX_Environment\\\\eyeX_Environment.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This returns a valid URI if one can be constructed. The method does not check for resource existence.")]),t._v(" "),s("h3",{attrs:{id:"get-uri-of-a-data-file"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-uri-of-a-data-file"}},[t._v("#")]),t._v(" Get URI of a data file")]),t._v(" "),s("p",[t._v("To get the URIs of files with resource type data, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures/slide7.jpg"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//slashes may be \\\\ or / and even mixed up. The paths may contain spaces")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures\\\\symbols//walk the dog.png"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To indicate that a data file is in a plugin-specific subpath of the data folder, use the overridden getResource method ")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//and provide the componentTypeId")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"haarcascade_frontalface_alt.xml"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"facetrackerLK"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If you provide an absolute URI/URL it is returned as is, withou resolving it against the ARE baseURI.")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"example-2-getting-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2-getting-resource-content"}},[t._v("#")]),t._v(" Example 2 - Getting resource content")]),t._v(" "),s("p",[t._v("To get the contents of a resource as a String, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("ANY")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("When reading the resource content, character encoding is guessed best effort using the class "),s("a",{attrs:{href:"https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/input/BOMInputStream.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("BOMInputStream"),s("OutboundLink")],1),t._v(", with or without "),s("code",[t._v("ByteOrderMark")])]),t._v(" "),s("h2",{attrs:{id:"example-3-storing-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-3-storing-resource-content"}},[t._v("#")]),t._v(" Example 3 - Storing resource content")]),t._v(" "),s("p",[t._v("To store contents to a resource location, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"My new test data to save."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("storeResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"saveddata/testFile.txt"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("The method automatically creates missing directories in the path (if supported by the used protocol, e.g. file://) and ensures proper "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L94",target:"_blank",rel:"noopener noreferrer"}},[t._v("UTF8 character encoding"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"example-4-getting-a-resource-list"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-4-getting-a-resource-list"}},[t._v("#")]),t._v(" Example 4 - Getting a resource list")]),t._v(" "),s("p",[t._v("To get a list of models or data files, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all model resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getModelList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all data resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" dataList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDataList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the element's type must be of String, you can convert it")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelListAsStrings"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toStringList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelList"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("The parameter of "),s("code",[t._v("getModelList")]),t._v(" or "),s("code",[t._v("getDataList")]),t._v(" defines, if the paths should be relative or absolute.")]),t._v(" "),s("h2",{attrs:{id:"references"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L53",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class ResourceRegistry"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/test/java/eu/asterics/mw/services/TestResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Unit tests with usage examples"),s("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/118.6fd278db.js b/assets/js/118.89d40ea6.js similarity index 93% rename from assets/js/118.6fd278db.js rename to assets/js/118.89d40ea6.js index 2eb472282e..d047c2b231 100644 --- a/assets/js/118.6fd278db.js +++ b/assets/js/118.89d40ea6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{1004:function(t,o,s){"use strict";s.r(o);var e=s(2),n=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"colours-settings"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#colours-settings"}},[t._v("#")]),t._v(" Colours Settings")]),t._v(" "),o("p",[o("img",{attrs:{src:s(448),alt:"Screenshot: Options Dialog, Colours Settings",title:"Screenshot: Options Dialog, Colours Settings"}})]),t._v(" "),o("p",[t._v("Options Dialog, Colours Settings")]),t._v(" "),o("p",[t._v("Within the "),o("em",[t._v("Colours")]),t._v(" tab, the colours of the different parts of a component can be changed. The colour chooser not only allows changing the colour, also the transparency can be changed.")])])}),[],!1,null,null,null);o.default=n.exports},448:function(t,o,s){t.exports=s.p+"assets/img/colour_settings.b6a0614a.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{1001:function(t,o,s){"use strict";s.r(o);var e=s(2),n=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"colours-settings"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#colours-settings"}},[t._v("#")]),t._v(" Colours Settings")]),t._v(" "),o("p",[o("img",{attrs:{src:s(448),alt:"Screenshot: Options Dialog, Colours Settings",title:"Screenshot: Options Dialog, Colours Settings"}})]),t._v(" "),o("p",[t._v("Options Dialog, Colours Settings")]),t._v(" "),o("p",[t._v("Within the "),o("em",[t._v("Colours")]),t._v(" tab, the colours of the different parts of a component can be changed. The colour chooser not only allows changing the colour, also the transparency can be changed.")])])}),[],!1,null,null,null);o.default=n.exports},448:function(t,o,s){t.exports=s.p+"assets/img/colour_settings.b6a0614a.png"}}]); \ No newline at end of file diff --git a/assets/js/119.34307f1b.js b/assets/js/119.c33392fe.js similarity index 96% rename from assets/js/119.34307f1b.js rename to assets/js/119.c33392fe.js index a95d273f19..32afa72e64 100644 --- a/assets/js/119.34307f1b.js +++ b/assets/js/119.c33392fe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{1005:function(e,t,o){"use strict";o.r(t);var n=o(2),l=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"component-collection-manager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-collection-manager"}},[e._v("#")]),e._v(" Component Collection Manager")]),e._v(" "),t("p",[e._v("The Component Collection Manager (see Figure below) is a small tool in which downloaded component collections (the description of the available plugins within the AsTeRICS Runtime Environment) can be saved and administered. Within the component collection manager, the following functionalities are provided:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Use Default")]),e._v(" sets the default ACS component collection as active component collection")]),e._v(" "),t("li",[t("em",[e._v("Set as Autostart")]),e._v(" sets the active component collection as autostart component collection, which will be loaded at ACS startup.")]),e._v(" "),t("li",[t("em",[e._v("Save Component Collection")]),e._v(" saves the active component collection (e.g. a downloaded component collection from the ARE) into the ACS folder.")]),e._v(" "),t("li",[e._v("The "),t("em",[e._v("Saved Component Collections")]),e._v(" list shows all saved component collections. A component collection can be selected and set active.")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(449),alt:"Bundle Manager",title:"Bundle Manager"}})]),e._v(" "),t("p",[e._v("Component Collection Manager")])])}),[],!1,null,null,null);t.default=l.exports},449:function(e,t,o){e.exports=o.p+"assets/img/bundle-manager.a6a8eed1.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{1004:function(e,t,o){"use strict";o.r(t);var n=o(2),l=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"component-collection-manager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-collection-manager"}},[e._v("#")]),e._v(" Component Collection Manager")]),e._v(" "),t("p",[e._v("The Component Collection Manager (see Figure below) is a small tool in which downloaded component collections (the description of the available plugins within the AsTeRICS Runtime Environment) can be saved and administered. Within the component collection manager, the following functionalities are provided:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Use Default")]),e._v(" sets the default ACS component collection as active component collection")]),e._v(" "),t("li",[t("em",[e._v("Set as Autostart")]),e._v(" sets the active component collection as autostart component collection, which will be loaded at ACS startup.")]),e._v(" "),t("li",[t("em",[e._v("Save Component Collection")]),e._v(" saves the active component collection (e.g. a downloaded component collection from the ARE) into the ACS folder.")]),e._v(" "),t("li",[e._v("The "),t("em",[e._v("Saved Component Collections")]),e._v(" list shows all saved component collections. A component collection can be selected and set active.")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(449),alt:"Bundle Manager",title:"Bundle Manager"}})]),e._v(" "),t("p",[e._v("Component Collection Manager")])])}),[],!1,null,null,null);t.default=l.exports},449:function(e,t,o){e.exports=o.p+"assets/img/bundle-manager.a6a8eed1.png"}}]); \ No newline at end of file diff --git a/assets/js/121.ebc67c2e.js b/assets/js/121.408b06cb.js similarity index 87% rename from assets/js/121.ebc67c2e.js rename to assets/js/121.408b06cb.js index 3d0cf95718..fbfd829e54 100644 --- a/assets/js/121.ebc67c2e.js +++ b/assets/js/121.408b06cb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{1009:function(t,s,e){"use strict";e.r(s);var i=e(2),a=Object(i.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"dialogs-settings"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dialogs-settings"}},[t._v("#")]),t._v(" Dialogs Settings")]),t._v(" "),s("p",[s("img",{attrs:{src:e(454),alt:"Screenshot: Options Dialog, Dialogs Settings",title:"Screenshot: Options Dialog, Dialogs Settings"}})]),t._v(" "),s("p",[t._v("Options Dialog, Dialogs Settings")]),t._v(" "),s("p",[t._v("Within this options tab, dialogs can be activated or deactivated. In the ACS, several dialogs have the option "),s("em",[t._v("Show this dialog every time")]),t._v(" . If a dialog has been deactivated there, it can be reactivated in the options dialog.")])])}),[],!1,null,null,null);s.default=a.exports},454:function(t,s,e){t.exports=e.p+"assets/img/dialogs_settings.ec77262c.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{1009:function(t,s,e){"use strict";e.r(s);var i=e(2),a=Object(i.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"dialogs-settings"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dialogs-settings"}},[t._v("#")]),t._v(" Dialogs Settings")]),t._v(" "),s("p",[s("img",{attrs:{src:e(457),alt:"Screenshot: Options Dialog, Dialogs Settings",title:"Screenshot: Options Dialog, Dialogs Settings"}})]),t._v(" "),s("p",[t._v("Options Dialog, Dialogs Settings")]),t._v(" "),s("p",[t._v("Within this options tab, dialogs can be activated or deactivated. In the ACS, several dialogs have the option "),s("em",[t._v("Show this dialog every time")]),t._v(" . If a dialog has been deactivated there, it can be reactivated in the options dialog.")])])}),[],!1,null,null,null);s.default=a.exports},457:function(t,s,e){t.exports=e.p+"assets/img/dialogs_settings.ec77262c.png"}}]); \ No newline at end of file diff --git a/assets/js/122.6f7a0ff1.js b/assets/js/122.6d31a7d1.js similarity index 88% rename from assets/js/122.6f7a0ff1.js rename to assets/js/122.6d31a7d1.js index 7f5da36a15..a79c2b4b3c 100644 --- a/assets/js/122.6f7a0ff1.js +++ b/assets/js/122.6d31a7d1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{1013:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"events"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[this._v("#")]),this._v(" Events")]),this._v(" "),e("p",[this._v("The AsTeRICS platform knows two concepts of connecting two components to each other. The first one is channels, where data is transported from one component to another. The second one is the events-concept. Events are single or continuous happenings, which should trigger an action at the receiver. After an event channel has been established between a trigger and a listener, the events have to be set in the events tab (which appears in the property area - by default on the right side of the ACS). In this event tab, there is a table with two columns: the left column lists the event listeners, the right column the event triggers. So, with the selection box on the right side (second column), the triggering event for the listener will be set. One component can send and receive events from several other components. The following figure shows the setting of events.")]),this._v(" "),e("p",[e("img",{attrs:{src:n(461),alt:"Screenshot: ACS with Active Events Tab",title:"Screenshot: ACS with Active Events Tab"}})]),this._v(" "),e("p",[this._v("ACS with Active Events Tab")])])}),[],!1,null,null,null);t.default=i.exports},461:function(e,t,n){e.exports=n.p+"assets/img/acs_with_active_events_tab.ae677a1b.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{1012:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"events"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[this._v("#")]),this._v(" Events")]),this._v(" "),e("p",[this._v("The AsTeRICS platform knows two concepts of connecting two components to each other. The first one is channels, where data is transported from one component to another. The second one is the events-concept. Events are single or continuous happenings, which should trigger an action at the receiver. After an event channel has been established between a trigger and a listener, the events have to be set in the events tab (which appears in the property area - by default on the right side of the ACS). In this event tab, there is a table with two columns: the left column lists the event listeners, the right column the event triggers. So, with the selection box on the right side (second column), the triggering event for the listener will be set. One component can send and receive events from several other components. The following figure shows the setting of events.")]),this._v(" "),e("p",[e("img",{attrs:{src:n(459),alt:"Screenshot: ACS with Active Events Tab",title:"Screenshot: ACS with Active Events Tab"}})]),this._v(" "),e("p",[this._v("ACS with Active Events Tab")])])}),[],!1,null,null,null);t.default=i.exports},459:function(e,t,n){e.exports=n.p+"assets/img/acs_with_active_events_tab.ae677a1b.png"}}]); \ No newline at end of file diff --git a/assets/js/123.eb625d81.js b/assets/js/123.3d9bc0ec.js similarity index 83% rename from assets/js/123.eb625d81.js rename to assets/js/123.3d9bc0ec.js index c35aeabc84..db76b1c23e 100644 --- a/assets/js/123.eb625d81.js +++ b/assets/js/123.3d9bc0ec.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{1014:function(t,e,n){"use strict";n.r(e);var o=n(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"external-tools-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#external-tools-settings"}},[t._v("#")]),t._v(" External Tools Settings")]),t._v(" "),e("p",[e("img",{attrs:{src:n(462),alt:"Screenshot: External Tools Settings",title:"Screenshot: External Tools Settings"}})]),t._v(" "),e("p",[t._v("Options Dialog, External Tools Settings")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Path to the Plugin Creation Wizard")]),t._v(" sets the path to the plugin creation wizard.")]),t._v(" "),e("li",[e("em",[t._v("Path to the Plugin Activation Wizard")]),t._v(" sets the path to the plugin activation wizard.")])]),t._v(" "),e("p",[t._v("More information about the external tools can be found at the section "),e("em",[t._v("External Tools")]),t._v(".")])])}),[],!1,null,null,null);e.default=s.exports},462:function(t,e,n){t.exports=n.p+"assets/img/external_tools_settings.ca6ac2eb.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{1011:function(t,e,n){"use strict";n.r(e);var o=n(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"external-tools-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#external-tools-settings"}},[t._v("#")]),t._v(" External Tools Settings")]),t._v(" "),e("p",[e("img",{attrs:{src:n(458),alt:"Screenshot: External Tools Settings",title:"Screenshot: External Tools Settings"}})]),t._v(" "),e("p",[t._v("Options Dialog, External Tools Settings")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Path to the Plugin Creation Wizard")]),t._v(" sets the path to the plugin creation wizard.")]),t._v(" "),e("li",[e("em",[t._v("Path to the Plugin Activation Wizard")]),t._v(" sets the path to the plugin activation wizard.")])]),t._v(" "),e("p",[t._v("More information about the external tools can be found at the section "),e("em",[t._v("External Tools")]),t._v(".")])])}),[],!1,null,null,null);e.default=s.exports},458:function(t,e,n){t.exports=n.p+"assets/img/external_tools_settings.ca6ac2eb.png"}}]); \ No newline at end of file diff --git a/assets/js/124.093d37a7.js b/assets/js/124.67ce29f7.js similarity index 82% rename from assets/js/124.093d37a7.js rename to assets/js/124.67ce29f7.js index 454ed47293..545ba935e0 100644 --- a/assets/js/124.093d37a7.js +++ b/assets/js/124.67ce29f7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{1015:function(e,t,s){"use strict";s.r(t);var n=s(2),i=Object(n.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"gui-designer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#gui-designer"}},[this._v("#")]),this._v(" GUI Designer")]),this._v(" "),e("p",[this._v("The GUI Designer allows to arrange the GUI Elements of components with a graphical user interface. These GUI Elements will then be shown on the ARE GUI. All GUI elements will be drawn and deleted automatically, if a component with a GUI is added or deleted. Within the GUI Designer, the size and the position of the GUI Elements can be changed.")]),this._v(" "),e("p",[e("img",{attrs:{src:s(463),alt:"Screenshot: The GUI Designer of the ACS",title:"Screenshot: The GUI Designer of the ACS"}})]),this._v(" "),e("p",[this._v("The GUI Designer")])])}),[],!1,null,null,null);t.default=i.exports},463:function(e,t,s){e.exports=s.p+"assets/img/gui_designer.039c882e.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{1013:function(e,t,s){"use strict";s.r(t);var n=s(2),i=Object(n.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"gui-designer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#gui-designer"}},[this._v("#")]),this._v(" GUI Designer")]),this._v(" "),e("p",[this._v("The GUI Designer allows to arrange the GUI Elements of components with a graphical user interface. These GUI Elements will then be shown on the ARE GUI. All GUI elements will be drawn and deleted automatically, if a component with a GUI is added or deleted. Within the GUI Designer, the size and the position of the GUI Elements can be changed.")]),this._v(" "),e("p",[e("img",{attrs:{src:s(460),alt:"Screenshot: The GUI Designer of the ACS",title:"Screenshot: The GUI Designer of the ACS"}})]),this._v(" "),e("p",[this._v("The GUI Designer")])])}),[],!1,null,null,null);t.default=i.exports},460:function(e,t,s){e.exports=s.p+"assets/img/gui_designer.039c882e.png"}}]); \ No newline at end of file diff --git a/assets/js/125.ae8cc030.js b/assets/js/125.8d4856f2.js similarity index 94% rename from assets/js/125.ae8cc030.js rename to assets/js/125.8d4856f2.js index 3f99c49efe..2e977225ac 100644 --- a/assets/js/125.ae8cc030.js +++ b/assets/js/125.8d4856f2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{1016:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"general-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-settings"}},[e._v("#")]),e._v(" General Settings")]),e._v(" "),t("p",[t("img",{attrs:{src:n(464),alt:"Screenshot: Options Dialog, General Settings",title:"Screenshot: Options Dialog, General Settings"}})]),e._v(" "),t("p",[e._v("Options Dialog, General Settings")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Reset Window Arrangement")]),e._v(" resets all layout settings to default values.")]),e._v(" "),t("li",[t("em",[e._v("Language")]),e._v(" gives the possibility to select the ACS language between English, German, Spanish and Polish. The properties of the components will not be affected by this, as they are dependent on the component description. After changing the language, a restart of the ACS is required for the changes to take effect.")]),e._v(" "),t("li",[t("em",[e._v("Connection Data")]),e._v(" is responsible for the connection of the ACS with the ARE. The Host contains the IP-address of the ARE, the Port its IP-port. Default port is 9090. If "),t("em",[e._v("Detect ARE automatically")]),e._v(" is selected, the host information will be ignored and the ACS tries to find the ARE in the network. If more then one ARE will be detected in the network, an ARE selection dialog will appear. "),t("em",[e._v("Connection Timeout")]),e._v(" sets time network timeout time (in milliseconds). If the ARE is not reacting after this time, the connection to the ARE will be closed.")]),e._v(" "),t("li",[t("em",[e._v("ARE Status Update")]),e._v(" enables or disables an automatic update of the ARE status. This status update works while the ACS is in run-mode. The Update Frequency sets the time between two status updates (in milliseconds).")]),e._v(" "),t("li",[t("em",[e._v("Automatic Backup Files")]),e._v(" creates a backup file during each "),t("em",[e._v("Save File")]),e._v(" process. The backup file gets the ending .backup.")])])])}),[],!1,null,null,null);t.default=i.exports},464:function(e,t,n){e.exports=n.p+"assets/img/general_settings.0c251b2d.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{1016:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"general-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-settings"}},[e._v("#")]),e._v(" General Settings")]),e._v(" "),t("p",[t("img",{attrs:{src:n(469),alt:"Screenshot: Options Dialog, General Settings",title:"Screenshot: Options Dialog, General Settings"}})]),e._v(" "),t("p",[e._v("Options Dialog, General Settings")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Reset Window Arrangement")]),e._v(" resets all layout settings to default values.")]),e._v(" "),t("li",[t("em",[e._v("Language")]),e._v(" gives the possibility to select the ACS language between English, German, Spanish and Polish. The properties of the components will not be affected by this, as they are dependent on the component description. After changing the language, a restart of the ACS is required for the changes to take effect.")]),e._v(" "),t("li",[t("em",[e._v("Connection Data")]),e._v(" is responsible for the connection of the ACS with the ARE. The Host contains the IP-address of the ARE, the Port its IP-port. Default port is 9090. If "),t("em",[e._v("Detect ARE automatically")]),e._v(" is selected, the host information will be ignored and the ACS tries to find the ARE in the network. If more then one ARE will be detected in the network, an ARE selection dialog will appear. "),t("em",[e._v("Connection Timeout")]),e._v(" sets time network timeout time (in milliseconds). If the ARE is not reacting after this time, the connection to the ARE will be closed.")]),e._v(" "),t("li",[t("em",[e._v("ARE Status Update")]),e._v(" enables or disables an automatic update of the ARE status. This status update works while the ACS is in run-mode. The Update Frequency sets the time between two status updates (in milliseconds).")]),e._v(" "),t("li",[t("em",[e._v("Automatic Backup Files")]),e._v(" creates a backup file during each "),t("em",[e._v("Save File")]),e._v(" process. The backup file gets the ending .backup.")])])])}),[],!1,null,null,null);t.default=i.exports},469:function(e,t,n){e.exports=n.p+"assets/img/general_settings.0c251b2d.png"}}]); \ No newline at end of file diff --git a/assets/js/126.87cb7f78.js b/assets/js/126.e21e1ad7.js similarity index 98% rename from assets/js/126.87cb7f78.js rename to assets/js/126.e21e1ad7.js index fd7b76cf45..57bb248c67 100644 --- a/assets/js/126.87cb7f78.js +++ b/assets/js/126.e21e1ad7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{1017:function(t,A,e){"use strict";e.r(A);var a=e(2),o=Object(a.a)({},(function(){var t=this,A=t._self._c;return A("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[A("h1",{attrs:{id:"open-and-save-models"}},[A("a",{staticClass:"header-anchor",attrs:{href:"#open-and-save-models"}},[t._v("#")]),t._v(" Open and Save Models")]),t._v(" "),A("p",[t._v("In the system tab, models can be saved on the local file system ("),A("em",[t._v("Save Model")]),t._v(", "),A("em",[t._v("Save Model as")]),t._v("), or loaded from the local file system ("),A("em",[t._v("Open Model")]),t._v("). "),A("em",[t._v("New Model")]),t._v(" cleans up the drawing field, preparing everything for a new model.")]),t._v(" "),A("p",[A("img",{attrs:{src:e(465),alt:"Screenshot: Local Operations Group in Tab System",title:"Screenshot: Local Operations Group in Tab System"}})]),t._v(" "),A("p",[t._v("Local Operations Group in Tab System")])])}),[],!1,null,null,null);A.default=o.exports},465:function(t,A){t.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{1017:function(t,A,e){"use strict";e.r(A);var a=e(2),o=Object(a.a)({},(function(){var t=this,A=t._self._c;return A("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[A("h1",{attrs:{id:"open-and-save-models"}},[A("a",{staticClass:"header-anchor",attrs:{href:"#open-and-save-models"}},[t._v("#")]),t._v(" Open and Save Models")]),t._v(" "),A("p",[t._v("In the system tab, models can be saved on the local file system ("),A("em",[t._v("Save Model")]),t._v(", "),A("em",[t._v("Save Model as")]),t._v("), or loaded from the local file system ("),A("em",[t._v("Open Model")]),t._v("). "),A("em",[t._v("New Model")]),t._v(" cleans up the drawing field, preparing everything for a new model.")]),t._v(" "),A("p",[A("img",{attrs:{src:e(470),alt:"Screenshot: Local Operations Group in Tab System",title:"Screenshot: Local Operations Group in Tab System"}})]),t._v(" "),A("p",[t._v("Local Operations Group in Tab System")])])}),[],!1,null,null,null);A.default=o.exports},470:function(t,A){t.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/127.688fd2bb.js b/assets/js/127.5e261f38.js similarity index 94% rename from assets/js/127.688fd2bb.js rename to assets/js/127.5e261f38.js index bb6a803cc5..7bf0380532 100644 --- a/assets/js/127.688fd2bb.js +++ b/assets/js/127.5e261f38.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[127],{1020:function(e,t,a){"use strict";a.r(t);var n=a(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"miscellaneous"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#miscellaneous"}},[e._v("#")]),e._v(" Miscellaneous")]),e._v(" "),t("p",[e._v("Within the tab "),t("em",[e._v("Miscellaneous")]),e._v(" (Misc.), status reports and logging files can be requested from the connected ARE, options can be set, the "),t("em",[e._v("Component Collection Manager")]),e._v(" can be called and external tools can be launched. The three supported external tools are the "),t("em",[e._v("Plugin Creation Wizard")]),e._v(", the "),t("em",[e._v("Plugin Activation Wizard")]),e._v(" and the "),t("em",[e._v("Language Translation File Creator")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(280),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),e._v(" "),t("p",[e._v("The Miscellaneous Tab")])])}),[],!1,null,null,null);t.default=s.exports},280:function(e,t,a){e.exports=a.p+"assets/img/miscellaneous_tab.50018162.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[127],{1018:function(e,t,a){"use strict";a.r(t);var n=a(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"miscellaneous"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#miscellaneous"}},[e._v("#")]),e._v(" Miscellaneous")]),e._v(" "),t("p",[e._v("Within the tab "),t("em",[e._v("Miscellaneous")]),e._v(" (Misc.), status reports and logging files can be requested from the connected ARE, options can be set, the "),t("em",[e._v("Component Collection Manager")]),e._v(" can be called and external tools can be launched. The three supported external tools are the "),t("em",[e._v("Plugin Creation Wizard")]),e._v(", the "),t("em",[e._v("Plugin Activation Wizard")]),e._v(" and the "),t("em",[e._v("Language Translation File Creator")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(280),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),e._v(" "),t("p",[e._v("The Miscellaneous Tab")])])}),[],!1,null,null,null);t.default=s.exports},280:function(e,t,a){e.exports=a.p+"assets/img/miscellaneous_tab.50018162.png"}}]); \ No newline at end of file diff --git a/assets/js/128.437a4bfb.js b/assets/js/128.e1c6745b.js similarity index 88% rename from assets/js/128.437a4bfb.js rename to assets/js/128.e1c6745b.js index a014124bd9..4cdc786f60 100644 --- a/assets/js/128.437a4bfb.js +++ b/assets/js/128.e1c6745b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{1025:function(n,e,t){"use strict";t.r(e);var s=t(2),i=Object(s.a)({},(function(){var n=this,e=n._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"running"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#running"}},[n._v("#")]),n._v(" Running")]),n._v(" "),e("p",[n._v("After the "),e("em",[n._v("Start Model")]),n._v(" button has been pressed, the ACS is in the "),e("em",[n._v("running")]),n._v(" mode. Within this mode, the drawing area is disabled (indicated by a grey background) and the buttons in the components tab and the edit tab are disabled, so elements can only be selected or moved. The following figure shows a screenshot of the ACS in running mode.")]),n._v(" "),e("p",[e("img",{attrs:{src:t(471),alt:"Screenshot: The ACS in the Running Modus",title:"Screenshot: The ACS in the Running Modus"}})]),n._v(" "),e("p",[n._v("The ACS in the Running Modus")])])}),[],!1,null,null,null);e.default=i.exports},471:function(n,e,t){n.exports=t.p+"assets/img/running_modus.b1736e0d.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{1025:function(n,e,t){"use strict";t.r(e);var s=t(2),i=Object(s.a)({},(function(){var n=this,e=n._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"running"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#running"}},[n._v("#")]),n._v(" Running")]),n._v(" "),e("p",[n._v("After the "),e("em",[n._v("Start Model")]),n._v(" button has been pressed, the ACS is in the "),e("em",[n._v("running")]),n._v(" mode. Within this mode, the drawing area is disabled (indicated by a grey background) and the buttons in the components tab and the edit tab are disabled, so elements can only be selected or moved. The following figure shows a screenshot of the ACS in running mode.")]),n._v(" "),e("p",[e("img",{attrs:{src:t(473),alt:"Screenshot: The ACS in the Running Modus",title:"Screenshot: The ACS in the Running Modus"}})]),n._v(" "),e("p",[n._v("The ACS in the Running Modus")])])}),[],!1,null,null,null);e.default=i.exports},473:function(n,e,t){n.exports=t.p+"assets/img/running_modus.b1736e0d.png"}}]); \ No newline at end of file diff --git a/assets/js/129.fdb39d91.js b/assets/js/129.6f3d16ce.js similarity index 92% rename from assets/js/129.fdb39d91.js rename to assets/js/129.6f3d16ce.js index 203cd9d596..345383cd89 100644 --- a/assets/js/129.fdb39d91.js +++ b/assets/js/129.6f3d16ce.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{1039:function(e,t,n){"use strict";n.r(t);var s=n(2),o=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"events"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[this._v("#")]),this._v(" Events")]),this._v(" "),e("p",[this._v("The AsTeRICS platform knows two concepts of connecting two components to each other. The first one is channels, where data is transported from one component to another. The second one is the events-concept. Events are single or continuous happenings, which should trigger an action at the receiver. After connecting two components with an event channel, the event connections have to be set in the events tab (which appears in the property editor on the right side of the ACS, when an event channel is focussed). This event tab consists of a table with two columns: the left column lists the event listeners (at the component receiving the event), the right column lists the event triggers (coming from the component that sends the event). So, with the selection box on the right hand side (second column), one or several triggering events can be set for any listener. One component can send and receive events to and from several other components. The following figure shows the setting of events.")]),this._v(" "),e("p",[e("img",{attrs:{src:n(486),alt:"Screenshot: ACS with Active Events Tab",title:"Screenshot: ACS with Active Events Tab"}})]),this._v(" "),e("p",[this._v("ACS with Active Events Tab")])])}),[],!1,null,null,null);t.default=o.exports},486:function(e,t,n){e.exports=n.p+"assets/img/acs_with_active_events_tab.efea5701.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{1039:function(e,t,n){"use strict";n.r(t);var s=n(2),o=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"events"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[this._v("#")]),this._v(" Events")]),this._v(" "),e("p",[this._v("The AsTeRICS platform knows two concepts of connecting two components to each other. The first one is channels, where data is transported from one component to another. The second one is the events-concept. Events are single or continuous happenings, which should trigger an action at the receiver. After connecting two components with an event channel, the event connections have to be set in the events tab (which appears in the property editor on the right side of the ACS, when an event channel is focussed). This event tab consists of a table with two columns: the left column lists the event listeners (at the component receiving the event), the right column lists the event triggers (coming from the component that sends the event). So, with the selection box on the right hand side (second column), one or several triggering events can be set for any listener. One component can send and receive events to and from several other components. The following figure shows the setting of events.")]),this._v(" "),e("p",[e("img",{attrs:{src:n(492),alt:"Screenshot: ACS with Active Events Tab",title:"Screenshot: ACS with Active Events Tab"}})]),this._v(" "),e("p",[this._v("ACS with Active Events Tab")])])}),[],!1,null,null,null);t.default=o.exports},492:function(e,t,n){e.exports=n.p+"assets/img/acs_with_active_events_tab.efea5701.png"}}]); \ No newline at end of file diff --git a/assets/js/13.79f7da28.js b/assets/js/13.61edaffd.js similarity index 99% rename from assets/js/13.79f7da28.js rename to assets/js/13.61edaffd.js index ae8b99e106..52d5c9055b 100644 --- a/assets/js/13.79f7da28.js +++ b/assets/js/13.61edaffd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{303:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_c2213f881cbf5182.abc6a2f0.png"},304:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_ae369b509ff2c0e5.bc1cbc88.png"},305:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_dd4b70e6240040e3.6272921f.png"},306:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_a82259165c76b9df.da0379b4.png"},307:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_3d4398abcb45cc73.1ff3242b.png"},308:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_fbbda5b6e8f42820.b9487507.png"},309:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_a0117682e4ae2ecc.f3f88992.png"},310:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_4304f99776fb485f.9217fb55.png"},311:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_f35fad4db20b5c1.cc89c5a3.png"},312:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_2672e47f28834257.fa86415c.png"},989:function(e,t,n){"use strict";n.r(t);var i=n(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"plugin-development"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-development"}},[e._v("#")]),e._v(" Plugin Development")]),e._v(" "),t("h2",{attrs:{id:"a-quick-guide-to-asterics-plugin-development"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-quick-guide-to-asterics-plugin-development"}},[e._v("#")]),e._v(" A Quick Guide to AsTeRICS Plugin Development")]),e._v(" "),t("p",[e._v("This section describes the AsTeRICS Plugin-Creation tool and the plugin-activation process. These tools make it easy to create new plugins and make them available in ACS and ARE. They can be started manually from their location in the "),t("strong",[e._v("AsTeRICS_runtime.zip")]),e._v(" package (folder: “ACS/tools”) – or they can be launched from the “Misc.” – Tab in the main menu of the ACS:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(303),alt:""}})]),e._v(" "),t("p",[e._v("The creation of a new AsTeRICS plugin for the runtime environment involves several steps:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("creating the folder structure to store the plugin files")])]),e._v(" "),t("li",[t("p",[e._v("creating the ANT build script file")])]),e._v(" "),t("li",[t("p",[e._v("creating the manifest file")])]),e._v(" "),t("li",[t("p",[e._v("creating the bundle-descriptor, which specifies the ports and properties of the plugin")])]),e._v(" "),t("li",[t("p",[e._v("creating the source code file of the JavaInstance")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("defining the ports and properties and implementing the get- and set-methods for input-, output-, eventListener- and evenTrigger ports")])]),e._v(" "),t("li",[t("p",[e._v("implementing the get- and set- methods for property values and the input ports receive handlers")])])])]),e._v(" "),t("li",[t("p",[e._v("creating the license files for the plugin and third-party libraries in the "),t("strong",[e._v("LICENSE")]),e._v(" subfolder")])])]),e._v(" "),t("p",[e._v("This process is similar for each plugin, and involves much work and sources of errors, especially for people who work with the AsTeRICS framework for the first time.")]),e._v(" "),t("p",[e._v("Usually, you look for a plugin with similar specifications, copy its folder structure and then rename and change the files as desired. But also this process needs some effort and errors/typos can be introduced very easily.")]),e._v(" "),t("p",[e._v("The purpose of the AsTeRICS Plugin Creation Tools is to make it easy to create new plugins, by providing the necessary folder structure, the bundle descriptor and a template for the JAVA source code.")]),e._v(" "),t("h2",{attrs:{id:"the-plugin-creation-wizard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-plugin-creation-wizard"}},[e._v("#")]),e._v(" The Plugin Creation Wizard")]),e._v(" "),t("p",[e._v("The plugin Creation wizard allows definition of characteristics of a new plugin and creates the needed folders and files for the Eclipse build flow, including the JAVA source code skeleton and the plugin’s bundle descriptor.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(304),alt:""}})]),e._v(" "),t("p",[e._v("As can be seen in the above figure, desired input- and output ports, data types, properties and plugin-features are simply selected and added to list boxes on the screen.")]),e._v(" "),t("p",[e._v("Important Notes:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("the path to the target folder has to exist in the local file system, and must point to the ARE/components directory where all plugin source files are located, e.g.: “C:\\asterics\\bin\\components\\”.")])]),e._v(" "),t("li",[t("p",[e._v("The plugin name must be specified in CamelCase letters (capital first letter), e.g. “MyPlugin”. Type and Subcategory have to be specified - they define the location where the plugin will appear in the ACS Components menu.")])]),e._v(" "),t("li",[t("p",[e._v("It is possible to create a list of possible text-selections in a combo-box in the ACS property editor. The data type for this property must be integer, the property gets the number of the selected item. Text-captions for the combo-box entries must be separated with double slash, e.g: “Mode 1//Mode 2//Mode 3”.")])])]),e._v(" "),t("h2",{attrs:{id:"created-files-and-folders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#created-files-and-folders"}},[e._v("#")]),e._v(" Created files and folders")]),e._v(" "),t("p",[e._v("After “Create Plugin!” has been pressed and the plugin creation was completed successfully, following sub-folders and files are begin created:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(305),alt:""}})]),e._v(" "),t("p",[e._v("The root folder contains the build script, which can be executed inside Eclipse to compile and build the plugin (.jar) file:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(306),alt:""}})]),e._v(" "),t("p",[e._v("The META-INF folder contains the manifest file")]),e._v(" "),t("p",[t("img",{attrs:{src:n(307),alt:""}})]),e._v(" "),t("p",[e._v("The “resources” folder contains the bundle descriptor (bundle_descriptor.xml):")]),e._v(" "),t("p",[t("img",{attrs:{src:n(308),alt:""}})]),e._v(" "),t("p",[e._v("The source code folder "),t("code",[e._v("src/main/java/eu/asterics/component//")]),e._v(" contains a template for the plugin source code in JAVA, including the definitions of the selected ports and properties and the needed get- and set- methods for ports and property values. The code skeleton complies to the AsTeRICS coding guidelines and contains the AsTeRICS source file header (only a small portion is shown in the following screenshot).")]),e._v(" "),t("p",[t("img",{attrs:{src:n(309),alt:""}})]),e._v(" "),t("p",[e._v("After the Eclipse IDE has been opened, Eclipse must be pushed to refresh the folder structure by pushing F5. Furthermore, the path "),t("code",[e._v("src/main/java")]),e._v(" must be configured as source folder.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(310),alt:""}})]),e._v(" "),t("p",[e._v("The plugin code can be built using the provided build script (right-click build.xml -> RunAs -> Ant Build in the plugin’s folder)")]),e._v(" "),t("p",[t("img",{attrs:{src:n(311),alt:""}})]),e._v(" "),t("p",[e._v("To see the plugin in the ACS editor window and/or start it inside the runtime environment, the Plugin Activation Tool can be used (see section 3).")]),e._v(" "),t("h2",{attrs:{id:"plugin-activation-in-acs-and-are"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-activation-in-acs-and-are"}},[e._v("#")]),e._v(" Plugin Activation in ACS and ARE")]),e._v(" "),t("p",[e._v("To use a new AsTeRICS plugin which has been built using the Eclipse build flow and exists as executable .jar file/OSGI bundle, one step is necessary:")]),e._v(" "),t("ol",[t("li",[e._v("The Plugin has to be "),t("strong",[e._v("announced to the ACS")]),e._v(" – so that it gets visible in the graphical editor and can be used for the creation of deployment models. This is done by adding the bundle descriptor of the new plugin to a component-collection file (extension “.abd”) in the ACS-folder. These component collections contain all bundle-descriptors of components which can be used in the ACS. The new plugin section can be added either manually or can be downloaded from the running ARE via the ACS’ Component-Collection Manager (recommended, see 3.2.1). Using the Component Collection Manger, the downloaded collection can be stored as “default Component Collection” for the ACS, so that all components will be available when the ACS is started next time.")])]),e._v(" "),t("p",[e._v("Subsequently, the plugin can be selected in the “components” menu of the ACS, and the ARE will activate the plugin at startup.")]),e._v(" "),t("h2",{attrs:{id:"component-collection-management-in-the-acs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-collection-management-in-the-acs"}},[e._v("#")]),e._v(" Component-Collection Management in the ACS")]),e._v(" "),t("p",[e._v("The ACS provides a function for downloading the bundle descriptions of all active plugins directly from a running ARE and creating a component collection file from this information. (“System”- tab, Button “Download Component Collection”):")]),e._v(" "),t("p",[t("img",{attrs:{src:n(312),alt:""}})]),e._v(" "),t("p",[e._v("The component collection will be stored as “.abd” – file in the ACS folder, subfolder “componentcollections”. The new component collection can be used right after download, but will not be available after an ACS restart.")]),e._v(" "),t("p",[e._v("Within the ACS Component-Collection Manager (in the “Miscellaneous” tab), component collections can be selected or set as default collection for the ACS startup. For details see the User Manual, ACS section.")]),e._v(" "),t("p",[e._v("Please note that the “loader.ini” – file has to be updated manually in the ARE’s “profile” subfolder, by addition of the new .jar filename. After restart of the ARE and connection to the ACS, the component collection can be downloaded.")]),e._v(" "),t("h2",{attrs:{id:"plugin-license-declaration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-license-declaration"}},[e._v("#")]),e._v(" Plugin License Declaration")]),e._v(" "),t("p",[e._v("Since AsTeRICS version 2.8 the licenses (including licenses of third-party libraries) of a plugin must be provided as .txt files in the LICENSE subfolder. The filenames must follow a defined naming convention, which is:")]),e._v(" "),t("p",[e._v("A contributor must add the respective license file for the component (either "),t("strong",[e._v("LICENSE_MITOrGPLv3WithException.txt")]),e._v(" or one of the two dual license options) to the component/LICENSE folder. Furthermore, for each thirdparty library used, the license file must be added with the following naming convention (Please use CamelCase notation for the library and license names):")]),e._v(" "),t("p",[t("strong",[e._v("THIRDPARTY_NameOfLibrary_LicenseNameInclVersionInfo.txt")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{303:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_c2213f881cbf5182.abc6a2f0.png"},304:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_ae369b509ff2c0e5.bc1cbc88.png"},305:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_dd4b70e6240040e3.6272921f.png"},306:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_a82259165c76b9df.da0379b4.png"},307:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_3d4398abcb45cc73.1ff3242b.png"},308:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_fbbda5b6e8f42820.b9487507.png"},309:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_a0117682e4ae2ecc.f3f88992.png"},310:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_4304f99776fb485f.9217fb55.png"},311:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_f35fad4db20b5c1.cc89c5a3.png"},312:function(e,t,n){e.exports=n.p+"assets/img/DeveloperManual_html_2672e47f28834257.fa86415c.png"},987:function(e,t,n){"use strict";n.r(t);var i=n(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"plugin-development"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-development"}},[e._v("#")]),e._v(" Plugin Development")]),e._v(" "),t("h2",{attrs:{id:"a-quick-guide-to-asterics-plugin-development"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-quick-guide-to-asterics-plugin-development"}},[e._v("#")]),e._v(" A Quick Guide to AsTeRICS Plugin Development")]),e._v(" "),t("p",[e._v("This section describes the AsTeRICS Plugin-Creation tool and the plugin-activation process. These tools make it easy to create new plugins and make them available in ACS and ARE. They can be started manually from their location in the "),t("strong",[e._v("AsTeRICS_runtime.zip")]),e._v(" package (folder: “ACS/tools”) – or they can be launched from the “Misc.” – Tab in the main menu of the ACS:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(303),alt:""}})]),e._v(" "),t("p",[e._v("The creation of a new AsTeRICS plugin for the runtime environment involves several steps:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("creating the folder structure to store the plugin files")])]),e._v(" "),t("li",[t("p",[e._v("creating the ANT build script file")])]),e._v(" "),t("li",[t("p",[e._v("creating the manifest file")])]),e._v(" "),t("li",[t("p",[e._v("creating the bundle-descriptor, which specifies the ports and properties of the plugin")])]),e._v(" "),t("li",[t("p",[e._v("creating the source code file of the JavaInstance")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("defining the ports and properties and implementing the get- and set-methods for input-, output-, eventListener- and evenTrigger ports")])]),e._v(" "),t("li",[t("p",[e._v("implementing the get- and set- methods for property values and the input ports receive handlers")])])])]),e._v(" "),t("li",[t("p",[e._v("creating the license files for the plugin and third-party libraries in the "),t("strong",[e._v("LICENSE")]),e._v(" subfolder")])])]),e._v(" "),t("p",[e._v("This process is similar for each plugin, and involves much work and sources of errors, especially for people who work with the AsTeRICS framework for the first time.")]),e._v(" "),t("p",[e._v("Usually, you look for a plugin with similar specifications, copy its folder structure and then rename and change the files as desired. But also this process needs some effort and errors/typos can be introduced very easily.")]),e._v(" "),t("p",[e._v("The purpose of the AsTeRICS Plugin Creation Tools is to make it easy to create new plugins, by providing the necessary folder structure, the bundle descriptor and a template for the JAVA source code.")]),e._v(" "),t("h2",{attrs:{id:"the-plugin-creation-wizard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-plugin-creation-wizard"}},[e._v("#")]),e._v(" The Plugin Creation Wizard")]),e._v(" "),t("p",[e._v("The plugin Creation wizard allows definition of characteristics of a new plugin and creates the needed folders and files for the Eclipse build flow, including the JAVA source code skeleton and the plugin’s bundle descriptor.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(304),alt:""}})]),e._v(" "),t("p",[e._v("As can be seen in the above figure, desired input- and output ports, data types, properties and plugin-features are simply selected and added to list boxes on the screen.")]),e._v(" "),t("p",[e._v("Important Notes:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("the path to the target folder has to exist in the local file system, and must point to the ARE/components directory where all plugin source files are located, e.g.: “C:\\asterics\\bin\\components\\”.")])]),e._v(" "),t("li",[t("p",[e._v("The plugin name must be specified in CamelCase letters (capital first letter), e.g. “MyPlugin”. Type and Subcategory have to be specified - they define the location where the plugin will appear in the ACS Components menu.")])]),e._v(" "),t("li",[t("p",[e._v("It is possible to create a list of possible text-selections in a combo-box in the ACS property editor. The data type for this property must be integer, the property gets the number of the selected item. Text-captions for the combo-box entries must be separated with double slash, e.g: “Mode 1//Mode 2//Mode 3”.")])])]),e._v(" "),t("h2",{attrs:{id:"created-files-and-folders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#created-files-and-folders"}},[e._v("#")]),e._v(" Created files and folders")]),e._v(" "),t("p",[e._v("After “Create Plugin!” has been pressed and the plugin creation was completed successfully, following sub-folders and files are begin created:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(305),alt:""}})]),e._v(" "),t("p",[e._v("The root folder contains the build script, which can be executed inside Eclipse to compile and build the plugin (.jar) file:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(306),alt:""}})]),e._v(" "),t("p",[e._v("The META-INF folder contains the manifest file")]),e._v(" "),t("p",[t("img",{attrs:{src:n(307),alt:""}})]),e._v(" "),t("p",[e._v("The “resources” folder contains the bundle descriptor (bundle_descriptor.xml):")]),e._v(" "),t("p",[t("img",{attrs:{src:n(308),alt:""}})]),e._v(" "),t("p",[e._v("The source code folder "),t("code",[e._v("src/main/java/eu/asterics/component//")]),e._v(" contains a template for the plugin source code in JAVA, including the definitions of the selected ports and properties and the needed get- and set- methods for ports and property values. The code skeleton complies to the AsTeRICS coding guidelines and contains the AsTeRICS source file header (only a small portion is shown in the following screenshot).")]),e._v(" "),t("p",[t("img",{attrs:{src:n(309),alt:""}})]),e._v(" "),t("p",[e._v("After the Eclipse IDE has been opened, Eclipse must be pushed to refresh the folder structure by pushing F5. Furthermore, the path "),t("code",[e._v("src/main/java")]),e._v(" must be configured as source folder.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(310),alt:""}})]),e._v(" "),t("p",[e._v("The plugin code can be built using the provided build script (right-click build.xml -> RunAs -> Ant Build in the plugin’s folder)")]),e._v(" "),t("p",[t("img",{attrs:{src:n(311),alt:""}})]),e._v(" "),t("p",[e._v("To see the plugin in the ACS editor window and/or start it inside the runtime environment, the Plugin Activation Tool can be used (see section 3).")]),e._v(" "),t("h2",{attrs:{id:"plugin-activation-in-acs-and-are"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-activation-in-acs-and-are"}},[e._v("#")]),e._v(" Plugin Activation in ACS and ARE")]),e._v(" "),t("p",[e._v("To use a new AsTeRICS plugin which has been built using the Eclipse build flow and exists as executable .jar file/OSGI bundle, one step is necessary:")]),e._v(" "),t("ol",[t("li",[e._v("The Plugin has to be "),t("strong",[e._v("announced to the ACS")]),e._v(" – so that it gets visible in the graphical editor and can be used for the creation of deployment models. This is done by adding the bundle descriptor of the new plugin to a component-collection file (extension “.abd”) in the ACS-folder. These component collections contain all bundle-descriptors of components which can be used in the ACS. The new plugin section can be added either manually or can be downloaded from the running ARE via the ACS’ Component-Collection Manager (recommended, see 3.2.1). Using the Component Collection Manger, the downloaded collection can be stored as “default Component Collection” for the ACS, so that all components will be available when the ACS is started next time.")])]),e._v(" "),t("p",[e._v("Subsequently, the plugin can be selected in the “components” menu of the ACS, and the ARE will activate the plugin at startup.")]),e._v(" "),t("h2",{attrs:{id:"component-collection-management-in-the-acs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-collection-management-in-the-acs"}},[e._v("#")]),e._v(" Component-Collection Management in the ACS")]),e._v(" "),t("p",[e._v("The ACS provides a function for downloading the bundle descriptions of all active plugins directly from a running ARE and creating a component collection file from this information. (“System”- tab, Button “Download Component Collection”):")]),e._v(" "),t("p",[t("img",{attrs:{src:n(312),alt:""}})]),e._v(" "),t("p",[e._v("The component collection will be stored as “.abd” – file in the ACS folder, subfolder “componentcollections”. The new component collection can be used right after download, but will not be available after an ACS restart.")]),e._v(" "),t("p",[e._v("Within the ACS Component-Collection Manager (in the “Miscellaneous” tab), component collections can be selected or set as default collection for the ACS startup. For details see the User Manual, ACS section.")]),e._v(" "),t("p",[e._v("Please note that the “loader.ini” – file has to be updated manually in the ARE’s “profile” subfolder, by addition of the new .jar filename. After restart of the ARE and connection to the ACS, the component collection can be downloaded.")]),e._v(" "),t("h2",{attrs:{id:"plugin-license-declaration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-license-declaration"}},[e._v("#")]),e._v(" Plugin License Declaration")]),e._v(" "),t("p",[e._v("Since AsTeRICS version 2.8 the licenses (including licenses of third-party libraries) of a plugin must be provided as .txt files in the LICENSE subfolder. The filenames must follow a defined naming convention, which is:")]),e._v(" "),t("p",[e._v("A contributor must add the respective license file for the component (either "),t("strong",[e._v("LICENSE_MITOrGPLv3WithException.txt")]),e._v(" or one of the two dual license options) to the component/LICENSE folder. Furthermore, for each thirdparty library used, the license file must be added with the following naming convention (Please use CamelCase notation for the library and license names):")]),e._v(" "),t("p",[t("strong",[e._v("THIRDPARTY_NameOfLibrary_LicenseNameInclVersionInfo.txt")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/130.de6e36f4.js b/assets/js/130.68300466.js similarity index 90% rename from assets/js/130.de6e36f4.js rename to assets/js/130.68300466.js index 714aa529e8..e469f4b8ea 100644 --- a/assets/js/130.de6e36f4.js +++ b/assets/js/130.68300466.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{1040:function(e,t,n){"use strict";n.r(t);var s=n(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gui-designer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gui-designer"}},[e._v("#")]),e._v(" GUI Designer")]),e._v(" "),t("p",[e._v("The GUI Designer allows to arrange the graphical user interfaces (GUI) of those components that have one. These GUI Elements will then be shown on the ARE GUI. GUI elements are drawn and deleted automatically when a component with a GUI is added to or deleted from the model. Within the GUI Designer the size and the position of the GUI Elements can be changed by drag and drop.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(487),alt:"Screenshot: The GUI Designer of the ACS",title:"Screenshot: The GUI Designer of the ACS"}})]),e._v(" "),t("p",[e._v("The GUI Designer")]),e._v(" "),t("p",[e._v("Keyboard users can enter keyboard mode by hitting the Enter key when GUI Designer is selected. Then the user can navigate the elements by using the arrow keys. Shift-arrow keys moves the selected element, Alt-arrow keys resizes the selected element.")])])}),[],!1,null,null,null);t.default=r.exports},487:function(e,t,n){e.exports=n.p+"assets/img/gui_designer.eb48eff2.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{1040:function(e,t,n){"use strict";n.r(t);var s=n(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gui-designer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gui-designer"}},[e._v("#")]),e._v(" GUI Designer")]),e._v(" "),t("p",[e._v("The GUI Designer allows to arrange the graphical user interfaces (GUI) of those components that have one. These GUI Elements will then be shown on the ARE GUI. GUI elements are drawn and deleted automatically when a component with a GUI is added to or deleted from the model. Within the GUI Designer the size and the position of the GUI Elements can be changed by drag and drop.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(493),alt:"Screenshot: The GUI Designer of the ACS",title:"Screenshot: The GUI Designer of the ACS"}})]),e._v(" "),t("p",[e._v("The GUI Designer")]),e._v(" "),t("p",[e._v("Keyboard users can enter keyboard mode by hitting the Enter key when GUI Designer is selected. Then the user can navigate the elements by using the arrow keys. Shift-arrow keys moves the selected element, Alt-arrow keys resizes the selected element.")])])}),[],!1,null,null,null);t.default=r.exports},493:function(e,t,n){e.exports=n.p+"assets/img/gui_designer.eb48eff2.png"}}]); \ No newline at end of file diff --git a/assets/js/131.b6d692c2.js b/assets/js/131.71d55b25.js similarity index 92% rename from assets/js/131.b6d692c2.js rename to assets/js/131.71d55b25.js index 4d3afd8b74..ff4aa0309a 100644 --- a/assets/js/131.b6d692c2.js +++ b/assets/js/131.71d55b25.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[131],{1042:function(e,t,n){"use strict";n.r(t);var s=n(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"list-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#list-view"}},[e._v("#")]),e._v(" List View")]),e._v(" "),t("p",[e._v("The List View provides the same model as shown in the Model Designer, but as a list of elements. It is sorted by Sensors, Processors and Actuators. For each component it shows a list of Ports and for each port a list of connections, including a direct link to the connected element. It also contains buttons to connect channels. For example by pressing "),t("em",[e._v("Start new datachannel")]),e._v(", a new datachannel is started. The focus automatically jumps to the "),t("em",[e._v("Action Pending")]),e._v(" section at the top of the page, where the pending action is indicated and a "),t("em",[e._v("Cancel channel")]),e._v(" button enables the user to continue without completing the channel. However, if the user presses a "),t("em",[e._v("Connect datachannel here")]),e._v(" button at a matching input port, the connection is finalised and the channel now exists. This works in the same way for event channels.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(494),alt:"Screenshot: List View",title:"Screenshot: List View"}})]),e._v(" "),t("p",[e._v("List View")]),e._v(" "),t("p",[e._v("Keyboard users can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Then the user can navigate the elements by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Space")]),e._v(" activates port mode, so that the ports of the selected components can be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the "),t("em",[e._v("Space")]),e._v(" bar again. Now the channels connected to the selected port can be navigated using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends channel mode."),t("br"),e._v("\nThe buttons for connecting the channels and for jumping to connected elements can be reached by using the "),t("em",[e._v("Tab")]),e._v(" key")])])}),[],!1,null,null,null);t.default=a.exports},494:function(e,t,n){e.exports=n.p+"assets/img/list_view.ddd12587.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[131],{1043:function(e,t,n){"use strict";n.r(t);var s=n(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"list-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#list-view"}},[e._v("#")]),e._v(" List View")]),e._v(" "),t("p",[e._v("The List View provides the same model as shown in the Model Designer, but as a list of elements. It is sorted by Sensors, Processors and Actuators. For each component it shows a list of Ports and for each port a list of connections, including a direct link to the connected element. It also contains buttons to connect channels. For example by pressing "),t("em",[e._v("Start new datachannel")]),e._v(", a new datachannel is started. The focus automatically jumps to the "),t("em",[e._v("Action Pending")]),e._v(" section at the top of the page, where the pending action is indicated and a "),t("em",[e._v("Cancel channel")]),e._v(" button enables the user to continue without completing the channel. However, if the user presses a "),t("em",[e._v("Connect datachannel here")]),e._v(" button at a matching input port, the connection is finalised and the channel now exists. This works in the same way for event channels.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(496),alt:"Screenshot: List View",title:"Screenshot: List View"}})]),e._v(" "),t("p",[e._v("List View")]),e._v(" "),t("p",[e._v("Keyboard users can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Then the user can navigate the elements by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Space")]),e._v(" activates port mode, so that the ports of the selected components can be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the "),t("em",[e._v("Space")]),e._v(" bar again. Now the channels connected to the selected port can be navigated using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends channel mode."),t("br"),e._v("\nThe buttons for connecting the channels and for jumping to connected elements can be reached by using the "),t("em",[e._v("Tab")]),e._v(" key")])])}),[],!1,null,null,null);t.default=a.exports},496:function(e,t,n){e.exports=n.p+"assets/img/list_view.ddd12587.png"}}]); \ No newline at end of file diff --git a/assets/js/132.da5d1bd5.js b/assets/js/132.fee5c5d5.js similarity index 93% rename from assets/js/132.da5d1bd5.js rename to assets/js/132.fee5c5d5.js index 5667afe105..1bd9811852 100644 --- a/assets/js/132.da5d1bd5.js +++ b/assets/js/132.fee5c5d5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[132],{1043:function(t,e,s){"use strict";s.r(e);var a=s(2),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"miscellaneous"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#miscellaneous"}},[t._v("#")]),t._v(" Miscellaneous")]),t._v(" "),e("p",[t._v("The tab "),e("em",[t._v("Misc.")]),t._v(" (Miscellaneous) contains a button that leads to this help system and a button that gives information about the ACS. The other functions on this tab are not yet implemented.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(495),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),t._v(" "),e("p",[t._v("The Miscellaneous Tab")])])}),[],!1,null,null,null);e.default=n.exports},495:function(t,e,s){t.exports=s.p+"assets/img/miscellaneous_tab.d09bda1c.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[132],{1042:function(t,e,s){"use strict";s.r(e);var a=s(2),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"miscellaneous"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#miscellaneous"}},[t._v("#")]),t._v(" Miscellaneous")]),t._v(" "),e("p",[t._v("The tab "),e("em",[t._v("Misc.")]),t._v(" (Miscellaneous) contains a button that leads to this help system and a button that gives information about the ACS. The other functions on this tab are not yet implemented.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(495),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),t._v(" "),e("p",[t._v("The Miscellaneous Tab")])])}),[],!1,null,null,null);e.default=n.exports},495:function(t,e,s){t.exports=s.p+"assets/img/miscellaneous_tab.d09bda1c.png"}}]); \ No newline at end of file diff --git a/assets/js/133.0348c000.js b/assets/js/133.b3ad2ffe.js similarity index 82% rename from assets/js/133.0348c000.js rename to assets/js/133.b3ad2ffe.js index 9657e6edd4..055d944c2c 100644 --- a/assets/js/133.0348c000.js +++ b/assets/js/133.b3ad2ffe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[133],{1044:function(e,t,o){"use strict";o.r(t);var s=o(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"open-and-save-models"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-and-save-models"}},[e._v("#")]),e._v(" Open and Save Models")]),e._v(" "),t("p",[e._v("In the system tab, models can be saved to the local file system ("),t("em",[e._v("Save Model")]),e._v("), or loaded from the local file system ("),t("em",[e._v("Open Model")]),e._v("). "),t("em",[e._v("New Model")]),e._v(" adds a new tab with a new empty model. To close a model tab use "),t("em",[e._v("Close Model")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(496),alt:"Screenshot: Local Operations Group in Tab System",title:"Screenshot: Local Operations Group in Tab System"}})]),e._v(" "),t("p",[e._v("Local Operations Group in Tab System")])])}),[],!1,null,null,null);t.default=a.exports},496:function(e,t,o){e.exports=o.p+"assets/img/local_operations_group.b36f5cfe.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[133],{1041:function(e,t,o){"use strict";o.r(t);var s=o(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"open-and-save-models"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-and-save-models"}},[e._v("#")]),e._v(" Open and Save Models")]),e._v(" "),t("p",[e._v("In the system tab, models can be saved to the local file system ("),t("em",[e._v("Save Model")]),e._v("), or loaded from the local file system ("),t("em",[e._v("Open Model")]),e._v("). "),t("em",[e._v("New Model")]),e._v(" adds a new tab with a new empty model. To close a model tab use "),t("em",[e._v("Close Model")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(494),alt:"Screenshot: Local Operations Group in Tab System",title:"Screenshot: Local Operations Group in Tab System"}})]),e._v(" "),t("p",[e._v("Local Operations Group in Tab System")])])}),[],!1,null,null,null);t.default=a.exports},494:function(e,t,o){e.exports=o.p+"assets/img/local_operations_group.b36f5cfe.png"}}]); \ No newline at end of file diff --git a/assets/js/134.b8b66a89.js b/assets/js/134.fbe4e6f5.js similarity index 95% rename from assets/js/134.b8b66a89.js rename to assets/js/134.fbe4e6f5.js index ac70f65117..94f6afec89 100644 --- a/assets/js/134.b8b66a89.js +++ b/assets/js/134.fbe4e6f5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[134],{1045:function(e,t,r){"use strict";r.r(t);var i=r(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acs-basic-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acs-basic-functions"}},[e._v("#")]),e._v(" ACS Basic Functions")]),e._v(" "),t("p",[e._v("The AsTeRICS Configuration Suite (ACS) is a web application, which can be run either locally (by simply opening index.html in a webbrowser) or inside a webserver (by entering the respective URL in the webbrowser). Note that the WebACS is currently optimised for usage with Mozilla Firefox 56 or later.")]),e._v(" "),t("p",[e._v("The figure below shows the WebACS after startup. The red numbers point out the most important areas:")]),e._v(" "),t("ol",[t("li",[e._v("Menu")]),e._v(" "),t("li",[e._v("Model Designer: graphical representation of current AsTeRICS model")]),e._v(" "),t("li",[e._v("GUI Designer: graphical editor for runtime user interface")]),e._v(" "),t("li",[e._v("List View: current AsTeRICS model as a list of elements and their interrelations")]),e._v(" "),t("li",[e._v("Property Editor: for adapting the properties of the selected element")])]),e._v(" "),t("p",[t("img",{attrs:{src:r(497),alt:"Screenshot: ACS after startup",title:"Screenshot: ACS after startup"}})]),e._v(" "),t("p",[e._v("ACS after Startup")])])}),[],!1,null,null,null);t.default=s.exports},497:function(e,t,r){e.exports=r.p+"assets/img/acs_after_startup.754041b6.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[134],{1044:function(e,t,r){"use strict";r.r(t);var i=r(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acs-basic-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acs-basic-functions"}},[e._v("#")]),e._v(" ACS Basic Functions")]),e._v(" "),t("p",[e._v("The AsTeRICS Configuration Suite (ACS) is a web application, which can be run either locally (by simply opening index.html in a webbrowser) or inside a webserver (by entering the respective URL in the webbrowser). Note that the WebACS is currently optimised for usage with Mozilla Firefox 56 or later.")]),e._v(" "),t("p",[e._v("The figure below shows the WebACS after startup. The red numbers point out the most important areas:")]),e._v(" "),t("ol",[t("li",[e._v("Menu")]),e._v(" "),t("li",[e._v("Model Designer: graphical representation of current AsTeRICS model")]),e._v(" "),t("li",[e._v("GUI Designer: graphical editor for runtime user interface")]),e._v(" "),t("li",[e._v("List View: current AsTeRICS model as a list of elements and their interrelations")]),e._v(" "),t("li",[e._v("Property Editor: for adapting the properties of the selected element")])]),e._v(" "),t("p",[t("img",{attrs:{src:r(497),alt:"Screenshot: ACS after startup",title:"Screenshot: ACS after startup"}})]),e._v(" "),t("p",[e._v("ACS after Startup")])])}),[],!1,null,null,null);t.default=s.exports},497:function(e,t,r){e.exports=r.p+"assets/img/acs_after_startup.754041b6.png"}}]); \ No newline at end of file diff --git a/assets/js/135.7be85740.js b/assets/js/135.3d2b77b3.js similarity index 84% rename from assets/js/135.7be85740.js rename to assets/js/135.3d2b77b3.js index 43be84ff68..075ae94c39 100644 --- a/assets/js/135.7be85740.js +++ b/assets/js/135.3d2b77b3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{1048:function(t,e,o){"use strict";o.r(e);var s=o(2),n=Object(s.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"setting-the-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-the-properties"}},[this._v("#")]),this._v(" Setting the Properties")]),this._v(" "),t("p",[this._v("Each component has 0 to several properties, by means of which the behaviour of the component can be adapted or functions can be enabled. The usage of the properties and their effects can be found in the documentation of the components. The following figure shows the property editor editing the characteristics of the component “DigitalOut”.")]),this._v(" "),t("p",[t("img",{attrs:{src:o(499),alt:"Screenshot: The Property Tab showing a Component's Properties",title:"Screenshot: The Property Tab showing a Component's Properties"}})]),this._v(" "),t("p",[this._v("The Property Tab showing a Component’s Properties")])])}),[],!1,null,null,null);e.default=n.exports},499:function(t,e,o){t.exports=o.p+"assets/img/a_components_properties_in_property_tab.3a55cb01.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{1045:function(t,e,o){"use strict";o.r(e);var s=o(2),n=Object(s.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"setting-the-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-the-properties"}},[this._v("#")]),this._v(" Setting the Properties")]),this._v(" "),t("p",[this._v("Each component has 0 to several properties, by means of which the behaviour of the component can be adapted or functions can be enabled. The usage of the properties and their effects can be found in the documentation of the components. The following figure shows the property editor editing the characteristics of the component “DigitalOut”.")]),this._v(" "),t("p",[t("img",{attrs:{src:o(498),alt:"Screenshot: The Property Tab showing a Component's Properties",title:"Screenshot: The Property Tab showing a Component's Properties"}})]),this._v(" "),t("p",[this._v("The Property Tab showing a Component’s Properties")])])}),[],!1,null,null,null);e.default=n.exports},498:function(t,e,o){t.exports=o.p+"assets/img/a_components_properties_in_property_tab.3a55cb01.png"}}]); \ No newline at end of file diff --git a/assets/js/136.d07d0b6e.js b/assets/js/136.f94ff2c2.js similarity index 95% rename from assets/js/136.d07d0b6e.js rename to assets/js/136.f94ff2c2.js index c3c3c01698..368186f517 100644 --- a/assets/js/136.d07d0b6e.js +++ b/assets/js/136.f94ff2c2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[136],{1046:function(e,t,o){"use strict";o.r(t);var n=o(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"the-edit-tab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-edit-tab"}},[e._v("#")]),e._v(" The Edit Tab")]),e._v(" "),t("p",[e._v("The edit tab is used for manipulating the components and their interconnections. The list below provides a detailed description of the available operations found on the Edit Tab as shown in the figure.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(498),alt:"Screenshot: The edit tab",title:"Screenshot: The edit tab"}})]),e._v(" "),t("p",[e._v("The Edit Tab")]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Model Properties")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Edit Model ID (not yet implemented)")]),e._v(" edits the unique model ID. This ID is generated automatically and is used by the ARE to store model based information belonging to the editing model.")]),e._v(" "),t("li",[t("em",[e._v("Show Model Description (not yet implemented)")]),e._v(" shows the model description dialog, allowing the user to edit the model description. The description is divided into three parts: "),t("em",[e._v("Short Description")]),e._v(", "),t("em",[e._v("Model Requirements")]),e._v(" and "),t("em",[e._v("Detailed Description")])])]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Edit")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Cut")]),e._v(" cuts out the selected elements and stores them to clipboard.")]),e._v(" "),t("li",[t("em",[e._v("Copy")]),e._v(" copies the selected elements to the clipboard.")]),e._v(" "),t("li",[t("em",[e._v("Paste")]),e._v(" copies the elements from the clipboard to the drawing field.")]),e._v(" "),t("li",[t("em",[e._v("Delete Selection")]),e._v(" deletes the selected elements. This can also be done with the delete-key.")]),e._v(" "),t("li",[t("em",[e._v("Undo")]),e._v(" the last editing action like move a component, add/delete a component or also the channel and event channel operations. Setting properties and events (things done in the property window) are excluded form undo.")]),e._v(" "),t("li",[t("em",[e._v("Redo")]),e._v(" the last editing action that has been undone with "),t("em",[e._v("Undo")]),e._v(". Setting properties and events (things done in the property window) are excluded form redo.")])]),e._v(" "),t("p",[e._v("After at least two components have been added to the deployment, they can be connected to each other. A connection always has to start at an output port (right hand side of a component) connecting to an input port (left side of a component). One output port can be connected to several input ports, but an input port can only receive data from one output port. Additionally the data types of the ports must match in order to be able to connect them (see the section on Channels).")])])}),[],!1,null,null,null);t.default=i.exports},498:function(e,t,o){e.exports=o.p+"assets/img/edit_tab.366308ad.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[136],{1046:function(e,t,o){"use strict";o.r(t);var n=o(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"the-edit-tab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-edit-tab"}},[e._v("#")]),e._v(" The Edit Tab")]),e._v(" "),t("p",[e._v("The edit tab is used for manipulating the components and their interconnections. The list below provides a detailed description of the available operations found on the Edit Tab as shown in the figure.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(499),alt:"Screenshot: The edit tab",title:"Screenshot: The edit tab"}})]),e._v(" "),t("p",[e._v("The Edit Tab")]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Model Properties")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Edit Model ID (not yet implemented)")]),e._v(" edits the unique model ID. This ID is generated automatically and is used by the ARE to store model based information belonging to the editing model.")]),e._v(" "),t("li",[t("em",[e._v("Show Model Description (not yet implemented)")]),e._v(" shows the model description dialog, allowing the user to edit the model description. The description is divided into three parts: "),t("em",[e._v("Short Description")]),e._v(", "),t("em",[e._v("Model Requirements")]),e._v(" and "),t("em",[e._v("Detailed Description")])])]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Edit")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Cut")]),e._v(" cuts out the selected elements and stores them to clipboard.")]),e._v(" "),t("li",[t("em",[e._v("Copy")]),e._v(" copies the selected elements to the clipboard.")]),e._v(" "),t("li",[t("em",[e._v("Paste")]),e._v(" copies the elements from the clipboard to the drawing field.")]),e._v(" "),t("li",[t("em",[e._v("Delete Selection")]),e._v(" deletes the selected elements. This can also be done with the delete-key.")]),e._v(" "),t("li",[t("em",[e._v("Undo")]),e._v(" the last editing action like move a component, add/delete a component or also the channel and event channel operations. Setting properties and events (things done in the property window) are excluded form undo.")]),e._v(" "),t("li",[t("em",[e._v("Redo")]),e._v(" the last editing action that has been undone with "),t("em",[e._v("Undo")]),e._v(". Setting properties and events (things done in the property window) are excluded form redo.")])]),e._v(" "),t("p",[e._v("After at least two components have been added to the deployment, they can be connected to each other. A connection always has to start at an output port (right hand side of a component) connecting to an input port (left side of a component). One output port can be connected to several input ports, but an input port can only receive data from one output port. Additionally the data types of the ports must match in order to be able to connect them (see the section on Channels).")])])}),[],!1,null,null,null);t.default=i.exports},499:function(e,t,o){e.exports=o.p+"assets/img/edit_tab.366308ad.png"}}]); \ No newline at end of file diff --git a/assets/js/137.e2cb8538.js b/assets/js/137.d104f9e4.js similarity index 95% rename from assets/js/137.e2cb8538.js rename to assets/js/137.d104f9e4.js index cb180eee9a..334359f886 100644 --- a/assets/js/137.e2cb8538.js +++ b/assets/js/137.d104f9e4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{1068:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"arewindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#arewindow"}},[e._v("#")]),e._v(" AREWindow")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This component allows moving the ARE window to desired locations on the screen and setting its state and modification options. Several default locations can be selected via incoming events (top, left, bottom, right or center of the screen). X- and Y- offset values can be defined - thus it becomes possible to set the ARE window e.g to a second screen (which is currently not supported in the ACS GUI designer).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(612),alt:"Screenshot: AREWindow plugin",title:"Screenshot: AREWindow plugin"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" The x offest value for positioning the ARE window")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" The y offest value for positioning the ARE window")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("moveToTop:")]),e._v(" moves the ARE window to the top of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToBottom:")]),e._v(" moves the ARE window to the bottom of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToLeft:")]),e._v(" moves the ARE window to the left side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToRight:")]),e._v(" moves the ARE window to the right side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToCenter:")]),e._v(" moves the ARE window to the center of the screen (x and y offsets will be applied).")]),e._v(" "),t("li",[t("strong",[e._v("minimize:")]),e._v(" minimizes the ARE window to the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("restore:")]),e._v(" restores the ARE window from the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("bringToFront:")]),e._v(" places the ARE window on top of other windows")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" default value for the x offset")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" default value for the y offset")]),e._v(" "),t("li",[t("strong",[e._v("autoSetPosition [boolean]:")]),e._v(" if selected, the ARE window position will be modified at startup of the model according to the xPos and yPos properties. Furthermore, incoming values at the xPos or yPos ports will automatically position the ARE window.")]),e._v(" "),t("li",[t("strong",[e._v("allowWindowModification [boolean]:")]),e._v(" If selected, the user can change the ARE window decoration and control panel by double- or right-clicking into the ARE window. These functions will be disabled when the property is not selected.")])])])}),[],!1,null,null,null);t.default=n.exports},612:function(e,t,o){e.exports=o.p+"assets/img/arewindow.e4d5dc4b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{1063:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"arewindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#arewindow"}},[e._v("#")]),e._v(" AREWindow")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This component allows moving the ARE window to desired locations on the screen and setting its state and modification options. Several default locations can be selected via incoming events (top, left, bottom, right or center of the screen). X- and Y- offset values can be defined - thus it becomes possible to set the ARE window e.g to a second screen (which is currently not supported in the ACS GUI designer).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(576),alt:"Screenshot: AREWindow plugin",title:"Screenshot: AREWindow plugin"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" The x offest value for positioning the ARE window")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" The y offest value for positioning the ARE window")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("moveToTop:")]),e._v(" moves the ARE window to the top of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToBottom:")]),e._v(" moves the ARE window to the bottom of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToLeft:")]),e._v(" moves the ARE window to the left side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToRight:")]),e._v(" moves the ARE window to the right side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToCenter:")]),e._v(" moves the ARE window to the center of the screen (x and y offsets will be applied).")]),e._v(" "),t("li",[t("strong",[e._v("minimize:")]),e._v(" minimizes the ARE window to the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("restore:")]),e._v(" restores the ARE window from the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("bringToFront:")]),e._v(" places the ARE window on top of other windows")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" default value for the x offset")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" default value for the y offset")]),e._v(" "),t("li",[t("strong",[e._v("autoSetPosition [boolean]:")]),e._v(" if selected, the ARE window position will be modified at startup of the model according to the xPos and yPos properties. Furthermore, incoming values at the xPos or yPos ports will automatically position the ARE window.")]),e._v(" "),t("li",[t("strong",[e._v("allowWindowModification [boolean]:")]),e._v(" If selected, the user can change the ARE window decoration and control panel by double- or right-clicking into the ARE window. These functions will be disabled when the property is not selected.")])])])}),[],!1,null,null,null);t.default=n.exports},576:function(e,t,o){e.exports=o.p+"assets/img/arewindow.e4d5dc4b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/138.97be6652.js b/assets/js/138.41364369.js similarity index 95% rename from assets/js/138.97be6652.js rename to assets/js/138.41364369.js index cbd6220cce..c51df70de8 100644 --- a/assets/js/138.97be6652.js +++ b/assets/js/138.41364369.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[138],{1066:function(e,t,n){"use strict";n.r(t);var r=n(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"androidphonecontrol"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#androidphonecontrol"}},[e._v("#")]),e._v(" AndroidPhoneControl")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Phone Interface)")]),e._v(" "),t("p",[e._v("This component controls a mobile phone with Android operating system through the TCP/IP connection.\nCurrently this component is able to perform such action as: call a remote phone, drop a phone call, send and receive SMS message.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(609),alt:"Screenshot: AndroidPhoneControl plugin",title:"Screenshot: AndroidPhoneControl plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("Android phone running AsTeRICSPhoneServer application.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("phoneID [string]:")]),e._v(" The phone number used for outgoing SMS and make phone calls.")]),e._v(" "),t("li",[t("strong",[e._v("SMSContent [string]:")]),e._v(" The SMS content which will be used for the send SMS action.")]),e._v(" "),t("li",[t("strong",[e._v("command [string]:")]),e._v(" String command that can be sent to this component from other plugins to trigger phone actions.\nCurrently supported commands are:\n"),t("ul",[t("li",[e._v("@PHONE: SMS:Phone_ID, “Message_content”")]),e._v(" "),t("li",[e._v("@PHONE: SMS")]),e._v(" "),t("li",[e._v("@PHONE: CALL: Phone_ID")]),e._v(" "),t("li",[e._v("@PHONE: CALL")]),e._v(" "),t("li",[e._v("@PHONE: ACCEPT")]),e._v(" "),t("li",[e._v("@PHONE: DROP")]),e._v(" "),t("li",[e._v("@PHONE: SET_ID: Phone_ID")]),e._v(" "),t("li",[e._v("@PHONE: SET_SMS: “Message_content”")])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("remotePhoneID [string]:")]),e._v(" This is a phone number of the caller or SMS sender.")]),e._v(" "),t("li",[t("strong",[e._v("receivedSMS [string]:")]),e._v(" This is the content of the incoming SMS.")]),e._v(" "),t("li",[t("strong",[e._v("errorNumber [integer]:")]),e._v(" The number of the error.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendSMS:")]),e._v(" Sends the SMS message.")]),e._v(" "),t("li",[t("strong",[e._v("makePhoneCall:")]),e._v(" Makes the phone call.")]),e._v(" "),t("li",[t("strong",[e._v("acceptPhoneCall:")]),e._v(" Accepts the incoming phone call.")]),e._v(" "),t("li",[t("strong",[e._v("dropPhoneCall:")]),e._v(" Drops the phone call.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("idleState:")]),e._v(" Phone is in the idle state.")]),e._v(" "),t("li",[t("strong",[e._v("ringState:")]),e._v(" Phone is in the ring state.")]),e._v(" "),t("li",[t("strong",[e._v("connectedState:")]),e._v(" Phone is connected with the remote phone.")]),e._v(" "),t("li",[t("strong",[e._v("newSMS:")]),e._v(" There is a new SMS.")]),e._v(" "),t("li",[t("strong",[e._v("error:")]),e._v(" An error occurred.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("connectionType [integer]:")]),e._v(" Defines connection type for the plugin: client or server.")]),e._v(" "),t("li",[t("strong",[e._v("IP [string]:")]),e._v(" IP of the remote server used in the client mode.")]),e._v(" "),t("li",[t("strong",[e._v("port [integer]:")]),e._v(" TCP/IP port of the service.")]),e._v(" "),t("li",[t("strong",[e._v("defaultPhoneID [string]:")]),e._v(" Default phone number for outgoing SMS and phone calls.")])]),e._v(" "),t("p",[t("a",{attrs:{href:"Android_connection.htm"}},[e._v("Preparation of the connection with Android Phone.")])])])}),[],!1,null,null,null);t.default=o.exports},609:function(e,t,n){e.exports=n.p+"assets/img/androidphonecontrol.c66f2379.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[138],{1069:function(e,t,n){"use strict";n.r(t);var r=n(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"androidphonecontrol"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#androidphonecontrol"}},[e._v("#")]),e._v(" AndroidPhoneControl")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Phone Interface)")]),e._v(" "),t("p",[e._v("This component controls a mobile phone with Android operating system through the TCP/IP connection.\nCurrently this component is able to perform such action as: call a remote phone, drop a phone call, send and receive SMS message.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(614),alt:"Screenshot: AndroidPhoneControl plugin",title:"Screenshot: AndroidPhoneControl plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("Android phone running AsTeRICSPhoneServer application.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("phoneID [string]:")]),e._v(" The phone number used for outgoing SMS and make phone calls.")]),e._v(" "),t("li",[t("strong",[e._v("SMSContent [string]:")]),e._v(" The SMS content which will be used for the send SMS action.")]),e._v(" "),t("li",[t("strong",[e._v("command [string]:")]),e._v(" String command that can be sent to this component from other plugins to trigger phone actions.\nCurrently supported commands are:\n"),t("ul",[t("li",[e._v("@PHONE: SMS:Phone_ID, “Message_content”")]),e._v(" "),t("li",[e._v("@PHONE: SMS")]),e._v(" "),t("li",[e._v("@PHONE: CALL: Phone_ID")]),e._v(" "),t("li",[e._v("@PHONE: CALL")]),e._v(" "),t("li",[e._v("@PHONE: ACCEPT")]),e._v(" "),t("li",[e._v("@PHONE: DROP")]),e._v(" "),t("li",[e._v("@PHONE: SET_ID: Phone_ID")]),e._v(" "),t("li",[e._v("@PHONE: SET_SMS: “Message_content”")])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("remotePhoneID [string]:")]),e._v(" This is a phone number of the caller or SMS sender.")]),e._v(" "),t("li",[t("strong",[e._v("receivedSMS [string]:")]),e._v(" This is the content of the incoming SMS.")]),e._v(" "),t("li",[t("strong",[e._v("errorNumber [integer]:")]),e._v(" The number of the error.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendSMS:")]),e._v(" Sends the SMS message.")]),e._v(" "),t("li",[t("strong",[e._v("makePhoneCall:")]),e._v(" Makes the phone call.")]),e._v(" "),t("li",[t("strong",[e._v("acceptPhoneCall:")]),e._v(" Accepts the incoming phone call.")]),e._v(" "),t("li",[t("strong",[e._v("dropPhoneCall:")]),e._v(" Drops the phone call.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("idleState:")]),e._v(" Phone is in the idle state.")]),e._v(" "),t("li",[t("strong",[e._v("ringState:")]),e._v(" Phone is in the ring state.")]),e._v(" "),t("li",[t("strong",[e._v("connectedState:")]),e._v(" Phone is connected with the remote phone.")]),e._v(" "),t("li",[t("strong",[e._v("newSMS:")]),e._v(" There is a new SMS.")]),e._v(" "),t("li",[t("strong",[e._v("error:")]),e._v(" An error occurred.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("connectionType [integer]:")]),e._v(" Defines connection type for the plugin: client or server.")]),e._v(" "),t("li",[t("strong",[e._v("IP [string]:")]),e._v(" IP of the remote server used in the client mode.")]),e._v(" "),t("li",[t("strong",[e._v("port [integer]:")]),e._v(" TCP/IP port of the service.")]),e._v(" "),t("li",[t("strong",[e._v("defaultPhoneID [string]:")]),e._v(" Default phone number for outgoing SMS and phone calls.")])]),e._v(" "),t("p",[t("a",{attrs:{href:"Android_connection.htm"}},[e._v("Preparation of the connection with Android Phone.")])])])}),[],!1,null,null,null);t.default=o.exports},614:function(e,t,n){e.exports=n.p+"assets/img/androidphonecontrol.c66f2379.jpg"}}]); \ No newline at end of file diff --git a/assets/js/139.163e991e.js b/assets/js/139.4ebc29fc.js similarity index 92% rename from assets/js/139.163e991e.js rename to assets/js/139.4ebc29fc.js index 0b33b30dde..8ab5541615 100644 --- a/assets/js/139.163e991e.js +++ b/assets/js/139.4ebc29fc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{1070:function(e,t,o){"use strict";o.r(t);var n=o(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"androidconnection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#androidconnection"}},[e._v("#")]),e._v(" AndroidConnection")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Phone Interface)")]),e._v(" "),t("p",[t("img",{attrs:{src:o(614),alt:"Android Server Application",title:"Android Server Application"}})]),e._v(" "),t("p",[e._v("This document describes how to prepare connection between the AndroidPhoneControl component and the AsTeRICSPhoneServer application:")]),e._v(" "),t("ol",[t("li",[e._v("The connection between the AndroidPhoneControl component and the AsTeRICSPhoneServer application is made via TCP/IP connection. One of these components should work as a server, second as the client. The server should have the public IP or it should be in the same network where the client is.")]),e._v(" "),t("li",[e._v("In the model, select the connection mode in the connetionType property of the AndroidPhoneControl component. If the component should work as a server, put into the port property, the port which server will be use for its service. If the component should work as a client, put into the IP property IP of the server and into the port property the server port.")]),e._v(" "),t("li",[e._v("Run the Android Server application on the Android phone. Select the connection mode from the Connection type property. If the application should work as a server put into the port number property the port which server will be use for its service. If the application should work as a client put into the Server IP property IP of the server and into the Port Number property the server port.")]),e._v(" "),t("li",[e._v("If the AndroidPhoneControl component is set to work as the server and Android Server application is set to work as client. First run the model, then, enable Android application using Enable server property. If Android Server application is set to work as a server and the AndroidPhoneControl component is set to work as a client first enable the Android application then run the model.")])])])}),[],!1,null,null,null);t.default=r.exports},614:function(e,t,o){e.exports=o.p+"assets/img/androidserverapp.95049001.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{1067:function(e,t,o){"use strict";o.r(t);var n=o(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"androidconnection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#androidconnection"}},[e._v("#")]),e._v(" AndroidConnection")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Phone Interface)")]),e._v(" "),t("p",[t("img",{attrs:{src:o(612),alt:"Android Server Application",title:"Android Server Application"}})]),e._v(" "),t("p",[e._v("This document describes how to prepare connection between the AndroidPhoneControl component and the AsTeRICSPhoneServer application:")]),e._v(" "),t("ol",[t("li",[e._v("The connection between the AndroidPhoneControl component and the AsTeRICSPhoneServer application is made via TCP/IP connection. One of these components should work as a server, second as the client. The server should have the public IP or it should be in the same network where the client is.")]),e._v(" "),t("li",[e._v("In the model, select the connection mode in the connetionType property of the AndroidPhoneControl component. If the component should work as a server, put into the port property, the port which server will be use for its service. If the component should work as a client, put into the IP property IP of the server and into the port property the server port.")]),e._v(" "),t("li",[e._v("Run the Android Server application on the Android phone. Select the connection mode from the Connection type property. If the application should work as a server put into the port number property the port which server will be use for its service. If the application should work as a client put into the Server IP property IP of the server and into the Port Number property the server port.")]),e._v(" "),t("li",[e._v("If the AndroidPhoneControl component is set to work as the server and Android Server application is set to work as client. First run the model, then, enable Android application using Enable server property. If Android Server application is set to work as a server and the AndroidPhoneControl component is set to work as a client first enable the Android application then run the model.")])])])}),[],!1,null,null,null);t.default=r.exports},612:function(e,t,o){e.exports=o.p+"assets/img/androidserverapp.95049001.jpg"}}]); \ No newline at end of file diff --git a/assets/js/14.d6148202.js b/assets/js/14.2c42dcb5.js similarity index 87% rename from assets/js/14.d6148202.js rename to assets/js/14.2c42dcb5.js index a447315265..23f6466106 100644 --- a/assets/js/14.d6148202.js +++ b/assets/js/14.2c42dcb5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{288:function(e,t,s){e.exports=s.p+"assets/img/quickstart11.c2ae8b7e.png"},412:function(e,t,s){e.exports=s.p+"assets/img/quickstart10.a588225d.png"},413:function(e,t,s){e.exports=s.p+"assets/img/quickstart12.c7981783.png"},414:function(e,t,s){e.exports=s.p+"assets/img/quickstart13.68c18f17.png"},415:function(e,t,s){e.exports=s.p+"assets/img/quickstart14.3781e998.png"},416:function(e,t,s){e.exports=s.p+"assets/img/quickstart15.2c0687da.png"},417:function(e,t,s){e.exports=s.p+"assets/img/quickstart16.4b39a603.png"},418:function(e,t,s){e.exports=s.p+"assets/img/quickstart17.a2ecc137.png"},419:function(e,t,s){e.exports=s.p+"assets/img/quickstart18.a949722d.png"},931:function(e,t,s){"use strict";s.r(t);var o=s(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"model-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-creation"}},[e._v("#")]),e._v(" Model Creation")]),e._v(" "),t("h2",{attrs:{id:"camera-mouse-simple"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#camera-mouse-simple"}},[e._v("#")]),e._v(" Camera Mouse Simple")]),e._v(" "),t("p",[e._v("A model is a collection of 1 to n components, where a component represents a plugin\nof the ARE. These components are connected via channels (for data connections) and\nevent channels (representing events). The following example will illustrate the\ncreation of a simple webcam mouse, using the position of the nose to control the\ncursor and opening the mouth to trigger a mouse click. This model requires a\nconnected and installed webcam.")]),e._v(" "),t("h3",{attrs:{id:"add-facetracking"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-facetracking"}},[e._v("#")]),e._v(" Add Facetracking")]),e._v(" "),t("p",[e._v("In a first step, start the ACS and the ARE using the ACS.exe and ARE.exe short cuts.\nIn the ACS window select the tab "),t("strong",[e._v("Components")]),e._v(", then "),t("strong",[e._v("Sensors")]),e._v(" and within the\nsensors the menu item "),t("strong",[e._v("Computer Vision")]),e._v(". There select the component\nFacetrackerLK. The component is now on the drawing area and, if the component is\nselected, properties can be set (or changed) in the rightmost part of the ACS window.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(412),alt:"ACS - A first example (1/8)"}})]),e._v(" "),t("h3",{attrs:{id:"add-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-mouse"}},[e._v("#")]),e._v(" Add Mouse")]),e._v(" "),t("p",[e._v("The next needed component is the "),t("strong",[e._v("Mouse")]),e._v(", it can be found by selecting "),t("strong",[e._v("Actuators")]),e._v(" -\n"),t("strong",[e._v("Input Device Emulation")]),e._v(". After the insert, select the Mouse component and adapt\nthe properties. Deactivate absolutePosition and set the "),t("code",[e._v("xMax")]),e._v(" and "),t("code",[e._v("yMax")]),e._v(" to your\nscreen resolution.")]),e._v(" "),t("p",[e._v("In the next step, connect the noseX and the noseY outputs of the "),t("strong",[e._v("XFacetrackerLK")]),e._v("\nwith the mouseX and mouseY inputs of the Mouse. Finally, it should look like the\nscreenshot below.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(288),alt:"ACS - A first example (2/8)"}})]),e._v(" "),t("h3",{attrs:{id:"add-mouse-click"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-mouse-click"}},[e._v("#")]),e._v(" Add Mouse Click")]),e._v(" "),t("p",[e._v("The model now would be able to use the coordinates of the nose to control the\nmouse cursor, but the mouse click is still missing.\nFor the mouse clicking functionality, we first need the "),t("strong",[e._v("MathEvaluator")]),e._v(" ("),t("strong",[e._v("Processors")]),e._v(" -\n"),t("strong",[e._v("Basic Math")]),e._v(") plugin. We connect the noseY output of the "),t("strong",[e._v("XFacetrackerLK")]),e._v(" the with\nthe inA input of the "),t("strong",[e._v("MathEvaluator")]),e._v(" and likewise the chinY with inB. In the properties\nof the "),t("strong",[e._v("MathEvaluator")]),e._v(", we set the property expression to "),t("strong",[e._v("b-a")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:s(413),alt:"ACS - A first example (3/8)"}})]),e._v(" "),t("p",[e._v("We will "),t("strong",[e._v("Differentiate")]),e._v(" ("),t("strong",[e._v("Processors")]),e._v(" -> "),t("strong",[e._v("Basic Math")]),e._v(") the out value to react on a fast\nchange of the nose to chin distance.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(414),alt:"ACS - A first example (4/8)"}})]),e._v(" "),t("p",[e._v("This processed value will then be forwarded to a "),t("strong",[e._v("Threshold")]),e._v(" ("),t("strong",[e._v("Processors")]),e._v(" -> "),t("strong",[e._v("Basic\nMath")]),e._v(") component. Set the thresholdLow and thresholdHigh values to 30.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(415),alt:"ACS - A first example (5/8)"}})]),e._v(" "),t("p",[e._v("As a final step, connect the event trigger output of the "),t("strong",[e._v("Threshold")]),e._v(" with the event\nlistener input of the "),t("strong",[e._v("Mouse")]),e._v(" – the event triggers and listeners are at the bottom of the\ncomponents. After the connection has been made, set the leftClick to eventPosEdge\nin the property editor at the right. If everything was done right, it should look like the\nfollowing screenshot:")]),e._v(" "),t("p",[t("img",{attrs:{src:s(416),alt:"ACS - A first example (6/8)"}})]),e._v(" "),t("h3",{attrs:{id:"test-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#test-model"}},[e._v("#")]),e._v(" Test Model")]),e._v(" "),t("p",[e._v("Now, upload the model to the ARE and press the "),t("strong",[e._v("Start Model")]),e._v(" button. A window with\nthe camera screen will appear, marking with a green and yellow circle - the position\nof nose and chin. Press the "),t("strong",[e._v("Stop Model")]),e._v(" button or press F7 to stop the model and\nget the control of the mouse back. Below is a screenshot of the system, when\nrunning.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(417),alt:"ACS - A first example (7/8)"}})]),e._v(" "),t("p",[e._v("Congratulations, your first AsTeRICS model is running!")]),e._v(" "),t("h3",{attrs:{id:"reducing-tremor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reducing-tremor"}},[e._v("#")]),e._v(" Reducing Tremor")]),e._v(" "),t("p",[e._v("You might have noticed that the mouse pointer has a tremor, because the head is\nalways in movement to a certain extent. To reduce this tremor, an "),t("strong",[e._v("Averager")]),e._v("\n("),t("strong",[e._v("Processors")]),e._v(" -> "),t("strong",[e._v("Basic Math")]),e._v(") will be used to smoothen the X coordinates and\nanother "),t("strong",[e._v("Averager")]),e._v(" for the Y coordinates between the "),t("strong",[e._v("XFacetrackerLK")]),e._v(" and the\n"),t("strong",[e._v("Mouse")]),e._v(". The bufferSize in the properties will be set to 5.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(418),alt:"ACS - A first example (8/8)"}})]),e._v(" "),t("p",[e._v("That’s all, just upload the model and start it now.")]),e._v(" "),t("h3",{attrs:{id:"adjusting-the-webcam"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adjusting-the-webcam"}},[e._v("#")]),e._v(" Adjusting the Webcam")]),e._v(" "),t("p",[e._v("If you don’t like the position of the webcam after starting the model, you can set a\ndifferent start position. Select the "),t("strong",[e._v("GUI Designer")]),e._v(" tab above the drawing area and\nmove the webcam window to an area, which is comfortable to you. Also the size of\nthe window can be adjusted.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(419),alt:"GUI Designer"}})]),e._v(" "),t("p",[e._v("Upload and start the model to work with the changes.")]),e._v(" "),t("h2",{attrs:{id:"camera-mouse-advanced"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#camera-mouse-advanced"}},[e._v("#")]),e._v(" Camera Mouse Advanced")]),e._v(" "),t("p",[e._v("If your first model works, try this more "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/AsTeRICS_CameraMouseCreation_StepbyStep_Tutorial.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("advanced step-by-step tutorial"),t("OutboundLink")],1),e._v(" based on slides.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{288:function(e,t,s){e.exports=s.p+"assets/img/quickstart11.c2ae8b7e.png"},414:function(e,t,s){e.exports=s.p+"assets/img/quickstart10.a588225d.png"},415:function(e,t,s){e.exports=s.p+"assets/img/quickstart12.c7981783.png"},416:function(e,t,s){e.exports=s.p+"assets/img/quickstart13.68c18f17.png"},417:function(e,t,s){e.exports=s.p+"assets/img/quickstart14.3781e998.png"},418:function(e,t,s){e.exports=s.p+"assets/img/quickstart15.2c0687da.png"},419:function(e,t,s){e.exports=s.p+"assets/img/quickstart16.4b39a603.png"},420:function(e,t,s){e.exports=s.p+"assets/img/quickstart17.a2ecc137.png"},421:function(e,t,s){e.exports=s.p+"assets/img/quickstart18.a949722d.png"},932:function(e,t,s){"use strict";s.r(t);var o=s(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"model-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-creation"}},[e._v("#")]),e._v(" Model Creation")]),e._v(" "),t("h2",{attrs:{id:"camera-mouse-simple"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#camera-mouse-simple"}},[e._v("#")]),e._v(" Camera Mouse Simple")]),e._v(" "),t("p",[e._v("A model is a collection of 1 to n components, where a component represents a plugin\nof the ARE. These components are connected via channels (for data connections) and\nevent channels (representing events). The following example will illustrate the\ncreation of a simple webcam mouse, using the position of the nose to control the\ncursor and opening the mouth to trigger a mouse click. This model requires a\nconnected and installed webcam.")]),e._v(" "),t("h3",{attrs:{id:"add-facetracking"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-facetracking"}},[e._v("#")]),e._v(" Add Facetracking")]),e._v(" "),t("p",[e._v("In a first step, start the ACS and the ARE using the ACS.exe and ARE.exe short cuts.\nIn the ACS window select the tab "),t("strong",[e._v("Components")]),e._v(", then "),t("strong",[e._v("Sensors")]),e._v(" and within the\nsensors the menu item "),t("strong",[e._v("Computer Vision")]),e._v(". There select the component\nFacetrackerLK. The component is now on the drawing area and, if the component is\nselected, properties can be set (or changed) in the rightmost part of the ACS window.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(414),alt:"ACS - A first example (1/8)"}})]),e._v(" "),t("h3",{attrs:{id:"add-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-mouse"}},[e._v("#")]),e._v(" Add Mouse")]),e._v(" "),t("p",[e._v("The next needed component is the "),t("strong",[e._v("Mouse")]),e._v(", it can be found by selecting "),t("strong",[e._v("Actuators")]),e._v(" -\n"),t("strong",[e._v("Input Device Emulation")]),e._v(". After the insert, select the Mouse component and adapt\nthe properties. Deactivate absolutePosition and set the "),t("code",[e._v("xMax")]),e._v(" and "),t("code",[e._v("yMax")]),e._v(" to your\nscreen resolution.")]),e._v(" "),t("p",[e._v("In the next step, connect the noseX and the noseY outputs of the "),t("strong",[e._v("XFacetrackerLK")]),e._v("\nwith the mouseX and mouseY inputs of the Mouse. Finally, it should look like the\nscreenshot below.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(288),alt:"ACS - A first example (2/8)"}})]),e._v(" "),t("h3",{attrs:{id:"add-mouse-click"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-mouse-click"}},[e._v("#")]),e._v(" Add Mouse Click")]),e._v(" "),t("p",[e._v("The model now would be able to use the coordinates of the nose to control the\nmouse cursor, but the mouse click is still missing.\nFor the mouse clicking functionality, we first need the "),t("strong",[e._v("MathEvaluator")]),e._v(" ("),t("strong",[e._v("Processors")]),e._v(" -\n"),t("strong",[e._v("Basic Math")]),e._v(") plugin. We connect the noseY output of the "),t("strong",[e._v("XFacetrackerLK")]),e._v(" the with\nthe inA input of the "),t("strong",[e._v("MathEvaluator")]),e._v(" and likewise the chinY with inB. In the properties\nof the "),t("strong",[e._v("MathEvaluator")]),e._v(", we set the property expression to "),t("strong",[e._v("b-a")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:s(415),alt:"ACS - A first example (3/8)"}})]),e._v(" "),t("p",[e._v("We will "),t("strong",[e._v("Differentiate")]),e._v(" ("),t("strong",[e._v("Processors")]),e._v(" -> "),t("strong",[e._v("Basic Math")]),e._v(") the out value to react on a fast\nchange of the nose to chin distance.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(416),alt:"ACS - A first example (4/8)"}})]),e._v(" "),t("p",[e._v("This processed value will then be forwarded to a "),t("strong",[e._v("Threshold")]),e._v(" ("),t("strong",[e._v("Processors")]),e._v(" -> "),t("strong",[e._v("Basic\nMath")]),e._v(") component. Set the thresholdLow and thresholdHigh values to 30.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(417),alt:"ACS - A first example (5/8)"}})]),e._v(" "),t("p",[e._v("As a final step, connect the event trigger output of the "),t("strong",[e._v("Threshold")]),e._v(" with the event\nlistener input of the "),t("strong",[e._v("Mouse")]),e._v(" – the event triggers and listeners are at the bottom of the\ncomponents. After the connection has been made, set the leftClick to eventPosEdge\nin the property editor at the right. If everything was done right, it should look like the\nfollowing screenshot:")]),e._v(" "),t("p",[t("img",{attrs:{src:s(418),alt:"ACS - A first example (6/8)"}})]),e._v(" "),t("h3",{attrs:{id:"test-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#test-model"}},[e._v("#")]),e._v(" Test Model")]),e._v(" "),t("p",[e._v("Now, upload the model to the ARE and press the "),t("strong",[e._v("Start Model")]),e._v(" button. A window with\nthe camera screen will appear, marking with a green and yellow circle - the position\nof nose and chin. Press the "),t("strong",[e._v("Stop Model")]),e._v(" button or press F7 to stop the model and\nget the control of the mouse back. Below is a screenshot of the system, when\nrunning.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(419),alt:"ACS - A first example (7/8)"}})]),e._v(" "),t("p",[e._v("Congratulations, your first AsTeRICS model is running!")]),e._v(" "),t("h3",{attrs:{id:"reducing-tremor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reducing-tremor"}},[e._v("#")]),e._v(" Reducing Tremor")]),e._v(" "),t("p",[e._v("You might have noticed that the mouse pointer has a tremor, because the head is\nalways in movement to a certain extent. To reduce this tremor, an "),t("strong",[e._v("Averager")]),e._v("\n("),t("strong",[e._v("Processors")]),e._v(" -> "),t("strong",[e._v("Basic Math")]),e._v(") will be used to smoothen the X coordinates and\nanother "),t("strong",[e._v("Averager")]),e._v(" for the Y coordinates between the "),t("strong",[e._v("XFacetrackerLK")]),e._v(" and the\n"),t("strong",[e._v("Mouse")]),e._v(". The bufferSize in the properties will be set to 5.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(420),alt:"ACS - A first example (8/8)"}})]),e._v(" "),t("p",[e._v("That’s all, just upload the model and start it now.")]),e._v(" "),t("h3",{attrs:{id:"adjusting-the-webcam"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adjusting-the-webcam"}},[e._v("#")]),e._v(" Adjusting the Webcam")]),e._v(" "),t("p",[e._v("If you don’t like the position of the webcam after starting the model, you can set a\ndifferent start position. Select the "),t("strong",[e._v("GUI Designer")]),e._v(" tab above the drawing area and\nmove the webcam window to an area, which is comfortable to you. Also the size of\nthe window can be adjusted.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(421),alt:"GUI Designer"}})]),e._v(" "),t("p",[e._v("Upload and start the model to work with the changes.")]),e._v(" "),t("h2",{attrs:{id:"camera-mouse-advanced"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#camera-mouse-advanced"}},[e._v("#")]),e._v(" Camera Mouse Advanced")]),e._v(" "),t("p",[e._v("If your first model works, try this more "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/AsTeRICS_CameraMouseCreation_StepbyStep_Tutorial.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("advanced step-by-step tutorial"),t("OutboundLink")],1),e._v(" based on slides.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/140.d141752b.js b/assets/js/140.88de24a8.js similarity index 99% rename from assets/js/140.d141752b.js rename to assets/js/140.88de24a8.js index 76b6356dc3..73bb909de4 100644 --- a/assets/js/140.d141752b.js +++ b/assets/js/140.88de24a8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{1069:function(e,t,r){"use strict";r.r(t);var a=r(2),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"applicationlauncher"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applicationlauncher"}},[e._v("#")]),e._v(" ApplicationLauncher")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("The ApplicationLauncher component can be used to run an external executable application or to open a URL in the platform default browser. The command and arguments values can either be set as property or dynamically configured through the respective input ports. The launch of the application or the opening of the URL can also be triggered by an incoming event (launchNow). The property executeOnPlatform selects the platforms on which the configured application or URL will be launched.")]),e._v(" "),t("p",[e._v("Together with the Keyboard- or RemoteKeyboard components, the ApplicationLauncher plugin can perform complex automation tasks, for example open Skype, choose a contact and make a call.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(613),alt:"Screenshot: ApplicationLauncher plugin",title:"Screenshot: ApplicationLauncher plugin"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" File name of executable file which shall be started without arguments. The application is started automatically, if onlyByEvent is false. See "),t("em",[e._v("Properties -> defaultApplication")]),e._v(" description for details.")]),e._v(" "),t("li",[t("strong",[e._v("arguments [string]:")]),e._v(" Sets the arguments of the command. The application is started automatically, if onlyByEvent is false. See "),t("em",[e._v("Properties -> arguments")]),e._v(" description for details.")]),e._v(" "),t("li",[t("strong",[e._v("stdIn [string]:")]),e._v(" Sends the incoming string to the standard input stream of the started process.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stdOut [string]:")]),e._v(" The standard output stream of the started process.")]),e._v(" "),t("li",[t("strong",[e._v("stdErr [string]:")]),e._v(" The standard error stream of the started process.")]),e._v(" "),t("li",[t("strong",[e._v("exitValue [integer]:")]),e._v(" The exit value of the started process.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("launchNow:")]),e._v(" An incoming event on this port will start the (default or lastest received) application")]),e._v(" "),t("li",[t("strong",[e._v("closeNow:")]),e._v(" An incoming event on this port will close the current application")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startedSuccessfully:")]),e._v(" The process started successfully.")]),e._v(" "),t("li",[t("strong",[e._v("startedWithError:")]),e._v(" The process started with error.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("executeOnPlatform [combobox (ALL, WINDOWS, LINUX, MACOSX)]:")]),e._v(" If != ALL, the application will only be launched if the ARE runs on the defined platform.")]),e._v(" "),t("li",[t("strong",[e._v("executionMode [combobox (START_APPLICATION, OPEN_URL)]:")]),e._v(" If START_APPLICATION, the command defined in defaultApplication will be launched with the given arguments. If OPEN_URL, the URL defined in arguments will be launched with the platform default browser. The platform-specific browser launch commands are configurable in the file areProperties. For general information about platform-specific launch commands, see "),t("a",{attrs:{href:"https://dwheeler.com/essays/open-files-urls.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("open files and URLs"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("defaultApplication [string]:")]),e._v(" Full path and filename of the default application"),t("br"),e._v("\nThe full path can be provided with quotes, but quotes are not mandatory. So "),t("em",[e._v("C:\\Program Files\\internet explorer\\iexplore.exe")]),e._v(" and "),t("em",[e._v("“C:\\Program Files\\internet explorer\\iexplore.exe”")]),e._v(" are equal and both working.")]),e._v(" "),t("li",[t("strong",[e._v("arguments [string]:")]),e._v(" the commandline arguments for the application (in mode START_APPLICATION) or the URL to open (in mode OPEN_URL)."),t("br"),e._v("\nFor Mode START_APPLICATION: Given arguments are split considering whitespaces and quotes. So e.g. the arguments property "),t("em",[e._v("xterm -e “sudo sh test.sh”")]),e._v(" will be split in 3 components "),t("em",[e._v("xterm")]),e._v(", "),t("em",[e._v("-e")]),e._v(" and "),t("em",[e._v("“sudo sh test.sh”")]),e._v(". However quotes are removed at runtime, so "),t("em",[e._v("sudo sh test.sh")]),e._v(" without quotes will be passed to the ProcessBuilder used at Java level to start the program."),t("br"),e._v("\nHint for Windows: for cmd.exe “&” is a special character and cannot be used in an argument. If the “&” is needed, mask it with an “^”, therefore using “^&” instead of “&” in the argument."),t("br"),e._v("\nFor Mode OPEN_URL: URLs can be passed as-is on any platform, no masking of “&” characters is needed.")]),e._v(" "),t("li",[t("strong",[e._v("workingDirectory [string]:")]),e._v(" the working directory for the application (. is used for home directory of the application)")]),e._v(" "),t("li",[e._v("**closeCmd [string]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Optional close cmd, e.g. if started cmd has forked processes (e.g. OSKA) use: taskkill.exe /IM “OSKA Keyboard.exe” /T")]),e._v(" "),t("li",[t("strong",[e._v("autoLaunch [boolean]:")]),e._v(" Defines if the default application is automatically launched at startup")]),e._v(" "),t("li",[t("strong",[e._v("autoClose [boolean]:")]),e._v(" Defines if the current application is closed when the model is stopped")]),e._v(" "),t("li",[t("strong",[e._v("onlyByEvent [boolean]:")]),e._v(" If this property is set to true, incoming application files names will not be started immediately (only the launchNow event will start the application)")])])])}),[],!1,null,null,null);t.default=o.exports},613:function(e,t,r){e.exports=r.p+"assets/img/applicationlauncher.9f17bcc1.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{1068:function(e,t,r){"use strict";r.r(t);var a=r(2),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"applicationlauncher"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applicationlauncher"}},[e._v("#")]),e._v(" ApplicationLauncher")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("The ApplicationLauncher component can be used to run an external executable application or to open a URL in the platform default browser. The command and arguments values can either be set as property or dynamically configured through the respective input ports. The launch of the application or the opening of the URL can also be triggered by an incoming event (launchNow). The property executeOnPlatform selects the platforms on which the configured application or URL will be launched.")]),e._v(" "),t("p",[e._v("Together with the Keyboard- or RemoteKeyboard components, the ApplicationLauncher plugin can perform complex automation tasks, for example open Skype, choose a contact and make a call.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(613),alt:"Screenshot: ApplicationLauncher plugin",title:"Screenshot: ApplicationLauncher plugin"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" File name of executable file which shall be started without arguments. The application is started automatically, if onlyByEvent is false. See "),t("em",[e._v("Properties -> defaultApplication")]),e._v(" description for details.")]),e._v(" "),t("li",[t("strong",[e._v("arguments [string]:")]),e._v(" Sets the arguments of the command. The application is started automatically, if onlyByEvent is false. See "),t("em",[e._v("Properties -> arguments")]),e._v(" description for details.")]),e._v(" "),t("li",[t("strong",[e._v("stdIn [string]:")]),e._v(" Sends the incoming string to the standard input stream of the started process.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stdOut [string]:")]),e._v(" The standard output stream of the started process.")]),e._v(" "),t("li",[t("strong",[e._v("stdErr [string]:")]),e._v(" The standard error stream of the started process.")]),e._v(" "),t("li",[t("strong",[e._v("exitValue [integer]:")]),e._v(" The exit value of the started process.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("launchNow:")]),e._v(" An incoming event on this port will start the (default or lastest received) application")]),e._v(" "),t("li",[t("strong",[e._v("closeNow:")]),e._v(" An incoming event on this port will close the current application")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startedSuccessfully:")]),e._v(" The process started successfully.")]),e._v(" "),t("li",[t("strong",[e._v("startedWithError:")]),e._v(" The process started with error.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("executeOnPlatform [combobox (ALL, WINDOWS, LINUX, MACOSX)]:")]),e._v(" If != ALL, the application will only be launched if the ARE runs on the defined platform.")]),e._v(" "),t("li",[t("strong",[e._v("executionMode [combobox (START_APPLICATION, OPEN_URL)]:")]),e._v(" If START_APPLICATION, the command defined in defaultApplication will be launched with the given arguments. If OPEN_URL, the URL defined in arguments will be launched with the platform default browser. The platform-specific browser launch commands are configurable in the file areProperties. For general information about platform-specific launch commands, see "),t("a",{attrs:{href:"https://dwheeler.com/essays/open-files-urls.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("open files and URLs"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("defaultApplication [string]:")]),e._v(" Full path and filename of the default application"),t("br"),e._v("\nThe full path can be provided with quotes, but quotes are not mandatory. So "),t("em",[e._v("C:\\Program Files\\internet explorer\\iexplore.exe")]),e._v(" and "),t("em",[e._v("“C:\\Program Files\\internet explorer\\iexplore.exe”")]),e._v(" are equal and both working.")]),e._v(" "),t("li",[t("strong",[e._v("arguments [string]:")]),e._v(" the commandline arguments for the application (in mode START_APPLICATION) or the URL to open (in mode OPEN_URL)."),t("br"),e._v("\nFor Mode START_APPLICATION: Given arguments are split considering whitespaces and quotes. So e.g. the arguments property "),t("em",[e._v("xterm -e “sudo sh test.sh”")]),e._v(" will be split in 3 components "),t("em",[e._v("xterm")]),e._v(", "),t("em",[e._v("-e")]),e._v(" and "),t("em",[e._v("“sudo sh test.sh”")]),e._v(". However quotes are removed at runtime, so "),t("em",[e._v("sudo sh test.sh")]),e._v(" without quotes will be passed to the ProcessBuilder used at Java level to start the program."),t("br"),e._v("\nHint for Windows: for cmd.exe “&” is a special character and cannot be used in an argument. If the “&” is needed, mask it with an “^”, therefore using “^&” instead of “&” in the argument."),t("br"),e._v("\nFor Mode OPEN_URL: URLs can be passed as-is on any platform, no masking of “&” characters is needed.")]),e._v(" "),t("li",[t("strong",[e._v("workingDirectory [string]:")]),e._v(" the working directory for the application (. is used for home directory of the application)")]),e._v(" "),t("li",[e._v("**closeCmd [string]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Optional close cmd, e.g. if started cmd has forked processes (e.g. OSKA) use: taskkill.exe /IM “OSKA Keyboard.exe” /T")]),e._v(" "),t("li",[t("strong",[e._v("autoLaunch [boolean]:")]),e._v(" Defines if the default application is automatically launched at startup")]),e._v(" "),t("li",[t("strong",[e._v("autoClose [boolean]:")]),e._v(" Defines if the current application is closed when the model is stopped")]),e._v(" "),t("li",[t("strong",[e._v("onlyByEvent [boolean]:")]),e._v(" If this property is set to true, incoming application files names will not be started immediately (only the launchNow event will start the application)")])])])}),[],!1,null,null,null);t.default=o.exports},613:function(e,t,r){e.exports=r.p+"assets/img/applicationlauncher.9f17bcc1.jpg"}}]); \ No newline at end of file diff --git a/assets/js/141.0cd32b21.js b/assets/js/141.1270d493.js similarity index 95% rename from assets/js/141.0cd32b21.js rename to assets/js/141.1270d493.js index 03c90878ab..2793168c8d 100644 --- a/assets/js/141.0cd32b21.js +++ b/assets/js/141.1270d493.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[141],{1072:function(e,a,t){"use strict";t.r(a);var r=t(2),i=Object(r.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"bardisplay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bardisplay"}},[e._v("#")]),e._v(" BarDisplay")]),e._v(" "),a("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),a("p",[e._v("The Bar display generates a coloured bar graph to visualise a current signal value in the ARE environment (of course the LC - display or a computer monitor have to be connected to the platform). The Bar display features auto-scale of value range, display of a threshold value and selectable update rate and foreground / background colours.")]),e._v(" "),a("p",[a("img",{attrs:{src:t(617),alt:"Screenshot: BarDisplay plugin",title:"Screenshot: BarDisplay plugin"}})]),e._v(" "),a("h2",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),a("p",[e._v("Computer Monitor or LC-Display available for graphics output.")]),e._v(" "),a("h2",{attrs:{id:"input-port-description"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("input [double]:")]),e._v(" The input port for the signal to be displayed.")])]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("displayBuffer [integer]:")]),e._v(" This number specifies how often an update of the bar graph is performed. For example if the display buffer is set to 10, ten values are accumulated and the average value is displayed after the tenth incoming value.")]),e._v(" "),a("li",[a("strong",[e._v("min [double]:")]),e._v(" The default minimum of the signal range at model start (this value is automatically updated as lower values come in).")]),e._v(" "),a("li",[a("strong",[e._v("max [double]:")]),e._v(" The default maximum of the signal range at model start (this value is automatically updated as higher values come in).")]),e._v(" "),a("li",[a("strong",[e._v("threshold [double]:")]),e._v(" This value will be displayed with a marker in the bar graph (if enabled).")]),e._v(" "),a("li",[a("strong",[e._v("displayThreshold [boolean]:")]),e._v(" This property enables (true) or disables (false) the threshold marker in the bar graph.")]),e._v(" "),a("li",[a("strong",[e._v("integerDisplay [boolean]:")]),e._v(" This property selects if double values are rounded to integral values before being displayed in the bar graph.")]),e._v(" "),a("li",[a("strong",[e._v("mode [integer]:")]),e._v(" Via this property the way how values which exceed the current min/max range of the bar graph component are handled: “clip to min and max” crops incoming values to the min/max range, “autoupdate min and max” scales the bar graph window and updates the min/max values to cover the incoming value.")]),e._v(" "),a("li",[a("strong",[e._v("gridColor [integer]:")]),e._v(" The colour of the bar graph grid and descriptions.")]),e._v(" "),a("li",[a("strong",[e._v("barColor [integer]:")]),e._v(" The colour of the bar display.")]),e._v(" "),a("li",[a("strong",[e._v("backgroundColour [integer]:")]),e._v(" The colour of the window background.")]),e._v(" "),a("li",[a("strong",[e._v("fontSize [integer]:")]),e._v(" The font size of the display’s caption.")]),e._v(" "),a("li",[a("strong",[e._v("caption [string]:")]),e._v(" The text of the display’s caption.")]),e._v(" "),a("li",[a("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);a.default=i.exports},617:function(e,a,t){e.exports=t.p+"assets/img/bardisplay.824890df.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[141],{1070:function(e,a,t){"use strict";t.r(a);var r=t(2),i=Object(r.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"bardisplay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bardisplay"}},[e._v("#")]),e._v(" BarDisplay")]),e._v(" "),a("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),a("p",[e._v("The Bar display generates a coloured bar graph to visualise a current signal value in the ARE environment (of course the LC - display or a computer monitor have to be connected to the platform). The Bar display features auto-scale of value range, display of a threshold value and selectable update rate and foreground / background colours.")]),e._v(" "),a("p",[a("img",{attrs:{src:t(615),alt:"Screenshot: BarDisplay plugin",title:"Screenshot: BarDisplay plugin"}})]),e._v(" "),a("h2",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),a("p",[e._v("Computer Monitor or LC-Display available for graphics output.")]),e._v(" "),a("h2",{attrs:{id:"input-port-description"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("input [double]:")]),e._v(" The input port for the signal to be displayed.")])]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("displayBuffer [integer]:")]),e._v(" This number specifies how often an update of the bar graph is performed. For example if the display buffer is set to 10, ten values are accumulated and the average value is displayed after the tenth incoming value.")]),e._v(" "),a("li",[a("strong",[e._v("min [double]:")]),e._v(" The default minimum of the signal range at model start (this value is automatically updated as lower values come in).")]),e._v(" "),a("li",[a("strong",[e._v("max [double]:")]),e._v(" The default maximum of the signal range at model start (this value is automatically updated as higher values come in).")]),e._v(" "),a("li",[a("strong",[e._v("threshold [double]:")]),e._v(" This value will be displayed with a marker in the bar graph (if enabled).")]),e._v(" "),a("li",[a("strong",[e._v("displayThreshold [boolean]:")]),e._v(" This property enables (true) or disables (false) the threshold marker in the bar graph.")]),e._v(" "),a("li",[a("strong",[e._v("integerDisplay [boolean]:")]),e._v(" This property selects if double values are rounded to integral values before being displayed in the bar graph.")]),e._v(" "),a("li",[a("strong",[e._v("mode [integer]:")]),e._v(" Via this property the way how values which exceed the current min/max range of the bar graph component are handled: “clip to min and max” crops incoming values to the min/max range, “autoupdate min and max” scales the bar graph window and updates the min/max values to cover the incoming value.")]),e._v(" "),a("li",[a("strong",[e._v("gridColor [integer]:")]),e._v(" The colour of the bar graph grid and descriptions.")]),e._v(" "),a("li",[a("strong",[e._v("barColor [integer]:")]),e._v(" The colour of the bar display.")]),e._v(" "),a("li",[a("strong",[e._v("backgroundColour [integer]:")]),e._v(" The colour of the window background.")]),e._v(" "),a("li",[a("strong",[e._v("fontSize [integer]:")]),e._v(" The font size of the display’s caption.")]),e._v(" "),a("li",[a("strong",[e._v("caption [string]:")]),e._v(" The text of the display’s caption.")]),e._v(" "),a("li",[a("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);a.default=i.exports},615:function(e,a,t){e.exports=t.p+"assets/img/bardisplay.824890df.jpg"}}]); \ No newline at end of file diff --git a/assets/js/142.f37064f1.js b/assets/js/142.adebdb9d.js similarity index 95% rename from assets/js/142.f37064f1.js rename to assets/js/142.adebdb9d.js index aaa0dc5106..2bcb841863 100644 --- a/assets/js/142.f37064f1.js +++ b/assets/js/142.adebdb9d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[142],{1075:function(t,e,o){"use strict";o.r(e);var s=o(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"digitalout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#digitalout"}},[t._v("#")]),t._v(" DigitalOut")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Generic Control Output)")]),t._v(" "),e("p",[t._v("The DigitalOut plugin operates the output ports of the GPIO CIM. The output ports 1-2 are relais outputs where loads can be connected via a galvanic isolation barrier. The output ports 3-5 are open-collector outputs, where a pull-up resistor can be activated or deactivated using the plugin’s properties. The plugin provides event listener ports which serve the activation or deactivation of an output channel, and a command port which accepts string parameters to set, clear and toggle particular output channels.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(620),alt:"Screenshot: DigitalOut plugin",title:"Screenshot: DigitalOut plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the GPIO CIM (CIM Id: 0x0801) to be connected to an USB port.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("action [string]:")]),t._v(" The plugin reacts to incoming action strings starting with “@GPIO:” and a command. Valid commands are “set”, “clear”, “toggle” and “press”. The command has to be followed by a comma and the port number, for example: “@GPIO:set,1” or “@GPIO:toggle,2”. The “press”-command toggles the given output port two times with a delay of 500 milliseconds. The following examples illustrate the available action strings:\n"),e("ul",[e("li",[e("em",[t._v("“@DIGITALOUT:set,1”:")]),t._v(" Pin 1 of the GPIO CIM will be set")]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:clear,2":_Pin 2 of the GPIO CIM will be cleared')]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:toggle,1”:")]),t._v(" Pin 1 of the GPIO CIM will be changed")]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:press,4”:")]),t._v(" Pin 4 of the GPIO CIM will be cleared and after 500ms it will be set again")])])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setOutput1 to setOutput5:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the high level.")]),t._v(" "),e("li",[e("strong",[t._v("clearOutput1 to clearOutput5:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the low level.")]),t._v(" "),e("li",[t._v("**toggleOutput1 to toggleOutput5:**Toggles the state of the output port.")]),t._v(" "),e("li",[t._v("**pressOutput1 to pressOutput5:**Presses the output port: Clears the state and after 500ms sets the state to high.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pullupStateOut3 to pullupStateOut5 [boolean]:")]),t._v(" These properties specify if the internal pullup resistor shall be activated on the respective open collector output channels.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);e.default=r.exports},620:function(t,e,o){t.exports=o.p+"assets/img/digitalout.1a89ad2e.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[142],{1072:function(t,e,o){"use strict";o.r(e);var s=o(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"digitalout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#digitalout"}},[t._v("#")]),t._v(" DigitalOut")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Generic Control Output)")]),t._v(" "),e("p",[t._v("The DigitalOut plugin operates the output ports of the GPIO CIM. The output ports 1-2 are relais outputs where loads can be connected via a galvanic isolation barrier. The output ports 3-5 are open-collector outputs, where a pull-up resistor can be activated or deactivated using the plugin’s properties. The plugin provides event listener ports which serve the activation or deactivation of an output channel, and a command port which accepts string parameters to set, clear and toggle particular output channels.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(618),alt:"Screenshot: DigitalOut plugin",title:"Screenshot: DigitalOut plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the GPIO CIM (CIM Id: 0x0801) to be connected to an USB port.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("action [string]:")]),t._v(" The plugin reacts to incoming action strings starting with “@GPIO:” and a command. Valid commands are “set”, “clear”, “toggle” and “press”. The command has to be followed by a comma and the port number, for example: “@GPIO:set,1” or “@GPIO:toggle,2”. The “press”-command toggles the given output port two times with a delay of 500 milliseconds. The following examples illustrate the available action strings:\n"),e("ul",[e("li",[e("em",[t._v("“@DIGITALOUT:set,1”:")]),t._v(" Pin 1 of the GPIO CIM will be set")]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:clear,2":_Pin 2 of the GPIO CIM will be cleared')]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:toggle,1”:")]),t._v(" Pin 1 of the GPIO CIM will be changed")]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:press,4”:")]),t._v(" Pin 4 of the GPIO CIM will be cleared and after 500ms it will be set again")])])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setOutput1 to setOutput5:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the high level.")]),t._v(" "),e("li",[e("strong",[t._v("clearOutput1 to clearOutput5:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the low level.")]),t._v(" "),e("li",[t._v("**toggleOutput1 to toggleOutput5:**Toggles the state of the output port.")]),t._v(" "),e("li",[t._v("**pressOutput1 to pressOutput5:**Presses the output port: Clears the state and after 500ms sets the state to high.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pullupStateOut3 to pullupStateOut5 [boolean]:")]),t._v(" These properties specify if the internal pullup resistor shall be activated on the respective open collector output channels.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);e.default=r.exports},618:function(t,e,o){t.exports=o.p+"assets/img/digitalout.1a89ad2e.jpg"}}]); \ No newline at end of file diff --git a/assets/js/143.1abe170c.js b/assets/js/143.04aeb5ee.js similarity index 91% rename from assets/js/143.1abe170c.js rename to assets/js/143.04aeb5ee.js index 1144cbb2d4..36549d7432 100644 --- a/assets/js/143.1abe170c.js +++ b/assets/js/143.04aeb5ee.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{1079:function(t,e,o){"use strict";o.r(e);var n=o(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"enobiodisplay"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#enobiodisplay"}},[t._v("#")]),t._v(" EnobioDisplay")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("This component displays the electrophysiological signals recorded by the Enobio device, so a user can check that the signals are being received and are correctly calibrated. The 4 Enobio channels are plotted with three different colours. When the signal is plotted in red it means that the channel is not being calibrated due to the configuration of the Enobio component. If the signal is plotted in yellow then this signal is in process of calibration. If the signals are plotted in green it indicates that the signal is correctly calibrated.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(626),alt:"Screenshot: Enobio Display plugin",title:"Screenshot: Enobio Display plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This software component requires an Enobio receiver connected to the platform, the Enobio device switched on and the electrodes correctly placed on the user. In addition, the component expects an Enobio component connected to its inputs.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Channel1 to Channel4 [double]:")]),t._v(" Input ports for the corresponding output ports of the Enobio component.")]),t._v(" "),e("li",[e("strong",[t._v("Status [double]:")]),t._v(" Input port to be connected to the status output port of the Enobio component.")])])])}),[],!1,null,null,null);e.default=i.exports},626:function(t,e,o){t.exports=o.p+"assets/img/enobiodisplay.e7e383b2.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{1076:function(t,e,o){"use strict";o.r(e);var n=o(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"enobiodisplay"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#enobiodisplay"}},[t._v("#")]),t._v(" EnobioDisplay")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("This component displays the electrophysiological signals recorded by the Enobio device, so a user can check that the signals are being received and are correctly calibrated. The 4 Enobio channels are plotted with three different colours. When the signal is plotted in red it means that the channel is not being calibrated due to the configuration of the Enobio component. If the signal is plotted in yellow then this signal is in process of calibration. If the signals are plotted in green it indicates that the signal is correctly calibrated.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(623),alt:"Screenshot: Enobio Display plugin",title:"Screenshot: Enobio Display plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This software component requires an Enobio receiver connected to the platform, the Enobio device switched on and the electrodes correctly placed on the user. In addition, the component expects an Enobio component connected to its inputs.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Channel1 to Channel4 [double]:")]),t._v(" Input ports for the corresponding output ports of the Enobio component.")]),t._v(" "),e("li",[e("strong",[t._v("Status [double]:")]),t._v(" Input port to be connected to the status output port of the Enobio component.")])])])}),[],!1,null,null,null);e.default=i.exports},623:function(t,e,o){t.exports=o.p+"assets/img/enobiodisplay.e7e383b2.jpg"}}]); \ No newline at end of file diff --git a/assets/js/144.3e93f388.js b/assets/js/144.da97f755.js similarity index 97% rename from assets/js/144.3e93f388.js rename to assets/js/144.da97f755.js index 3435e04682..366c93aa7d 100644 --- a/assets/js/144.3e93f388.js +++ b/assets/js/144.da97f755.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{1080:function(e,t,n){"use strict";n.r(t);var a=n(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"enocean"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#enocean"}},[e._v("#")]),e._v(" EnOcean")]),e._v(" "),t("p",[e._v("Component Type: actuator (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The EnOcean plugin enables the ARE to interface to EnOcean wireless sensors. This plugin utilizes the Priscilla java library for the EnOcean implementation, it is ©opyrighted by UAS FH Technikum Wien and released under the GNU General Public License (FSF v2). The EnOcean plugin provides an interface to the EnOcean sensors over an USB stick (EnOcean USB300) or an IP gateway. Interfacing to EnOcean devices is possible either by sending different data to actuators or receiving different types of values. This allows control of lightning, heat and ventilation devices and many more via the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(627),alt:"Screenshot: EnOcean plugin",title:"Screenshot: EnOcean plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("An EnOcean gateway (either USB or IP)")]),e._v(" "),t("li",[e._v("Basic knowledge on EnOcean device IDs")])]),e._v(" "),t("h2",{attrs:{id:"functional-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-description"}},[e._v("#")]),e._v(" Functional Description")]),e._v(" "),t("p",[e._v("By starting the model, the EnOcean plugin establishes a connection to the EnOcean gateway specified by the plugin properties (defined by gatewayIP and USB checkbox). The gatewayIP is either the IP adress of the gateway or the COM port name (e.g. COM1 or /dev/ttyUSB0). There are 3 different ways of sending data to EnOcean devices. The first one is done by the 6 input slider ports. Each of them has properties for the source device ID (range: 0-127) and a data type (binary, temperature, illumination, humidity, temperature set point and fan level). On every update of the input data, an EnOcean data frame is generated and sent. The second method is done over the event input ports. There are 3 properties to define. The device ID and the data type have equal possible values as with the slider input. The third property defines the value to be sent. The first method is the most flexible one, by sending a command string to the command input port. It expects a special formatted string and parses the dedicated keywords and format to an EnOcean command. The string can be assembled individually with other string formatting plugins. Receiving sensor data is done by combining event and output ports. There are 2 properties, one for the type of input data (the data type are the same as stated before) and one for the source device ID (this property is a hexadecimal string, containing the full 32bit ID, printed on the sensor). The event ports are triggered each time, an event with the defined type and device ID is received. If an event is raised, at the same time the corresponding data value is available at the output ports.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("command [string]:")]),e._v(' This port receives string commands for the EnOcean devices. The commands have to be in the format “@ENOCEAN:device_id#type#value”. An example for a valid command is"@ENOCEAN:25#binary#true". As a valid command is received by the input port, the value and data type is broadcasted to the devices with the given device ID offset (range: 0-127)')]),e._v(" "),t("li",[t("strong",[e._v("slider[1-6] [double]:")]),e._v(" Input port for a double value which is converted to an integer (or another type, depends on the datatype) and broadcasted to all EnOcean devices in range")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output[1-6]:")]),e._v(" The output value, from device with IDTrigger[1-6]")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("localIP [string]:")]),e._v(" The local IP address of the interface which can reach the IP gateway.")]),e._v(" "),t("li",[t("strong",[e._v("gatewayIP [string]:")]),e._v(" The destination IP address of the EnOcean gateway or the device name of the USB gateway (emulates a serial interface, e.g. COM1 or /dev/ttyUSB0)")]),e._v(" "),t("li",[t("strong",[e._v("USB [boolean]:")]),e._v(" If checked, then the connection will be established through a serial interface, otherwise through an IP gateway")]),e._v(" "),t("li",[t("strong",[e._v("id[1-6] [integer]:")]),e._v(" Source ID for input event[n]. The range is from 0 to 127.")]),e._v(" "),t("li",[t("strong",[e._v("sendType[1-6] [string]:")]),e._v(" Send type for input event[n]. Following data types are allowed global (for every datatype property, port and event):\n"),t("ul",[t("li",[t("em",[e._v("“binary”:")]),e._v(" e.g. used for switching light actuators on or off.")]),e._v(" "),t("li",[t("em",[e._v("“temperature”:")]),e._v(" e.g. used to transmit a temperature value.")]),e._v(" "),t("li",[t("em",[e._v("“illumination”:")]),e._v(" e.g. used to transmit illumination values.")]),e._v(" "),t("li",[t("em",[e._v("“humidity”:")]),e._v(" e.g. used to transmit humidity values.")]),e._v(" "),t("li",[t("em",[e._v("“setpoint”:")]),e._v(" e.g. used to send set point value (+10K or -5% humidity)")]),e._v(" "),t("li",[t("em",[e._v("“fan”:")]),e._v(" e.g. used to set or simulate a defined fan level")])])]),e._v(" "),t("li",[t("strong",[e._v("dataValue[1-6] [string]:")]),e._v(" The transmitted value for the input event [n] with the given id[n] and type (sendType[n])")]),e._v(" "),t("li",[t("strong",[e._v("IDSlider[1-6] [string]:")]),e._v(" Source ID for slider[n]. The range is from 0 to 127.")]),e._v(" "),t("li",[t("strong",[e._v("sendTypeSlider[1-6] [string]:")]),e._v(" The data type for sending slider[n] data with IDSLider[n]. The possible data types are stated above")]),e._v(" "),t("li",[t("strong",[e._v("IDTrigger[1-6] [string]:")]),e._v(" Source ID for event trigger[n]. This is a full id, as printed on the device as 6 character string(e.g. FFEFA01C)")]),e._v(" "),t("li",[t("strong",[e._v("TypeTrigger[1-6] [string]:")]),e._v(" The data type for the listening event[n]. If an incoming frame from the give ID (IDTrigger[n]) contains this data type, an event on event port [n] is raised. The possible data types are stated above")])]),e._v(" "),t("h2",{attrs:{id:"event-listener"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener"}},[e._v("#")]),e._v(" Event Listener")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("send[1-6]:")]),e._v(" Each time a event is triggered, the coresponding EnOcean frame which is specified in the plugin properties, is transmitted.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger"}},[e._v("#")]),e._v(" Event Trigger")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event_out_[1-6]:")]),e._v(" Each time a frame is received with the given parameters (from properties IDTrigger[n] and TypeTrigger[n]), this event is raised")])])])}),[],!1,null,null,null);t.default=i.exports},627:function(e,t,n){e.exports=n.p+"assets/img/enocean.b119bfe0.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{1077:function(e,t,n){"use strict";n.r(t);var a=n(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"enocean"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#enocean"}},[e._v("#")]),e._v(" EnOcean")]),e._v(" "),t("p",[e._v("Component Type: actuator (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The EnOcean plugin enables the ARE to interface to EnOcean wireless sensors. This plugin utilizes the Priscilla java library for the EnOcean implementation, it is ©opyrighted by UAS FH Technikum Wien and released under the GNU General Public License (FSF v2). The EnOcean plugin provides an interface to the EnOcean sensors over an USB stick (EnOcean USB300) or an IP gateway. Interfacing to EnOcean devices is possible either by sending different data to actuators or receiving different types of values. This allows control of lightning, heat and ventilation devices and many more via the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(624),alt:"Screenshot: EnOcean plugin",title:"Screenshot: EnOcean plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("An EnOcean gateway (either USB or IP)")]),e._v(" "),t("li",[e._v("Basic knowledge on EnOcean device IDs")])]),e._v(" "),t("h2",{attrs:{id:"functional-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-description"}},[e._v("#")]),e._v(" Functional Description")]),e._v(" "),t("p",[e._v("By starting the model, the EnOcean plugin establishes a connection to the EnOcean gateway specified by the plugin properties (defined by gatewayIP and USB checkbox). The gatewayIP is either the IP adress of the gateway or the COM port name (e.g. COM1 or /dev/ttyUSB0). There are 3 different ways of sending data to EnOcean devices. The first one is done by the 6 input slider ports. Each of them has properties for the source device ID (range: 0-127) and a data type (binary, temperature, illumination, humidity, temperature set point and fan level). On every update of the input data, an EnOcean data frame is generated and sent. The second method is done over the event input ports. There are 3 properties to define. The device ID and the data type have equal possible values as with the slider input. The third property defines the value to be sent. The first method is the most flexible one, by sending a command string to the command input port. It expects a special formatted string and parses the dedicated keywords and format to an EnOcean command. The string can be assembled individually with other string formatting plugins. Receiving sensor data is done by combining event and output ports. There are 2 properties, one for the type of input data (the data type are the same as stated before) and one for the source device ID (this property is a hexadecimal string, containing the full 32bit ID, printed on the sensor). The event ports are triggered each time, an event with the defined type and device ID is received. If an event is raised, at the same time the corresponding data value is available at the output ports.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("command [string]:")]),e._v(' This port receives string commands for the EnOcean devices. The commands have to be in the format “@ENOCEAN:device_id#type#value”. An example for a valid command is"@ENOCEAN:25#binary#true". As a valid command is received by the input port, the value and data type is broadcasted to the devices with the given device ID offset (range: 0-127)')]),e._v(" "),t("li",[t("strong",[e._v("slider[1-6] [double]:")]),e._v(" Input port for a double value which is converted to an integer (or another type, depends on the datatype) and broadcasted to all EnOcean devices in range")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output[1-6]:")]),e._v(" The output value, from device with IDTrigger[1-6]")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("localIP [string]:")]),e._v(" The local IP address of the interface which can reach the IP gateway.")]),e._v(" "),t("li",[t("strong",[e._v("gatewayIP [string]:")]),e._v(" The destination IP address of the EnOcean gateway or the device name of the USB gateway (emulates a serial interface, e.g. COM1 or /dev/ttyUSB0)")]),e._v(" "),t("li",[t("strong",[e._v("USB [boolean]:")]),e._v(" If checked, then the connection will be established through a serial interface, otherwise through an IP gateway")]),e._v(" "),t("li",[t("strong",[e._v("id[1-6] [integer]:")]),e._v(" Source ID for input event[n]. The range is from 0 to 127.")]),e._v(" "),t("li",[t("strong",[e._v("sendType[1-6] [string]:")]),e._v(" Send type for input event[n]. Following data types are allowed global (for every datatype property, port and event):\n"),t("ul",[t("li",[t("em",[e._v("“binary”:")]),e._v(" e.g. used for switching light actuators on or off.")]),e._v(" "),t("li",[t("em",[e._v("“temperature”:")]),e._v(" e.g. used to transmit a temperature value.")]),e._v(" "),t("li",[t("em",[e._v("“illumination”:")]),e._v(" e.g. used to transmit illumination values.")]),e._v(" "),t("li",[t("em",[e._v("“humidity”:")]),e._v(" e.g. used to transmit humidity values.")]),e._v(" "),t("li",[t("em",[e._v("“setpoint”:")]),e._v(" e.g. used to send set point value (+10K or -5% humidity)")]),e._v(" "),t("li",[t("em",[e._v("“fan”:")]),e._v(" e.g. used to set or simulate a defined fan level")])])]),e._v(" "),t("li",[t("strong",[e._v("dataValue[1-6] [string]:")]),e._v(" The transmitted value for the input event [n] with the given id[n] and type (sendType[n])")]),e._v(" "),t("li",[t("strong",[e._v("IDSlider[1-6] [string]:")]),e._v(" Source ID for slider[n]. The range is from 0 to 127.")]),e._v(" "),t("li",[t("strong",[e._v("sendTypeSlider[1-6] [string]:")]),e._v(" The data type for sending slider[n] data with IDSLider[n]. The possible data types are stated above")]),e._v(" "),t("li",[t("strong",[e._v("IDTrigger[1-6] [string]:")]),e._v(" Source ID for event trigger[n]. This is a full id, as printed on the device as 6 character string(e.g. FFEFA01C)")]),e._v(" "),t("li",[t("strong",[e._v("TypeTrigger[1-6] [string]:")]),e._v(" The data type for the listening event[n]. If an incoming frame from the give ID (IDTrigger[n]) contains this data type, an event on event port [n] is raised. The possible data types are stated above")])]),e._v(" "),t("h2",{attrs:{id:"event-listener"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener"}},[e._v("#")]),e._v(" Event Listener")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("send[1-6]:")]),e._v(" Each time a event is triggered, the coresponding EnOcean frame which is specified in the plugin properties, is transmitted.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger"}},[e._v("#")]),e._v(" Event Trigger")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event_out_[1-6]:")]),e._v(" Each time a frame is received with the given parameters (from properties IDTrigger[n] and TypeTrigger[n]), this event is raised")])])])}),[],!1,null,null,null);t.default=i.exports},624:function(e,t,n){e.exports=n.p+"assets/img/enocean.b119bfe0.png"}}]); \ No newline at end of file diff --git a/assets/js/145.5c59694a.js b/assets/js/145.213392fc.js similarity index 93% rename from assets/js/145.5c59694a.js rename to assets/js/145.213392fc.js index 6c813fa1ef..bf428aad4c 100644 --- a/assets/js/145.5c59694a.js +++ b/assets/js/145.213392fc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[145],{1082:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eventvisualizer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventvisualizer"}},[e._v("#")]),e._v(" EventVisualizer")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This plugin provides a graphical feedback for events. It can be used to monitor event activities and is mainly targeted for testing of configurations during setup time. The plugin offers a GUI (simple window with text output) where event names are displayed.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(629),alt:"Screenshot: EventVisualizer plugin",title:"Screenshot: EventVisualizer plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("No special hardware or software required.")]),e._v(" "),t("h2",{attrs:{id:"port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#port-description"}},[e._v("#")]),e._v(" Port Description")]),e._v(" "),t("p",[e._v("This plugin does not provide input or output ports.")]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event_in_1:")]),e._v(" incoming events will be displayed in the GUI.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=s.exports},629:function(e,t,i){e.exports=i.p+"assets/img/eventvisualizer.22b2dfa9.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[145],{1082:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eventvisualizer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventvisualizer"}},[e._v("#")]),e._v(" EventVisualizer")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This plugin provides a graphical feedback for events. It can be used to monitor event activities and is mainly targeted for testing of configurations during setup time. The plugin offers a GUI (simple window with text output) where event names are displayed.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(630),alt:"Screenshot: EventVisualizer plugin",title:"Screenshot: EventVisualizer plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("No special hardware or software required.")]),e._v(" "),t("h2",{attrs:{id:"port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#port-description"}},[e._v("#")]),e._v(" Port Description")]),e._v(" "),t("p",[e._v("This plugin does not provide input or output ports.")]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event_in_1:")]),e._v(" incoming events will be displayed in the GUI.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=s.exports},630:function(e,t,i){e.exports=i.p+"assets/img/eventvisualizer.22b2dfa9.jpg"}}]); \ No newline at end of file diff --git a/assets/js/146.f5a30dfa.js b/assets/js/146.2f86ac05.js similarity index 99% rename from assets/js/146.f5a30dfa.js rename to assets/js/146.2f86ac05.js index b7a383887e..ea36ecc8fb 100644 --- a/assets/js/146.f5a30dfa.js +++ b/assets/js/146.2f86ac05.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{1081:function(t,e,r){"use strict";r.r(e);var a=r(2),A=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fs20sender"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fs20sender"}},[t._v("#")]),t._v(" FS20Sender")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("With the FS20 Sender commands for the FS20 house automation system can be sent over the PCS device sold by ELV electronics. See "),e("a",{attrs:{href:"http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29530&flv=1&bereich=&:marke=",target:"_blank",rel:"noopener noreferrer"}},[t._v("the ELV FS20 homepage"),e("OutboundLink")],1),t._v(" for details.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The PCS sender must be attached to the system!")]),t._v(" "),e("p",[e("img",{attrs:{src:r(628),alt:"Picture of the PCS FS20 sender",title:"Picture of the PCS FS20 sender"}})]),t._v(" "),e("h2",{attrs:{id:"supported-oses"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#supported-oses"}},[t._v("#")]),t._v(" Supported OSes")]),t._v(" "),e("ul",[e("li",[t._v("Windows ("),e("code",[t._v("x86")]),t._v(", "),e("code",[t._v("x64")]),t._v(")")]),t._v(" "),e("li",[t._v("Linux ("),e("code",[t._v("x86")]),t._v(", "),e("code",[t._v("x64")]),t._v(", "),e("code",[t._v("ARM")]),t._v(" - (Raspberry Pi))")]),t._v(" "),e("li",[t._v("macOS X ("),e("code",[t._v("x86")]),t._v(", "),e("code",[t._v("x64")]),t._v(")")])]),t._v(" "),e("h2",{attrs:{id:"notes-on-linux-platform"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notes-on-linux-platform"}},[t._v("#")]),t._v(" Notes on Linux platform")]),t._v(" "),e("p",[t._v("If you installed AsTeRICS as package, all necessary permission already set.\nIf you built AsTeRICS on your own, please type following command on a terminal window:")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("echo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('\'ATTRS{idProduct}=="e015", ATTRS{idVendor}=="18ef", MODE="0660", GROUP="plugdev"\'')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" /etc/udev/rules.d/50-asterics-fs20.rules\n")])])]),e("p",[t._v("One additional command is necessary if you work on ARM based platforms (RaspberryPi, BananaPi,…):")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ln")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-sf")]),t._v(" /lib/arm-linux-gnueabihf/libudev.so.1 /lib/arm-linux-gnueabihf/libudev.so.0\n")])])]),e("p",[t._v("Afterwards, unplug and plug in the FS20 device and restart AsTeRICS.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("houseCode [int]:")]),t._v(" The houseCode to which the command should be sent. Overrides the houseCode set in the properties")]),t._v(" "),e("li",[e("strong",[t._v("address [int]:")]),t._v(" The address of the target device. Overrides the houseCode set in the properties.")]),t._v(" "),e("li",[e("strong",[t._v("action [string]:")]),t._v(" Action input to send commands from other components which output a variable string, for example OSKA. The string format is as follows: @FS20:houseCode,address,command; e.g.@FS20:11111111,1234,18 to send the toggle command to the device with housecode 11111111 and address 1234. The delimiters ‘,’, ‘_’ and ’ ’ are allowed. For the indices of the commands see the table below.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("p",[t._v("See table below for a list of all commands that can be triggered")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Command")]),t._v(" "),e("th",[t._v("ID")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Off")]),t._v(" "),e("td",[t._v("0")])]),t._v(" "),e("tr",[e("td",[t._v("Level1")]),t._v(" "),e("td",[t._v("1")])]),t._v(" "),e("tr",[e("td",[t._v("Level2")]),t._v(" "),e("td",[t._v("2")])]),t._v(" "),e("tr",[e("td",[t._v("Level3")]),t._v(" "),e("td",[t._v("3")])]),t._v(" "),e("tr",[e("td",[t._v("Level4")]),t._v(" "),e("td",[t._v("4")])]),t._v(" "),e("tr",[e("td",[t._v("Level5")]),t._v(" "),e("td",[t._v("5")])]),t._v(" "),e("tr",[e("td",[t._v("Level6")]),t._v(" "),e("td",[t._v("6")])]),t._v(" "),e("tr",[e("td",[t._v("Level7")]),t._v(" "),e("td",[t._v("7")])]),t._v(" "),e("tr",[e("td",[t._v("Level8")]),t._v(" "),e("td",[t._v("8")])]),t._v(" "),e("tr",[e("td",[t._v("Level9")]),t._v(" "),e("td",[t._v("9")])]),t._v(" "),e("tr",[e("td",[t._v("Level10")]),t._v(" "),e("td",[t._v("10")])]),t._v(" "),e("tr",[e("td",[t._v("Level11")]),t._v(" "),e("td",[t._v("11")])]),t._v(" "),e("tr",[e("td",[t._v("Level12")]),t._v(" "),e("td",[t._v("12")])]),t._v(" "),e("tr",[e("td",[t._v("Level13")]),t._v(" "),e("td",[t._v("13")])]),t._v(" "),e("tr",[e("td",[t._v("Level14")]),t._v(" "),e("td",[t._v("14")])]),t._v(" "),e("tr",[e("td",[t._v("Level15")]),t._v(" "),e("td",[t._v("15")])]),t._v(" "),e("tr",[e("td",[t._v("Level16")]),t._v(" "),e("td",[t._v("16")])]),t._v(" "),e("tr",[e("td",[t._v("OnOldLevel")]),t._v(" "),e("td",[t._v("17")])]),t._v(" "),e("tr",[e("td",[t._v("Toggle")]),t._v(" "),e("td",[t._v("18")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up")]),t._v(" "),e("td",[t._v("19")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Down")]),t._v(" "),e("td",[t._v("20")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up and Down")]),t._v(" "),e("td",[t._v("21")])]),t._v(" "),e("tr",[e("td",[t._v("Program internal timer")]),t._v(" "),e("td",[t._v("22")])]),t._v(" "),e("tr",[e("td",[t._v("Off for timer then old brightness level")]),t._v(" "),e("td",[t._v("24")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then off")]),t._v(" "),e("td",[t._v("25")])]),t._v(" "),e("tr",[e("td",[t._v("On old brightness level for timer then off")]),t._v(" "),e("td",[t._v("26")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then old brightness level")]),t._v(" "),e("td",[t._v("30")])]),t._v(" "),e("tr",[e("td",[t._v("On for old level then previous state")]),t._v(" "),e("td",[t._v("31")])])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("houseCode [integer]:")]),t._v(" The default housecode for the component if there is no on the input port.")]),t._v(" "),e("li",[e("strong",[t._v("address [integer]:")]),t._v(" The default address for the component if there is no on the input port.")])])])}),[],!1,null,null,null);e.default=A.exports},628:function(t,e){t.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{1080:function(t,e,r){"use strict";r.r(e);var a=r(2),A=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fs20sender"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fs20sender"}},[t._v("#")]),t._v(" FS20Sender")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("With the FS20 Sender commands for the FS20 house automation system can be sent over the PCS device sold by ELV electronics. See "),e("a",{attrs:{href:"http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29530&flv=1&bereich=&:marke=",target:"_blank",rel:"noopener noreferrer"}},[t._v("the ELV FS20 homepage"),e("OutboundLink")],1),t._v(" for details.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The PCS sender must be attached to the system!")]),t._v(" "),e("p",[e("img",{attrs:{src:r(628),alt:"Picture of the PCS FS20 sender",title:"Picture of the PCS FS20 sender"}})]),t._v(" "),e("h2",{attrs:{id:"supported-oses"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#supported-oses"}},[t._v("#")]),t._v(" Supported OSes")]),t._v(" "),e("ul",[e("li",[t._v("Windows ("),e("code",[t._v("x86")]),t._v(", "),e("code",[t._v("x64")]),t._v(")")]),t._v(" "),e("li",[t._v("Linux ("),e("code",[t._v("x86")]),t._v(", "),e("code",[t._v("x64")]),t._v(", "),e("code",[t._v("ARM")]),t._v(" - (Raspberry Pi))")]),t._v(" "),e("li",[t._v("macOS X ("),e("code",[t._v("x86")]),t._v(", "),e("code",[t._v("x64")]),t._v(")")])]),t._v(" "),e("h2",{attrs:{id:"notes-on-linux-platform"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notes-on-linux-platform"}},[t._v("#")]),t._v(" Notes on Linux platform")]),t._v(" "),e("p",[t._v("If you installed AsTeRICS as package, all necessary permission already set.\nIf you built AsTeRICS on your own, please type following command on a terminal window:")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("echo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('\'ATTRS{idProduct}=="e015", ATTRS{idVendor}=="18ef", MODE="0660", GROUP="plugdev"\'')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" /etc/udev/rules.d/50-asterics-fs20.rules\n")])])]),e("p",[t._v("One additional command is necessary if you work on ARM based platforms (RaspberryPi, BananaPi,…):")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ln")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-sf")]),t._v(" /lib/arm-linux-gnueabihf/libudev.so.1 /lib/arm-linux-gnueabihf/libudev.so.0\n")])])]),e("p",[t._v("Afterwards, unplug and plug in the FS20 device and restart AsTeRICS.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("houseCode [int]:")]),t._v(" The houseCode to which the command should be sent. Overrides the houseCode set in the properties")]),t._v(" "),e("li",[e("strong",[t._v("address [int]:")]),t._v(" The address of the target device. Overrides the houseCode set in the properties.")]),t._v(" "),e("li",[e("strong",[t._v("action [string]:")]),t._v(" Action input to send commands from other components which output a variable string, for example OSKA. The string format is as follows: @FS20:houseCode,address,command; e.g.@FS20:11111111,1234,18 to send the toggle command to the device with housecode 11111111 and address 1234. The delimiters ‘,’, ‘_’ and ’ ’ are allowed. For the indices of the commands see the table below.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("p",[t._v("See table below for a list of all commands that can be triggered")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Command")]),t._v(" "),e("th",[t._v("ID")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Off")]),t._v(" "),e("td",[t._v("0")])]),t._v(" "),e("tr",[e("td",[t._v("Level1")]),t._v(" "),e("td",[t._v("1")])]),t._v(" "),e("tr",[e("td",[t._v("Level2")]),t._v(" "),e("td",[t._v("2")])]),t._v(" "),e("tr",[e("td",[t._v("Level3")]),t._v(" "),e("td",[t._v("3")])]),t._v(" "),e("tr",[e("td",[t._v("Level4")]),t._v(" "),e("td",[t._v("4")])]),t._v(" "),e("tr",[e("td",[t._v("Level5")]),t._v(" "),e("td",[t._v("5")])]),t._v(" "),e("tr",[e("td",[t._v("Level6")]),t._v(" "),e("td",[t._v("6")])]),t._v(" "),e("tr",[e("td",[t._v("Level7")]),t._v(" "),e("td",[t._v("7")])]),t._v(" "),e("tr",[e("td",[t._v("Level8")]),t._v(" "),e("td",[t._v("8")])]),t._v(" "),e("tr",[e("td",[t._v("Level9")]),t._v(" "),e("td",[t._v("9")])]),t._v(" "),e("tr",[e("td",[t._v("Level10")]),t._v(" "),e("td",[t._v("10")])]),t._v(" "),e("tr",[e("td",[t._v("Level11")]),t._v(" "),e("td",[t._v("11")])]),t._v(" "),e("tr",[e("td",[t._v("Level12")]),t._v(" "),e("td",[t._v("12")])]),t._v(" "),e("tr",[e("td",[t._v("Level13")]),t._v(" "),e("td",[t._v("13")])]),t._v(" "),e("tr",[e("td",[t._v("Level14")]),t._v(" "),e("td",[t._v("14")])]),t._v(" "),e("tr",[e("td",[t._v("Level15")]),t._v(" "),e("td",[t._v("15")])]),t._v(" "),e("tr",[e("td",[t._v("Level16")]),t._v(" "),e("td",[t._v("16")])]),t._v(" "),e("tr",[e("td",[t._v("OnOldLevel")]),t._v(" "),e("td",[t._v("17")])]),t._v(" "),e("tr",[e("td",[t._v("Toggle")]),t._v(" "),e("td",[t._v("18")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up")]),t._v(" "),e("td",[t._v("19")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Down")]),t._v(" "),e("td",[t._v("20")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up and Down")]),t._v(" "),e("td",[t._v("21")])]),t._v(" "),e("tr",[e("td",[t._v("Program internal timer")]),t._v(" "),e("td",[t._v("22")])]),t._v(" "),e("tr",[e("td",[t._v("Off for timer then old brightness level")]),t._v(" "),e("td",[t._v("24")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then off")]),t._v(" "),e("td",[t._v("25")])]),t._v(" "),e("tr",[e("td",[t._v("On old brightness level for timer then off")]),t._v(" "),e("td",[t._v("26")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then old brightness level")]),t._v(" "),e("td",[t._v("30")])]),t._v(" "),e("tr",[e("td",[t._v("On for old level then previous state")]),t._v(" "),e("td",[t._v("31")])])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("houseCode [integer]:")]),t._v(" The default housecode for the component if there is no on the input port.")]),t._v(" "),e("li",[e("strong",[t._v("address [integer]:")]),t._v(" The default address for the component if there is no on the input port.")])])])}),[],!1,null,null,null);e.default=A.exports},628:function(t,e){t.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/147.0b11eda7.js b/assets/js/147.2f02e55d.js similarity index 89% rename from assets/js/147.0b11eda7.js rename to assets/js/147.2f02e55d.js index f082c6e619..1dea85693b 100644 --- a/assets/js/147.0b11eda7.js +++ b/assets/js/147.2f02e55d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[147],{1084:function(t,e,r){"use strict";r.r(e);var i=r(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"filewriter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#filewriter"}},[t._v("#")]),t._v(" FileWriter")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-file-system"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-file-system"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This component writes the input values that are received in the input port to a text file, so these values can be analysed and processed off-line.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(632),alt:"Screenshot: File Writer plugin",title:"Screenshot: File Writer plugin"}})]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the values to be written to the text file.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FileName [string]:")]),t._v(" Defines the name for the file where the input values are written. A timestamp indicating year, month, day, hour, minute and second of when the file is created is appended to the file name in order to identify different recordings.")])])])}),[],!1,null,null,null);e.default=s.exports},632:function(t,e,r){t.exports=r.p+"assets/img/filewriter.747c3825.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[147],{1081:function(t,e,r){"use strict";r.r(e);var i=r(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"filewriter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#filewriter"}},[t._v("#")]),t._v(" FileWriter")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-file-system"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-file-system"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This component writes the input values that are received in the input port to a text file, so these values can be analysed and processed off-line.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(629),alt:"Screenshot: File Writer plugin",title:"Screenshot: File Writer plugin"}})]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the values to be written to the text file.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FileName [string]:")]),t._v(" Defines the name for the file where the input values are written. A timestamp indicating year, month, day, hour, minute and second of when the file is created is appended to the file name in order to identify different recordings.")])])])}),[],!1,null,null,null);e.default=s.exports},629:function(t,e,r){t.exports=r.p+"assets/img/filewriter.747c3825.jpg"}}]); \ No newline at end of file diff --git a/assets/js/148.c1f93318.js b/assets/js/148.70170c40.js similarity index 95% rename from assets/js/148.c1f93318.js rename to assets/js/148.70170c40.js index d5cafbb7d2..30682f1113 100644 --- a/assets/js/148.c1f93318.js +++ b/assets/js/148.70170c40.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{1086:function(e,t,s){"use strict";s.r(t);var r=s(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gmailshortcuts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gmailshortcuts"}},[e._v("#")]),e._v(" GMailShortcuts")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-others"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-others"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Others)")]),e._v(" "),t("p",[e._v("The GMailShortcuts component was developed to operate the e-mail client of GMail via Keystroke combinations (Shortcuts).The component emulates local keyboard inputs that are sent to the window currently having the focus. Please ensure that the GMail tab in your webbrowser has the input focus.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(634),alt:"Screenshot: GMailShortcuts plugin",title:"Screenshot: GMailShortcuts plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("Works best with the Opera internet browser (http://www.opera.com/de) and the Gmail client (https://www.google.com/intl/en/mail/help/about.html)")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("KeyCode [string]:")]),e._v(" Input port for incoming strings which consists of alphanumeric characters. The keys are sequentially generated as local keystrokes as the string is received.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("**keyCodeString [string]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*If the KeyCode Input recieves a Character between A-Z or 1-9 it generates the corresbonding Keystroke for A-Z or 1-9.")]),e._v(" "),t("p",[e._v("To generate the required shortcuts for the Gmail client, the follwing strings are used:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Navigation")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("UP")]),e._v(" equals the Arrow up key")]),e._v(" "),t("li",[t("code",[e._v("DOWN")]),e._v(" equals the Arrow down key<")]),e._v(" "),t("li",[t("code",[e._v("LEFT")]),e._v(" equals the Arrow left key")]),e._v(" "),t("li",[t("code",[e._v("RIGHT")]),e._v(" equals the Arrow right key")]),e._v(" "),t("li",[t("code",[e._v("ESC")]),e._v(" equals the Escape key")]),e._v(" "),t("li",[t("code",[e._v("TAB")]),e._v(" equals the Tabulator key")]),e._v(" "),t("li",[t("code",[e._v("ENTER")]),e._v(" equals the Enter key")]),e._v(" "),t("li",[t("code",[e._v("BACKSPACE")]),e._v(" equals the Backspace key")])])]),e._v(" "),t("li",[t("strong",[e._v("Special Signs")]),e._v(" "),t("ul",[t("li",[t("code",[e._v(".")]),e._v(" equals the full stop key")]),e._v(" "),t("li",[t("code",[e._v("@")]),e._v(" equals the at sign key")]),e._v(" "),t("li",[t("code",[e._v(":")]),e._v(" equals the colon key")]),e._v(" "),t("li",[t("code",[e._v(";")]),e._v(" equals the semicolon key")]),e._v(" "),t("li",[t("code",[e._v(",")]),e._v(" equals the comma key")]),e._v(" "),t("li",[t("code",[e._v("!")]),e._v(" equals the exclemationmarl key")]),e._v(" "),t("li",[t("code",[e._v("?")]),e._v(" equals the questionmark key")]),e._v(" "),t("li",[t("code",[e._v("_")]),e._v(" equals the underscore key")])])]),e._v(" "),t("li",[t("strong",[e._v("GMail Key Combinations")]),e._v(" "),t("ul",[t("li",[e._v("SENDEN sends a written email if in a compose or replay window")]),e._v(" "),t("li",[e._v("CC if in a compose or reply window enters the CC area")]),e._v(" "),t("li",[e._v("NEW opens a email compose window")]),e._v(" "),t("li",[e._v("SEARCH sets the courser in the searchbar")]),e._v(" "),t("li",[e._v("INBOX swithces to the inbox window")]),e._v(" "),t("li",[e._v("REPLY enters the replay window when previously in an opened email")]),e._v(" "),t("li",[e._v("SELECT selects the email currentl marked blue")]),e._v(" "),t("li",[e._v("ENTER opens the currently marked email")]),e._v(" "),t("li",[e._v("SHIFT is the shift lock key (pressing once all chars a generated in capital letters pressing again undos the caption)")])])])])])])])}),[],!1,null,null,null);t.default=a.exports},634:function(e,t,s){e.exports=s.p+"assets/img/gmailshortcuts.23822e29.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{1083:function(e,t,s){"use strict";s.r(t);var r=s(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gmailshortcuts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gmailshortcuts"}},[e._v("#")]),e._v(" GMailShortcuts")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-others"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-others"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Others)")]),e._v(" "),t("p",[e._v("The GMailShortcuts component was developed to operate the e-mail client of GMail via Keystroke combinations (Shortcuts).The component emulates local keyboard inputs that are sent to the window currently having the focus. Please ensure that the GMail tab in your webbrowser has the input focus.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(631),alt:"Screenshot: GMailShortcuts plugin",title:"Screenshot: GMailShortcuts plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("Works best with the Opera internet browser (http://www.opera.com/de) and the Gmail client (https://www.google.com/intl/en/mail/help/about.html)")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("KeyCode [string]:")]),e._v(" Input port for incoming strings which consists of alphanumeric characters. The keys are sequentially generated as local keystrokes as the string is received.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("**keyCodeString [string]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*If the KeyCode Input recieves a Character between A-Z or 1-9 it generates the corresbonding Keystroke for A-Z or 1-9.")]),e._v(" "),t("p",[e._v("To generate the required shortcuts for the Gmail client, the follwing strings are used:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Navigation")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("UP")]),e._v(" equals the Arrow up key")]),e._v(" "),t("li",[t("code",[e._v("DOWN")]),e._v(" equals the Arrow down key<")]),e._v(" "),t("li",[t("code",[e._v("LEFT")]),e._v(" equals the Arrow left key")]),e._v(" "),t("li",[t("code",[e._v("RIGHT")]),e._v(" equals the Arrow right key")]),e._v(" "),t("li",[t("code",[e._v("ESC")]),e._v(" equals the Escape key")]),e._v(" "),t("li",[t("code",[e._v("TAB")]),e._v(" equals the Tabulator key")]),e._v(" "),t("li",[t("code",[e._v("ENTER")]),e._v(" equals the Enter key")]),e._v(" "),t("li",[t("code",[e._v("BACKSPACE")]),e._v(" equals the Backspace key")])])]),e._v(" "),t("li",[t("strong",[e._v("Special Signs")]),e._v(" "),t("ul",[t("li",[t("code",[e._v(".")]),e._v(" equals the full stop key")]),e._v(" "),t("li",[t("code",[e._v("@")]),e._v(" equals the at sign key")]),e._v(" "),t("li",[t("code",[e._v(":")]),e._v(" equals the colon key")]),e._v(" "),t("li",[t("code",[e._v(";")]),e._v(" equals the semicolon key")]),e._v(" "),t("li",[t("code",[e._v(",")]),e._v(" equals the comma key")]),e._v(" "),t("li",[t("code",[e._v("!")]),e._v(" equals the exclemationmarl key")]),e._v(" "),t("li",[t("code",[e._v("?")]),e._v(" equals the questionmark key")]),e._v(" "),t("li",[t("code",[e._v("_")]),e._v(" equals the underscore key")])])]),e._v(" "),t("li",[t("strong",[e._v("GMail Key Combinations")]),e._v(" "),t("ul",[t("li",[e._v("SENDEN sends a written email if in a compose or replay window")]),e._v(" "),t("li",[e._v("CC if in a compose or reply window enters the CC area")]),e._v(" "),t("li",[e._v("NEW opens a email compose window")]),e._v(" "),t("li",[e._v("SEARCH sets the courser in the searchbar")]),e._v(" "),t("li",[e._v("INBOX swithces to the inbox window")]),e._v(" "),t("li",[e._v("REPLY enters the replay window when previously in an opened email")]),e._v(" "),t("li",[e._v("SELECT selects the email currentl marked blue")]),e._v(" "),t("li",[e._v("ENTER opens the currently marked email")]),e._v(" "),t("li",[e._v("SHIFT is the shift lock key (pressing once all chars a generated in capital letters pressing again undos the caption)")])])])])])])])}),[],!1,null,null,null);t.default=a.exports},631:function(e,t,s){e.exports=s.p+"assets/img/gmailshortcuts.23822e29.jpg"}}]); \ No newline at end of file diff --git a/assets/js/149.e6bae953.js b/assets/js/149.3d20ffc2.js similarity index 94% rename from assets/js/149.e6bae953.js rename to assets/js/149.3d20ffc2.js index c39a07f053..ea5a5c1530 100644 --- a/assets/js/149.e6bae953.js +++ b/assets/js/149.3d20ffc2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[149],{1085:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-communication"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-communication"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Communication)")]),t._v(" "),e("p",[t._v("This component can perform send and receive SMS action through the GSM modem.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(633),alt:"Screenshot: GSMModem plugin",title:"Screenshot: GSMModem plugin"}})]),t._v(" "),e("p",[t._v("GSMModem plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A GSM modem with SMS option connected to the platform.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("phoneID [string]:")]),t._v(" Phone number which will be used for the send SMS action.")]),t._v(" "),e("li",[e("strong",[t._v("SMSContent [string]:")]),t._v(" SMS content which will be used for the send SMS action.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("remotePhoneID [string]:")]),t._v(" This is a phone number of the SMS sender.")]),t._v(" "),e("li",[e("strong",[t._v("receivedSMS [string]:")]),t._v(" This is the content of the incoming SMS.")]),t._v(" "),e("li",[e("strong",[t._v("errorNumber [integer]:")]),t._v(" The number of the error.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendSMS:")]),t._v(" Sends the SMS message.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("newSMS:")]),t._v(" There is a new message.")]),t._v(" "),e("li",[e("strong",[t._v("error:")]),t._v(" An error occurred.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("serialPort [string]:")]),t._v(" The modem COM port. If this parameter is empty, the component uses the port of the first modem found.")]),t._v(" "),e("li",[t._v("**pin [string]"),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("*The PIN code for the SIM card. If the PIN is not needed this property should be empty.")]),t._v(" "),e("li",[e("strong",[t._v("smsCenterID [string]:")]),t._v(" SMS Center ID. If the Center ID is not needed this property should be empty.")]),t._v(" "),e("li",[e("strong",[t._v("defaultPhoneID [string]:")]),t._v(" This is a default phone number, which will be used for the send SMS actions.")])])])}),[],!1,null,null,null);e.default=n.exports},633:function(t,e,r){t.exports=r.p+"assets/img/gsmmodem.5519c224.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[149],{1084:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-communication"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-communication"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Communication)")]),t._v(" "),e("p",[t._v("This component can perform send and receive SMS action through the GSM modem.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(632),alt:"Screenshot: GSMModem plugin",title:"Screenshot: GSMModem plugin"}})]),t._v(" "),e("p",[t._v("GSMModem plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A GSM modem with SMS option connected to the platform.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("phoneID [string]:")]),t._v(" Phone number which will be used for the send SMS action.")]),t._v(" "),e("li",[e("strong",[t._v("SMSContent [string]:")]),t._v(" SMS content which will be used for the send SMS action.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("remotePhoneID [string]:")]),t._v(" This is a phone number of the SMS sender.")]),t._v(" "),e("li",[e("strong",[t._v("receivedSMS [string]:")]),t._v(" This is the content of the incoming SMS.")]),t._v(" "),e("li",[e("strong",[t._v("errorNumber [integer]:")]),t._v(" The number of the error.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendSMS:")]),t._v(" Sends the SMS message.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("newSMS:")]),t._v(" There is a new message.")]),t._v(" "),e("li",[e("strong",[t._v("error:")]),t._v(" An error occurred.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("serialPort [string]:")]),t._v(" The modem COM port. If this parameter is empty, the component uses the port of the first modem found.")]),t._v(" "),e("li",[t._v("**pin [string]"),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("*The PIN code for the SIM card. If the PIN is not needed this property should be empty.")]),t._v(" "),e("li",[e("strong",[t._v("smsCenterID [string]:")]),t._v(" SMS Center ID. If the Center ID is not needed this property should be empty.")]),t._v(" "),e("li",[e("strong",[t._v("defaultPhoneID [string]:")]),t._v(" This is a default phone number, which will be used for the send SMS actions.")])])])}),[],!1,null,null,null);e.default=n.exports},632:function(t,e,r){t.exports=r.p+"assets/img/gsmmodem.5519c224.jpg"}}]); \ No newline at end of file diff --git a/assets/js/15.f1afcdff.js b/assets/js/15.ef8d9283.js similarity index 99% rename from assets/js/15.f1afcdff.js rename to assets/js/15.ef8d9283.js index 291fdc60bd..e95d785160 100644 --- a/assets/js/15.f1afcdff.js +++ b/assets/js/15.ef8d9283.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{428:function(t,a,s){t.exports=s.p+"assets/img/quickstart01.183b9214.png"},429:function(t,a,s){t.exports=s.p+"assets/img/quickstart02.3686057d.png"},430:function(t,a,s){t.exports=s.p+"assets/img/quickstart03.62d82759.png"},431:function(t,a,s){t.exports=s.p+"assets/img/quickstart04.cb41d5a3.png"},432:function(t,a,s){t.exports=s.p+"assets/img/quickstart05.80fdad04.png"},433:function(t,a,s){t.exports=s.p+"assets/img/quickstart06.3ceb45c3.png"},434:function(t,a,s){t.exports=s.p+"assets/img/quickstart07.4c3bb97f.png"},435:function(t,a){t.exports="data:image/png;base64,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"},436:function(t,a,s){t.exports=s.p+"assets/img/quickstart09.12c7bc90.png"},995:function(t,a,s){"use strict";s.r(a);var e=s(2),n=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"asterics-installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-installation"}},[t._v("#")]),t._v(" AsTeRICS Installation")]),t._v(" "),a("p",[t._v("If you are new to AsTeRICS, please read the "),a("a",{attrs:{href:"Overview"}},[t._v("Overview")]),t._v(" section first to know about important terms and programs.")]),t._v(" "),a("p",[t._v("The AsTeRICS provides installer for "),a("a",{attrs:{href:"#windows"}},[t._v("Windows")]),t._v(", "),a("a",{attrs:{href:"#linux"}},[t._v("Linux")]),t._v(" and "),a("a",{attrs:{href:"#mac-os-x"}},[t._v("Mac OSX")]),t._v(", but only on\nWindows the full AsTeRICS suite is supported. On the other platforms the installer\nonly contains the ARE.")]),t._v(" "),a("h2",{attrs:{id:"windows"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[t._v("#")]),t._v(" Windows")]),t._v(" "),a("p",[t._v("The installer for Windows ("),a("code",[t._v("Setup_AsTeRICS_x_y_z.exe")]),t._v(") contains the following programs:")]),t._v(" "),a("ul",[a("li",[t._v("ACS")]),t._v(" "),a("li",[t._v("WebACS")]),t._v(" "),a("li",[t._v("ARE")]),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/develop/at-solution/"}},[t._v("AsTeRICS Packaging Environment (APE)")])],1)]),t._v(" "),a("h3",{attrs:{id:"download"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download"}},[t._v("#")]),t._v(" Download")]),t._v(" "),a("p",[t._v("Please go to the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("download page"),a("OutboundLink")],1),t._v(" and download the installer.")]),t._v(" "),a("h3",{attrs:{id:"installation-steps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps"}},[t._v("#")]),t._v(" Installation Steps")]),t._v(" "),a("ol",[a("li",[t._v("Start the setup file.")]),t._v(" "),a("li",[t._v("You should see the welcome window. It informs you which version of the software\nyou are installing. Click the button "),a("strong",[t._v("Next")]),t._v(".")])]),t._v(" "),a("p",[a("img",{attrs:{src:s(428),alt:"AsTeRICS Setup Wizard"}})]),t._v(" "),a("h4",{attrs:{id:"installation-path"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-path"}},[t._v("#")]),t._v(" Installation Path")]),t._v(" "),a("p",[a("img",{attrs:{src:s(429),alt:"Installation Path"}})]),t._v(" "),a("p",[t._v("In this dialogue window you can define the installation path that means you can\nchoose a folder, where Asterics should be installed. We suggest using the standard\ninstallation path. Then Click the button "),a("strong",[t._v("Next")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"select-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#select-components"}},[t._v("#")]),t._v(" Select Components")]),t._v(" "),a("p",[t._v("You can see the component selection window:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(430),alt:"Installation Java Runtime Environment"}})]),t._v(" "),a("p",[t._v("AsTeRICS needs the Java Runtime Environment ("),a("code",[t._v(">= Version 8")]),t._v("). If\nyou have already installed the Java Runtime Environment on your computer, please\ndeselect this option and install only AsTeRICS.")]),t._v(" "),a("p",[t._v("Then, click the button "),a("strong",[t._v("Next")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"start-menu-folder"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start-menu-folder"}},[t._v("#")]),t._v(" Start Menu Folder")]),t._v(" "),a("p",[t._v("Define Start Menu folder entry\nIn the next dialogue window you can define the name of the start menu entry.You\ncan see the following window:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(431),alt:"Start Menu Entry"}})]),t._v(" "),a("p",[t._v("Then, click the button "),a("strong",[t._v("Next")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"installation-progress"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-progress"}},[t._v("#")]),t._v(" Installation Progress")]),t._v(" "),a("p",[t._v("In the next dialogue window you can see the progress of the installation. It can take a\nfew minutes until the process is finished:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(432),alt:"Installation Progress"}})]),t._v(" "),a("h4",{attrs:{id:"installation-finished"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-finished"}},[t._v("#")]),t._v(" Installation Finished")]),t._v(" "),a("p",[t._v("As soon as the installation is finisehd, you can see the following window:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(433),alt:"Installation Finish"}})]),t._v(" "),a("p",[t._v("Finally, click the button "),a("strong",[t._v("Finish")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"desktop-short-cuts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-short-cuts"}},[t._v("#")]),t._v(" Desktop Short Cuts")]),t._v(" "),a("p",[t._v("On your desktop you will find the following links (short cuts):")]),t._v(" "),a("p",[a("img",{attrs:{src:s(434),alt:"ACS Startmenu Entry"}}),t._v(" "),a("img",{attrs:{src:s(435),alt:"ARE Startmenu Entry"}})]),t._v(" "),a("p",[t._v("These short cuts can be used to start ACS and ARE. Alternatively, you can start these\nprograms also from the Windows start menu, where additional liks to the Debug\nversion of the ARE (which displays debugging information in a console window) and\nthe AsTeRICS unistaller have been added:")]),t._v(" "),a("h3",{attrs:{id:"start-menu"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start-menu"}},[t._v("#")]),t._v(" Start Menu")]),t._v(" "),a("p",[t._v("Under Windows-start "),a("strong",[t._v("All Programs")]),t._v(" you will find the start folder "),a("strong",[t._v("AsTeRICS")]),t._v(" and\nthe start-files.")]),t._v(" "),a("p",[a("img",{attrs:{src:s(436),alt:"AsTeRICS Startmenu Folder"}})]),t._v(" "),a("h2",{attrs:{id:"mac-os-x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mac-os-x"}},[t._v("#")]),t._v(" Mac OS X")]),t._v(" "),a("p",[t._v("The installer for Mac OS X ("),a("code",[t._v("asterics-are-javaembedded-x.y.dmg")]),t._v(") contains the following programs:")]),t._v(" "),a("ul",[a("li",[t._v("WebACS")]),t._v(" "),a("li",[t._v("ARE")])]),t._v(" "),a("p",[t._v("It was tested on Mac OS X 10.9.1 (Mavericks) and has Java embedded.")]),t._v(" "),a("h3",{attrs:{id:"download-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-2"}},[t._v("#")]),t._v(" Download")]),t._v(" "),a("p",[t._v("Please go to the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("download page"),a("OutboundLink")],1),t._v(" and download the installer.")]),t._v(" "),a("h3",{attrs:{id:"installation-steps-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps-2"}},[t._v("#")]),t._v(" Installation Steps")]),t._v(" "),a("ol",[a("li",[t._v("Press the "),a("strong",[t._v("Control")]),t._v(" Key (otherwise you will get an error message).")]),t._v(" "),a("li",[t._v("Double-click onto the "),a("code",[t._v(".dmg")]),t._v(" file and follow the instructions.")])]),t._v(" "),a("h2",{attrs:{id:"linux"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[t._v("#")]),t._v(" Linux")]),t._v(" "),a("p",[t._v("The installer for Linux ("),a("code",[t._v("asterics-are-x.y.deb")]),t._v(") contains the following programs:")]),t._v(" "),a("ul",[a("li",[t._v("WebACS")]),t._v(" "),a("li",[t._v("ARE")])]),t._v(" "),a("p",[t._v("It is compatible with Ubuntu, Debian and ARM/Raspberry Pi.\nThe installer was tested on Debian 16.04 LTS and Raspberry Pi 3 with Raspbian Jessie.")]),t._v(" "),a("h3",{attrs:{id:"download-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-3"}},[t._v("#")]),t._v(" Download")]),t._v(" "),a("p",[t._v("Please go to the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("download page"),a("OutboundLink")],1),t._v(" and download the installer.")]),t._v(" "),a("h3",{attrs:{id:"installation-steps-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps-3"}},[t._v("#")]),t._v(" Installation Steps")]),t._v(" "),a("h4",{attrs:{id:"install-java"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-java"}},[t._v("#")]),t._v(" Install Java")]),t._v(" "),a("p",[t._v("You need a "),a("strong",[t._v("Java Runtime Standard Edition 8")]),t._v(".")]),t._v(" "),a("p",[t._v("Choose one of the installation methods below:")]),t._v(" "),a("h5",{attrs:{id:"zulu-java"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#zulu-java"}},[t._v("#")]),t._v(" Zulu Java")]),t._v(" "),a("ol",[a("li",[t._v("Download the "),a("a",{attrs:{href:"https://www.azul.com/downloads/zulu-community/?version=java-8-lts&os=linux&package=jdk",target:"_blank",rel:"noopener noreferrer"}},[t._v("Zulu installer"),a("OutboundLink")],1),t._v(" for your your platform.")]),t._v(" "),a("li",[t._v("Install it")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" dpkg "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-i")]),t._v(" $"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("download_dir"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("/"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("zulu_package"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(".deb\n")])])]),a("p",[t._v("You can also add an "),a("a",{attrs:{href:"https://docs.azul.com/zulu/zuludocs/ZuluUserGuide/PrepareZuluPlatform/AttachAPTRepositoryUbuntuOrDebianSys.htm?tocpath=Zulu%20Installation%20Guide%7CPrepare%20the%20Zulu%20Installation%20Platform%7CAttach%20Azul%20Package%20Repositories%7C_____2",target:"_blank",rel:"noopener noreferrer"}},[t._v("APT repository"),a("OutboundLink")],1),t._v(" for it.")]),t._v(" "),a("h5",{attrs:{id:"openjdk"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#openjdk"}},[t._v("#")]),t._v(" OpenJDK")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt-get")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" openjdk-8-jre\n")])])]),a("h5",{attrs:{id:"oracle-java"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#oracle-java"}},[t._v("#")]),t._v(" Oracle Java")]),t._v(" "),a("p",[t._v("Download "),a("a",{attrs:{href:"https://www.oracle.com/java/technologies/javase-jre8-downloads.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Oracle Java 8"),a("OutboundLink")],1),t._v(" and follow the instructions.")]),t._v(" "),a("h4",{attrs:{id:"install-asterics"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-asterics"}},[t._v("#")]),t._v(" Install AsTeRICS")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" libhidapi-libusb0 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" dpkg "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-i")]),t._v(" asterics-are-*.deb\n")])])]),a("p",[t._v("If you get an error message, that the dependencies had not been installed before,")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("dpkg: dependency problems prevent configuration of asterics-are:\n asterics-are depends on libhidapi-libusb0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" however:\n Package libhidapi-libusb0 is not installed.\n")])])]),a("p",[t._v("execute the following command to install the dependencies:")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt")]),t._v(" --fix-broken "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{428:function(t,a,s){t.exports=s.p+"assets/img/quickstart01.183b9214.png"},429:function(t,a,s){t.exports=s.p+"assets/img/quickstart02.3686057d.png"},430:function(t,a,s){t.exports=s.p+"assets/img/quickstart03.62d82759.png"},431:function(t,a,s){t.exports=s.p+"assets/img/quickstart04.cb41d5a3.png"},432:function(t,a,s){t.exports=s.p+"assets/img/quickstart05.80fdad04.png"},433:function(t,a,s){t.exports=s.p+"assets/img/quickstart06.3ceb45c3.png"},434:function(t,a,s){t.exports=s.p+"assets/img/quickstart07.4c3bb97f.png"},435:function(t,a){t.exports="data:image/png;base64,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"},436:function(t,a,s){t.exports=s.p+"assets/img/quickstart09.12c7bc90.png"},996:function(t,a,s){"use strict";s.r(a);var e=s(2),n=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"asterics-installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-installation"}},[t._v("#")]),t._v(" AsTeRICS Installation")]),t._v(" "),a("p",[t._v("If you are new to AsTeRICS, please read the "),a("a",{attrs:{href:"Overview"}},[t._v("Overview")]),t._v(" section first to know about important terms and programs.")]),t._v(" "),a("p",[t._v("The AsTeRICS provides installer for "),a("a",{attrs:{href:"#windows"}},[t._v("Windows")]),t._v(", "),a("a",{attrs:{href:"#linux"}},[t._v("Linux")]),t._v(" and "),a("a",{attrs:{href:"#mac-os-x"}},[t._v("Mac OSX")]),t._v(", but only on\nWindows the full AsTeRICS suite is supported. On the other platforms the installer\nonly contains the ARE.")]),t._v(" "),a("h2",{attrs:{id:"windows"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[t._v("#")]),t._v(" Windows")]),t._v(" "),a("p",[t._v("The installer for Windows ("),a("code",[t._v("Setup_AsTeRICS_x_y_z.exe")]),t._v(") contains the following programs:")]),t._v(" "),a("ul",[a("li",[t._v("ACS")]),t._v(" "),a("li",[t._v("WebACS")]),t._v(" "),a("li",[t._v("ARE")]),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/develop/at-solution/"}},[t._v("AsTeRICS Packaging Environment (APE)")])],1)]),t._v(" "),a("h3",{attrs:{id:"download"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download"}},[t._v("#")]),t._v(" Download")]),t._v(" "),a("p",[t._v("Please go to the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("download page"),a("OutboundLink")],1),t._v(" and download the installer.")]),t._v(" "),a("h3",{attrs:{id:"installation-steps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps"}},[t._v("#")]),t._v(" Installation Steps")]),t._v(" "),a("ol",[a("li",[t._v("Start the setup file.")]),t._v(" "),a("li",[t._v("You should see the welcome window. It informs you which version of the software\nyou are installing. Click the button "),a("strong",[t._v("Next")]),t._v(".")])]),t._v(" "),a("p",[a("img",{attrs:{src:s(428),alt:"AsTeRICS Setup Wizard"}})]),t._v(" "),a("h4",{attrs:{id:"installation-path"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-path"}},[t._v("#")]),t._v(" Installation Path")]),t._v(" "),a("p",[a("img",{attrs:{src:s(429),alt:"Installation Path"}})]),t._v(" "),a("p",[t._v("In this dialogue window you can define the installation path that means you can\nchoose a folder, where Asterics should be installed. We suggest using the standard\ninstallation path. Then Click the button "),a("strong",[t._v("Next")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"select-components"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#select-components"}},[t._v("#")]),t._v(" Select Components")]),t._v(" "),a("p",[t._v("You can see the component selection window:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(430),alt:"Installation Java Runtime Environment"}})]),t._v(" "),a("p",[t._v("AsTeRICS needs the Java Runtime Environment ("),a("code",[t._v(">= Version 8")]),t._v("). If\nyou have already installed the Java Runtime Environment on your computer, please\ndeselect this option and install only AsTeRICS.")]),t._v(" "),a("p",[t._v("Then, click the button "),a("strong",[t._v("Next")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"start-menu-folder"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start-menu-folder"}},[t._v("#")]),t._v(" Start Menu Folder")]),t._v(" "),a("p",[t._v("Define Start Menu folder entry\nIn the next dialogue window you can define the name of the start menu entry.You\ncan see the following window:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(431),alt:"Start Menu Entry"}})]),t._v(" "),a("p",[t._v("Then, click the button "),a("strong",[t._v("Next")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"installation-progress"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-progress"}},[t._v("#")]),t._v(" Installation Progress")]),t._v(" "),a("p",[t._v("In the next dialogue window you can see the progress of the installation. It can take a\nfew minutes until the process is finished:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(432),alt:"Installation Progress"}})]),t._v(" "),a("h4",{attrs:{id:"installation-finished"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-finished"}},[t._v("#")]),t._v(" Installation Finished")]),t._v(" "),a("p",[t._v("As soon as the installation is finisehd, you can see the following window:")]),t._v(" "),a("p",[a("img",{attrs:{src:s(433),alt:"Installation Finish"}})]),t._v(" "),a("p",[t._v("Finally, click the button "),a("strong",[t._v("Finish")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"desktop-short-cuts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desktop-short-cuts"}},[t._v("#")]),t._v(" Desktop Short Cuts")]),t._v(" "),a("p",[t._v("On your desktop you will find the following links (short cuts):")]),t._v(" "),a("p",[a("img",{attrs:{src:s(434),alt:"ACS Startmenu Entry"}}),t._v(" "),a("img",{attrs:{src:s(435),alt:"ARE Startmenu Entry"}})]),t._v(" "),a("p",[t._v("These short cuts can be used to start ACS and ARE. Alternatively, you can start these\nprograms also from the Windows start menu, where additional liks to the Debug\nversion of the ARE (which displays debugging information in a console window) and\nthe AsTeRICS unistaller have been added:")]),t._v(" "),a("h3",{attrs:{id:"start-menu"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start-menu"}},[t._v("#")]),t._v(" Start Menu")]),t._v(" "),a("p",[t._v("Under Windows-start "),a("strong",[t._v("All Programs")]),t._v(" you will find the start folder "),a("strong",[t._v("AsTeRICS")]),t._v(" and\nthe start-files.")]),t._v(" "),a("p",[a("img",{attrs:{src:s(436),alt:"AsTeRICS Startmenu Folder"}})]),t._v(" "),a("h2",{attrs:{id:"mac-os-x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mac-os-x"}},[t._v("#")]),t._v(" Mac OS X")]),t._v(" "),a("p",[t._v("The installer for Mac OS X ("),a("code",[t._v("asterics-are-javaembedded-x.y.dmg")]),t._v(") contains the following programs:")]),t._v(" "),a("ul",[a("li",[t._v("WebACS")]),t._v(" "),a("li",[t._v("ARE")])]),t._v(" "),a("p",[t._v("It was tested on Mac OS X 10.9.1 (Mavericks) and has Java embedded.")]),t._v(" "),a("h3",{attrs:{id:"download-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-2"}},[t._v("#")]),t._v(" Download")]),t._v(" "),a("p",[t._v("Please go to the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("download page"),a("OutboundLink")],1),t._v(" and download the installer.")]),t._v(" "),a("h3",{attrs:{id:"installation-steps-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps-2"}},[t._v("#")]),t._v(" Installation Steps")]),t._v(" "),a("ol",[a("li",[t._v("Press the "),a("strong",[t._v("Control")]),t._v(" Key (otherwise you will get an error message).")]),t._v(" "),a("li",[t._v("Double-click onto the "),a("code",[t._v(".dmg")]),t._v(" file and follow the instructions.")])]),t._v(" "),a("h2",{attrs:{id:"linux"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[t._v("#")]),t._v(" Linux")]),t._v(" "),a("p",[t._v("The installer for Linux ("),a("code",[t._v("asterics-are-x.y.deb")]),t._v(") contains the following programs:")]),t._v(" "),a("ul",[a("li",[t._v("WebACS")]),t._v(" "),a("li",[t._v("ARE")])]),t._v(" "),a("p",[t._v("It is compatible with Ubuntu, Debian and ARM/Raspberry Pi.\nThe installer was tested on Debian 16.04 LTS and Raspberry Pi 3 with Raspbian Jessie.")]),t._v(" "),a("h3",{attrs:{id:"download-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-3"}},[t._v("#")]),t._v(" Download")]),t._v(" "),a("p",[t._v("Please go to the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("download page"),a("OutboundLink")],1),t._v(" and download the installer.")]),t._v(" "),a("h3",{attrs:{id:"installation-steps-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps-3"}},[t._v("#")]),t._v(" Installation Steps")]),t._v(" "),a("h4",{attrs:{id:"install-java"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-java"}},[t._v("#")]),t._v(" Install Java")]),t._v(" "),a("p",[t._v("You need a "),a("strong",[t._v("Java Runtime Standard Edition 8")]),t._v(".")]),t._v(" "),a("p",[t._v("Choose one of the installation methods below:")]),t._v(" "),a("h5",{attrs:{id:"zulu-java"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#zulu-java"}},[t._v("#")]),t._v(" Zulu Java")]),t._v(" "),a("ol",[a("li",[t._v("Download the "),a("a",{attrs:{href:"https://www.azul.com/downloads/zulu-community/?version=java-8-lts&os=linux&package=jdk",target:"_blank",rel:"noopener noreferrer"}},[t._v("Zulu installer"),a("OutboundLink")],1),t._v(" for your your platform.")]),t._v(" "),a("li",[t._v("Install it")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" dpkg "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-i")]),t._v(" $"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("download_dir"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("/"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("zulu_package"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(".deb\n")])])]),a("p",[t._v("You can also add an "),a("a",{attrs:{href:"https://docs.azul.com/zulu/zuludocs/ZuluUserGuide/PrepareZuluPlatform/AttachAPTRepositoryUbuntuOrDebianSys.htm?tocpath=Zulu%20Installation%20Guide%7CPrepare%20the%20Zulu%20Installation%20Platform%7CAttach%20Azul%20Package%20Repositories%7C_____2",target:"_blank",rel:"noopener noreferrer"}},[t._v("APT repository"),a("OutboundLink")],1),t._v(" for it.")]),t._v(" "),a("h5",{attrs:{id:"openjdk"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#openjdk"}},[t._v("#")]),t._v(" OpenJDK")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt-get")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" openjdk-8-jre\n")])])]),a("h5",{attrs:{id:"oracle-java"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#oracle-java"}},[t._v("#")]),t._v(" Oracle Java")]),t._v(" "),a("p",[t._v("Download "),a("a",{attrs:{href:"https://www.oracle.com/java/technologies/javase-jre8-downloads.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Oracle Java 8"),a("OutboundLink")],1),t._v(" and follow the instructions.")]),t._v(" "),a("h4",{attrs:{id:"install-asterics"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-asterics"}},[t._v("#")]),t._v(" Install AsTeRICS")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" libhidapi-libusb0 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" dpkg "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-i")]),t._v(" asterics-are-*.deb\n")])])]),a("p",[t._v("If you get an error message, that the dependencies had not been installed before,")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("dpkg: dependency problems prevent configuration of asterics-are:\n asterics-are depends on libhidapi-libusb0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" however:\n Package libhidapi-libusb0 is not installed.\n")])])]),a("p",[t._v("execute the following command to install the dependencies:")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt")]),t._v(" --fix-broken "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/150.988f7a89.js b/assets/js/150.0a3594c7.js similarity index 92% rename from assets/js/150.988f7a89.js rename to assets/js/150.0a3594c7.js index 64fd280c94..4c55e46c5e 100644 --- a/assets/js/150.988f7a89.js +++ b/assets/js/150.0a3594c7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{1089:function(e,t,r){"use strict";r.r(t);var i=r(2),a=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"image-box"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#image-box"}},[e._v("#")]),e._v(" Image Box")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-graphical-user-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-graphical-user-interface"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("The Image Box is a GUI component which displays images loaded from image files.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(638),alt:"Screenshot: ImgeBox plugin",title:"Screenshot: ImageBox plugin"}})]),e._v(" "),t("p",[e._v("ImageBox plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [string]:")]),e._v(" The path of the image file, which will be displayed.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("clear:")]),e._v(" Removes the image from the component.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("clicked:")]),e._v(" The event is triggered when the user clicks on the component.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("caption [string]:")]),e._v(" Caption of the component.")]),e._v(" "),t("li",[t("strong",[e._v("default [string]:")]),e._v(" The path of the image file, which is displayed after start.")]),e._v(" "),t("li",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" Defines background color.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=a.exports},638:function(e,t,r){e.exports=r.p+"assets/img/imagebox.29b0dbbb.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{1086:function(e,t,r){"use strict";r.r(t);var i=r(2),a=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"image-box"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#image-box"}},[e._v("#")]),e._v(" Image Box")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-graphical-user-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-graphical-user-interface"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("The Image Box is a GUI component which displays images loaded from image files.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(635),alt:"Screenshot: ImgeBox plugin",title:"Screenshot: ImageBox plugin"}})]),e._v(" "),t("p",[e._v("ImageBox plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [string]:")]),e._v(" The path of the image file, which will be displayed.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("clear:")]),e._v(" Removes the image from the component.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("clicked:")]),e._v(" The event is triggered when the user clicks on the component.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("caption [string]:")]),e._v(" Caption of the component.")]),e._v(" "),t("li",[t("strong",[e._v("default [string]:")]),e._v(" The path of the image file, which is displayed after start.")]),e._v(" "),t("li",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" Defines background color.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=a.exports},635:function(e,t,r){e.exports=r.p+"assets/img/imagebox.29b0dbbb.jpg"}}]); \ No newline at end of file diff --git a/assets/js/151.0175ee2f.js b/assets/js/151.be13a346.js similarity index 97% rename from assets/js/151.0175ee2f.js rename to assets/js/151.be13a346.js index 574bcc689f..eeca7cc39c 100644 --- a/assets/js/151.0175ee2f.js +++ b/assets/js/151.be13a346.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{1090:function(e,t,n){"use strict";n.r(t);var s=n(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard"}},[e._v("#")]),e._v(" Keyboard")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-input-device-emulation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-input-device-emulation"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The Keyboard component generates local keyboard input on the computer that the ARE is running on (per software emulation). The component supports key press/hold/release actions and sending key sequences and special keycodes. special or non-printable characters can be sent using curly braces and key identifier strings, e.g. {UP} {ENTER} {ALT} {DELETE} etc. - see description of the property keyCodeString. Multiple instances of the Keyboard component can be used to provide different key actions.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(639),alt:"Screenshot: Keyboard plugin",title:"Screenshot: Keyboard plugin"}})]),e._v(" "),t("p",[e._v("Keyboard plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("No special hardware or software required.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keyCodes [string]:")]),e._v(" An incoming string which consists of alphanumeric characters and special key codes. The keys are sequentially generated as local keystrokes as the string is received, and as the sendKeys and other input related events of the component are being triggered.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendKeys:")]),e._v(" An incoming event at this port generates all keycodes of the keycode string (sequentially).")]),e._v(" "),t("li",[t("strong",[e._v("pressKey:")]),e._v(" An incoming event at this port pressed (and releases) the key (first key + modifiers if there are multiple keys).")]),e._v(" "),t("li",[t("strong",[e._v("holdKey:")]),e._v(" An incoming event at this port holds the key (first key + modifiers if there are multiple keys). The key is pressed but not released. The holdKey listener can be used together with the releaseKey feature to create long key presses of single keys (e.g. of the cursor keys) to allow game control etc.")]),e._v(" "),t("li",[t("strong",[e._v("releaseKey:")]),e._v(" An incoming event at this port releases the key which was pressed using the hold event.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keyCodeString [string]:")]),e._v(" A string containing keys and keycodes. Please note that this string will be replaced by an incoming string at the keycodes input port. The keyCodeString can contain alphanumeric characters and special characters. Special characters are written in parentheses, for example {SHIFT}, {CTRL}, {ALT}, {BACKSPACE}, {ENTER} etc. Modifier keys like {SHIFT} or {ALT} are combined as they appear consecutively in the keystring, and are generated with the next printable character. For example, the keystrings “{SHIFT}” or “{CTRL}{ALT}{DEL}” are sent as single key values. For a description of the currently supported special key codes see the table below.")]),e._v(" "),t("li",[t("strong",[e._v("inputMethod [integer]:")]),e._v(" Declares whether to use sending window messages (Windows), system-wide SendInput API function (Windows) or JNativehook (cross-platform) as key injection method. (Please note that there are still problems with locales and special key translation…)")]),e._v(" "),t("li",[t("strong",[e._v("waitTime [integer]:")]),e._v(" Defines a number of milliseconds for a pause which shall occur when {WAIT} appears in the keycode string.")])]),e._v(" "),t("h2",{attrs:{id:"list-of-supported-special-key-code-identifiers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#list-of-supported-special-key-code-identifiers"}},[e._v("#")]),e._v(" List of supported special key code identifiers")]),e._v(" "),t("p",[e._v("The key codes must be surrounded with braces.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("{SHIFT}\n{CTRL}\n{ALT}, {LEFTALT}, {MENU}\n{ALTGR}, {RIGHTALT}\n{WINDOWS}\n{LWIN}\n{RWIN}\n{UP}, {UPARROW}\n{DOWN}, {DOWNARROW}\n{LEFT}, {LEFTARROW}\n{RIGHT}, {RIGHTARROW}\n{RETURN}\n{ENTER}\n{ESCAPE}\n{BACKSPACE}\n{TAB}\n{PRINT}, {PRINTSCREEN}\n{PAUSE}\n{INSERT}, {INS}\n{HOME}, {POS1}\n{END}\n{DEL}\n{DELETE}\n{PAGEUP}\n{PAGEDOWN}\n{F1}\n{F2}\n{F3}\n{F4}\n{F5}\n{F6}\n{F7}\n{F8}\n{F9}\n{F10}\n{F11}\n{F12}\n{WAIT}\n")])])])])}),[],!1,null,null,null);t.default=r.exports},639:function(e,t,n){e.exports=n.p+"assets/img/keyboard.7420e4ca.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{1090:function(e,t,n){"use strict";n.r(t);var s=n(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard"}},[e._v("#")]),e._v(" Keyboard")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-input-device-emulation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-input-device-emulation"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The Keyboard component generates local keyboard input on the computer that the ARE is running on (per software emulation). The component supports key press/hold/release actions and sending key sequences and special keycodes. special or non-printable characters can be sent using curly braces and key identifier strings, e.g. {UP} {ENTER} {ALT} {DELETE} etc. - see description of the property keyCodeString. Multiple instances of the Keyboard component can be used to provide different key actions.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(640),alt:"Screenshot: Keyboard plugin",title:"Screenshot: Keyboard plugin"}})]),e._v(" "),t("p",[e._v("Keyboard plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("No special hardware or software required.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keyCodes [string]:")]),e._v(" An incoming string which consists of alphanumeric characters and special key codes. The keys are sequentially generated as local keystrokes as the string is received, and as the sendKeys and other input related events of the component are being triggered.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendKeys:")]),e._v(" An incoming event at this port generates all keycodes of the keycode string (sequentially).")]),e._v(" "),t("li",[t("strong",[e._v("pressKey:")]),e._v(" An incoming event at this port pressed (and releases) the key (first key + modifiers if there are multiple keys).")]),e._v(" "),t("li",[t("strong",[e._v("holdKey:")]),e._v(" An incoming event at this port holds the key (first key + modifiers if there are multiple keys). The key is pressed but not released. The holdKey listener can be used together with the releaseKey feature to create long key presses of single keys (e.g. of the cursor keys) to allow game control etc.")]),e._v(" "),t("li",[t("strong",[e._v("releaseKey:")]),e._v(" An incoming event at this port releases the key which was pressed using the hold event.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keyCodeString [string]:")]),e._v(" A string containing keys and keycodes. Please note that this string will be replaced by an incoming string at the keycodes input port. The keyCodeString can contain alphanumeric characters and special characters. Special characters are written in parentheses, for example {SHIFT}, {CTRL}, {ALT}, {BACKSPACE}, {ENTER} etc. Modifier keys like {SHIFT} or {ALT} are combined as they appear consecutively in the keystring, and are generated with the next printable character. For example, the keystrings “{SHIFT}” or “{CTRL}{ALT}{DEL}” are sent as single key values. For a description of the currently supported special key codes see the table below.")]),e._v(" "),t("li",[t("strong",[e._v("inputMethod [integer]:")]),e._v(" Declares whether to use sending window messages (Windows), system-wide SendInput API function (Windows) or JNativehook (cross-platform) as key injection method. (Please note that there are still problems with locales and special key translation…)")]),e._v(" "),t("li",[t("strong",[e._v("waitTime [integer]:")]),e._v(" Defines a number of milliseconds for a pause which shall occur when {WAIT} appears in the keycode string.")])]),e._v(" "),t("h2",{attrs:{id:"list-of-supported-special-key-code-identifiers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#list-of-supported-special-key-code-identifiers"}},[e._v("#")]),e._v(" List of supported special key code identifiers")]),e._v(" "),t("p",[e._v("The key codes must be surrounded with braces.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("{SHIFT}\n{CTRL}\n{ALT}, {LEFTALT}, {MENU}\n{ALTGR}, {RIGHTALT}\n{WINDOWS}\n{LWIN}\n{RWIN}\n{UP}, {UPARROW}\n{DOWN}, {DOWNARROW}\n{LEFT}, {LEFTARROW}\n{RIGHT}, {RIGHTARROW}\n{RETURN}\n{ENTER}\n{ESCAPE}\n{BACKSPACE}\n{TAB}\n{PRINT}, {PRINTSCREEN}\n{PAUSE}\n{INSERT}, {INS}\n{HOME}, {POS1}\n{END}\n{DEL}\n{DELETE}\n{PAGEUP}\n{PAGEDOWN}\n{F1}\n{F2}\n{F3}\n{F4}\n{F5}\n{F6}\n{F7}\n{F8}\n{F9}\n{F10}\n{F11}\n{F12}\n{WAIT}\n")])])])])}),[],!1,null,null,null);t.default=r.exports},640:function(e,t,n){e.exports=n.p+"assets/img/keyboard.7420e4ca.jpg"}}]); \ No newline at end of file diff --git a/assets/js/152.d4b489c0.js b/assets/js/152.f7690c1f.js similarity index 98% rename from assets/js/152.d4b489c0.js rename to assets/js/152.f7690c1f.js index 52dafec65b..7896b203b3 100644 --- a/assets/js/152.d4b489c0.js +++ b/assets/js/152.f7690c1f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[152],{1087:function(e,t,r){"use strict";r.r(t);var i=r(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"knx"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#knx"}},[e._v("#")]),e._v(" KNX")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[e._v("#")]),e._v(" Component Type: actuator (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The KNX plugin enables the ARE to interface a KNX installation. This plugin utilizes the calimero java library ("),t("a",{attrs:{href:"http://calimero.sourceforge.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://calimero.sourceforge.net/"),t("OutboundLink")],1),e._v(") for the KNX implementation, it is ©opyrighted 2006-2008 by W. Kastner and released under the GNU General Public License (FSF v2 or later). The KNX plugin provides an interface to the KNX home automation bus via a KNXnet/IP router. KNX actuators with specific group addresses can be switched on or off, or a specific value can be sent to the KNX actuators. This allows control of lightning, heat and ventilation, blend control or other utilization of other home automation facilities via the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(635),alt:"Screenshot: KNX plugin",title:"Screenshot: KNX plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A KNX infrastructure")]),e._v(" "),t("li",[e._v("A little knowledge on KNX")])]),e._v(" "),t("h2",{attrs:{id:"functional-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-description"}},[e._v("#")]),e._v(" Functional Description")]),e._v(" "),t("p",[e._v("By starting the model, the KNX plugin establishes a connection to the KNX gateway specified by the plugin properties. Currently, this plugin supports only IP connection (due to the limitation of the underlaying calimero library, USB interfaces will be supported with Java8). The plugin has three different possibilities to interface KNX datapoints:")]),e._v(" "),t("ul",[t("li",[e._v("Transmitting: Input ports (slider): Intended for dimming actuators")]),e._v(" "),t("li",[e._v("Transmitting: Event Listeners: Used to send a defined value (with a given type) to a KNX group address.")]),e._v(" "),t("li",[e._v("Transmitting: Action string: The most flexible way to send something to KNX. The command structure is: "),t("em",[e._v("@KNX: group_address,datapoint_type,value")]),e._v(". It is possible to use either a space, a comma or a number sign as separation tokens. The datapoint type is described later.")]),e._v(" "),t("li",[e._v("Receiving: Event Triggers: An event trigger can be used to listen to a defined KNX group address. If there is ANYTHING happening on this dedicated group address, an event will be raised.")]),e._v(" "),t("li",[e._v("Receiving: Output ports: The received value of a KNX group address will be interpreted by the given data point type, parsed to a string and sent out to the output ports")])]),e._v(" "),t("h2",{attrs:{id:"knx-datapoint-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#knx-datapoint-types"}},[e._v("#")]),e._v(" KNX datapoint types")]),e._v(" "),t("p",[e._v("KNX itself doesn’t provide any possibilty to get information on how to interpret received data. This is the point where you need the datapoint types. There are a few main types and some sub types. For example: "),t("em",[e._v("1.001")]),e._v(" is the datapoint type for a simple switch actuator/sensor. The input values are varying on the different datapoint types. For the switch example, the valid values are "),t("em",[e._v("on")]),e._v(" and "),t("em",[e._v("off")]),e._v(". The full list of all datatypes is provided by the ARE. If you want to receive a full list, you have to place the plugin in your ACS model, connect to the ARE and upload the model (even without any functionality). Afterwards, the full list of all currently supported datapoint types is available. Every list entry contains following information:")]),e._v(" "),t("ul",[t("li",[e._v("Description")]),e._v(" "),t("li",[e._v("[Minimum,Maximum value]")]),e._v(" "),t("li",[e._v("(Datapoint ID)")])]),e._v(" "),t("p",[e._v("The example of the light switch:"),t("br"),e._v(" "),t("em",[e._v("Switch[off,on] (1.001)")]),e._v(" The literal name for this datapoint type is “Switch” and its ID is 1.001. Because this is a boolean value, off and on are the only valid values. For float values, these given values are representing the minimum and the maximum value.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actionString [string]:")]),e._v(' This port receives string commands for the KNX component. The commands have to be in the format “@KNX: group_address,datapoint_type,value”. The delimiters ‘,’, ‘#’ and ’ ’ are allowed. An example for a valid command is"@KNX:1/1/1,1.001,on". As a valid command is received by the input port, the value is sent to the KNX group address. The group addresses comply to the setup of the KNX network which can be configured with the ETS software.')]),e._v(" "),t("li",[t("strong",[e._v("slider[1-6] [double]:")]),e._v(" Input port for a double value which is converted to a given datapoint (Property: DPTSlider[1-6]) and sent to the given KNX group address (Property: groupAddressSlider[1-6]")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("data [1-6] [string]:")]),e._v(" These output ports are sending received data from the group addresses (Property: groupAddressOutput[1-6]). The data interpretation is controlled by the DPT (datapoint type, property: DPTOutput[1-6])")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("localIP [string]:")]),e._v(" The local IP address of the interface which can reach the KNXnetIP.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("KNXNetIP [string]:")]),e._v(" The destination IP address of the KNX gateway.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("NAT [boolean]:")]),e._v(" Enable NAT")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddress[1-6] [string]:")]),e._v(" (Event Listener) Specifies KNX group addresses for the [n] Event Listener e.g. “1/1/1”.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("dataValue[1-6] [string]:")]),e._v(" (Event Listener) Date value, which should be sent (triggered by the input event). The possible values are determined by the used DPT property (see the chapter on datapoint types)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("DPTEvent[1-6] [string/dropdown]:")]),e._v(" (Event Listener) Specifies the DPT (datapoint type) of the dataValue[1-6] which is sent to the KNX group address, triggered by the input event.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddressSlider[1-6] [string]:")]),e._v(" (Input port) Specifies KNX group addresses for the Slider[n].")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("DPTSlider[1-6] [string/dropdown]:")]),e._v(" (Input port) Determines the datapoint type corresponding to the sliders [1-6].")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddressTrigger[1-6] [string]:")]),e._v(" (Event Trigger) Specifies KNX group addresses for the Event Trigger [n]. The event is triggered if ANY action is happening on the given group address. If you need additional data processing, please use the output ports and process the received data values.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddressOutput[1-6] [string]:")]),e._v(" (Output port) Specifies the KNX group adresses, which are sent to the output ports. If there is anything happening on the given group adresses, the corresponding data is sent to the output ports.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("DPTOutput[1-6] [string/dropdown]:")]),e._v(" (Output port) Determines the datapoint type for the output port. The received data interpretation is defined by the DPTOutput property.")])])]),e._v(" "),t("h2",{attrs:{id:"event-listener"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener"}},[e._v("#")]),e._v(" Event Listener")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("send[1-6]:")]),e._v(" Each time an event is triggered, the corresponding KNX command which is specified in the plugin properties (groupAddress[1-6],dataValue[1-6],DPTEvent[1-6]), is issued.")]),e._v(" "),t("li",[t("strong",[e._v("read[1-6]:")]),e._v(" Trigger a read command on the output port. The settings for the group address and the DPT are the same as for the output ports (groupAddressOutput[1-6], DPTOutput[1-6]).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger"}},[e._v("#")]),e._v(" Event Trigger")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event_out_[1-6]:")]),e._v(" When there is any activity on the given KNX group address, set by the properties (groupAddressTrigger[1-6]) an event is raised by this plugin.")])])])}),[],!1,null,null,null);t.default=s.exports},635:function(e,t,r){e.exports=r.p+"assets/img/knx.98c3039f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[152],{1088:function(e,t,r){"use strict";r.r(t);var i=r(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"knx"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#knx"}},[e._v("#")]),e._v(" KNX")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[e._v("#")]),e._v(" Component Type: actuator (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The KNX plugin enables the ARE to interface a KNX installation. This plugin utilizes the calimero java library ("),t("a",{attrs:{href:"http://calimero.sourceforge.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://calimero.sourceforge.net/"),t("OutboundLink")],1),e._v(") for the KNX implementation, it is ©opyrighted 2006-2008 by W. Kastner and released under the GNU General Public License (FSF v2 or later). The KNX plugin provides an interface to the KNX home automation bus via a KNXnet/IP router. KNX actuators with specific group addresses can be switched on or off, or a specific value can be sent to the KNX actuators. This allows control of lightning, heat and ventilation, blend control or other utilization of other home automation facilities via the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(638),alt:"Screenshot: KNX plugin",title:"Screenshot: KNX plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A KNX infrastructure")]),e._v(" "),t("li",[e._v("A little knowledge on KNX")])]),e._v(" "),t("h2",{attrs:{id:"functional-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-description"}},[e._v("#")]),e._v(" Functional Description")]),e._v(" "),t("p",[e._v("By starting the model, the KNX plugin establishes a connection to the KNX gateway specified by the plugin properties. Currently, this plugin supports only IP connection (due to the limitation of the underlaying calimero library, USB interfaces will be supported with Java8). The plugin has three different possibilities to interface KNX datapoints:")]),e._v(" "),t("ul",[t("li",[e._v("Transmitting: Input ports (slider): Intended for dimming actuators")]),e._v(" "),t("li",[e._v("Transmitting: Event Listeners: Used to send a defined value (with a given type) to a KNX group address.")]),e._v(" "),t("li",[e._v("Transmitting: Action string: The most flexible way to send something to KNX. The command structure is: "),t("em",[e._v("@KNX: group_address,datapoint_type,value")]),e._v(". It is possible to use either a space, a comma or a number sign as separation tokens. The datapoint type is described later.")]),e._v(" "),t("li",[e._v("Receiving: Event Triggers: An event trigger can be used to listen to a defined KNX group address. If there is ANYTHING happening on this dedicated group address, an event will be raised.")]),e._v(" "),t("li",[e._v("Receiving: Output ports: The received value of a KNX group address will be interpreted by the given data point type, parsed to a string and sent out to the output ports")])]),e._v(" "),t("h2",{attrs:{id:"knx-datapoint-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#knx-datapoint-types"}},[e._v("#")]),e._v(" KNX datapoint types")]),e._v(" "),t("p",[e._v("KNX itself doesn’t provide any possibilty to get information on how to interpret received data. This is the point where you need the datapoint types. There are a few main types and some sub types. For example: "),t("em",[e._v("1.001")]),e._v(" is the datapoint type for a simple switch actuator/sensor. The input values are varying on the different datapoint types. For the switch example, the valid values are "),t("em",[e._v("on")]),e._v(" and "),t("em",[e._v("off")]),e._v(". The full list of all datatypes is provided by the ARE. If you want to receive a full list, you have to place the plugin in your ACS model, connect to the ARE and upload the model (even without any functionality). Afterwards, the full list of all currently supported datapoint types is available. Every list entry contains following information:")]),e._v(" "),t("ul",[t("li",[e._v("Description")]),e._v(" "),t("li",[e._v("[Minimum,Maximum value]")]),e._v(" "),t("li",[e._v("(Datapoint ID)")])]),e._v(" "),t("p",[e._v("The example of the light switch:"),t("br"),e._v(" "),t("em",[e._v("Switch[off,on] (1.001)")]),e._v(" The literal name for this datapoint type is “Switch” and its ID is 1.001. Because this is a boolean value, off and on are the only valid values. For float values, these given values are representing the minimum and the maximum value.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actionString [string]:")]),e._v(' This port receives string commands for the KNX component. The commands have to be in the format “@KNX: group_address,datapoint_type,value”. The delimiters ‘,’, ‘#’ and ’ ’ are allowed. An example for a valid command is"@KNX:1/1/1,1.001,on". As a valid command is received by the input port, the value is sent to the KNX group address. The group addresses comply to the setup of the KNX network which can be configured with the ETS software.')]),e._v(" "),t("li",[t("strong",[e._v("slider[1-6] [double]:")]),e._v(" Input port for a double value which is converted to a given datapoint (Property: DPTSlider[1-6]) and sent to the given KNX group address (Property: groupAddressSlider[1-6]")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("data [1-6] [string]:")]),e._v(" These output ports are sending received data from the group addresses (Property: groupAddressOutput[1-6]). The data interpretation is controlled by the DPT (datapoint type, property: DPTOutput[1-6])")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("localIP [string]:")]),e._v(" The local IP address of the interface which can reach the KNXnetIP.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("KNXNetIP [string]:")]),e._v(" The destination IP address of the KNX gateway.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("NAT [boolean]:")]),e._v(" Enable NAT")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddress[1-6] [string]:")]),e._v(" (Event Listener) Specifies KNX group addresses for the [n] Event Listener e.g. “1/1/1”.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("dataValue[1-6] [string]:")]),e._v(" (Event Listener) Date value, which should be sent (triggered by the input event). The possible values are determined by the used DPT property (see the chapter on datapoint types)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("DPTEvent[1-6] [string/dropdown]:")]),e._v(" (Event Listener) Specifies the DPT (datapoint type) of the dataValue[1-6] which is sent to the KNX group address, triggered by the input event.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddressSlider[1-6] [string]:")]),e._v(" (Input port) Specifies KNX group addresses for the Slider[n].")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("DPTSlider[1-6] [string/dropdown]:")]),e._v(" (Input port) Determines the datapoint type corresponding to the sliders [1-6].")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddressTrigger[1-6] [string]:")]),e._v(" (Event Trigger) Specifies KNX group addresses for the Event Trigger [n]. The event is triggered if ANY action is happening on the given group address. If you need additional data processing, please use the output ports and process the received data values.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("groupAddressOutput[1-6] [string]:")]),e._v(" (Output port) Specifies the KNX group adresses, which are sent to the output ports. If there is anything happening on the given group adresses, the corresponding data is sent to the output ports.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("DPTOutput[1-6] [string/dropdown]:")]),e._v(" (Output port) Determines the datapoint type for the output port. The received data interpretation is defined by the DPTOutput property.")])])]),e._v(" "),t("h2",{attrs:{id:"event-listener"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener"}},[e._v("#")]),e._v(" Event Listener")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("send[1-6]:")]),e._v(" Each time an event is triggered, the corresponding KNX command which is specified in the plugin properties (groupAddress[1-6],dataValue[1-6],DPTEvent[1-6]), is issued.")]),e._v(" "),t("li",[t("strong",[e._v("read[1-6]:")]),e._v(" Trigger a read command on the output port. The settings for the group address and the DPT are the same as for the output ports (groupAddressOutput[1-6], DPTOutput[1-6]).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger"}},[e._v("#")]),e._v(" Event Trigger")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event_out_[1-6]:")]),e._v(" When there is any activity on the given KNX group address, set by the properties (groupAddressTrigger[1-6]) an event is raised by this plugin.")])])])}),[],!1,null,null,null);t.default=s.exports},638:function(e,t,r){e.exports=r.p+"assets/img/knx.98c3039f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/153.414a698e.js b/assets/js/153.b2a56dd3.js similarity index 92% rename from assets/js/153.414a698e.js rename to assets/js/153.b2a56dd3.js index 48792a84ae..17ee07bfc3 100644 --- a/assets/js/153.414a698e.js +++ b/assets/js/153.b2a56dd3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[153],{1091:function(e,t,i){"use strict";i.r(t);var n=i(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"linewriter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linewriter"}},[e._v("#")]),e._v(" LineWriter")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This component writes lines from an input port to a text file.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(640),alt:"Screenshot: LineWriter plugin",title:"Screenshot: LineWriter plugin"}})]),e._v(" "),t("p",[e._v("ButtonGrid plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actLine (string):")]),e._v(" an incoming string is stored into the text file.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("fileName [string]:")]),e._v(" The full path and file name of the text file to be written. The path can be given as absolute path or relative to the ARE executable’s directory")]),e._v(" "),t("li",[t("strong",[e._v("addTimeToFileName [boolean]:")]),e._v(" If selected, a timestamp will be added to the filename, to avoid overwriting files")]),e._v(" "),t("li",[t("strong",[e._v("titleCaption [string]:")]),e._v(" if not empty, this string parameter will be used as first line in the file (e.g. to create table caption in a csv file)")]),e._v(" "),t("li",[t("strong",[e._v("timestamp [integer, combobox selection]:")]),e._v(" The type of timestamp which will be added befor each line (currently either “no timestamp” or “milliseconds” can be chosen).")]),e._v(" "),t("li",[t("strong",[e._v("lineEndMark [integer, combobox selection]:")]),e._v(" The type of line end marker which will be added to each line (currently either “systemDefault”, “newline” or “carriage-return + newline” can be chosen).")]),e._v(" "),t("li",[t("strong",[e._v("append [boolean]:")]),e._v(" if selected, the lines will be appended to an existing file.")])])])}),[],!1,null,null,null);t.default=r.exports},640:function(e,t,i){e.exports=i.p+"assets/img/linewriter.a62b3dc8.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[153],{1089:function(e,t,i){"use strict";i.r(t);var n=i(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"linewriter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linewriter"}},[e._v("#")]),e._v(" LineWriter")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This component writes lines from an input port to a text file.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(639),alt:"Screenshot: LineWriter plugin",title:"Screenshot: LineWriter plugin"}})]),e._v(" "),t("p",[e._v("ButtonGrid plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actLine (string):")]),e._v(" an incoming string is stored into the text file.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("fileName [string]:")]),e._v(" The full path and file name of the text file to be written. The path can be given as absolute path or relative to the ARE executable’s directory")]),e._v(" "),t("li",[t("strong",[e._v("addTimeToFileName [boolean]:")]),e._v(" If selected, a timestamp will be added to the filename, to avoid overwriting files")]),e._v(" "),t("li",[t("strong",[e._v("titleCaption [string]:")]),e._v(" if not empty, this string parameter will be used as first line in the file (e.g. to create table caption in a csv file)")]),e._v(" "),t("li",[t("strong",[e._v("timestamp [integer, combobox selection]:")]),e._v(" The type of timestamp which will be added befor each line (currently either “no timestamp” or “milliseconds” can be chosen).")]),e._v(" "),t("li",[t("strong",[e._v("lineEndMark [integer, combobox selection]:")]),e._v(" The type of line end marker which will be added to each line (currently either “systemDefault”, “newline” or “carriage-return + newline” can be chosen).")]),e._v(" "),t("li",[t("strong",[e._v("append [boolean]:")]),e._v(" if selected, the lines will be appended to an existing file.")])])])}),[],!1,null,null,null);t.default=r.exports},639:function(e,t,i){e.exports=i.p+"assets/img/linewriter.a62b3dc8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/154.f9548897.js b/assets/js/154.5be43710.js similarity index 98% rename from assets/js/154.f9548897.js rename to assets/js/154.5be43710.js index 7be0393048..278eb28109 100644 --- a/assets/js/154.f9548897.js +++ b/assets/js/154.5be43710.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{1093:function(e,t,i){"use strict";i.r(t);var a=i(2),s=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mediaplayer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mediaplayer"}},[e._v("#")]),e._v(" MediaPlayer")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This component allows to play media files supported by the local system. The supported file type depends on the installed media CODEC, but generally all media formats supported by the VLC player should work. Please note that the VLC player (32 bit version) should be installed in the default location: C:/Program Files/VideoLan or C:/Program Files (x86)/VideoLan")]),e._v(" "),t("p",[t("img",{attrs:{src:i(643),alt:"Screenshot: MediaPlayer plugin",title:"Screenshot: MediaPlayer plugin"}})]),e._v(" "),t("p",[e._v("MediaPlayer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" Input port for the mediafile name. The file must be present in the filesystem of the ARE. Sending to this port will change the media file.")]),e._v(" "),t("li",[t("strong",[e._v("position [double]:")]),e._v(" Position in the media file (0-100%) - Sending to this port will set the position in the media file.")]),e._v(" "),t("li",[t("strong",[e._v("rate [double]:")]),e._v(" The playback speed of the media file (0-500%) - Sending to this port will change the playback speed.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pos [double]:")]),e._v(" The current playback position in percent.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("play:")]),e._v(" Triggering this event will start (or resume) the mediafile playback.")]),e._v(" "),t("li",[t("strong",[e._v("pause:")]),e._v(" Triggering this event will pause the mediafile playback.")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" Triggering this event will stop the mediafile playback.")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" Triggering this event will reset the mediafile playback to position 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" Initial mediafile name. The file must be present in the filesystem the ARE. This is a dynamic property: a synchronized ARE can suggest available files which are located in the data/videos and data/music subfolders of the ARE.")]),e._v(" "),t("li",[t("strong",[e._v("autoplay [boolean]:")]),e._v(" if selected, the file will play automatically.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")]),e._v(" "),t("li",[t("strong",[e._v("pathToVLC [string]:")]),e._v(" path to the VLC installation (32-bit version needed).")])])])}),[],!1,null,null,null);t.default=s.exports},643:function(e,t,i){e.exports=i.p+"assets/img/mediaplayer.356cc94f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{1092:function(e,t,i){"use strict";i.r(t);var a=i(2),s=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mediaplayer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mediaplayer"}},[e._v("#")]),e._v(" MediaPlayer")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This component allows to play media files supported by the local system. The supported file type depends on the installed media CODEC, but generally all media formats supported by the VLC player should work. Please note that the VLC player (32 bit version) should be installed in the default location: C:/Program Files/VideoLan or C:/Program Files (x86)/VideoLan")]),e._v(" "),t("p",[t("img",{attrs:{src:i(643),alt:"Screenshot: MediaPlayer plugin",title:"Screenshot: MediaPlayer plugin"}})]),e._v(" "),t("p",[e._v("MediaPlayer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" Input port for the mediafile name. The file must be present in the filesystem of the ARE. Sending to this port will change the media file.")]),e._v(" "),t("li",[t("strong",[e._v("position [double]:")]),e._v(" Position in the media file (0-100%) - Sending to this port will set the position in the media file.")]),e._v(" "),t("li",[t("strong",[e._v("rate [double]:")]),e._v(" The playback speed of the media file (0-500%) - Sending to this port will change the playback speed.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pos [double]:")]),e._v(" The current playback position in percent.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("play:")]),e._v(" Triggering this event will start (or resume) the mediafile playback.")]),e._v(" "),t("li",[t("strong",[e._v("pause:")]),e._v(" Triggering this event will pause the mediafile playback.")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" Triggering this event will stop the mediafile playback.")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" Triggering this event will reset the mediafile playback to position 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" Initial mediafile name. The file must be present in the filesystem the ARE. This is a dynamic property: a synchronized ARE can suggest available files which are located in the data/videos and data/music subfolders of the ARE.")]),e._v(" "),t("li",[t("strong",[e._v("autoplay [boolean]:")]),e._v(" if selected, the file will play automatically.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")]),e._v(" "),t("li",[t("strong",[e._v("pathToVLC [string]:")]),e._v(" path to the VLC installation (32-bit version needed).")])])])}),[],!1,null,null,null);t.default=s.exports},643:function(e,t,i){e.exports=i.p+"assets/img/mediaplayer.356cc94f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/155.f3dd87b5.js b/assets/js/155.cf1f7c31.js similarity index 91% rename from assets/js/155.f3dd87b5.js rename to assets/js/155.cf1f7c31.js index cfc41568df..14577a1664 100644 --- a/assets/js/155.f3dd87b5.js +++ b/assets/js/155.cf1f7c31.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{1096:function(e,t,s){"use strict";s.r(t);var i=s(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("The ModelSwitcher component allows to switch from the running model to another model which will be deployed and started. This makes it possible to build menus for different use-cases or switch from one use-case to another.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(647),alt:"Screenshot: ModelSwitcher plugin",title:"Screenshot: ModelSwitcher plugin"}})]),e._v(" "),t("p",[e._v("ModelSwitcher plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("modelName [string]:")]),e._v(" The name of the model (including extension, for example “CameraMouse_sensitive.acs”. The switch is performed as soon as the model name is received. The model must exist in the ARE/models folder of the runtime environment.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("switchModel:")]),e._v(" An incoming event on this port will switch to the default model.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("model[string]:")]),e._v(" A fixed model name can be give here. This model must exist in the ARE/models folder of the runtime environment. The model switch is performed when the switchModel event is received.")])])])}),[],!1,null,null,null);t.default=r.exports},647:function(e,t,s){e.exports=s.p+"assets/img/modelswitcher.9f5158c5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{1093:function(e,t,s){"use strict";s.r(t);var i=s(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("The ModelSwitcher component allows to switch from the running model to another model which will be deployed and started. This makes it possible to build menus for different use-cases or switch from one use-case to another.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(644),alt:"Screenshot: ModelSwitcher plugin",title:"Screenshot: ModelSwitcher plugin"}})]),e._v(" "),t("p",[e._v("ModelSwitcher plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("modelName [string]:")]),e._v(" The name of the model (including extension, for example “CameraMouse_sensitive.acs”. The switch is performed as soon as the model name is received. The model must exist in the ARE/models folder of the runtime environment.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("switchModel:")]),e._v(" An incoming event on this port will switch to the default model.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("model[string]:")]),e._v(" A fixed model name can be give here. This model must exist in the ARE/models folder of the runtime environment. The model switch is performed when the switchModel event is received.")])])])}),[],!1,null,null,null);t.default=r.exports},644:function(e,t,s){e.exports=s.p+"assets/img/modelswitcher.9f5158c5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/156.190afa35.js b/assets/js/156.4b65b291.js similarity index 98% rename from assets/js/156.190afa35.js rename to assets/js/156.4b65b291.js index d64b5d3d3e..629098248a 100644 --- a/assets/js/156.190afa35.js +++ b/assets/js/156.4b65b291.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{1095:function(e,t,o){"use strict";o.r(t);var i=o(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mouse"}},[e._v("#")]),e._v(" Mouse")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The Mouse component allows mouse cursor positioning and clicking on the computer the ARE is running on (by software emulation). The mouse x-position, y-position, press/release actions of three mouse buttons and mouse-wheel movements can be controlled via desired input values and event triggers.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(646),alt:"Screenshot: Mouse plugin",title:"Screenshot: Mouse plugin"}})]),e._v(" "),t("p",[e._v("Mouse plugin")]),e._v(" "),t("p",[e._v("**Please Note:**The mouse emulation on "),t("strong",[e._v("Windows 7")]),e._v(" does not always work as expected due to User Account Control (UAC) settings. Especially when you want to use the Windows 7 On-Screen-Keyboard dragging the keyboard does not work. To troubleshoot "),t("a",{attrs:{href:"http://windows.microsoft.com/en-au/windows/turn-user-account-control-on-off#1TC=windows-7",target:"_blank",rel:"noopener noreferrer"}},[e._v("turn off the User Account Control (UAC)"),t("OutboundLink")],1),e._v(" - change the level to “Never notify”")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [double]:")]),e._v(" The desired X-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("mouseY [double]:")]),e._v(" The desired Y-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("action [string]:")]),e._v(" Input port for a command string. This command string allows to modify the action of the next left mouse click - it can be set to trigger other types of mouse clicks. A command string may be composed of several items that are delimited by ‘,’ or ’ '. Following command strings are accepted:\n"),t("ul",[t("li",[t("em",[e._v("“@MOUSE:nextclick,right”:")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,double”:")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,middle”:")]),e._v(" next left click event will create a middle button click")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,drag”:")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,release”:")]),e._v(" next left click event will release the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:action,enable”:")]),e._v(" enables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:action,disable”:")]),e._v(" disables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v('"@MOUSE:action,toggle:')]),e._v(" enables / disables all mouse actions.")])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outX [double]:")]),e._v(" the current absolute x-value of the mouse, updated every time the mouse position is updated.")]),e._v(" "),t("li",[t("strong",[e._v("outY [double]:")]),e._v(" the current absolute y-value of the mouse, updated every time the mouse position is updated.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftClick:")]),e._v(" An incoming event at this port creates a mouse button click. A left mouse button click will be generated, unless a valid “nextclick…” command has been received at the cmd input which changed the click type (see above).")]),e._v(" "),t("li",[t("strong",[e._v("middleClick:")]),e._v(" A click with the middle mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("rightClick:")]),e._v(" A click with the right mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("doubleClick:")]),e._v(" A double click with the left mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("dragPress:")]),e._v(" The left mouse button is pressed (but not released again).")]),e._v(" "),t("li",[t("strong",[e._v("dragRelease:")]),e._v(" The left mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" The mouse wheel is turned one position from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" The mouse wheel is turned one position to the user.")]),e._v(" "),t("li",[t("strong",[e._v("activate:")]),e._v(" enables all mouse actions.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate:")]),e._v(" disables all mouse actions.")]),e._v(" "),t("li",[t("strong",[e._v("toggle:")]),e._v(" enables / disables all mouse actions.")]),e._v(" "),t("li",[t("strong",[e._v("absolutePosition:")]),e._v(" after this event is triggered the incoming values for mouseX and mouseY are interpreted as absolute movement information")]),e._v(" "),t("li",[t("strong",[e._v("relativePosition:")]),e._v(" after this event is triggered the incoming values for mouseX and mouseY are interpreted as relative movement information")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRight")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDouble")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickMiddle")]),e._v("next left click event will create a middle button click")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDrag")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRelease")]),e._v(" next left click event will release the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("moveToLastStable:")]),e._v(" moves the cursor to last stable position (where no movement was made).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enableMouse [boolean]:")]),e._v(" The value of this property specifies if all mouse actions are bypassed (false) or enabled (true).")]),e._v(" "),t("li",[t("strong",[e._v("absolutePosition [boolean]:")]),e._v(" If this property value is set to false, incoming values at the mouseX and mouseY input ports are interpreted as relative movement information. The values are summed up (integrated) to calculate the absolute position. If the property value is set to true, the values of the input ports are treated as absolute x/y positions.")]),e._v(" "),t("li",[t("strong",[e._v("startCentered [boolean]:")]),e._v(" If true the mouse starts in the middle of the screen, if false starting the starting position is the current position.")]),e._v(" "),t("li",[t("strong",[e._v("xMin [integer]:")]),e._v(" The minimum value for the X-coordinate (the mouse will not move farther to the left).")]),e._v(" "),t("li",[t("strong",[e._v("xMax [integer]:")]),e._v(" The maximum value for the X-coordinate (the mouse will not move farther to the right). "),t("strong",[e._v("If the xMax property is set to 0, the horizontal screen resoltion will be assumed as maximum x-position for the mouse cursor.")])]),e._v(" "),t("li",[t("strong",[e._v("yMin [integer]:")]),e._v(" The minimum value for the Y-coordinate (the mouse will not move farther up).")]),e._v(" "),t("li",[t("strong",[e._v("yMax [integer]:")]),e._v(" The maximum value for the Y-coordinate (the mouse will not move farther down) "),t("strong",[e._v("If the yMax property is set to 0, the vertical screen resoltion will be assumed as maximum y-position for the mouse cursor.")])])])])}),[],!1,null,null,null);t.default=s.exports},646:function(e,t,o){e.exports=o.p+"assets/img/mouse.253fc282.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{1095:function(e,t,o){"use strict";o.r(t);var i=o(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mouse"}},[e._v("#")]),e._v(" Mouse")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The Mouse component allows mouse cursor positioning and clicking on the computer the ARE is running on (by software emulation). The mouse x-position, y-position, press/release actions of three mouse buttons and mouse-wheel movements can be controlled via desired input values and event triggers.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(647),alt:"Screenshot: Mouse plugin",title:"Screenshot: Mouse plugin"}})]),e._v(" "),t("p",[e._v("Mouse plugin")]),e._v(" "),t("p",[e._v("**Please Note:**The mouse emulation on "),t("strong",[e._v("Windows 7")]),e._v(" does not always work as expected due to User Account Control (UAC) settings. Especially when you want to use the Windows 7 On-Screen-Keyboard dragging the keyboard does not work. To troubleshoot "),t("a",{attrs:{href:"http://windows.microsoft.com/en-au/windows/turn-user-account-control-on-off#1TC=windows-7",target:"_blank",rel:"noopener noreferrer"}},[e._v("turn off the User Account Control (UAC)"),t("OutboundLink")],1),e._v(" - change the level to “Never notify”")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [double]:")]),e._v(" The desired X-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("mouseY [double]:")]),e._v(" The desired Y-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("action [string]:")]),e._v(" Input port for a command string. This command string allows to modify the action of the next left mouse click - it can be set to trigger other types of mouse clicks. A command string may be composed of several items that are delimited by ‘,’ or ’ '. Following command strings are accepted:\n"),t("ul",[t("li",[t("em",[e._v("“@MOUSE:nextclick,right”:")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,double”:")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,middle”:")]),e._v(" next left click event will create a middle button click")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,drag”:")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:nextclick,release”:")]),e._v(" next left click event will release the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:action,enable”:")]),e._v(" enables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE:action,disable”:")]),e._v(" disables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v('"@MOUSE:action,toggle:')]),e._v(" enables / disables all mouse actions.")])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outX [double]:")]),e._v(" the current absolute x-value of the mouse, updated every time the mouse position is updated.")]),e._v(" "),t("li",[t("strong",[e._v("outY [double]:")]),e._v(" the current absolute y-value of the mouse, updated every time the mouse position is updated.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftClick:")]),e._v(" An incoming event at this port creates a mouse button click. A left mouse button click will be generated, unless a valid “nextclick…” command has been received at the cmd input which changed the click type (see above).")]),e._v(" "),t("li",[t("strong",[e._v("middleClick:")]),e._v(" A click with the middle mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("rightClick:")]),e._v(" A click with the right mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("doubleClick:")]),e._v(" A double click with the left mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("dragPress:")]),e._v(" The left mouse button is pressed (but not released again).")]),e._v(" "),t("li",[t("strong",[e._v("dragRelease:")]),e._v(" The left mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" The mouse wheel is turned one position from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" The mouse wheel is turned one position to the user.")]),e._v(" "),t("li",[t("strong",[e._v("activate:")]),e._v(" enables all mouse actions.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate:")]),e._v(" disables all mouse actions.")]),e._v(" "),t("li",[t("strong",[e._v("toggle:")]),e._v(" enables / disables all mouse actions.")]),e._v(" "),t("li",[t("strong",[e._v("absolutePosition:")]),e._v(" after this event is triggered the incoming values for mouseX and mouseY are interpreted as absolute movement information")]),e._v(" "),t("li",[t("strong",[e._v("relativePosition:")]),e._v(" after this event is triggered the incoming values for mouseX and mouseY are interpreted as relative movement information")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRight")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDouble")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickMiddle")]),e._v("next left click event will create a middle button click")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDrag")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRelease")]),e._v(" next left click event will release the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("moveToLastStable:")]),e._v(" moves the cursor to last stable position (where no movement was made).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enableMouse [boolean]:")]),e._v(" The value of this property specifies if all mouse actions are bypassed (false) or enabled (true).")]),e._v(" "),t("li",[t("strong",[e._v("absolutePosition [boolean]:")]),e._v(" If this property value is set to false, incoming values at the mouseX and mouseY input ports are interpreted as relative movement information. The values are summed up (integrated) to calculate the absolute position. If the property value is set to true, the values of the input ports are treated as absolute x/y positions.")]),e._v(" "),t("li",[t("strong",[e._v("startCentered [boolean]:")]),e._v(" If true the mouse starts in the middle of the screen, if false starting the starting position is the current position.")]),e._v(" "),t("li",[t("strong",[e._v("xMin [integer]:")]),e._v(" The minimum value for the X-coordinate (the mouse will not move farther to the left).")]),e._v(" "),t("li",[t("strong",[e._v("xMax [integer]:")]),e._v(" The maximum value for the X-coordinate (the mouse will not move farther to the right). "),t("strong",[e._v("If the xMax property is set to 0, the horizontal screen resoltion will be assumed as maximum x-position for the mouse cursor.")])]),e._v(" "),t("li",[t("strong",[e._v("yMin [integer]:")]),e._v(" The minimum value for the Y-coordinate (the mouse will not move farther up).")]),e._v(" "),t("li",[t("strong",[e._v("yMax [integer]:")]),e._v(" The maximum value for the Y-coordinate (the mouse will not move farther down) "),t("strong",[e._v("If the yMax property is set to 0, the vertical screen resoltion will be assumed as maximum y-position for the mouse cursor.")])])])])}),[],!1,null,null,null);t.default=s.exports},647:function(e,t,o){e.exports=o.p+"assets/img/mouse.253fc282.jpg"}}]); \ No newline at end of file diff --git a/assets/js/157.43aa5f8e.js b/assets/js/157.0a2af865.js similarity index 91% rename from assets/js/157.43aa5f8e.js rename to assets/js/157.0a2af865.js index 10008fd7be..9c167a035a 100644 --- a/assets/js/157.43aa5f8e.js +++ b/assets/js/157.0a2af865.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{1099:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),t._v(" "),e("p",[t._v("The MousecursorIcon plugin can be used to modifiy the current default system mouse cursor icon. A number of icon file names can be given as properties and activated by corresponding event listener ports. Currently, only the default system cursor can be modified. The cursor is restored to the default arrow when the model is stopped.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(650),alt:"Screenshot: MousecursorIcon plugin",title:"Screenshot: MousecursorIcon plugin"}})]),t._v(" "),e("p",[t._v("MousecursorIcon plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("iconName [strig]:")]),t._v(" This input port accepts a filename, the plugin tries to load a cursor file with this name from the local plugin working directory.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setIcon1 - setIcon9:")]),t._v(" an incoming events sets the given cursor as new system cursor.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("iconName1 - iconName9 [string]:")]),t._v(" 9 slots for cursor file names.")])])])}),[],!1,null,null,null);e.default=o.exports},650:function(t,e,r){t.exports=r.p+"assets/img/mousecursoricon.8633b482.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{1097:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),t._v(" "),e("p",[t._v("The MousecursorIcon plugin can be used to modifiy the current default system mouse cursor icon. A number of icon file names can be given as properties and activated by corresponding event listener ports. Currently, only the default system cursor can be modified. The cursor is restored to the default arrow when the model is stopped.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(649),alt:"Screenshot: MousecursorIcon plugin",title:"Screenshot: MousecursorIcon plugin"}})]),t._v(" "),e("p",[t._v("MousecursorIcon plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("iconName [strig]:")]),t._v(" This input port accepts a filename, the plugin tries to load a cursor file with this name from the local plugin working directory.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setIcon1 - setIcon9:")]),t._v(" an incoming events sets the given cursor as new system cursor.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("iconName1 - iconName9 [string]:")]),t._v(" 9 slots for cursor file names.")])])])}),[],!1,null,null,null);e.default=o.exports},649:function(t,e,r){t.exports=r.p+"assets/img/mousecursoricon.8633b482.jpg"}}]); \ No newline at end of file diff --git a/assets/js/158.cecdc754.js b/assets/js/158.54077b19.js similarity index 98% rename from assets/js/158.cecdc754.js rename to assets/js/158.54077b19.js index 78594dac99..37479b8e0a 100644 --- a/assets/js/158.cecdc754.js +++ b/assets/js/158.54077b19.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[158],{1097:function(t,e,r){"use strict";r.r(e);var o=r(2),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"net-connection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#net-connection"}},[t._v("#")]),t._v(" Net Connection")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Communication)")]),t._v(" "),e("p",[t._v("This component provides interface to pass the data through the network. It allows to pass data to the another NetConnection component or to the application which uses the NetConnection Native ASAPI library.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(648),alt:"Screenshot: NetConnection plugin",title:"Screenshot: NetConnection plugin"}})]),t._v(" "),e("p",[t._v("NetConnection plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("integerInputPort1…integerInputPort5 [integer]:")]),t._v(" The integer values which are passed to these ports are sent to the remote receiver.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("doubleInputPort1…doubleInputPort5 [double]:")]),t._v(" The double values which are passed to these ports are sent to the remote receiver.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("stringInputPort1…stringInputPort5 [string]:")]),t._v(" The text values which are passed to these ports are sent to the remote receiver.")])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("integerOutputPort1…integerOutputPort5 [integer]:")]),t._v(" The output ports for the integer values received from the remote sender.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("doubleOutputPort1…doubleOutputPort5 [double]:")]),t._v(" The output ports for the double values received from the remote sender.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("stringOutputPort1…stringOutputPort5 [string]:")]),t._v(" The output ports for the text values received from the remote sender.")])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputEvent1…inputEvent10:")]),t._v(" The events which are sent to the remote receiver.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputEvent1…outputEvent10:")]),t._v(" The events received from the remote sender.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("connectionType [integer]:")]),t._v(" Describes connection mode: client or server.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("IP [string]:")]),t._v(" The IP address of the remote server.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("port [integer]:")]),t._v(" Port used in IP/TCP connection.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("multisession [boolean]:")]),t._v(" If the plugin is set to work as the server and this property is set, the plugin can connect to more than one client.")])])])])}),[],!1,null,null,null);e.default=n.exports},648:function(t,e,r){t.exports=r.p+"assets/img/netconnection.4b305846.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[158],{1096:function(t,e,r){"use strict";r.r(e);var o=r(2),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"net-connection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#net-connection"}},[t._v("#")]),t._v(" Net Connection")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Communication)")]),t._v(" "),e("p",[t._v("This component provides interface to pass the data through the network. It allows to pass data to the another NetConnection component or to the application which uses the NetConnection Native ASAPI library.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(648),alt:"Screenshot: NetConnection plugin",title:"Screenshot: NetConnection plugin"}})]),t._v(" "),e("p",[t._v("NetConnection plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("integerInputPort1…integerInputPort5 [integer]:")]),t._v(" The integer values which are passed to these ports are sent to the remote receiver.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("doubleInputPort1…doubleInputPort5 [double]:")]),t._v(" The double values which are passed to these ports are sent to the remote receiver.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("stringInputPort1…stringInputPort5 [string]:")]),t._v(" The text values which are passed to these ports are sent to the remote receiver.")])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("integerOutputPort1…integerOutputPort5 [integer]:")]),t._v(" The output ports for the integer values received from the remote sender.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("doubleOutputPort1…doubleOutputPort5 [double]:")]),t._v(" The output ports for the double values received from the remote sender.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("stringOutputPort1…stringOutputPort5 [string]:")]),t._v(" The output ports for the text values received from the remote sender.")])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputEvent1…inputEvent10:")]),t._v(" The events which are sent to the remote receiver.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputEvent1…outputEvent10:")]),t._v(" The events received from the remote sender.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("connectionType [integer]:")]),t._v(" Describes connection mode: client or server.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("IP [string]:")]),t._v(" The IP address of the remote server.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("port [integer]:")]),t._v(" Port used in IP/TCP connection.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("multisession [boolean]:")]),t._v(" If the plugin is set to work as the server and this property is set, the plugin can connect to more than one client.")])])])])}),[],!1,null,null,null);e.default=n.exports},648:function(t,e,r){t.exports=r.p+"assets/img/netconnection.4b305846.jpg"}}]); \ No newline at end of file diff --git a/assets/js/159.9aecb2b6.js b/assets/js/159.e6ef3b94.js similarity index 96% rename from assets/js/159.9aecb2b6.js rename to assets/js/159.e6ef3b94.js index 4799f5f3d1..e5da350368 100644 --- a/assets/js/159.9aecb2b6.js +++ b/assets/js/159.e6ef3b94.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[159],{1098:function(e,t,s){"use strict";s.r(t);var r=s(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"osc-out-client"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#osc-out-client"}},[e._v("#")]),e._v(" Osc Out Client")]),e._v(" "),t("p",[e._v("Component Type: actuator (Subcategory: Communication)")]),e._v(" "),t("p",[e._v("The OscOutClient plugin enables the ARE to broadcast messages using the OpenSoundControl (OSC) protocol. This plugin utilizes the NetUtil java library (http://www.sciss.de/netutil/) for the OSC implementation, it is ©opyrighted 2004-2011 by Hanns Holger Rutz and released under the GNU Lesser General Public License.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(649),alt:"Screenshot: OscServer plugin",title:"Screenshot: OscServer plugin"}})]),e._v(" "),t("p",[e._v("OscOutClient plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Nothing, works sand-alone within ARE")]),e._v(" "),t("li",[e._v("Check your firewall configuration and network settings to ensure that OSC messages are not blocked.")])]),e._v(" "),t("h2",{attrs:{id:"functional-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-description"}},[e._v("#")]),e._v(" Functional Description")]),e._v(" "),t("p",[e._v("The OscOutClient collects data form the inputs CH1-4 and assamble it to one OSC message with 4 arguments. The address for the OSC channel is set by the property AddressCh1. Furthermore the plugin has a StringIN input port. If the plugin receives a string it broadcast one OSC message with one string argument. The address for the string OSC channel is set by the property AddressStringCh.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CH[1-4] [double]:")]),e._v(" Input port for the data, eg. a oszilloscope or any other double value.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Port [integer]:")]),e._v(" This value specifies the OscOutClient port.")]),e._v(" "),t("li",[t("strong",[e._v("PeerAddress [string]:")]),e._v(" Specifies the IP where the OSC server is listening.")]),e._v(" "),t("li",[t("strong",[e._v("AddressCH1 [string]:")]),e._v(" This value specifies the OSC data output address e.g. “/path/to/receiver/accxyz”.")]),e._v(" "),t("li",[t("strong",[e._v("AddressStringCh [string]:")]),e._v(" This value specifies the OSC string output address.")])]),e._v(" "),t("h2",{attrs:{id:"referred-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#referred-plugins"}},[e._v("#")]),e._v(" Referred Plugins")]),e._v(" "),t("ul",[t("li",[e._v("OscServer")]),e._v(" "),t("li",[e._v("OpenVibe")]),e._v(" "),t("li",[e._v("OscGestureFollower")])])])}),[],!1,null,null,null);t.default=i.exports},649:function(e,t,s){e.exports=s.p+"assets/img/oscoutclient.dae373d7.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[159],{1098:function(e,t,s){"use strict";s.r(t);var r=s(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"osc-out-client"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#osc-out-client"}},[e._v("#")]),e._v(" Osc Out Client")]),e._v(" "),t("p",[e._v("Component Type: actuator (Subcategory: Communication)")]),e._v(" "),t("p",[e._v("The OscOutClient plugin enables the ARE to broadcast messages using the OpenSoundControl (OSC) protocol. This plugin utilizes the NetUtil java library (http://www.sciss.de/netutil/) for the OSC implementation, it is ©opyrighted 2004-2011 by Hanns Holger Rutz and released under the GNU Lesser General Public License.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(650),alt:"Screenshot: OscServer plugin",title:"Screenshot: OscServer plugin"}})]),e._v(" "),t("p",[e._v("OscOutClient plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Nothing, works sand-alone within ARE")]),e._v(" "),t("li",[e._v("Check your firewall configuration and network settings to ensure that OSC messages are not blocked.")])]),e._v(" "),t("h2",{attrs:{id:"functional-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-description"}},[e._v("#")]),e._v(" Functional Description")]),e._v(" "),t("p",[e._v("The OscOutClient collects data form the inputs CH1-4 and assamble it to one OSC message with 4 arguments. The address for the OSC channel is set by the property AddressCh1. Furthermore the plugin has a StringIN input port. If the plugin receives a string it broadcast one OSC message with one string argument. The address for the string OSC channel is set by the property AddressStringCh.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CH[1-4] [double]:")]),e._v(" Input port for the data, eg. a oszilloscope or any other double value.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Port [integer]:")]),e._v(" This value specifies the OscOutClient port.")]),e._v(" "),t("li",[t("strong",[e._v("PeerAddress [string]:")]),e._v(" Specifies the IP where the OSC server is listening.")]),e._v(" "),t("li",[t("strong",[e._v("AddressCH1 [string]:")]),e._v(" This value specifies the OSC data output address e.g. “/path/to/receiver/accxyz”.")]),e._v(" "),t("li",[t("strong",[e._v("AddressStringCh [string]:")]),e._v(" This value specifies the OSC string output address.")])]),e._v(" "),t("h2",{attrs:{id:"referred-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#referred-plugins"}},[e._v("#")]),e._v(" Referred Plugins")]),e._v(" "),t("ul",[t("li",[e._v("OscServer")]),e._v(" "),t("li",[e._v("OpenVibe")]),e._v(" "),t("li",[e._v("OscGestureFollower")])])])}),[],!1,null,null,null);t.default=i.exports},650:function(e,t,s){e.exports=s.p+"assets/img/oscoutclient.dae373d7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/16.66f38e63.js b/assets/js/16.df2bbddd.js similarity index 95% rename from assets/js/16.66f38e63.js rename to assets/js/16.df2bbddd.js index ca212023ac..087d0afd85 100644 --- a/assets/js/16.66f38e63.js +++ b/assets/js/16.df2bbddd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{1051:function(e,t,i){"use strict";i.r(t);var a=i(2),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"navigation-and-basic-functionality"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#navigation-and-basic-functionality"}},[e._v("#")]),e._v(" Navigation and basic functionality")]),e._v(" "),t("p",[e._v("This chapter is about general appearance, navigation and basic functionality of the different views in AsTeRICS Grid:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#welcome-view"}},[e._v("Welcome view")]),e._v(": intial view shown at first usage")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#main---view"}},[e._v("Main view")]),e._v(": starting view showing the recently used grid and navigation")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#edit-view---editing-on"}},[e._v("Edit view")]),e._v(": view that allows modification of a grid")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("Manage grids view")]),e._v(": show all grids, create new ones, create a backup")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-dictionaries---view"}},[e._v("Manage dictionaries view")]),e._v(": show, edit and create new dictionaries")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#change-user---view"}},[e._v("Change user view")]),e._v(": switch users or login an existing one")],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"welcome-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#welcome-view"}},[e._v("#")]),e._v(" Welcome view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=5ffLB4a9APc&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=2&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("First Start"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("AsTeRICS Grid initially starts with a welcome view giving the choice between:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Use AsTeRICS Grid without registration:")]),e._v(" choose this option in order to create a local default user and directly start using AsTeRICS Grid.")]),e._v(" "),t("li",[t("strong",[e._v("Register now:")]),e._v(" choose this option in order to sign up for an online user, which makes it possible to synchronize the grids across devices.")])]),e._v(" "),t("p",[e._v("See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#User"}},[e._v("Terms")]),e._v(" for more information about offline/online users.")],1),e._v(" "),t("h2",{attrs:{id:"main-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#main-view"}},[e._v("#")]),e._v(" “Main” - view")]),e._v(" "),t("p",[t("strong",[e._v("Videos on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=OU4sI2UcNUo&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=3&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Demo configuration"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=CK8Lv2bVr-g&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=4&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fullscreen and lock mode"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("Once taken a decision in the welcome view AsTeRICS Grid subsequently starts in the “main view” which looks like Figure 1 (desktop view on the left, mobile view on the right):")]),e._v(" "),t("p",[t("img",{attrs:{src:i(505),alt:"main view"}}),e._v(" "),t("em",[e._v("Fig. 1: “Main” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The elements have this functionality:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the left navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Main")]),e._v(": navigate to the main view (currently shown)")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("Manage grids")])],1),e._v(": show all grids of the current user, add new ones or backup them to a file, manage the global grid")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-dictionaries---view"}},[e._v("Manage Dictionaries")])],1),e._v(": show all saved dictionaries, edit them or add new empty ones or import existing dictionaries")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#change-user---view"}},[e._v("Change User")])],1),e._v(": switch between saved users or log in an existing online user")]),e._v(" "),t("li",[t("strong",[e._v("Add online user")]),e._v(": register a new online user (synchronized across devices), see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Users")])],1),e._v(" "),t("li",[t("strong",[e._v("Add offline users")]),e._v(": add a new offline user (only for this device)")]),e._v(" "),t("li",[t("strong",[e._v("Settings")]),e._v(": select between general settings like application language and user settings like grid content language, voice or colors")]),e._v(" "),t("li",[t("strong",[e._v("About AsTeRICS Grid")]),e._v(": Show general information, links, contact address")]),e._v(" "),t("li",[t("strong",[e._v("Help")]),e._v(": find the AsTeRICS Grid user manuel, the ARASAAC tutorial or video tutorials")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html##edit-view---editing-on"}},[e._v("Editing on")])],1),e._v(": edit the layout of the grid, add new elements, actions for grid elements")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("Input options")])],1),e._v(": Options about how to select grid elements (e.g. click, hover, scanning)")]),e._v(" "),t("li",[t("strong",[e._v("Fullscreen")]),e._v(": hide the sidebar and the bar on the top, only showing the current grid")]),e._v(" "),t("li",[t("strong",[e._v("Lock")]),e._v(": lock the screen in order to prevent unintended input or changes beside using and navigating the grid")]),e._v(" "),t("li",[t("strong",[e._v("Grid")]),e._v(": demo grid consisting of some grid elements which are navigating to other grids if selected (possible for those which show the grey symbol in the upper right corner)")])]),e._v(" "),t("h2",{attrs:{id:"edit-view-editing-on"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#edit-view-editing-on"}},[e._v("#")]),e._v(" Edit view - “Editing on”")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=KWwWgCgidXM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=13&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Add and edit elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("Clicking on Button “Editing on” (Fig. 1, number 11) opens the edit view where a grid can be adapted, see Figure 2:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(506),alt:"edit view"}}),e._v(" "),t("em",[e._v("Fig.2: “Editing on” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the edit view:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Open or close the navigation sidebar")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Editing off")]),e._v(": navigate back to main view")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Undo")]),e._v(": reverts the last action")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Redo")]),e._v(": redoes the last action after reverting it")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("More")]),e._v(": opens a menu with additional actions, e.g adding new elements")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Right click on a grid element")]),e._v(": opens a menu for editing / deleting / etc. the element (open it with long tap on a mobile device/touchscreen)")]),e._v(" "),t("p",[t("strong",[e._v("Reposition grid element / Edit area")]),e._v(": Grid elements can be repositioned by dragging them (drag & drop). On the right bottom corner it’s possible to resize a grid element.")])])]),e._v(" "),t("p",[e._v("See page "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[e._v("Edit grid appearance and layout")]),e._v(" for more details about editing a grid.")],1),e._v(" "),t("h2",{attrs:{id:"manage-grids-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manage-grids-view"}},[e._v("#")]),e._v(" “Manage grids” - view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=HQTgvv1Dnn0&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=15&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manage grids"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The manage grids view provides an overview about the current grids of a user, see Figure 3:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(507),alt:"manage grids view"}}),e._v(" "),t("em",[e._v("Fig.3: “Manage grids” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the manage grids view:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Name of grid")]),e._v(": type name of the grid and confirm by clicking on the tick")]),e._v(" "),t("li",[t("strong",[e._v("New grid")]),e._v(": add a new, empty grid")]),e._v(" "),t("li",[t("strong",[e._v("more")]),e._v(": shows menu with additional actions, e.g. backup the grids to file or restore backups from file")]),e._v(" "),t("li",[t("strong",[e._v("Show")]),e._v(": open this grid in main view")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": open this grid in edit view")]),e._v(" "),t("li",[t("strong",[e._v("Clone")]),e._v(": duplicate this grid, creating a copy of it with a different name")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this grid")]),e._v(" "),t("li",[t("strong",[e._v("Export")]),e._v(": saves and downloads this specific grid to a "),t("code",[e._v(".grd")]),e._v(" file creating a backup of it (saves only this single grid, see “More” menu (Number 4) to backup all grids)")]),e._v(" "),t("li",[t("strong",[e._v("Save as PDF")]),e._v(": saves and downloades the grid as PDF")]),e._v(" "),t("li",[t("strong",[e._v("Grids to show")]),e._v(": select which grids shall be shown in the grid list")]),e._v(" "),t("li",[t("strong",[e._v("Sort grids by")]),e._v(": select how the grids in the grid list shall be sorted")])]),e._v(" "),t("h3",{attrs:{id:"more-button-additional-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#more-button-additional-options"}},[e._v("#")]),e._v(" “more” button - Additional options")]),e._v(" "),t("p",[e._v("Clicking on Button “more” (Fig. 3, number 4) opens menu with additional options:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(508),alt:"manage grids more menu"}})]),e._v(" "),t("p",[t("em",[e._v("Fig.3.1: “Manage grids” - view - “more” button")])]),e._v(" "),t("p",[e._v("These are the possible options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New Grid")]),e._v(": creates a new and empty grid, same as Fig. 3, number 3")]),e._v(" "),t("li",[t("strong",[e._v("Save backup to file")]),e._v(": creates and downloads a "),t("code",[e._v(".grd")]),e._v(" file containing a backup of all current grids, dictionaries and input configuration. In this case, a file called "),t("code",[e._v("asterics-grid-backup.grd")]),e._v(" is downloaded that can be renamed to more easily identify the contents of the copy")]),e._v(" "),t("li",[t("strong",[e._v("Save custom data to file")]),e._v(": creates and downloads a backup copy as well, but data can be customized with the following options:\n"),t("ol",[t("li",[e._v("Select grid: export a specific (group of) grid(s) or all available grids")]),e._v(" "),t("li",[e._v("Export languages: select wheter to export all the languages in which the communicator is translated or only one of them (current content language)")]),e._v(" "),t("li",[e._v("Export dictionaries: can be activated / deactivated")]),e._v(" "),t("li",[e._v("Export user settings and input configuration: can be activated / deactivated (preserves specific adjustments like color settings, content language or input settings (scanning or direct slection))")]),e._v(" "),t("li",[e._v("Export global grid: can be activated / deactivated")])])]),e._v(" "),t("li",[t("strong",[e._v("Save grids to PDF")]),e._v(": creates and downloads a "),t("code",[e._v(".pdf")]),e._v(" file of one or all grids, which can be used for later printing")]),e._v(" "),t("li",[t("strong",[e._v("Restore backup from file")]),e._v(": deletes the existing configuration and replaces it with data from a "),t("code",[e._v(".grd")]),e._v(" file")]),e._v(" "),t("li",[t("strong",[e._v("Import custom data from file")]),e._v(": imports data from a "),t("code",[e._v(".grd")]),e._v(" file as well, but data can be customized. You can choose if you want to import dictionaries, of you want to import user settings and input configuration and if oyu want to delet existing data before importing.")]),e._v(" "),t("li",[t("strong",[e._v("Reset to default configuration")]),e._v(": deletes all current grids and replaces them with the default demo configuration")])]),e._v(" "),t("p",[t("strong",[e._v("Info about Open Board Format (OBF)")]),e._v(": OBF is an open format for exchanging grids across different AAC tools and is specified on the "),t("a",{attrs:{href:"https://www.openboardformat.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("official website"),t("OutboundLink")],1),e._v(". AsTeRICS Grid supports importing OBF files ("),t("code",[e._v(".obf")]),e._v(" and "),t("code",[e._v(".obz")]),e._v(") using the options "),t("em",[e._v("Restore backup from file")]),e._v(" or "),t("em",[e._v("Import custom data from file")]),e._v(".")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Tpez_-4ILRA&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=26&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Complex grids and OBF"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("h3",{attrs:{id:"global-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#global-grid"}},[e._v("#")]),e._v(" Global grid")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=bbmMODbqbhk&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=25&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Global Grid"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("A global grid is a grid that is visible on every grid page. It may contain general elements that make sense within every grid like e.g. a “Home” grid element that navigates to the start page. A global grid could also contain some kind of core vocabulary that should be visible any time. The global grid of the main page of figure 1 contains the following elements:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(509),alt:"global grid"}})]),e._v(" "),t("p",[t("em",[e._v("Fig.3.2: Global Grid")])]),e._v(" "),t("p",[e._v("All the elements shown here are elements contained within the global grid. They are visible on every grid page.\nWhile editing the global grid it’s possible to define its height by opening "),t("em",[e._v("More -> Change grid dimensions")]),e._v(" and setting the value for "),t("em",[e._v("height of first global grid row")]),e._v(".")]),e._v(" "),t("p",[e._v("The global grid can be activated/deactivated and edited in the “Manage Grids” view at the bottom or by "),t("em",[e._v("More -> Edit global grid")]),e._v(" while editing any other grid:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(510),alt:"de/activate global grid"}})]),e._v(" "),t("p",[t("em",[e._v("Fig.3.3: “Manage grids” - view - Global Grid")])]),e._v(" "),t("h3",{attrs:{id:"home-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#home-grid"}},[e._v("#")]),e._v(" Home grid")]),e._v(" "),t("p",[e._v("At the bottom of “Manage grids” it’s possible to define a "),t("code",[e._v("Home grid")]),e._v(". This grid is automatically opened at startup of AsTeRICS Grid. If no home grid is defined, the last opened grid is opened.")]),e._v(" "),t("p",[t("code",[e._v("Navigate to home grid after selecting an element")]),e._v(" can be selected in order to automatically navigate to home grid after any element (which doesn’t navigate to an other grid) is selected. This can speed up the construction of sentences in more complex communicator interfaces.")]),e._v(" "),t("p",[e._v("It’s possible to define an action that navigates to the home grid, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#navigate-to-other-grid"}},[e._v("action “Navigate to other grid”")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"manage-dictionaries-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manage-dictionaries-view"}},[e._v("#")]),e._v(" “Manage Dictionaries” - view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=DS9om8MDEDY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=19&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manage dictionaries"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("In the manage dictionaries view currently saved dictionaries that are used for filling prediction elements (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("Terms")]),e._v(") can be shown and adapted (Figure 4):")],1),e._v(" "),t("p",[t("img",{attrs:{src:i(511),alt:"manage dictionaries view"}}),e._v(" "),t("em",[e._v("Fig. 4: “Manage dictionaries” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the manage dictionaries view:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Import dictionary")]),e._v(": imports a dictionary from online dictionaries or from a "),t("code",[e._v(".json")]),e._v(" file")]),e._v(" "),t("li",[t("strong",[e._v("New empty dictionary")]),e._v(": add a new, empty dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": show, edit and add new words to the dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Clone")]),e._v(": create a copy of the dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": removes the dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Save")]),e._v(": saves the dictionary as "),t("code",[e._v(".json")]),e._v(" file")]),e._v(" "),t("li",[t("strong",[e._v("Edit dictionary name")]),e._v(": change the name of a dictionary")])]),e._v(" "),t("p",[e._v("For more information about using dictionaries see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/07_dictionaries.html"}},[e._v("Dictionaries")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"change-user-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-user-view"}},[e._v("#")]),e._v(" “Change User” - view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=CoRUQJJnYaY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=16&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Offline and online users"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("In the “Change User” - view it’s possible to switch between users or login an existing one (Figure 5):")]),e._v(" "),t("p",[t("img",{attrs:{src:i(512),alt:"change user view"}}),e._v(" "),t("em",[e._v("Fig. 5: “Change user” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the change users view:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Active offline user")]),e._v(": the currently active user is recognizable by a black user symbol and the word “active” next to the username. The active user is the user whose grids and configuration are currently used and shown in all other views.")]),e._v(" "),t("li",[t("strong",[e._v("Inactive online user")]),e._v(": The little cloud symbol indicates an online user (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#user"}},[e._v("Terms")]),e._v(") and the gray user symbol that he is currently inactive, meaning that the user’s grids are currently not used.")],1),e._v(" "),t("li",[t("strong",[e._v("Inactive offline user")]),e._v(": The gray user symbol without a cloud indicates an inactive offline user (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#user"}},[e._v("Terms")]),e._v(")")],1),e._v(" "),t("li",[t("strong",[e._v("Open")]),e._v(": sets the user “active” and opens the main view, showing the user’s grid(s). Sets all other users inactive, there is always only one active user.")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": deletes the user and all of his grids and configuration. Use with caution, this action cannot be undone. This option is only available for offline users.")]),e._v(" "),t("li",[t("strong",[e._v("Logout")]),e._v(": deletes the user and all of his grids and configuration, but only on the current device. Data in the cloud and on other devices that are logged in with the same user will not be deleted. This option is only available for online users.")]),e._v(" "),t("li",[t("strong",[e._v("Login with other user")]),e._v(": put in username and password of an existing online user in order to add it to the current device. In order to create a new online or offline user, follow one of the links below.")]),e._v(" "),t("li",[t("strong",[e._v("Remember checkbox")]),e._v(": if checked, the newly logged in online user will be saved to the device and listed in the list of users in the current user view. If unchecked the user will only be opened temporarily and no user data will be saved on the device (recommended for logging in on foreign devices).")])]),e._v(" "),t("p",[e._v("For information about offline or online users and how to add them see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Users")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"search-function"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#search-function"}},[e._v("#")]),e._v(" Search function")]),e._v(" "),t("p",[e._v("These are the possibilities to open the dialog for searching for grid elements in the current configuration:")]),e._v(" "),t("ol",[t("li",[e._v("Click the button "),t("code",[e._v("Search")]),e._v(" in the top bar in the Main View")]),e._v(" "),t("li",[e._v("Press "),t("code",[e._v("Ctrl + F")]),e._v(" on the keyboard in one of these views: “Main”, “Manage Grids” or “Edit grid”")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("More -> Search")]),e._v(" in the top bar of “Edit grid” view")]),e._v(" "),t("li",[e._v("Grid element action "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#navigate-to-other-grid"}},[e._v("navigate to other grid")]),e._v(" with navigation type "),t("code",[e._v("Open search dialog")]),e._v(" (e.g. to be added to "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#global-grid"}},[e._v("global grid")]),e._v(" in order to be able to open the search dialog in fullscreen mode).")],1)]),e._v(" "),t("p",[t("img",{attrs:{src:i(513),alt:"change user view"}}),e._v(" "),t("em",[e._v("Fig. 6: Search dialog and search results")])]),e._v(" "),t("p",[e._v("Figure 6 shows the search dialog:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("search term")]),e._v(": text input field for the search term")]),e._v(" "),t("li",[t("strong",[e._v("result image")]),e._v(": directly navigates to the selected element and highlights it. Keyboard shortcut for first search result: "),t("code",[e._v("[Enter]")])]),e._v(" "),t("li",[t("strong",[e._v("result path")]),e._v(": navigates to the selected element step-by-step by highlighting the path beginning from the home grid. Keyboard shortcut for first search result: "),t("code",[e._v("[Ctrl + Enter]")])])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=n.exports},505:function(e,t,i){e.exports=i.p+"assets/img/main_en.0dfdaa0e.jpg"},506:function(e,t,i){e.exports=i.p+"assets/img/edit_en.c2cbce4a.jpg"},507:function(e,t,i){e.exports=i.p+"assets/img/manage_grids_en.7487da8f.jpg"},508:function(e,t,i){e.exports=i.p+"assets/img/manage_grids_more_en.6f493d95.jpg"},509:function(e,t,i){e.exports=i.p+"assets/img/global_grid_empty_en.27f7b39a.JPG"},510:function(e,t,i){e.exports=i.p+"assets/img/global_grid_en.7962d28c.JPG"},511:function(e,t,i){e.exports=i.p+"assets/img/manage_dict_en.9115ef99.jpg"},512:function(e,t,i){e.exports=i.p+"assets/img/login_en.ea0b3060.jpg"},513:function(e,t,i){e.exports=i.p+"assets/img/search-dialog.cdc09620.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{1049:function(e,t,i){"use strict";i.r(t);var a=i(2),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"navigation-and-basic-functionality"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#navigation-and-basic-functionality"}},[e._v("#")]),e._v(" Navigation and basic functionality")]),e._v(" "),t("p",[e._v("This chapter is about general appearance, navigation and basic functionality of the different views in AsTeRICS Grid:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#welcome-view"}},[e._v("Welcome view")]),e._v(": intial view shown at first usage")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#main---view"}},[e._v("Main view")]),e._v(": starting view showing the recently used grid and navigation")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#edit-view---editing-on"}},[e._v("Edit view")]),e._v(": view that allows modification of a grid")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("Manage grids view")]),e._v(": show all grids, create new ones, create a backup")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-dictionaries---view"}},[e._v("Manage dictionaries view")]),e._v(": show, edit and create new dictionaries")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#change-user---view"}},[e._v("Change user view")]),e._v(": switch users or login an existing one")],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"welcome-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#welcome-view"}},[e._v("#")]),e._v(" Welcome view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=5ffLB4a9APc&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=2&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("First Start"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("AsTeRICS Grid initially starts with a welcome view giving the choice between:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Use AsTeRICS Grid without registration:")]),e._v(" choose this option in order to create a local default user and directly start using AsTeRICS Grid.")]),e._v(" "),t("li",[t("strong",[e._v("Register now:")]),e._v(" choose this option in order to sign up for an online user, which makes it possible to synchronize the grids across devices.")])]),e._v(" "),t("p",[e._v("See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#User"}},[e._v("Terms")]),e._v(" for more information about offline/online users.")],1),e._v(" "),t("h2",{attrs:{id:"main-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#main-view"}},[e._v("#")]),e._v(" “Main” - view")]),e._v(" "),t("p",[t("strong",[e._v("Videos on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=OU4sI2UcNUo&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=3&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Demo configuration"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=CK8Lv2bVr-g&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=4&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fullscreen and lock mode"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("Once taken a decision in the welcome view AsTeRICS Grid subsequently starts in the “main view” which looks like Figure 1 (desktop view on the left, mobile view on the right):")]),e._v(" "),t("p",[t("img",{attrs:{src:i(500),alt:"main view"}}),e._v(" "),t("em",[e._v("Fig. 1: “Main” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The elements have this functionality:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the left navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Main")]),e._v(": navigate to the main view (currently shown)")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("Manage grids")])],1),e._v(": show all grids of the current user, add new ones or backup them to a file, manage the global grid")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-dictionaries---view"}},[e._v("Manage Dictionaries")])],1),e._v(": show all saved dictionaries, edit them or add new empty ones or import existing dictionaries")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#change-user---view"}},[e._v("Change User")])],1),e._v(": switch between saved users or log in an existing online user")]),e._v(" "),t("li",[t("strong",[e._v("Add online user")]),e._v(": register a new online user (synchronized across devices), see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Users")])],1),e._v(" "),t("li",[t("strong",[e._v("Add offline users")]),e._v(": add a new offline user (only for this device)")]),e._v(" "),t("li",[t("strong",[e._v("Settings")]),e._v(": select between general settings like application language and user settings like grid content language, voice or colors")]),e._v(" "),t("li",[t("strong",[e._v("About AsTeRICS Grid")]),e._v(": Show general information, links, contact address")]),e._v(" "),t("li",[t("strong",[e._v("Help")]),e._v(": find the AsTeRICS Grid user manuel, the ARASAAC tutorial or video tutorials")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html##edit-view---editing-on"}},[e._v("Editing on")])],1),e._v(": edit the layout of the grid, add new elements, actions for grid elements")]),e._v(" "),t("li",[t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("Input options")])],1),e._v(": Options about how to select grid elements (e.g. click, hover, scanning)")]),e._v(" "),t("li",[t("strong",[e._v("Fullscreen")]),e._v(": hide the sidebar and the bar on the top, only showing the current grid")]),e._v(" "),t("li",[t("strong",[e._v("Lock")]),e._v(": lock the screen in order to prevent unintended input or changes beside using and navigating the grid")]),e._v(" "),t("li",[t("strong",[e._v("Grid")]),e._v(": demo grid consisting of some grid elements which are navigating to other grids if selected (possible for those which show the grey symbol in the upper right corner)")])]),e._v(" "),t("h2",{attrs:{id:"edit-view-editing-on"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#edit-view-editing-on"}},[e._v("#")]),e._v(" Edit view - “Editing on”")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=KWwWgCgidXM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=13&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Add and edit elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("Clicking on Button “Editing on” (Fig. 1, number 11) opens the edit view where a grid can be adapted, see Figure 2:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(501),alt:"edit view"}}),e._v(" "),t("em",[e._v("Fig.2: “Editing on” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the edit view:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Open or close the navigation sidebar")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Editing off")]),e._v(": navigate back to main view")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Undo")]),e._v(": reverts the last action")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Redo")]),e._v(": redoes the last action after reverting it")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("More")]),e._v(": opens a menu with additional actions, e.g adding new elements")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Right click on a grid element")]),e._v(": opens a menu for editing / deleting / etc. the element (open it with long tap on a mobile device/touchscreen)")]),e._v(" "),t("p",[t("strong",[e._v("Reposition grid element / Edit area")]),e._v(": Grid elements can be repositioned by dragging them (drag & drop). On the right bottom corner it’s possible to resize a grid element.")])])]),e._v(" "),t("p",[e._v("See page "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[e._v("Edit grid appearance and layout")]),e._v(" for more details about editing a grid.")],1),e._v(" "),t("h2",{attrs:{id:"manage-grids-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manage-grids-view"}},[e._v("#")]),e._v(" “Manage grids” - view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=HQTgvv1Dnn0&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=15&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manage grids"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The manage grids view provides an overview about the current grids of a user, see Figure 3:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(502),alt:"manage grids view"}}),e._v(" "),t("em",[e._v("Fig.3: “Manage grids” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the manage grids view:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Name of grid")]),e._v(": type name of the grid and confirm by clicking on the tick")]),e._v(" "),t("li",[t("strong",[e._v("New grid")]),e._v(": add a new, empty grid")]),e._v(" "),t("li",[t("strong",[e._v("more")]),e._v(": shows menu with additional actions, e.g. backup the grids to file or restore backups from file")]),e._v(" "),t("li",[t("strong",[e._v("Show")]),e._v(": open this grid in main view")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": open this grid in edit view")]),e._v(" "),t("li",[t("strong",[e._v("Clone")]),e._v(": duplicate this grid, creating a copy of it with a different name")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this grid")]),e._v(" "),t("li",[t("strong",[e._v("Export")]),e._v(": saves and downloads this specific grid to a "),t("code",[e._v(".grd")]),e._v(" file creating a backup of it (saves only this single grid, see “More” menu (Number 4) to backup all grids)")]),e._v(" "),t("li",[t("strong",[e._v("Save as PDF")]),e._v(": saves and downloades the grid as PDF")]),e._v(" "),t("li",[t("strong",[e._v("Grids to show")]),e._v(": select which grids shall be shown in the grid list")]),e._v(" "),t("li",[t("strong",[e._v("Sort grids by")]),e._v(": select how the grids in the grid list shall be sorted")])]),e._v(" "),t("h3",{attrs:{id:"more-button-additional-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#more-button-additional-options"}},[e._v("#")]),e._v(" “more” button - Additional options")]),e._v(" "),t("p",[e._v("Clicking on Button “more” (Fig. 3, number 4) opens menu with additional options:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(503),alt:"manage grids more menu"}})]),e._v(" "),t("p",[t("em",[e._v("Fig.3.1: “Manage grids” - view - “more” button")])]),e._v(" "),t("p",[e._v("These are the possible options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New Grid")]),e._v(": creates a new and empty grid, same as Fig. 3, number 3")]),e._v(" "),t("li",[t("strong",[e._v("Save backup to file")]),e._v(": creates and downloads a "),t("code",[e._v(".grd")]),e._v(" file containing a backup of all current grids, dictionaries and input configuration. In this case, a file called "),t("code",[e._v("asterics-grid-backup.grd")]),e._v(" is downloaded that can be renamed to more easily identify the contents of the copy")]),e._v(" "),t("li",[t("strong",[e._v("Save custom data to file")]),e._v(": creates and downloads a backup copy as well, but data can be customized with the following options:\n"),t("ol",[t("li",[e._v("Select grid: export a specific (group of) grid(s) or all available grids")]),e._v(" "),t("li",[e._v("Export languages: select wheter to export all the languages in which the communicator is translated or only one of them (current content language)")]),e._v(" "),t("li",[e._v("Export dictionaries: can be activated / deactivated")]),e._v(" "),t("li",[e._v("Export user settings and input configuration: can be activated / deactivated (preserves specific adjustments like color settings, content language or input settings (scanning or direct slection))")]),e._v(" "),t("li",[e._v("Export global grid: can be activated / deactivated")])])]),e._v(" "),t("li",[t("strong",[e._v("Save grids to PDF")]),e._v(": creates and downloads a "),t("code",[e._v(".pdf")]),e._v(" file of one or all grids, which can be used for later printing")]),e._v(" "),t("li",[t("strong",[e._v("Restore backup from file")]),e._v(": deletes the existing configuration and replaces it with data from a "),t("code",[e._v(".grd")]),e._v(" file")]),e._v(" "),t("li",[t("strong",[e._v("Import custom data from file")]),e._v(": imports data from a "),t("code",[e._v(".grd")]),e._v(" file as well, but data can be customized. You can choose if you want to import dictionaries, of you want to import user settings and input configuration and if oyu want to delet existing data before importing.")]),e._v(" "),t("li",[t("strong",[e._v("Reset to default configuration")]),e._v(": deletes all current grids and replaces them with the default demo configuration")])]),e._v(" "),t("p",[t("strong",[e._v("Info about Open Board Format (OBF)")]),e._v(": OBF is an open format for exchanging grids across different AAC tools and is specified on the "),t("a",{attrs:{href:"https://www.openboardformat.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("official website"),t("OutboundLink")],1),e._v(". AsTeRICS Grid supports importing OBF files ("),t("code",[e._v(".obf")]),e._v(" and "),t("code",[e._v(".obz")]),e._v(") using the options "),t("em",[e._v("Restore backup from file")]),e._v(" or "),t("em",[e._v("Import custom data from file")]),e._v(".")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Tpez_-4ILRA&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=26&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Complex grids and OBF"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("h3",{attrs:{id:"global-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#global-grid"}},[e._v("#")]),e._v(" Global grid")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=bbmMODbqbhk&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=25&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Global Grid"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("A global grid is a grid that is visible on every grid page. It may contain general elements that make sense within every grid like e.g. a “Home” grid element that navigates to the start page. A global grid could also contain some kind of core vocabulary that should be visible any time. The global grid of the main page of figure 1 contains the following elements:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(504),alt:"global grid"}})]),e._v(" "),t("p",[t("em",[e._v("Fig.3.2: Global Grid")])]),e._v(" "),t("p",[e._v("All the elements shown here are elements contained within the global grid. They are visible on every grid page.\nWhile editing the global grid it’s possible to define its height by opening "),t("em",[e._v("More -> Change grid dimensions")]),e._v(" and setting the value for "),t("em",[e._v("height of first global grid row")]),e._v(".")]),e._v(" "),t("p",[e._v("The global grid can be activated/deactivated and edited in the “Manage Grids” view at the bottom or by "),t("em",[e._v("More -> Edit global grid")]),e._v(" while editing any other grid:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(505),alt:"de/activate global grid"}})]),e._v(" "),t("p",[t("em",[e._v("Fig.3.3: “Manage grids” - view - Global Grid")])]),e._v(" "),t("h3",{attrs:{id:"home-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#home-grid"}},[e._v("#")]),e._v(" Home grid")]),e._v(" "),t("p",[e._v("At the bottom of “Manage grids” it’s possible to define a "),t("code",[e._v("Home grid")]),e._v(". This grid is automatically opened at startup of AsTeRICS Grid. If no home grid is defined, the last opened grid is opened.")]),e._v(" "),t("p",[t("code",[e._v("Navigate to home grid after selecting an element")]),e._v(" can be selected in order to automatically navigate to home grid after any element (which doesn’t navigate to an other grid) is selected. This can speed up the construction of sentences in more complex communicator interfaces.")]),e._v(" "),t("p",[e._v("It’s possible to define an action that navigates to the home grid, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#navigate-to-other-grid"}},[e._v("action “Navigate to other grid”")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"manage-dictionaries-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manage-dictionaries-view"}},[e._v("#")]),e._v(" “Manage Dictionaries” - view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=DS9om8MDEDY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=19&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manage dictionaries"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("In the manage dictionaries view currently saved dictionaries that are used for filling prediction elements (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("Terms")]),e._v(") can be shown and adapted (Figure 4):")],1),e._v(" "),t("p",[t("img",{attrs:{src:i(506),alt:"manage dictionaries view"}}),e._v(" "),t("em",[e._v("Fig. 4: “Manage dictionaries” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the manage dictionaries view:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Import dictionary")]),e._v(": imports a dictionary from online dictionaries or from a "),t("code",[e._v(".json")]),e._v(" file")]),e._v(" "),t("li",[t("strong",[e._v("New empty dictionary")]),e._v(": add a new, empty dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": show, edit and add new words to the dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Clone")]),e._v(": create a copy of the dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": removes the dictionary")]),e._v(" "),t("li",[t("strong",[e._v("Save")]),e._v(": saves the dictionary as "),t("code",[e._v(".json")]),e._v(" file")]),e._v(" "),t("li",[t("strong",[e._v("Edit dictionary name")]),e._v(": change the name of a dictionary")])]),e._v(" "),t("p",[e._v("For more information about using dictionaries see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/07_dictionaries.html"}},[e._v("Dictionaries")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"change-user-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-user-view"}},[e._v("#")]),e._v(" “Change User” - view")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=CoRUQJJnYaY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=16&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Offline and online users"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("In the “Change User” - view it’s possible to switch between users or login an existing one (Figure 5):")]),e._v(" "),t("p",[t("img",{attrs:{src:i(507),alt:"change user view"}}),e._v(" "),t("em",[e._v("Fig. 5: “Change user” - view (desktop view on the left, mobile view on the right)")])]),e._v(" "),t("p",[e._v("The following elements are available in the change users view:")]),e._v(" "),t("ol",[t("li",[e._v("Open or close the navigation sidebar")]),e._v(" "),t("li",[t("strong",[e._v("Active offline user")]),e._v(": the currently active user is recognizable by a black user symbol and the word “active” next to the username. The active user is the user whose grids and configuration are currently used and shown in all other views.")]),e._v(" "),t("li",[t("strong",[e._v("Inactive online user")]),e._v(": The little cloud symbol indicates an online user (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#user"}},[e._v("Terms")]),e._v(") and the gray user symbol that he is currently inactive, meaning that the user’s grids are currently not used.")],1),e._v(" "),t("li",[t("strong",[e._v("Inactive offline user")]),e._v(": The gray user symbol without a cloud indicates an inactive offline user (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#user"}},[e._v("Terms")]),e._v(")")],1),e._v(" "),t("li",[t("strong",[e._v("Open")]),e._v(": sets the user “active” and opens the main view, showing the user’s grid(s). Sets all other users inactive, there is always only one active user.")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": deletes the user and all of his grids and configuration. Use with caution, this action cannot be undone. This option is only available for offline users.")]),e._v(" "),t("li",[t("strong",[e._v("Logout")]),e._v(": deletes the user and all of his grids and configuration, but only on the current device. Data in the cloud and on other devices that are logged in with the same user will not be deleted. This option is only available for online users.")]),e._v(" "),t("li",[t("strong",[e._v("Login with other user")]),e._v(": put in username and password of an existing online user in order to add it to the current device. In order to create a new online or offline user, follow one of the links below.")]),e._v(" "),t("li",[t("strong",[e._v("Remember checkbox")]),e._v(": if checked, the newly logged in online user will be saved to the device and listed in the list of users in the current user view. If unchecked the user will only be opened temporarily and no user data will be saved on the device (recommended for logging in on foreign devices).")])]),e._v(" "),t("p",[e._v("For information about offline or online users and how to add them see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Users")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"search-function"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#search-function"}},[e._v("#")]),e._v(" Search function")]),e._v(" "),t("p",[e._v("These are the possibilities to open the dialog for searching for grid elements in the current configuration:")]),e._v(" "),t("ol",[t("li",[e._v("Click the button "),t("code",[e._v("Search")]),e._v(" in the top bar in the Main View")]),e._v(" "),t("li",[e._v("Press "),t("code",[e._v("Ctrl + F")]),e._v(" on the keyboard in one of these views: “Main”, “Manage Grids” or “Edit grid”")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("More -> Search")]),e._v(" in the top bar of “Edit grid” view")]),e._v(" "),t("li",[e._v("Grid element action "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#navigate-to-other-grid"}},[e._v("navigate to other grid")]),e._v(" with navigation type "),t("code",[e._v("Open search dialog")]),e._v(" (e.g. to be added to "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#global-grid"}},[e._v("global grid")]),e._v(" in order to be able to open the search dialog in fullscreen mode).")],1)]),e._v(" "),t("p",[t("img",{attrs:{src:i(508),alt:"change user view"}}),e._v(" "),t("em",[e._v("Fig. 6: Search dialog and search results")])]),e._v(" "),t("p",[e._v("Figure 6 shows the search dialog:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("search term")]),e._v(": text input field for the search term")]),e._v(" "),t("li",[t("strong",[e._v("result image")]),e._v(": directly navigates to the selected element and highlights it. Keyboard shortcut for first search result: "),t("code",[e._v("[Enter]")])]),e._v(" "),t("li",[t("strong",[e._v("result path")]),e._v(": navigates to the selected element step-by-step by highlighting the path beginning from the home grid. Keyboard shortcut for first search result: "),t("code",[e._v("[Ctrl + Enter]")])])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=n.exports},500:function(e,t,i){e.exports=i.p+"assets/img/main_en.0dfdaa0e.jpg"},501:function(e,t,i){e.exports=i.p+"assets/img/edit_en.c2cbce4a.jpg"},502:function(e,t,i){e.exports=i.p+"assets/img/manage_grids_en.7487da8f.jpg"},503:function(e,t,i){e.exports=i.p+"assets/img/manage_grids_more_en.6f493d95.jpg"},504:function(e,t,i){e.exports=i.p+"assets/img/global_grid_empty_en.27f7b39a.JPG"},505:function(e,t,i){e.exports=i.p+"assets/img/global_grid_en.7962d28c.JPG"},506:function(e,t,i){e.exports=i.p+"assets/img/manage_dict_en.9115ef99.jpg"},507:function(e,t,i){e.exports=i.p+"assets/img/login_en.ea0b3060.jpg"},508:function(e,t,i){e.exports=i.p+"assets/img/search-dialog.cdc09620.png"}}]); \ No newline at end of file diff --git a/assets/js/160.0d2068ed.js b/assets/js/160.fb9f1818.js similarity index 98% rename from assets/js/160.0d2068ed.js rename to assets/js/160.fb9f1818.js index aa2458ac0a..3fcfca91b7 100644 --- a/assets/js/160.0d2068ed.js +++ b/assets/js/160.fb9f1818.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[160],{1100:function(e,o,i){"use strict";i.r(o);var s=i(2),t=Object(s.a)({},(function(){var e=this,o=e._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"oscilloscope"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#oscilloscope"}},[e._v("#")]),e._v(" Oscilloscope")]),e._v(" "),o("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),o("p",[e._v("The Oscilloscope provides graphical output of one or two signal values. It is a very basic implementation but useful to visualize sensor values, changes in values and value history. The trace colours and update speed can be configured via component parameters.")]),e._v(" "),o("p",[o("img",{attrs:{src:i(651),alt:"Screenshot: Oscilloscope plugin",title:"Screenshot: Oscilloscope plugin"}})]),e._v(" "),o("p",[e._v("Oscilloscope plugin")]),e._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("in [double]:")]),e._v(" The input signal for the oscilloscope.")])]),e._v(" "),o("h2",{attrs:{id:"properties"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("displayBuffer [integer]:")]),e._v(" This property value specifies how often the oscilloscope window is drawn. For example if the display buffer size is 0, the oscilloscope traces are redrawn at every incoming value. If the display buffer size is set to 10, 10 values are stored in a buffer and drawn at once as the tenth value is received. This significantly reduces the computational resources spent for drawing the oscilloscope, which is useful especially at high update rates.")]),e._v(" "),o("li",[o("strong",[e._v("drawingMode [integer]:")]),e._v(" Declares whether the y axis is adapting to mininum and maximum values automatically or to stay in preset bounds.")]),e._v(" "),o("li",[o("strong",[e._v("displayMode [integer]:")]),e._v(" Affects the time when oscilloscope is redrawn. Can be set to the values “redraw on incoming samples” or “redraw periodically”.")]),e._v(" "),o("li",[o("strong",[e._v("drawInterval [integer]:")]),e._v(" Redraw interval in milliseconds (if periodic drawing is used).")]),e._v(" "),o("li",[o("strong",[e._v("min [integer]:")]),e._v(" Preset minimum value for y axis of oscilloscope.")]),e._v(" "),o("li",[o("strong",[e._v("max [integer]:")]),e._v(" Preset maximum value for y axis of oscilloscope.")]),e._v(" "),o("li",[o("strong",[e._v("gridColor [integer]:")]),e._v(" The colour of the value-grid.")]),e._v(" "),o("li",[o("strong",[e._v("channelColor [integer]:")]),e._v(" The colour of the signal trace for the channel.")]),e._v(" "),o("li",[o("strong",[e._v("backgroundColor [integer]:")]),e._v(" The colour of the background of the oscilloscope window.")]),e._v(" "),o("li",[o("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the oscilloscope’s caption.")]),e._v(" "),o("li",[o("strong",[e._v("caption [string]:")]),e._v(" The caption to be displayed on the oscilloscope.")]),e._v(" "),o("li",[o("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);o.default=t.exports},651:function(e,o,i){e.exports=i.p+"assets/img/oscilloscope.1a3665f5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[160],{1099:function(e,o,i){"use strict";i.r(o);var s=i(2),t=Object(s.a)({},(function(){var e=this,o=e._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"oscilloscope"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#oscilloscope"}},[e._v("#")]),e._v(" Oscilloscope")]),e._v(" "),o("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),o("p",[e._v("The Oscilloscope provides graphical output of one or two signal values. It is a very basic implementation but useful to visualize sensor values, changes in values and value history. The trace colours and update speed can be configured via component parameters.")]),e._v(" "),o("p",[o("img",{attrs:{src:i(651),alt:"Screenshot: Oscilloscope plugin",title:"Screenshot: Oscilloscope plugin"}})]),e._v(" "),o("p",[e._v("Oscilloscope plugin")]),e._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("in [double]:")]),e._v(" The input signal for the oscilloscope.")])]),e._v(" "),o("h2",{attrs:{id:"properties"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("displayBuffer [integer]:")]),e._v(" This property value specifies how often the oscilloscope window is drawn. For example if the display buffer size is 0, the oscilloscope traces are redrawn at every incoming value. If the display buffer size is set to 10, 10 values are stored in a buffer and drawn at once as the tenth value is received. This significantly reduces the computational resources spent for drawing the oscilloscope, which is useful especially at high update rates.")]),e._v(" "),o("li",[o("strong",[e._v("drawingMode [integer]:")]),e._v(" Declares whether the y axis is adapting to mininum and maximum values automatically or to stay in preset bounds.")]),e._v(" "),o("li",[o("strong",[e._v("displayMode [integer]:")]),e._v(" Affects the time when oscilloscope is redrawn. Can be set to the values “redraw on incoming samples” or “redraw periodically”.")]),e._v(" "),o("li",[o("strong",[e._v("drawInterval [integer]:")]),e._v(" Redraw interval in milliseconds (if periodic drawing is used).")]),e._v(" "),o("li",[o("strong",[e._v("min [integer]:")]),e._v(" Preset minimum value for y axis of oscilloscope.")]),e._v(" "),o("li",[o("strong",[e._v("max [integer]:")]),e._v(" Preset maximum value for y axis of oscilloscope.")]),e._v(" "),o("li",[o("strong",[e._v("gridColor [integer]:")]),e._v(" The colour of the value-grid.")]),e._v(" "),o("li",[o("strong",[e._v("channelColor [integer]:")]),e._v(" The colour of the signal trace for the channel.")]),e._v(" "),o("li",[o("strong",[e._v("backgroundColor [integer]:")]),e._v(" The colour of the background of the oscilloscope window.")]),e._v(" "),o("li",[o("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the oscilloscope’s caption.")]),e._v(" "),o("li",[o("strong",[e._v("caption [string]:")]),e._v(" The caption to be displayed on the oscilloscope.")]),e._v(" "),o("li",[o("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);o.default=t.exports},651:function(e,o,i){e.exports=i.p+"assets/img/oscilloscope.1a3665f5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/161.595fa06b.js b/assets/js/161.90f1a436.js similarity index 95% rename from assets/js/161.595fa06b.js rename to assets/js/161.90f1a436.js index 453bb1845f..ac5e469694 100644 --- a/assets/js/161.595fa06b.js +++ b/assets/js/161.90f1a436.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[161],{1102:function(e,t,n){"use strict";n.r(t);var o=n(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"phone-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#phone-control"}},[e._v("#")]),e._v(" Phone Control")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Phone Interface)")]),e._v(" "),t("p",[e._v("This component controls a mobile phone with Windows Mobile operating system (v. 5.0 and above) through a Bluetooth connection. Currently supported functions are: Calling a phone number and accepting an incoming call, sending and receiving SMS messages. These functions can either be triggered by incoming events or by sending string commands to the phone plugin.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(654),alt:"Screenshot: PhoneControl plugin",title:"Screenshot: PhoneControl plugin"}})]),e._v(" "),t("p",[e._v("PhoneControl plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A Phone running Windows Mobile, a Bluetooth dongle or Bluetooth HW support, Microsoft Bluetooth stack active. AsTeRICS Phone server application running on the mobile phone.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("phoneID [string]:")]),e._v(" This is the phone number which will be used for actions like: send SMS, make phone call.")]),e._v(" "),t("li",[t("strong",[e._v("SMSContent [string]:")]),e._v(" This is the SMS content which will be used for sending SMS action.")]),e._v(" "),t("li",[t("strong",[e._v("command [string]:")]),e._v(" String command that can be sent to this component from other plugins to trigger phone actions. Currently supported commands are:\n"),t("ul",[t("li",[e._v("@PHONE: SMS:Phone_ID, “Message_content”")]),e._v(" "),t("li",[e._v("@PHONE: CALL: Phone_ID")]),e._v(" "),t("li",[e._v("@PHONE: ACCEPT")]),e._v(" "),t("li",[e._v("@PHONE: DROP")])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("remotePhoneID [string]:")]),e._v(" This is a phone number of the caller or SMS sender.")]),e._v(" "),t("li",[t("strong",[e._v("receivedSMS [string]:")]),e._v(" This is the content of the incoming SMS.")]),e._v(" "),t("li",[t("strong",[e._v("errorNumber [integer]:")]),e._v(" The number of the error.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendSMS:")]),e._v(" Sends SMS.")]),e._v(" "),t("li",[t("strong",[e._v("makePhoneCall:")]),e._v(" Makes the phone call.")]),e._v(" "),t("li",[t("strong",[e._v("acceptPhoneCall:")]),e._v(" Accepts the incoming phone call.")]),e._v(" "),t("li",[t("strong",[e._v("dropPhoneCall:")]),e._v(" Drops the phone call.")]),e._v(" "),t("li",[t("strong",[e._v("reconnect:")]),e._v(" Reconnects the phone.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("idleState:")]),e._v(" Phone is in the idle state.")]),e._v(" "),t("li",[t("strong",[e._v("ringState:")]),e._v(" Phone is in the ring state.")]),e._v(" "),t("li",[t("strong",[e._v("connectedState:")]),e._v(" Phone is connected with the remote phone.")]),e._v(" "),t("li",[t("strong",[e._v("newSMS:")]),e._v(" There is a new SMS.")]),e._v(" "),t("li",[t("strong",[e._v("error:")]),e._v(" The error occurs.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("defaultPhoneID [string]:")]),e._v(" This is a default phone number, which will be used for send SMS and make phone call actions.")]),e._v(" "),t("li",[t("strong",[e._v("bluetoothPhoneName [string]:")]),e._v(" This is a Bluetooth name of the phone which the component will connect.")]),e._v(" "),t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This is a Bluetooth port number.")])])])}),[],!1,null,null,null);t.default=r.exports},654:function(e,t,n){e.exports=n.p+"assets/img/phonecontrol.738f8590.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[161],{1101:function(e,t,n){"use strict";n.r(t);var o=n(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"phone-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#phone-control"}},[e._v("#")]),e._v(" Phone Control")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Phone Interface)")]),e._v(" "),t("p",[e._v("This component controls a mobile phone with Windows Mobile operating system (v. 5.0 and above) through a Bluetooth connection. Currently supported functions are: Calling a phone number and accepting an incoming call, sending and receiving SMS messages. These functions can either be triggered by incoming events or by sending string commands to the phone plugin.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(653),alt:"Screenshot: PhoneControl plugin",title:"Screenshot: PhoneControl plugin"}})]),e._v(" "),t("p",[e._v("PhoneControl plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A Phone running Windows Mobile, a Bluetooth dongle or Bluetooth HW support, Microsoft Bluetooth stack active. AsTeRICS Phone server application running on the mobile phone.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("phoneID [string]:")]),e._v(" This is the phone number which will be used for actions like: send SMS, make phone call.")]),e._v(" "),t("li",[t("strong",[e._v("SMSContent [string]:")]),e._v(" This is the SMS content which will be used for sending SMS action.")]),e._v(" "),t("li",[t("strong",[e._v("command [string]:")]),e._v(" String command that can be sent to this component from other plugins to trigger phone actions. Currently supported commands are:\n"),t("ul",[t("li",[e._v("@PHONE: SMS:Phone_ID, “Message_content”")]),e._v(" "),t("li",[e._v("@PHONE: CALL: Phone_ID")]),e._v(" "),t("li",[e._v("@PHONE: ACCEPT")]),e._v(" "),t("li",[e._v("@PHONE: DROP")])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("remotePhoneID [string]:")]),e._v(" This is a phone number of the caller or SMS sender.")]),e._v(" "),t("li",[t("strong",[e._v("receivedSMS [string]:")]),e._v(" This is the content of the incoming SMS.")]),e._v(" "),t("li",[t("strong",[e._v("errorNumber [integer]:")]),e._v(" The number of the error.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendSMS:")]),e._v(" Sends SMS.")]),e._v(" "),t("li",[t("strong",[e._v("makePhoneCall:")]),e._v(" Makes the phone call.")]),e._v(" "),t("li",[t("strong",[e._v("acceptPhoneCall:")]),e._v(" Accepts the incoming phone call.")]),e._v(" "),t("li",[t("strong",[e._v("dropPhoneCall:")]),e._v(" Drops the phone call.")]),e._v(" "),t("li",[t("strong",[e._v("reconnect:")]),e._v(" Reconnects the phone.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("idleState:")]),e._v(" Phone is in the idle state.")]),e._v(" "),t("li",[t("strong",[e._v("ringState:")]),e._v(" Phone is in the ring state.")]),e._v(" "),t("li",[t("strong",[e._v("connectedState:")]),e._v(" Phone is connected with the remote phone.")]),e._v(" "),t("li",[t("strong",[e._v("newSMS:")]),e._v(" There is a new SMS.")]),e._v(" "),t("li",[t("strong",[e._v("error:")]),e._v(" The error occurs.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("defaultPhoneID [string]:")]),e._v(" This is a default phone number, which will be used for send SMS and make phone call actions.")]),e._v(" "),t("li",[t("strong",[e._v("bluetoothPhoneName [string]:")]),e._v(" This is a Bluetooth name of the phone which the component will connect.")]),e._v(" "),t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This is a Bluetooth port number.")])])])}),[],!1,null,null,null);t.default=r.exports},653:function(e,t,n){e.exports=n.p+"assets/img/phonecontrol.738f8590.jpg"}}]); \ No newline at end of file diff --git a/assets/js/162.5f17702d.js b/assets/js/162.5aceeeb6.js similarity index 91% rename from assets/js/162.5f17702d.js rename to assets/js/162.5aceeeb6.js index 9363d952ba..95485c0ea0 100644 --- a/assets/js/162.5f17702d.js +++ b/assets/js/162.5aceeeb6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{1103:function(t,e,i){"use strict";i.r(e);var n=i(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"picotts-text-to-speech"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#picotts-text-to-speech"}},[t._v("#")]),t._v(" PicoTTS (text-to-speech)")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),t._v(" "),e("p",[t._v("The PicoTTS component creates speech output of given input text.")]),t._v(" "),e("p",[t._v("This component uses the picoTTS binary to create a temporary wavefile, which is played after creation.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(655),alt:"Screenshot: picoTTS plugin",title:"Screenshot: picoTTS plugin"}})]),t._v(" "),e("p",[t._v("picoTTS plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[e("strong",[t._v("Linux environment only!")]),e("br"),t._v("\nPlease install the pico2wave binary with following command (on Debian/Ubuntu based platforms):"),e("br"),t._v(" "),e("em",[t._v("“sudo apt install libttspico-utils”")]),e("br"),t._v("\nIf this plugin is not working (no speech output), please ensure, that the "),e("em",[t._v("aplay")]),t._v(" command is available.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" The text sentence, which will be converted into speech.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("language [choice]:")]),t._v(" Defines the output language. Available by picoTTS: English (UK/US), German, Italian, Spanish, French")])])])}),[],!1,null,null,null);e.default=s.exports},655:function(t,e,i){t.exports=i.p+"assets/img/picotts.5a9c73c4.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{1100:function(t,e,i){"use strict";i.r(e);var n=i(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"picotts-text-to-speech"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#picotts-text-to-speech"}},[t._v("#")]),t._v(" PicoTTS (text-to-speech)")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),t._v(" "),e("p",[t._v("The PicoTTS component creates speech output of given input text.")]),t._v(" "),e("p",[t._v("This component uses the picoTTS binary to create a temporary wavefile, which is played after creation.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(652),alt:"Screenshot: picoTTS plugin",title:"Screenshot: picoTTS plugin"}})]),t._v(" "),e("p",[t._v("picoTTS plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[e("strong",[t._v("Linux environment only!")]),e("br"),t._v("\nPlease install the pico2wave binary with following command (on Debian/Ubuntu based platforms):"),e("br"),t._v(" "),e("em",[t._v("“sudo apt install libttspico-utils”")]),e("br"),t._v("\nIf this plugin is not working (no speech output), please ensure, that the "),e("em",[t._v("aplay")]),t._v(" command is available.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" The text sentence, which will be converted into speech.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("language [choice]:")]),t._v(" Defines the output language. Available by picoTTS: English (UK/US), German, Italian, Spanish, French")])])])}),[],!1,null,null,null);e.default=s.exports},652:function(t,e,i){t.exports=i.p+"assets/img/picotts.5a9c73c4.png"}}]); \ No newline at end of file diff --git a/assets/js/163.b8f9482f.js b/assets/js/163.30322116.js similarity index 97% rename from assets/js/163.b8f9482f.js rename to assets/js/163.30322116.js index feb0d28835..01391dbe12 100644 --- a/assets/js/163.b8f9482f.js +++ b/assets/js/163.30322116.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[163],{1104:function(t,e,o){"use strict";o.r(e);var r=o(2),a=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"platform-digital-out"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#platform-digital-out"}},[t._v("#")]),t._v(" Platform Digital Out")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Personal Platform)")]),t._v(" "),e("p",[t._v("The PlatformDigitalOut plugin operates the output ports of the AsTeRICS Personal Platform. The output ports 1-2 are open-collector outputs with a deactivated pull-up resistor.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(656),alt:"Screenshot: PlatformDigitalOut plugin",title:"Screenshot: PlatformDigitalOut plugin"}})]),t._v(" "),e("p",[t._v("PlatformDigitalOut plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the Core CIM (CIM Id: 0x0602) of the AsTeRICS Personal Platform.")]),t._v(" "),e("p",[t._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),t._v(" "),e("p",[t._v("The AsteRICS Personal Platform")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("command [string]:")]),t._v(" The plugin reacts to incoming action strings starting with “@GPIO:” and a command. Valid commands are “set”, “clear”, “toggle” and “press”. The command has to be followed by a comma and the port number, for example: “@GPIO:set,1” or “@GPIO:toggle,2”. The following examples illustrate the available action strings:\n"),e("ul",[e("li",[t._v('_"@DIGITALOUT:set,1":_Output port 1 of the Personal Platform will be set (5 Volt)')]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:clear,2":_Output port 2 of the Personal Platform will be cleared (0 Volt)')]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:toggle,1":_Output port 1 of the Personal Platform will be changed')])])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setOutput1 to setOutput2:")]),t._v(" an incoming event on these ports will cause the corresponding output port to go to the high level.")]),t._v(" "),e("li",[e("strong",[t._v("clearOutput1 to clearOutput2:")]),t._v(" an incoming event on these ports will cause the corresponding output port to go to the low level.")])])])}),[],!1,null,null,null);e.default=a.exports},656:function(t,e,o){t.exports=o.p+"assets/img/platformdigitalout.eb94b6a5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[163],{1103:function(t,e,o){"use strict";o.r(e);var r=o(2),a=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"platform-digital-out"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#platform-digital-out"}},[t._v("#")]),t._v(" Platform Digital Out")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Personal Platform)")]),t._v(" "),e("p",[t._v("The PlatformDigitalOut plugin operates the output ports of the AsTeRICS Personal Platform. The output ports 1-2 are open-collector outputs with a deactivated pull-up resistor.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(656),alt:"Screenshot: PlatformDigitalOut plugin",title:"Screenshot: PlatformDigitalOut plugin"}})]),t._v(" "),e("p",[t._v("PlatformDigitalOut plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the Core CIM (CIM Id: 0x0602) of the AsTeRICS Personal Platform.")]),t._v(" "),e("p",[t._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),t._v(" "),e("p",[t._v("The AsteRICS Personal Platform")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("command [string]:")]),t._v(" The plugin reacts to incoming action strings starting with “@GPIO:” and a command. Valid commands are “set”, “clear”, “toggle” and “press”. The command has to be followed by a comma and the port number, for example: “@GPIO:set,1” or “@GPIO:toggle,2”. The following examples illustrate the available action strings:\n"),e("ul",[e("li",[t._v('_"@DIGITALOUT:set,1":_Output port 1 of the Personal Platform will be set (5 Volt)')]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:clear,2":_Output port 2 of the Personal Platform will be cleared (0 Volt)')]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:toggle,1":_Output port 1 of the Personal Platform will be changed')])])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setOutput1 to setOutput2:")]),t._v(" an incoming event on these ports will cause the corresponding output port to go to the high level.")]),t._v(" "),e("li",[e("strong",[t._v("clearOutput1 to clearOutput2:")]),t._v(" an incoming event on these ports will cause the corresponding output port to go to the low level.")])])])}),[],!1,null,null,null);e.default=a.exports},656:function(t,e,o){t.exports=o.p+"assets/img/platformdigitalout.eb94b6a5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/164.674a7322.js b/assets/js/164.50f9608f.js similarity index 89% rename from assets/js/164.674a7322.js rename to assets/js/164.50f9608f.js index 0480ecfca8..ec96d4cf59 100644 --- a/assets/js/164.674a7322.js +++ b/assets/js/164.50f9608f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[164],{1106:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"platform-lcd"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#platform-lcd"}},[t._v("#")]),t._v(" Platform LCD")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Personal Platform)")]),t._v(" "),e("p",[t._v("The PlatformLCD component handles interaction with the display and the input buttons of the AsTeRICS Personal Platform. The component allows other components to send messages to the display.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(658),alt:"Screenshot: PlatformLCD plugin",title:"Screenshot: PlatformLCD plugin"}})]),t._v(" "),e("p",[t._v("PlatformLCD plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the Core CIM (CIM Id: 0x0601) of the AsTeRICS Personal Platform.")]),t._v(" "),e("p",[t._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),t._v(" "),e("p",[t._v("The AsteRICS Personal Platform")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" The Input of the port will be displayed on the Core CIM’s display")])])])}),[],!1,null,null,null);e.default=s.exports},658:function(t,e,r){t.exports=r.p+"assets/img/platformlcd.86b9e06e.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[164],{1104:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"platform-lcd"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#platform-lcd"}},[t._v("#")]),t._v(" Platform LCD")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Personal Platform)")]),t._v(" "),e("p",[t._v("The PlatformLCD component handles interaction with the display and the input buttons of the AsTeRICS Personal Platform. The component allows other components to send messages to the display.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(657),alt:"Screenshot: PlatformLCD plugin",title:"Screenshot: PlatformLCD plugin"}})]),t._v(" "),e("p",[t._v("PlatformLCD plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the Core CIM (CIM Id: 0x0601) of the AsTeRICS Personal Platform.")]),t._v(" "),e("p",[t._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),t._v(" "),e("p",[t._v("The AsteRICS Personal Platform")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" The Input of the port will be displayed on the Core CIM’s display")])])])}),[],!1,null,null,null);e.default=s.exports},657:function(t,e,r){t.exports=r.p+"assets/img/platformlcd.86b9e06e.jpg"}}]); \ No newline at end of file diff --git a/assets/js/165.e291f50e.js b/assets/js/165.1c1cb742.js similarity index 95% rename from assets/js/165.e291f50e.js rename to assets/js/165.1c1cb742.js index 5527492cee..d2f9e9ee54 100644 --- a/assets/js/165.e291f50e.js +++ b/assets/js/165.1c1cb742.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[165],{1111:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"remotewindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#remotewindow"}},[e._v("#")]),e._v(" RemoteWindow")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This component allows moving or setting the state of a specific window (which is active and can be identified via the window title) to desired locations on the screen. Several default locations can be selected via incoming events (top, left, bottom, right or center of the screen). X- and Y- offset values can be defined - thus it becomes possible to move the remote window e.g to a second screen.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(665),alt:"Screenshot: RemoteWindow plugin",title:"Screenshot: RemoteWindow plugin"}})]),e._v(" "),t("p",[e._v("RemoteWindow plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" The x offest value for positioning the window")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" The y offest value for positioning the window")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("moveToTop:")]),e._v(" moves the window to the top of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToBottom:")]),e._v(" moves the window to the bottom of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToLeft:")]),e._v(" moves the window to the left side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToRight:")]),e._v(" moves the window to the right side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToCenter:")]),e._v(" moves the window to the center of the screen (x and y offsets will be applied).")]),e._v(" "),t("li",[t("strong",[e._v("minimize:")]),e._v(" minimizes the window to the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("restore:")]),e._v(" restores the window from the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("bringToFront:")]),e._v(" places the window on top of other windows")]),e._v(" "),t("li",[t("strong",[e._v("moveNow:")]),e._v(" moves the window to the selected xPos and yPos positions")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("windowName [string]:")]),e._v(" the window title / name")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer, combobox selection]:")]),e._v(" the search mode for finding the window. If “exact match” is selected, the window title must be exactly the same as the given name. If “contains text” is selected, the any window title which contains the given text will be found. Note that both modes are case-sensitive !")]),e._v(" "),t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" default value for the x offset")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" default value for the y offset")]),e._v(" "),t("li",[t("strong",[e._v("autoSetPosition [boolean]:")]),e._v(" if selected, the position of the window will be set to xPos/yPos at startup")])])])}),[],!1,null,null,null);t.default=n.exports},665:function(e,t,o){e.exports=o.p+"assets/img/remotewindow.4f4d5172.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[165],{1108:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"remotewindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#remotewindow"}},[e._v("#")]),e._v(" RemoteWindow")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This component allows moving or setting the state of a specific window (which is active and can be identified via the window title) to desired locations on the screen. Several default locations can be selected via incoming events (top, left, bottom, right or center of the screen). X- and Y- offset values can be defined - thus it becomes possible to move the remote window e.g to a second screen.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(661),alt:"Screenshot: RemoteWindow plugin",title:"Screenshot: RemoteWindow plugin"}})]),e._v(" "),t("p",[e._v("RemoteWindow plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" The x offest value for positioning the window")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" The y offest value for positioning the window")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("moveToTop:")]),e._v(" moves the window to the top of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToBottom:")]),e._v(" moves the window to the bottom of the screen (y offset will be applied). The x position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToLeft:")]),e._v(" moves the window to the left side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToRight:")]),e._v(" moves the window to the right side of the screen (x offset will be applied). The y position will not be changed.")]),e._v(" "),t("li",[t("strong",[e._v("moveToCenter:")]),e._v(" moves the window to the center of the screen (x and y offsets will be applied).")]),e._v(" "),t("li",[t("strong",[e._v("minimize:")]),e._v(" minimizes the window to the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("restore:")]),e._v(" restores the window from the taskbar")]),e._v(" "),t("li",[t("strong",[e._v("bringToFront:")]),e._v(" places the window on top of other windows")]),e._v(" "),t("li",[t("strong",[e._v("moveNow:")]),e._v(" moves the window to the selected xPos and yPos positions")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("windowName [string]:")]),e._v(" the window title / name")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer, combobox selection]:")]),e._v(" the search mode for finding the window. If “exact match” is selected, the window title must be exactly the same as the given name. If “contains text” is selected, the any window title which contains the given text will be found. Note that both modes are case-sensitive !")]),e._v(" "),t("li",[t("strong",[e._v("xPos [integer]:")]),e._v(" default value for the x offset")]),e._v(" "),t("li",[t("strong",[e._v("yPos [integer]:")]),e._v(" default value for the y offset")]),e._v(" "),t("li",[t("strong",[e._v("autoSetPosition [boolean]:")]),e._v(" if selected, the position of the window will be set to xPos/yPos at startup")])])])}),[],!1,null,null,null);t.default=n.exports},661:function(e,t,o){e.exports=o.p+"assets/img/remotewindow.4f4d5172.jpg"}}]); \ No newline at end of file diff --git a/assets/js/166.48fed43f.js b/assets/js/166.f1dd8334.js similarity index 93% rename from assets/js/166.48fed43f.js rename to assets/js/166.f1dd8334.js index 8e659dd10b..e4a5827b5c 100644 --- a/assets/js/166.48fed43f.js +++ b/assets/js/166.f1dd8334.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[166],{1112:function(t,e,i){"use strict";i.r(e);var r=i(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ssvep-file-writer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ssvep-file-writer"}},[t._v("#")]),t._v(" SSVEP File Writer")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Brain Computer Interface)")]),t._v(" "),e("p",[t._v("This plugin writes to a text file the 4 EEG channels along with a software trigger received through the event listener ports. This file is lately analyzed by the "),e("a",{attrs:{href:"../processors/ProtocolSSVEPTrain.htm"}},[t._v("ProtocolSSVEPTrain")]),t._v(" plugin to obtain the optimus frequencies to be used on the SSVEP detection.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(666),alt:"Screenshot: SSVEPFileWriter plugin",title:"Screenshot: SSVEPFileWriter plugin"}})]),t._v(" "),e("p",[t._v("SSVEPFileWriter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("filename [string]:")]),t._v(" Name of the file to be saved.")]),t._v(" "),e("li",[e("strong",[t._v("channel1 to channel4 [integer]:")]),t._v(" Input EEG signal from channels 1 to 4.")]),t._v(" "),e("li",[e("strong",[t._v("StimulationFrequency [integer]:")]),t._v(" If a stimulation frequency value is received before the StarStimulation Event the stimulation freqeuncy is appended to the name of the output file to be saved.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartTrial:")]),t._v(" An incoming event at this port starts the file writer process.")]),t._v(" "),e("li",[e("strong",[t._v("StopTrial:")]),t._v(" An incoming event at this port stops the file writer process.")]),t._v(" "),e("li",[e("strong",[t._v("StartStimulation:")]),t._v(" An incoming event at this port sets the trigger channel to the corresponding stimulation frequency value in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("StopStimulation:")]),t._v(" An incoming event at this port sets the trigger channel to zeros.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("DefaultFileName [string]:")]),t._v(" The default file name.")])])])}),[],!1,null,null,null);e.default=n.exports},666:function(t,e,i){t.exports=i.p+"assets/img/ssvepfilewriter.8aaaba2b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[166],{1110:function(t,e,i){"use strict";i.r(e);var r=i(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ssvep-file-writer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ssvep-file-writer"}},[t._v("#")]),t._v(" SSVEP File Writer")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Brain Computer Interface)")]),t._v(" "),e("p",[t._v("This plugin writes to a text file the 4 EEG channels along with a software trigger received through the event listener ports. This file is lately analyzed by the "),e("a",{attrs:{href:"../processors/ProtocolSSVEPTrain.htm"}},[t._v("ProtocolSSVEPTrain")]),t._v(" plugin to obtain the optimus frequencies to be used on the SSVEP detection.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(665),alt:"Screenshot: SSVEPFileWriter plugin",title:"Screenshot: SSVEPFileWriter plugin"}})]),t._v(" "),e("p",[t._v("SSVEPFileWriter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("filename [string]:")]),t._v(" Name of the file to be saved.")]),t._v(" "),e("li",[e("strong",[t._v("channel1 to channel4 [integer]:")]),t._v(" Input EEG signal from channels 1 to 4.")]),t._v(" "),e("li",[e("strong",[t._v("StimulationFrequency [integer]:")]),t._v(" If a stimulation frequency value is received before the StarStimulation Event the stimulation freqeuncy is appended to the name of the output file to be saved.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartTrial:")]),t._v(" An incoming event at this port starts the file writer process.")]),t._v(" "),e("li",[e("strong",[t._v("StopTrial:")]),t._v(" An incoming event at this port stops the file writer process.")]),t._v(" "),e("li",[e("strong",[t._v("StartStimulation:")]),t._v(" An incoming event at this port sets the trigger channel to the corresponding stimulation frequency value in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("StopStimulation:")]),t._v(" An incoming event at this port sets the trigger channel to zeros.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("DefaultFileName [string]:")]),t._v(" The default file name.")])])])}),[],!1,null,null,null);e.default=n.exports},665:function(t,e,i){t.exports=i.p+"assets/img/ssvepfilewriter.8aaaba2b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/167.c4a29c4a.js b/assets/js/167.d4f9cf3d.js similarity index 94% rename from assets/js/167.c4a29c4a.js rename to assets/js/167.d4f9cf3d.js index 1df3ea9fd0..9b98ca9ac3 100644 --- a/assets/js/167.c4a29c4a.js +++ b/assets/js/167.d4f9cf3d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{1114:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ssvep-stimulator"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ssvep-stimulator"}},[t._v("#")]),t._v(" SSVEP Stimulator")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Brain Computer Interface)")]),t._v(" "),e("p",[t._v("This plug-in allows the user to interact with the SW-generated flickering surfaces (panels) for SSVEP stimulation. The stimulation frequency of the panels can be modified before the stimulation is started.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(668),alt:"Screenshot: SSVEPStimulator application",title:"Screenshot: SSVEPStimulator application"}})]),t._v(" "),e("p",[t._v("SSVEPStimulator application")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A recent version of DirectX has to be installed.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("frequency [integer]:")]),t._v(" the stimulation frequency the SW-generated panel in Hertz. The value ranges from 1 to 20 Hertz.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("startStim:")]),t._v(" starts the stimulation of the SW-generated flickering panels when receiving an event.")]),t._v(" "),e("li",[e("strong",[t._v("stopStim:")]),t._v(" stops the stimulation of the SW-generated flickering panels when receiving an event.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("stimPeriodFinished:")]),t._v(" an event is emitted through this port when the stimulation period of N miliseconds has finished.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("onBitmapFile [string]:")]),t._v(" filename of a bitmap file which is used in the on-phase of the stimulation. The file is expected in the data/SSVEPStimulator subfolder of the ARE. The filename is given without extenstion (e.g. “arrow_up” for the file “ARE/data/SSVEPStimulator/arrow_up.bmp”)")]),t._v(" "),e("li",[e("strong",[t._v("offBitmapFile [string]:")]),t._v(" filename of a bitmap file which is used in the off-phase of the stimulation. (same filname format as above)")]),t._v(" "),e("li",[e("strong",[t._v("xPosition [integer]:")]),t._v(" x-position of the flickering surface on the desktop/screen.")]),t._v(" "),e("li",[e("strong",[t._v("yPosition [integer]:")]),t._v(" y-position of the flickering surface on the desktop/screen.")]),t._v(" "),e("li",[e("strong",[t._v("frequency [integer]:")]),t._v(" default stimulation frequency of in Hertz. This property ranges from 1 to 20 Hertz.")]),t._v(" "),e("li",[e("strong",[t._v("msec [integer]:")]),t._v(" duration in miliseconds of the stimulation started by the startStimPeriod event.")])])])}),[],!1,null,null,null);e.default=s.exports},668:function(t,e,i){t.exports=i.p+"assets/img/ssvepstimulator.3255d351.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{1112:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ssvep-stimulator"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ssvep-stimulator"}},[t._v("#")]),t._v(" SSVEP Stimulator")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Brain Computer Interface)")]),t._v(" "),e("p",[t._v("This plug-in allows the user to interact with the SW-generated flickering surfaces (panels) for SSVEP stimulation. The stimulation frequency of the panels can be modified before the stimulation is started.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(667),alt:"Screenshot: SSVEPStimulator application",title:"Screenshot: SSVEPStimulator application"}})]),t._v(" "),e("p",[t._v("SSVEPStimulator application")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A recent version of DirectX has to be installed.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("frequency [integer]:")]),t._v(" the stimulation frequency the SW-generated panel in Hertz. The value ranges from 1 to 20 Hertz.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("startStim:")]),t._v(" starts the stimulation of the SW-generated flickering panels when receiving an event.")]),t._v(" "),e("li",[e("strong",[t._v("stopStim:")]),t._v(" stops the stimulation of the SW-generated flickering panels when receiving an event.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("stimPeriodFinished:")]),t._v(" an event is emitted through this port when the stimulation period of N miliseconds has finished.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("onBitmapFile [string]:")]),t._v(" filename of a bitmap file which is used in the on-phase of the stimulation. The file is expected in the data/SSVEPStimulator subfolder of the ARE. The filename is given without extenstion (e.g. “arrow_up” for the file “ARE/data/SSVEPStimulator/arrow_up.bmp”)")]),t._v(" "),e("li",[e("strong",[t._v("offBitmapFile [string]:")]),t._v(" filename of a bitmap file which is used in the off-phase of the stimulation. (same filname format as above)")]),t._v(" "),e("li",[e("strong",[t._v("xPosition [integer]:")]),t._v(" x-position of the flickering surface on the desktop/screen.")]),t._v(" "),e("li",[e("strong",[t._v("yPosition [integer]:")]),t._v(" y-position of the flickering surface on the desktop/screen.")]),t._v(" "),e("li",[e("strong",[t._v("frequency [integer]:")]),t._v(" default stimulation frequency of in Hertz. This property ranges from 1 to 20 Hertz.")]),t._v(" "),e("li",[e("strong",[t._v("msec [integer]:")]),t._v(" duration in miliseconds of the stimulation started by the startStimPeriod event.")])])])}),[],!1,null,null,null);e.default=s.exports},667:function(t,e,i){t.exports=i.p+"assets/img/ssvepstimulator.3255d351.jpg"}}]); \ No newline at end of file diff --git a/assets/js/168.b3a00b2b.js b/assets/js/168.8cbdc88c.js similarity index 95% rename from assets/js/168.b3a00b2b.js rename to assets/js/168.8cbdc88c.js index a9e0041978..a9c0606167 100644 --- a/assets/js/168.b3a00b2b.js +++ b/assets/js/168.8cbdc88c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{1113:function(e,t,s){"use strict";s.r(t);var a=s(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"serialsender"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#serialsender"}},[e._v("#")]),e._v(" SerialSender")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Generic Control Output)")]),e._v(" "),t("p",[e._v("The Serialsender can be used to send structured data to Serial devices. It has 16 data slots. Whenever a send event occurs the plugin sends every slot which is active to the device, beginning with slot0")]),e._v(" "),t("p",[t("img",{attrs:{src:s(667),alt:"Screenshot: SerialSender plugin",title:"Screenshot: SerialSender plugin"}})]),e._v(" "),t("p",[e._v("SerialSender plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("slot0 - slot15 [int]:")]),e._v(" Input data for each slot. The lower 8 Bit of the input will be sent when the slot is set Active and a send event occurs")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [string]:")]),e._v(" Defines the COM Port of the target serial device. e.g. COM0")]),e._v(" "),t("li",[t("strong",[e._v("BaudRate [integer]:")]),e._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),e._v(" "),t("li",[e._v("**Slot[0-15] [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the default value of a slot. This value will be overridden if there is data available at the corresponding input slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Active [boolean]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Activate a Slot. Whenever a send event occurs the SerialSender will iterate over all Slots beginning with slot 0 and send the data of every Active Slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Delay [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the delay the plugin should wait before sending data to a slot.")])])])}),[],!1,null,null,null);t.default=i.exports},667:function(e,t,s){e.exports=s.p+"assets/img/serialsender.58f95c8a.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{1113:function(e,t,s){"use strict";s.r(t);var a=s(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"serialsender"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#serialsender"}},[e._v("#")]),e._v(" SerialSender")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Generic Control Output)")]),e._v(" "),t("p",[e._v("The Serialsender can be used to send structured data to Serial devices. It has 16 data slots. Whenever a send event occurs the plugin sends every slot which is active to the device, beginning with slot0")]),e._v(" "),t("p",[t("img",{attrs:{src:s(668),alt:"Screenshot: SerialSender plugin",title:"Screenshot: SerialSender plugin"}})]),e._v(" "),t("p",[e._v("SerialSender plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("slot0 - slot15 [int]:")]),e._v(" Input data for each slot. The lower 8 Bit of the input will be sent when the slot is set Active and a send event occurs")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [string]:")]),e._v(" Defines the COM Port of the target serial device. e.g. COM0")]),e._v(" "),t("li",[t("strong",[e._v("BaudRate [integer]:")]),e._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),e._v(" "),t("li",[e._v("**Slot[0-15] [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the default value of a slot. This value will be overridden if there is data available at the corresponding input slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Active [boolean]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Activate a Slot. Whenever a send event occurs the SerialSender will iterate over all Slots beginning with slot 0 and send the data of every Active Slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Delay [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the delay the plugin should wait before sending data to a slot.")])])])}),[],!1,null,null,null);t.default=i.exports},668:function(e,t,s){e.exports=s.p+"assets/img/serialsender.58f95c8a.png"}}]); \ No newline at end of file diff --git a/assets/js/169.89897506.js b/assets/js/169.e1b3a564.js similarity index 95% rename from assets/js/169.89897506.js rename to assets/js/169.e1b3a564.js index 939e130a1a..37a61add54 100644 --- a/assets/js/169.89897506.js +++ b/assets/js/169.e1b3a564.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{1117:function(t,e,o){"use strict";o.r(e);var i=o(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"skywatchermount"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#skywatchermount"}},[t._v("#")]),t._v(" SkyWatcherMount")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Others)")]),t._v(" "),e("p",[t._v("The SkyWatcher plugin can be used to control telescope mounts using the Nexstar 5 protocol, e.g. Skywatcher AllView, Skywatcher Merlin via Synscan hand control.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(671),alt:"Screenshot: SkyWatcherMount plugin",title:"Screenshot: SkyWatcherMount plugin"}})]),t._v(" "),e("p",[t._v("SkyWatcherMount plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A Nexstar5 compatible telescope mount connected to the target computer via a serial connection")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("speed [integer]:")]),t._v(" defines the movement speed of the mount (range: 0-9)")]),t._v(" "),e("li",[e("strong",[t._v("panPosition [integer]:")]),t._v(" defines the target position in steps for the pan axis for the goto command")]),t._v(" "),e("li",[e("strong",[t._v("tiltPosition [integer]:")]),t._v(" defines the target position in steps for the tilt axis for the goto command")]),t._v(" "),e("li",[e("strong",[t._v("endPointLeft [integer]:")]),t._v(" defines the maximum position the pan axis can move to the left")]),t._v(" "),e("li",[e("strong",[t._v("endPointRight [integer]:")]),t._v(" defines the maximum position the pan axis can move to the right")]),t._v(" "),e("li",[e("strong",[t._v("endPointUp [integer]:")]),t._v(" defines the maximum position the tilt axis can move up")]),t._v(" "),e("li",[e("strong",[t._v("endPointDown [integer]:")]),t._v(" defines the maximum position the tilt axis can move down")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("posX [integer]:")]),t._v(" the actual position of the pan axis in steps")]),t._v(" "),e("li",[e("strong",[t._v("posY [integer]:")]),t._v(" the actual position of the tilt axis in steps")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("goLeft:")]),t._v(" moves the mount endless to the left")]),t._v(" "),e("li",[e("strong",[t._v("goRight:")]),t._v(" moves the mount endless to the right")]),t._v(" "),e("li",[e("strong",[t._v("goUp:")]),t._v(" moves the mount endless upwards")]),t._v(" "),e("li",[e("strong",[t._v("goDown:")]),t._v(" moves the mount endless downwards")]),t._v(" "),e("li",[e("strong",[t._v("stopPan:")]),t._v(" stops the movement of the pan axis")]),t._v(" "),e("li",[e("strong",[t._v("stopTilt:")]),t._v(" stops the movement of the tilt axis")]),t._v(" "),e("li",[e("strong",[t._v("stop:")]),t._v(" stops the movement of the pan and tilt axis")]),t._v(" "),e("li",[e("strong",[t._v("goToPanPosition:")]),t._v(" move the pan axis to the step position specified by the panPosition input port")]),t._v(" "),e("li",[e("strong",[t._v("goToTiltPosition:")]),t._v(" move the tilt axis to the step position specified by the tiltPosition input port")]),t._v(" "),e("li",[e("strong",[t._v("triggerOn:")]),t._v(" if the mount has a shutter for a digital camera, the shutter is set to 1")]),t._v(" "),e("li",[e("strong",[t._v("triggerOff:")]),t._v(" if the mount has a shutter for a digital camera, the shutter is set to 0")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("SerialPort [string]:")]),t._v(" The serial port of the mount, e.g. COM1")]),t._v(" "),e("li",[e("strong",[t._v("EndPointsActive [boolean]:")]),t._v(" defines if the movement boundaries set by the endpoints are active or not.")])])])}),[],!1,null,null,null);e.default=s.exports},671:function(t,e,o){t.exports=o.p+"assets/img/skywatcher.b394a10b.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{1115:function(t,e,o){"use strict";o.r(e);var i=o(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"skywatchermount"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#skywatchermount"}},[t._v("#")]),t._v(" SkyWatcherMount")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Others)")]),t._v(" "),e("p",[t._v("The SkyWatcher plugin can be used to control telescope mounts using the Nexstar 5 protocol, e.g. Skywatcher AllView, Skywatcher Merlin via Synscan hand control.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(670),alt:"Screenshot: SkyWatcherMount plugin",title:"Screenshot: SkyWatcherMount plugin"}})]),t._v(" "),e("p",[t._v("SkyWatcherMount plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A Nexstar5 compatible telescope mount connected to the target computer via a serial connection")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("speed [integer]:")]),t._v(" defines the movement speed of the mount (range: 0-9)")]),t._v(" "),e("li",[e("strong",[t._v("panPosition [integer]:")]),t._v(" defines the target position in steps for the pan axis for the goto command")]),t._v(" "),e("li",[e("strong",[t._v("tiltPosition [integer]:")]),t._v(" defines the target position in steps for the tilt axis for the goto command")]),t._v(" "),e("li",[e("strong",[t._v("endPointLeft [integer]:")]),t._v(" defines the maximum position the pan axis can move to the left")]),t._v(" "),e("li",[e("strong",[t._v("endPointRight [integer]:")]),t._v(" defines the maximum position the pan axis can move to the right")]),t._v(" "),e("li",[e("strong",[t._v("endPointUp [integer]:")]),t._v(" defines the maximum position the tilt axis can move up")]),t._v(" "),e("li",[e("strong",[t._v("endPointDown [integer]:")]),t._v(" defines the maximum position the tilt axis can move down")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("posX [integer]:")]),t._v(" the actual position of the pan axis in steps")]),t._v(" "),e("li",[e("strong",[t._v("posY [integer]:")]),t._v(" the actual position of the tilt axis in steps")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("goLeft:")]),t._v(" moves the mount endless to the left")]),t._v(" "),e("li",[e("strong",[t._v("goRight:")]),t._v(" moves the mount endless to the right")]),t._v(" "),e("li",[e("strong",[t._v("goUp:")]),t._v(" moves the mount endless upwards")]),t._v(" "),e("li",[e("strong",[t._v("goDown:")]),t._v(" moves the mount endless downwards")]),t._v(" "),e("li",[e("strong",[t._v("stopPan:")]),t._v(" stops the movement of the pan axis")]),t._v(" "),e("li",[e("strong",[t._v("stopTilt:")]),t._v(" stops the movement of the tilt axis")]),t._v(" "),e("li",[e("strong",[t._v("stop:")]),t._v(" stops the movement of the pan and tilt axis")]),t._v(" "),e("li",[e("strong",[t._v("goToPanPosition:")]),t._v(" move the pan axis to the step position specified by the panPosition input port")]),t._v(" "),e("li",[e("strong",[t._v("goToTiltPosition:")]),t._v(" move the tilt axis to the step position specified by the tiltPosition input port")]),t._v(" "),e("li",[e("strong",[t._v("triggerOn:")]),t._v(" if the mount has a shutter for a digital camera, the shutter is set to 1")]),t._v(" "),e("li",[e("strong",[t._v("triggerOff:")]),t._v(" if the mount has a shutter for a digital camera, the shutter is set to 0")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("SerialPort [string]:")]),t._v(" The serial port of the mount, e.g. COM1")]),t._v(" "),e("li",[e("strong",[t._v("EndPointsActive [boolean]:")]),t._v(" defines if the movement boundaries set by the endpoints are active or not.")])])])}),[],!1,null,null,null);e.default=s.exports},670:function(t,e,o){t.exports=o.p+"assets/img/skywatcher.b394a10b.png"}}]); \ No newline at end of file diff --git a/assets/js/170.49c59190.js b/assets/js/170.1cb36eb9.js similarity index 97% rename from assets/js/170.49c59190.js rename to assets/js/170.1cb36eb9.js index 10af14c0ac..9ff579e7cb 100644 --- a/assets/js/170.49c59190.js +++ b/assets/js/170.1cb36eb9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{1115:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The Synthetic Voice component uses the SAPI 5 technology to generate synthetic voice.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(669),alt:"Screenshot: SyntheticVoice plugin",title:"Screenshot: SyntheticVoice plugin"}})]),e._v(" "),t("p",[e._v("SyntheticVoice plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The appropriate voice should be installed on the platform.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [string]:")]),e._v(" The text sentence, which will be converted into speech.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("volume [integer]:")]),e._v(" Defines the volume of the voice. The volume property values should be in range from 0 to 100.")]),e._v(" "),t("li",[t("strong",[e._v("speed [integer]:")]),e._v(" Defines the speed of the voice. The speed property values should be in range from -10 to 10.")]),e._v(" "),t("li",[t("strong",[e._v("voice [string]:")]),e._v(" Specifies the voice used for the speech synthesis.")]),e._v(" "),t("li",[t("strong",[e._v("xmlTags [boolean]:")]),e._v(" Defines if the XML tags in the input text will be suported.")])])])}),[],!1,null,null,null);t.default=s.exports},669:function(e,t,i){e.exports=i.p+"assets/img/syntheticvoice.87548358.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{1114:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The Synthetic Voice component uses the SAPI 5 technology to generate synthetic voice.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(669),alt:"Screenshot: SyntheticVoice plugin",title:"Screenshot: SyntheticVoice plugin"}})]),e._v(" "),t("p",[e._v("SyntheticVoice plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The appropriate voice should be installed on the platform.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [string]:")]),e._v(" The text sentence, which will be converted into speech.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("volume [integer]:")]),e._v(" Defines the volume of the voice. The volume property values should be in range from 0 to 100.")]),e._v(" "),t("li",[t("strong",[e._v("speed [integer]:")]),e._v(" Defines the speed of the voice. The speed property values should be in range from -10 to 10.")]),e._v(" "),t("li",[t("strong",[e._v("voice [string]:")]),e._v(" Specifies the voice used for the speech synthesis.")]),e._v(" "),t("li",[t("strong",[e._v("xmlTags [boolean]:")]),e._v(" Defines if the XML tags in the input text will be suported.")])])])}),[],!1,null,null,null);t.default=s.exports},669:function(e,t,i){e.exports=i.p+"assets/img/syntheticvoice.87548358.jpg"}}]); \ No newline at end of file diff --git a/assets/js/171.51a7945e.js b/assets/js/171.e1185e60.js similarity index 94% rename from assets/js/171.51a7945e.js rename to assets/js/171.e1185e60.js index 201a1b3aa0..8c8235adfc 100644 --- a/assets/js/171.51a7945e.js +++ b/assets/js/171.e1185e60.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[171],{1116:function(t,e,r){"use strict";r.r(e);var n=r(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"textarea"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#textarea"}},[t._v("#")]),t._v(" TextArea")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The TextArea is a GUI component which displays (optionally user-editable) text information. It features multiple rows and a scrollbar, and event for appending string text, deleting characters or sending the text content")]),t._v(" "),e("p",[e("img",{attrs:{src:r(670),alt:"Screenshot: TextArea plugin",title:"Screenshot: TextArea plugin"}})]),t._v(" "),e("p",[t._v("TextArea plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setText [string]:")]),t._v(" The text which will be displayed. It replaces the prior content of the Text Area.")]),t._v(" "),e("li",[e("strong",[t._v("appendText [string]:")]),t._v(" This string input will be appended to te current content of the Text Area.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("text [string]:")]),t._v(" The current content of the text area. Sent on incoming events at the “send” or “sendAndClear” event listener ports")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delete:")]),t._v(" Removes the last charater from the text area content.")]),t._v(" "),e("li",[e("strong",[t._v("clear:")]),t._v(" Clears the text area content.")]),t._v(" "),e("li",[e("strong",[t._v("send:")]),t._v(" Sends the text area content to te output port.")]),t._v(" "),e("li",[e("strong",[t._v("sendAndClear:")]),t._v(" Sends the text area content to te output port and clears the text area.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clicked:")]),t._v(" The event is trigger when the user click on the component.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("caption [string]:")]),t._v(" Caption of the component.")]),t._v(" "),e("li",[e("strong",[t._v("default [string]:")]),t._v(" Default content of the text area.")]),t._v(" "),e("li",[e("strong",[t._v("editable [bolean]:")]),t._v(" Defines if the text area can be edited by the user.")]),t._v(" "),e("li",[e("strong",[t._v("fontSize [integer]:")]),t._v(" The font size in pixels.")]),t._v(" "),e("li",[e("strong",[t._v("textColor [integer]:")]),t._v(" Defines color of the text.")]),t._v(" "),e("li",[e("strong",[t._v("backgroundColor [integer]:")]),t._v(" Defines background color.")]),t._v(" "),e("li",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);e.default=i.exports},670:function(t,e,r){t.exports=r.p+"assets/img/textarea.b8330bde.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[171],{1120:function(t,e,r){"use strict";r.r(e);var n=r(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"textarea"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#textarea"}},[t._v("#")]),t._v(" TextArea")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The TextArea is a GUI component which displays (optionally user-editable) text information. It features multiple rows and a scrollbar, and event for appending string text, deleting characters or sending the text content")]),t._v(" "),e("p",[e("img",{attrs:{src:r(678),alt:"Screenshot: TextArea plugin",title:"Screenshot: TextArea plugin"}})]),t._v(" "),e("p",[t._v("TextArea plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setText [string]:")]),t._v(" The text which will be displayed. It replaces the prior content of the Text Area.")]),t._v(" "),e("li",[e("strong",[t._v("appendText [string]:")]),t._v(" This string input will be appended to te current content of the Text Area.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("text [string]:")]),t._v(" The current content of the text area. Sent on incoming events at the “send” or “sendAndClear” event listener ports")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delete:")]),t._v(" Removes the last charater from the text area content.")]),t._v(" "),e("li",[e("strong",[t._v("clear:")]),t._v(" Clears the text area content.")]),t._v(" "),e("li",[e("strong",[t._v("send:")]),t._v(" Sends the text area content to te output port.")]),t._v(" "),e("li",[e("strong",[t._v("sendAndClear:")]),t._v(" Sends the text area content to te output port and clears the text area.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clicked:")]),t._v(" The event is trigger when the user click on the component.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("caption [string]:")]),t._v(" Caption of the component.")]),t._v(" "),e("li",[e("strong",[t._v("default [string]:")]),t._v(" Default content of the text area.")]),t._v(" "),e("li",[e("strong",[t._v("editable [bolean]:")]),t._v(" Defines if the text area can be edited by the user.")]),t._v(" "),e("li",[e("strong",[t._v("fontSize [integer]:")]),t._v(" The font size in pixels.")]),t._v(" "),e("li",[e("strong",[t._v("textColor [integer]:")]),t._v(" Defines color of the text.")]),t._v(" "),e("li",[e("strong",[t._v("backgroundColor [integer]:")]),t._v(" Defines background color.")]),t._v(" "),e("li",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);e.default=i.exports},678:function(t,e,r){t.exports=r.p+"assets/img/textarea.b8330bde.jpg"}}]); \ No newline at end of file diff --git a/assets/js/172.fb3fd83a.js b/assets/js/172.7e4325b7.js similarity index 93% rename from assets/js/172.fb3fd83a.js rename to assets/js/172.7e4325b7.js index 2519484ce1..51c4d26ff3 100644 --- a/assets/js/172.fb3fd83a.js +++ b/assets/js/172.7e4325b7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[172],{1119:function(t,e,r){"use strict";r.r(e);var i=r(2),n=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h3",{attrs:{id:"component-type-actuator-subcategory-graphical-user-interface"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-graphical-user-interface"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The Text Display is the GUI component, which displays the text information.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(675),alt:"Screenshot: TextDisplay plugin",title:"Screenshot: TextDisplay plugin"}})]),t._v(" "),e("p",[t._v("TextDisplay plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" The text which will be displayed. "),e("strong",[t._v("This input port supports synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clear:")]),t._v(" Removes the text from the component.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clicked:")]),t._v(" The event is trigger when the user click on the component.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("caption [string]:")]),t._v(" Caption of the component.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("default [string]:")]),t._v(" The text, which is in the box after start.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("textPosition [integer]:")]),t._v(" Position of the text in the component: left, center or right.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("textColor [integer]:")]),t._v(" Defines color of the text.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("backgroundColor [integer]:")]),t._v(" Defines background color.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])])}),[],!1,null,null,null);e.default=n.exports},675:function(t,e,r){t.exports=r.p+"assets/img/textdisplay.08959461.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[172],{1117:function(t,e,r){"use strict";r.r(e);var i=r(2),n=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h3",{attrs:{id:"component-type-actuator-subcategory-graphical-user-interface"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-graphical-user-interface"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The Text Display is the GUI component, which displays the text information.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(674),alt:"Screenshot: TextDisplay plugin",title:"Screenshot: TextDisplay plugin"}})]),t._v(" "),e("p",[t._v("TextDisplay plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" The text which will be displayed. "),e("strong",[t._v("This input port supports synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clear:")]),t._v(" Removes the text from the component.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clicked:")]),t._v(" The event is trigger when the user click on the component.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("caption [string]:")]),t._v(" Caption of the component.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("default [string]:")]),t._v(" The text, which is in the box after start.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("textPosition [integer]:")]),t._v(" Position of the text in the component: left, center or right.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("textColor [integer]:")]),t._v(" Defines color of the text.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("backgroundColor [integer]:")]),t._v(" Defines background color.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])])}),[],!1,null,null,null);e.default=n.exports},674:function(t,e,r){t.exports=r.p+"assets/img/textdisplay.08959461.jpg"}}]); \ No newline at end of file diff --git a/assets/js/173.55141cf2.js b/assets/js/173.ec39eaca.js similarity index 91% rename from assets/js/173.55141cf2.js rename to assets/js/173.ec39eaca.js index 1bf4997e57..aed9f99bdd 100644 --- a/assets/js/173.55141cf2.js +++ b/assets/js/173.ec39eaca.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[173],{1120:function(e,t,r){"use strict";r.r(t);var n=r(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"tonegenerator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tonegenerator"}},[e._v("#")]),e._v(" ToneGenerator")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("This plugin generates a stereo sound. The frequency of the tone for the left and right channel can be set individually.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(676),alt:"Screenshot: ToneGenerator plugin",title:"Screenshot: ToneGenerator plugin"}})]),e._v(" "),t("p",[e._v("ToneGenerator plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an audio output device to percept the sound")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("frequencyLeft[double]:")]),e._v(" specifies the frequency of the tone on the left channel")]),e._v(" "),t("li",[t("strong",[e._v("frequencyRight[double]:")]),e._v(" specifies the frequency of the tone on the right channel")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sampleRate[integer]:")]),e._v(" sets the sampleRate of the tonegenerator")])]),e._v(" "),t("h2",{attrs:{id:"eventlistener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventlistener-description"}},[e._v("#")]),e._v(" Eventlistener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" starts the playback of the tones")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" stops the playback of the tones")])])])}),[],!1,null,null,null);t.default=s.exports},676:function(e,t,r){e.exports=r.p+"assets/img/tonegenerator.0a8e2909.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[173],{1118:function(e,t,r){"use strict";r.r(t);var n=r(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"tonegenerator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tonegenerator"}},[e._v("#")]),e._v(" ToneGenerator")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("This plugin generates a stereo sound. The frequency of the tone for the left and right channel can be set individually.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(675),alt:"Screenshot: ToneGenerator plugin",title:"Screenshot: ToneGenerator plugin"}})]),e._v(" "),t("p",[e._v("ToneGenerator plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an audio output device to percept the sound")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("frequencyLeft[double]:")]),e._v(" specifies the frequency of the tone on the left channel")]),e._v(" "),t("li",[t("strong",[e._v("frequencyRight[double]:")]),e._v(" specifies the frequency of the tone on the right channel")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sampleRate[integer]:")]),e._v(" sets the sampleRate of the tonegenerator")])]),e._v(" "),t("h2",{attrs:{id:"eventlistener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventlistener-description"}},[e._v("#")]),e._v(" Eventlistener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" starts the playback of the tones")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" stops the playback of the tones")])])])}),[],!1,null,null,null);t.default=s.exports},675:function(e,t,r){e.exports=r.p+"assets/img/tonegenerator.0a8e2909.png"}}]); \ No newline at end of file diff --git a/assets/js/174.754e790c.js b/assets/js/174.d611b832.js similarity index 92% rename from assets/js/174.754e790c.js rename to assets/js/174.d611b832.js index c2c34a08c6..bfcdd053e0 100644 --- a/assets/js/174.754e790c.js +++ b/assets/js/174.d611b832.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[174],{1121:function(e,t,i){"use strict";i.r(t);var r=i(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("This plugin plays a wave file specified in the properties on the platforms sound output.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(677),alt:"Screenshot: WavefilePlayer plugin",title:"Screenshot: WavefilePlayer plugin"}})]),e._v(" "),t("p",[e._v("WavefilePlayer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("wavefileName[string]:")]),e._v(" this port will change the property filename to the string on the input. Thus it is possible to have other plugins change the file to be played.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Start:")]),e._v(" An incoming event at this port initiates the playback of the wave file indicated in the property "),t("em",[e._v("filename")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Stop:")]),e._v(" An incoming event at this port stops the playback of the wave file indicated in the property "),t("em",[e._v("filename")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("VolumeUp:")]),e._v(" An incoming event increases the volume of the current playback.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeDown:")]),e._v(" An incoming event decreases the volume of the current playback.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename[string]:")]),e._v(" The value of this property specifies the file name of the wave file to be played. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=n.exports},677:function(e,t,i){e.exports=i.p+"assets/img/wavefileplayer.19bad6a5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[174],{1122:function(e,t,i){"use strict";i.r(t);var r=i(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("This plugin plays a wave file specified in the properties on the platforms sound output.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(680),alt:"Screenshot: WavefilePlayer plugin",title:"Screenshot: WavefilePlayer plugin"}})]),e._v(" "),t("p",[e._v("WavefilePlayer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("wavefileName[string]:")]),e._v(" this port will change the property filename to the string on the input. Thus it is possible to have other plugins change the file to be played.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Start:")]),e._v(" An incoming event at this port initiates the playback of the wave file indicated in the property "),t("em",[e._v("filename")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Stop:")]),e._v(" An incoming event at this port stops the playback of the wave file indicated in the property "),t("em",[e._v("filename")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("VolumeUp:")]),e._v(" An incoming event increases the volume of the current playback.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeDown:")]),e._v(" An incoming event decreases the volume of the current playback.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename[string]:")]),e._v(" The value of this property specifies the file name of the wave file to be played. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=n.exports},680:function(e,t,i){e.exports=i.p+"assets/img/wavefileplayer.19bad6a5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/175.a8e3db91.js b/assets/js/175.3996a703.js similarity index 91% rename from assets/js/175.a8e3db91.js rename to assets/js/175.3996a703.js index 49cb8eb6e2..62e6292e5f 100644 --- a/assets/js/175.a8e3db91.js +++ b/assets/js/175.3996a703.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[175],{1124:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This plugin writes incoming strings into an .csv file.")]),t._v(" "),e("p",[t._v("The data gets live recorded, so it can be viewed simultaneously in an oscilloscope.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(681),alt:"Screenshot: WriteCSV plugin",title:"Screenshot: WriteCSV plugin"}})]),t._v(" "),e("p",[t._v("WriteCSV")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartWriting:")]),t._v(" Creates a new file to save the data.")]),t._v(" "),e("li",[e("strong",[t._v("StopWriting:")]),t._v(" Stops a saving process.")])]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Input[string]:")]),t._v(" The string contains the data. Example of one string: “data1;data2;data3”. To get data values and separators into this string, the StringExpander plugin can be used. After each string, a line separator (newline) is appended.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FileName[string]:")]),t._v(" Specifies the name of the file (without extension), in which the data will be recorded. Current date and time information are added to the filename.")]),t._v(" "),e("li",[e("strong",[t._v("FilePath[string]:")]),t._v(" Defines the Path were the File shoud be saved (relative from the ARE folder). If not existing, the path will be created.")])])])}),[],!1,null,null,null);e.default=s.exports},681:function(t,e,i){t.exports=i.p+"assets/img/writecsv.b915e031.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[175],{1121:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This plugin writes incoming strings into an .csv file.")]),t._v(" "),e("p",[t._v("The data gets live recorded, so it can be viewed simultaneously in an oscilloscope.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(679),alt:"Screenshot: WriteCSV plugin",title:"Screenshot: WriteCSV plugin"}})]),t._v(" "),e("p",[t._v("WriteCSV")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartWriting:")]),t._v(" Creates a new file to save the data.")]),t._v(" "),e("li",[e("strong",[t._v("StopWriting:")]),t._v(" Stops a saving process.")])]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Input[string]:")]),t._v(" The string contains the data. Example of one string: “data1;data2;data3”. To get data values and separators into this string, the StringExpander plugin can be used. After each string, a line separator (newline) is appended.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FileName[string]:")]),t._v(" Specifies the name of the file (without extension), in which the data will be recorded. Current date and time information are added to the filename.")]),t._v(" "),e("li",[e("strong",[t._v("FilePath[string]:")]),t._v(" Defines the Path were the File shoud be saved (relative from the ARE folder). If not existing, the path will be created.")])])])}),[],!1,null,null,null);e.default=s.exports},679:function(t,e,i){t.exports=i.p+"assets/img/writecsv.b915e031.png"}}]); \ No newline at end of file diff --git a/assets/js/176.6d12b6d1.js b/assets/js/176.1d05d592.js similarity index 95% rename from assets/js/176.6d12b6d1.js rename to assets/js/176.1d05d592.js index f82b2b6339..7117babcf4 100644 --- a/assets/js/176.6d12b6d1.js +++ b/assets/js/176.1d05d592.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[176],{1123:function(e,t,i){"use strict";i.r(t);var s=i(2),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This plugin writes the incoming data into an .edf file (http://www.edfplus.info/specs/edf.html)")]),e._v(" "),t("p",[e._v("The data gets live recorded, so it can be viewed simulaneously in the EDF-Browser ( http://www.teuniz.net/edfbrowser/ )")]),e._v(" "),t("p",[t("img",{attrs:{src:i(680),alt:"Screenshot: WriteEDF plugin",title:"Screenshot: WriteEDF plugin"}})]),e._v(" "),t("p",[e._v("WriteEDF")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CH1 - CH8[double]:")]),e._v(" these ports get the data, which will be recorded.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("PatientID[string]:")]),e._v(" specifies the name of the subject. Maximum number of characters: 80")]),e._v(" "),t("li",[t("strong",[e._v("FileName[string]:")]),e._v(" specifies the name of the file (without extension ), in which the data will be recorded")]),e._v(" "),t("li",[t("strong",[e._v("reSampling[boolean]:")]),e._v(" If this box is checked, the incoming data will be resampled with the chosen frequency of the properties samplingRateCH1 - CH8. This could be neccessary, if the incoming data frequency is not known")]),e._v(" "),t("li",[t("strong",[e._v("SamplingRateCH1 - CH8[integer]:")]),e._v(" specifies the frequency of the incoming data. Values smaller than 1 will deactivate the corresponding channel")]),e._v(" "),t("li",[t("strong",[e._v("PhysicalMinimum CH1 - CH8 [integer]:")]),e._v(" specifies the minimum values of the incoming data")]),e._v(" "),t("li",[t("strong",[e._v("PhysicalMaximum CH1 - CH8 [integer]:")]),e._v(" specifies the maximum values of the incoming data")]),e._v(" "),t("li",[t("strong",[e._v("DigitalMinimum CH1 - CH8 [integer]:")]),e._v(" specifies the minimum values of the stored data")]),e._v(" "),t("li",[t("strong",[e._v("DigitalMaximum CH1 - CH8 [integer]:")]),e._v(" specifies the maximum values of the stored data")])])])}),[],!1,null,null,null);t.default=n.exports},680:function(e,t,i){e.exports=i.p+"assets/img/writeedf.ebcf5ca6.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[176],{1123:function(e,t,i){"use strict";i.r(t);var s=i(2),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This plugin writes the incoming data into an .edf file (http://www.edfplus.info/specs/edf.html)")]),e._v(" "),t("p",[e._v("The data gets live recorded, so it can be viewed simulaneously in the EDF-Browser ( http://www.teuniz.net/edfbrowser/ )")]),e._v(" "),t("p",[t("img",{attrs:{src:i(681),alt:"Screenshot: WriteEDF plugin",title:"Screenshot: WriteEDF plugin"}})]),e._v(" "),t("p",[e._v("WriteEDF")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CH1 - CH8[double]:")]),e._v(" these ports get the data, which will be recorded.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("PatientID[string]:")]),e._v(" specifies the name of the subject. Maximum number of characters: 80")]),e._v(" "),t("li",[t("strong",[e._v("FileName[string]:")]),e._v(" specifies the name of the file (without extension ), in which the data will be recorded")]),e._v(" "),t("li",[t("strong",[e._v("reSampling[boolean]:")]),e._v(" If this box is checked, the incoming data will be resampled with the chosen frequency of the properties samplingRateCH1 - CH8. This could be neccessary, if the incoming data frequency is not known")]),e._v(" "),t("li",[t("strong",[e._v("SamplingRateCH1 - CH8[integer]:")]),e._v(" specifies the frequency of the incoming data. Values smaller than 1 will deactivate the corresponding channel")]),e._v(" "),t("li",[t("strong",[e._v("PhysicalMinimum CH1 - CH8 [integer]:")]),e._v(" specifies the minimum values of the incoming data")]),e._v(" "),t("li",[t("strong",[e._v("PhysicalMaximum CH1 - CH8 [integer]:")]),e._v(" specifies the maximum values of the incoming data")]),e._v(" "),t("li",[t("strong",[e._v("DigitalMinimum CH1 - CH8 [integer]:")]),e._v(" specifies the minimum values of the stored data")]),e._v(" "),t("li",[t("strong",[e._v("DigitalMaximum CH1 - CH8 [integer]:")]),e._v(" specifies the maximum values of the stored data")])])])}),[],!1,null,null,null);t.default=n.exports},681:function(e,t,i){e.exports=i.p+"assets/img/writeedf.ebcf5ca6.png"}}]); \ No newline at end of file diff --git a/assets/js/177.7a5ed2e7.js b/assets/js/177.908d964b.js similarity index 99% rename from assets/js/177.7a5ed2e7.js rename to assets/js/177.908d964b.js index 41cf37ec32..42774c1030 100644 --- a/assets/js/177.7a5ed2e7.js +++ b/assets/js/177.908d964b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[177],{1125:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acousticscannning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acousticscannning"}},[e._v("#")]),e._v(" AcousticScannning")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The purpose of this component is to provide a stepwise, voice assisted selection of a large number of options. Examples for use cases are the selection of individual letters for text composition or selection of spoken phrases (eg. for environmental control via the amazon echo device). The component uses the MaryTTS text-to-speech library which supports multiple languages and voices. Currently, the component is in beta stage and only one english female voice and one german male voice are included.")]),e._v(" "),t("p",[e._v("The component provides up to 6 selectionSets. A selectionSet contains a number of individal items, seperated by commas (e.g. a number of letters for spelling words). When a selectionSet is started (by an incoming event), every selection item is spoken with an adjustable pause between the items. If an event is received at the “selection” event listener port during the presentation or pause time of a particular item, this item is added to the “preview string” output port. When the preview string contains the finalized word/phrase/sentence, it can be sent to the “selection” output port.")]),e._v(" "),t("p",[e._v("Additional functionalities can be given to the selection items via commands strings which are added to a selection item (seperated by the #-character). Supported command strings allow the deletion of the last character, the speaking of the currently composed text and other functions which are described below, thereby increasing the flexibility of the plugin. For more information see the demo model (ACS/models/componentTests/processors/AcousticScanning_test.acs)")]),e._v(" "),t("p",[t("img",{attrs:{src:n(682),alt:"Screenshot: AcousticScanning plugin",title:"Screenshot: AcousticScanning plugin"}})]),e._v(" "),t("p",[e._v("AcousticScanning plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("loadSetFile [string]:")]),e._v(" Path/name of a file which contains alternative selectionSets (which override the default selectionSets defined in the properties “selectionSet1”-“selectionSet6”. The selectionSets are provided as individual lines, terminated with a newline character. (This functionality is currently not supported.)")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("selectionPreview [string]:")]),e._v(" Output of preview string. This output port shows the current word/phrase/sentence which is composed or spelled using the stepwise scanning process.")]),e._v(" "),t("li",[t("strong",[e._v("selection [string]:")]),e._v(" The finalized word/phrase/sentence is sent to this output port when an item containing the #commit command string has been selected.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("selectionSet1-selectionSet6:")]),e._v(" an incoming event starts the acoustic scanning process of the given selection set.")]),e._v(" "),t("li",[t("strong",[e._v("select:")]),e._v(" selects the currently spoken item and adds the item text to the preview string (or executes the command associated with the selected item)")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event1-event10:")]),e._v(" These events are triggerd if the currently selected item contains the command string “event1”, “event2”, etc.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("language [string]:")]),e._v(" The languge of the text-to-speech engine (currently only “en” and “de” are supported).")]),e._v(" "),t("li",[t("strong",[e._v("voice [string]:")]),e._v(" The voice for the given language (currently this property is ignored, there is only one german and one english voice which are selected automatically due to the value of the language property).")]),e._v(" "),t("li",[t("strong",[e._v("selectionSet1 [string]:")]),e._v(" The items of selectionSet1, separated by commas.")]),e._v(" "),t("li",[t("strong",[e._v("selectionSet2-selectionSet6 [string]:")]),e._v(" The items of selection sets 2-6. In the following a list of all currently supported command strings is given:\n"),t("ul",[t("li",[t("em",[e._v("#del:")]),e._v(" deletes one charater from the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#clear:")]),e._v(" clear the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#space:")]),e._v(" adds a space key to the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#enter:")]),e._v(" adds the text {ENTER} to the preview string (this generates an enter key when sent to the keyboard actuator plugin).")]),e._v(" "),t("li",[t("em",[e._v("#speak:")]),e._v(" speaks the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#commit:")]),e._v(" sends the preview string to the output port “selection” and clears the preview string. This can be used to write the composed word/phrase to a keybaord actuator etc.")]),e._v(" "),t("li",[t("em",[e._v("#event1:")]),e._v(" sends an event via event trigger port “event1”.")]),e._v(" "),t("li",[t("em",[e._v("#event2:")]),e._v(" sends an event via event trigger port “event2”.")]),e._v(" "),t("li",[t("em",[e._v("#event3 - #event10:")]),e._v(" sends an events via event trigger ports event2 - 10.")]),e._v(" "),t("li",[t("em",[e._v("other text which follows a hash character will be spoken when the item is selected")])])])]),e._v(" "),t("li",[t("em",[e._v("An example of a valid selection set:")]),e._v(" “a,b,c,d,e,f,g” for the first 7 letters of the alphabet.")]),e._v(" "),t("li",[t("em",[e._v("Another example including command strings:")]),e._v(" “backspace#del,start music#event1”.")]),e._v(" "),t("li",[t("em",[e._v("Note")]),e._v(" that the selectionSet is specified without the double quotation marks and without spaces after the commas.")])])])}),[],!1,null,null,null);t.default=s.exports},682:function(e,t,n){e.exports=n.p+"assets/img/acousticscanning.edcc95ce.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[177],{1124:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acousticscannning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acousticscannning"}},[e._v("#")]),e._v(" AcousticScannning")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The purpose of this component is to provide a stepwise, voice assisted selection of a large number of options. Examples for use cases are the selection of individual letters for text composition or selection of spoken phrases (eg. for environmental control via the amazon echo device). The component uses the MaryTTS text-to-speech library which supports multiple languages and voices. Currently, the component is in beta stage and only one english female voice and one german male voice are included.")]),e._v(" "),t("p",[e._v("The component provides up to 6 selectionSets. A selectionSet contains a number of individal items, seperated by commas (e.g. a number of letters for spelling words). When a selectionSet is started (by an incoming event), every selection item is spoken with an adjustable pause between the items. If an event is received at the “selection” event listener port during the presentation or pause time of a particular item, this item is added to the “preview string” output port. When the preview string contains the finalized word/phrase/sentence, it can be sent to the “selection” output port.")]),e._v(" "),t("p",[e._v("Additional functionalities can be given to the selection items via commands strings which are added to a selection item (seperated by the #-character). Supported command strings allow the deletion of the last character, the speaking of the currently composed text and other functions which are described below, thereby increasing the flexibility of the plugin. For more information see the demo model (ACS/models/componentTests/processors/AcousticScanning_test.acs)")]),e._v(" "),t("p",[t("img",{attrs:{src:n(682),alt:"Screenshot: AcousticScanning plugin",title:"Screenshot: AcousticScanning plugin"}})]),e._v(" "),t("p",[e._v("AcousticScanning plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("loadSetFile [string]:")]),e._v(" Path/name of a file which contains alternative selectionSets (which override the default selectionSets defined in the properties “selectionSet1”-“selectionSet6”. The selectionSets are provided as individual lines, terminated with a newline character. (This functionality is currently not supported.)")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("selectionPreview [string]:")]),e._v(" Output of preview string. This output port shows the current word/phrase/sentence which is composed or spelled using the stepwise scanning process.")]),e._v(" "),t("li",[t("strong",[e._v("selection [string]:")]),e._v(" The finalized word/phrase/sentence is sent to this output port when an item containing the #commit command string has been selected.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("selectionSet1-selectionSet6:")]),e._v(" an incoming event starts the acoustic scanning process of the given selection set.")]),e._v(" "),t("li",[t("strong",[e._v("select:")]),e._v(" selects the currently spoken item and adds the item text to the preview string (or executes the command associated with the selected item)")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("event1-event10:")]),e._v(" These events are triggerd if the currently selected item contains the command string “event1”, “event2”, etc.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("language [string]:")]),e._v(" The languge of the text-to-speech engine (currently only “en” and “de” are supported).")]),e._v(" "),t("li",[t("strong",[e._v("voice [string]:")]),e._v(" The voice for the given language (currently this property is ignored, there is only one german and one english voice which are selected automatically due to the value of the language property).")]),e._v(" "),t("li",[t("strong",[e._v("selectionSet1 [string]:")]),e._v(" The items of selectionSet1, separated by commas.")]),e._v(" "),t("li",[t("strong",[e._v("selectionSet2-selectionSet6 [string]:")]),e._v(" The items of selection sets 2-6. In the following a list of all currently supported command strings is given:\n"),t("ul",[t("li",[t("em",[e._v("#del:")]),e._v(" deletes one charater from the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#clear:")]),e._v(" clear the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#space:")]),e._v(" adds a space key to the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#enter:")]),e._v(" adds the text {ENTER} to the preview string (this generates an enter key when sent to the keyboard actuator plugin).")]),e._v(" "),t("li",[t("em",[e._v("#speak:")]),e._v(" speaks the preview string.")]),e._v(" "),t("li",[t("em",[e._v("#commit:")]),e._v(" sends the preview string to the output port “selection” and clears the preview string. This can be used to write the composed word/phrase to a keybaord actuator etc.")]),e._v(" "),t("li",[t("em",[e._v("#event1:")]),e._v(" sends an event via event trigger port “event1”.")]),e._v(" "),t("li",[t("em",[e._v("#event2:")]),e._v(" sends an event via event trigger port “event2”.")]),e._v(" "),t("li",[t("em",[e._v("#event3 - #event10:")]),e._v(" sends an events via event trigger ports event2 - 10.")]),e._v(" "),t("li",[t("em",[e._v("other text which follows a hash character will be spoken when the item is selected")])])])]),e._v(" "),t("li",[t("em",[e._v("An example of a valid selection set:")]),e._v(" “a,b,c,d,e,f,g” for the first 7 letters of the alphabet.")]),e._v(" "),t("li",[t("em",[e._v("Another example including command strings:")]),e._v(" “backspace#del,start music#event1”.")]),e._v(" "),t("li",[t("em",[e._v("Note")]),e._v(" that the selectionSet is specified without the double quotation marks and without spaces after the commas.")])])])}),[],!1,null,null,null);t.default=s.exports},682:function(e,t,n){e.exports=n.p+"assets/img/acousticscanning.edcc95ce.jpg"}}]); \ No newline at end of file diff --git a/assets/js/178.adb13763.js b/assets/js/178.87887f38.js similarity index 96% rename from assets/js/178.adb13763.js rename to assets/js/178.87887f38.js index 960f55d021..9d23f53e66 100644 --- a/assets/js/178.adb13763.js +++ b/assets/js/178.87887f38.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[178],{1129:function(t,i,e){"use strict";e.r(i);var r=e(2),s=Object(r.a)({},(function(){var t=this,i=t._self._c;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"amplifier"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#amplifier"}},[t._v("#")]),t._v(" Amplifier")]),t._v(" "),i("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),i("p",[t._v("This component takes an input and multiplies it with a gain factor set in the properties. It can be used to amplify or reduce signal values or to invert them.")]),t._v(" "),i("p",[i("img",{attrs:{src:e(692),alt:"Screenshot: Amplifier plugin",title:"Screenshot: Amplifier plugin"}})]),t._v(" "),i("p",[t._v("Amplifier plugin")]),t._v(" "),i("h2",{attrs:{id:"input-port-description"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),i("ul",[i("li",[i("strong",[t._v("sigIn [double]:")]),t._v(" The input value to be amplified.")])]),t._v(" "),i("h2",{attrs:{id:"output-port-description"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),i("ul",[i("li",[i("strong",[t._v("sigOut [double]:")]),t._v(" The amplified output value.")])]),t._v(" "),i("h2",{attrs:{id:"properties"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),i("ul",[i("li",[i("strong",[t._v("factor [double]:")]),t._v(" The gain factor that inputs are multiplied with.")])])])}),[],!1,null,null,null);i.default=s.exports},692:function(t,i,e){t.exports=e.p+"assets/img/amplifier.244b30ab.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[178],{1128:function(t,i,e){"use strict";e.r(i);var r=e(2),s=Object(r.a)({},(function(){var t=this,i=t._self._c;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"amplifier"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#amplifier"}},[t._v("#")]),t._v(" Amplifier")]),t._v(" "),i("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),i("p",[t._v("This component takes an input and multiplies it with a gain factor set in the properties. It can be used to amplify or reduce signal values or to invert them.")]),t._v(" "),i("p",[i("img",{attrs:{src:e(692),alt:"Screenshot: Amplifier plugin",title:"Screenshot: Amplifier plugin"}})]),t._v(" "),i("p",[t._v("Amplifier plugin")]),t._v(" "),i("h2",{attrs:{id:"input-port-description"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),i("ul",[i("li",[i("strong",[t._v("sigIn [double]:")]),t._v(" The input value to be amplified.")])]),t._v(" "),i("h2",{attrs:{id:"output-port-description"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),i("ul",[i("li",[i("strong",[t._v("sigOut [double]:")]),t._v(" The amplified output value.")])]),t._v(" "),i("h2",{attrs:{id:"properties"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),i("ul",[i("li",[i("strong",[t._v("factor [double]:")]),t._v(" The gain factor that inputs are multiplied with.")])])])}),[],!1,null,null,null);i.default=s.exports},692:function(t,i,e){t.exports=e.p+"assets/img/amplifier.244b30ab.jpg"}}]); \ No newline at end of file diff --git a/assets/js/179.0cc0889e.js b/assets/js/179.49901c4d.js similarity index 97% rename from assets/js/179.0cc0889e.js rename to assets/js/179.49901c4d.js index 9e7714d018..03fd9ca968 100644 --- a/assets/js/179.0cc0889e.js +++ b/assets/js/179.49901c4d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[179],{1130:function(e,t,r){"use strict";r.r(t);var s=r(2),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"audio-selector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#audio-selector"}},[e._v("#")]),e._v(" Audio Selector")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("This plug-in manages the audio tracks present in the data/music folder and different external request working as an interface with the wavefileplayer plug-in")]),e._v(" "),t("p",[t("img",{attrs:{src:r(693),alt:"Screenshot: AudioSelector plugin",title:"Screenshot: AudioSelector plugin"}})]),e._v(" "),t("p",[e._v("AudioSelector plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("To work along with wavefileplayer plug-in.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("TrackName [string]:")]),e._v(" of the Track to be played. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("StartStop:")]),e._v(" Togle between play stop state request.")]),e._v(" "),t("li",[t("strong",[e._v("NextTrack:")]),e._v(" Play next track request.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeUp:")]),e._v(" Put the volume up request.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeDown:")]),e._v(" Put the volume down request.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Play:")]),e._v(" Play Track Request.")]),e._v(" "),t("li",[t("strong",[e._v("Pause:")]),e._v(" Stop Track Requests.")]),e._v(" "),t("li",[e._v("VolumeUp: Volume Up request.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeDown:")]),e._v(" Volume Down Request.")])])])}),[],!1,null,null,null);t.default=o.exports},693:function(e,t,r){e.exports=r.p+"assets/img/audioselector.7fa0cbca.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[179],{1129:function(e,t,r){"use strict";r.r(t);var s=r(2),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"audio-selector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#audio-selector"}},[e._v("#")]),e._v(" Audio Selector")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("This plug-in manages the audio tracks present in the data/music folder and different external request working as an interface with the wavefileplayer plug-in")]),e._v(" "),t("p",[t("img",{attrs:{src:r(693),alt:"Screenshot: AudioSelector plugin",title:"Screenshot: AudioSelector plugin"}})]),e._v(" "),t("p",[e._v("AudioSelector plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("To work along with wavefileplayer plug-in.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("TrackName [string]:")]),e._v(" of the Track to be played. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("StartStop:")]),e._v(" Togle between play stop state request.")]),e._v(" "),t("li",[t("strong",[e._v("NextTrack:")]),e._v(" Play next track request.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeUp:")]),e._v(" Put the volume up request.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeDown:")]),e._v(" Put the volume down request.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Play:")]),e._v(" Play Track Request.")]),e._v(" "),t("li",[t("strong",[e._v("Pause:")]),e._v(" Stop Track Requests.")]),e._v(" "),t("li",[e._v("VolumeUp: Volume Up request.")]),e._v(" "),t("li",[t("strong",[e._v("VolumeDown:")]),e._v(" Volume Down Request.")])])])}),[],!1,null,null,null);t.default=o.exports},693:function(e,t,r){e.exports=r.p+"assets/img/audioselector.7fa0cbca.jpg"}}]); \ No newline at end of file diff --git a/assets/js/18.5264ce32.js b/assets/js/18.dec6a7c9.js similarity index 97% rename from assets/js/18.5264ce32.js rename to assets/js/18.dec6a7c9.js index b40ad342be..aec7f9eefe 100644 --- a/assets/js/18.5264ce32.js +++ b/assets/js/18.dec6a7c9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{1053:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"input-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-options"}},[e._v("#")]),e._v(" Input Options")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Y0itTyz-D5Y&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=5&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Overview input options"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("This chapter is about how grid elements can be selected with different input modalities.")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("p",[e._v("Clicking on Button “Input Options” in "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#main---view"}},[e._v("Main view")]),e._v(" opens a menu with the following entries:")],1),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Mouse/Touch input:")]),e._v(" options for input types like normal mouse click, tap or hovering")]),e._v(" "),t("li",[t("strong",[e._v("Scanning:")]),e._v(" Input method for 1-2 input events, subsequently select groups of elements until one element is chosen")]),e._v(" "),t("li",[t("strong",[e._v("Direction input:")]),e._v(" Input method for 2-5 input events, 1-4 input events for navigating in different directions, 1 input event for selecting an element")]),e._v(" "),t("li",[t("strong",[e._v("Huffman input:")]),e._v(" 2-9 input events, assigns a code to each grid element which consists of an ordered sequence of the available input events")]),e._v(" "),t("li",[t("strong",[e._v("Sequential input:")]),e._v(" 2 input events, one for navigating to the next element one for selecting the current element")])]),e._v(" "),t("h2",{attrs:{id:"introduction-to-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction-to-input-events"}},[e._v("#")]),e._v(" Introduction to input events")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=ZsBsifa2kwc&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=6&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input actions and input events"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("An input event in general is any kind of defined, single user interaction. AsTeRICS Grid currently supports the following input event types:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Keypress, Mouseclick, Tap:")]),e._v(" event of pressing a key on the keyboard, click on the mouse or tap on the screen, also can be an external button press using additional external hardware")]),e._v(" "),t("li",[t("strong",[e._v("Microphone input:")]),e._v(" event from microphone input, e.g. reaching a threshold of microphone input volume at a specific frequency.")]),e._v(" "),t("li",[t("strong",[e._v("AsTeRICS ARE event:")]),e._v(" any event that is generated by a running model within the AsTeRICS Framework. This type of event is very flexible and can be e.g. eye movement, head movement or a signal of an EMG muscle activity sensor.")])]),e._v(" "),t("p",[e._v("These types of input events can be used in all input methods except "),t("em",[e._v("Mouse/Touch input")]),e._v(" where the input events are mouse movements and click/tap events.")]),e._v(" "),t("h3",{attrs:{id:"keypress-mouseclick-tap-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keypress-mouseclick-tap-input-events"}},[e._v("#")]),e._v(" “Keypress, Mouseclick, Tap” input events")]),e._v(" "),t("p",[e._v("Figure 1 shows the configuration possibilities of a “keypress, mouseclick, tap” event (f.e. choose Scanning as Input option and enable Scanning):")]),e._v(" "),t("p",[t("img",{attrs:{src:n(521),alt:"input event keypress options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 1: Configuration of a “keypress, mouseclick, tap” input event")])]),e._v(" "),t("p",[e._v("These are the shown elements and options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Dropdown")]),e._v(": allows to choose between "),t("em",[e._v("Keypress, Mouseclick, Tap")]),e._v(", "),t("em",[e._v("Microphone input")]),e._v(" or "),t("em",[e._v("AsTeRICS ARE")]),e._v(" event (or "),t("em",[e._v("not defined")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("Record action")]),e._v(": click in order to start action record mode. A subsequent keypress on the keyboard, mouse click or tap on the screen will be recorded and defines which user action is used for the event.")]),e._v(" "),t("li",[t("strong",[e._v("Current action")]),e._v(": prints the currently recorded/used (e.g. "),t("code",[e._v("Space")]),e._v(").")]),e._v(" "),t("li",[t("strong",[e._v("More")]),e._v(": an accordion of additional options that can be opened/closed by a click")]),e._v(" "),t("li",[t("strong",[e._v("Timeout")]),e._v(": minimum pause in milliseconds between two subsequent actions (if faster, the second action is ignored). Mandatory if different "),t("em",[e._v("Repetitions")]),e._v(" are set for the same key in order to wait for possible upcoming repetitions before performing the action.")]),e._v(" "),t("li",[t("strong",[e._v("Repetitions")]),e._v(": the number of times the key has to be pressed in order to perform the action")]),e._v(" "),t("li",[t("strong",[e._v("Hold duration")]),e._v(": time in milliseconds how long a key has to be pressed in order to perform the action")])]),e._v(" "),t("p",[e._v("Note that it’s not possible to set both "),t("em",[e._v("Repetitions")]),e._v(" greater 1 and "),t("em",[e._v("Hold duration")]),e._v(" greater 0 at the same time.")]),e._v(" "),t("h4",{attrs:{id:"usage-examples"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage-examples"}},[e._v("#")]),e._v(" Usage examples")]),e._v(" "),t("p",[e._v("Here are some examples for the properties "),t("em",[e._v("Timeout")]),e._v(", "),t("em",[e._v("Repetitions")]),e._v(" and "),t("em",[e._v("Hold duration")]),e._v(" that could be useful in real use cases:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Different actions with same key (e.g. Space), distinction by hold duration:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Action 1")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=0")]),e._v(" "),t("li",[t("strong",[e._v("Action 2")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=400")]),e._v(" "),t("li",[e._v("Pressing the key once performs action 1, Pressing and holding the key for 400ms performs action 2")]),e._v(" "),t("li",[e._v("This is the default configuration for input method "),t("em",[e._v("Scanning")]),e._v(" where this configuration can be tested")])])]),e._v(" "),t("li",[t("strong",[e._v("Different actions with same key (e.g. Space), distinction by repetition:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Action 1")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=0")]),e._v(" "),t("li",[t("strong",[e._v("Action 2")]),e._v(": Timeout=300, Repetitions=2, Hold Duration=0")]),e._v(" "),t("li",[e._v("Pressing the key once and waiting 300ms performs action 1, pressing the key twice (with less than 300ms pause) performs action 2")])])]),e._v(" "),t("li",[t("strong",[e._v("Filter unintended keypresses")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("all actions")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=300")]),e._v(" "),t("li",[e._v("any unintended keypresses are ignored and actions are only performed if a key is pressed longer than 300ms")])])])]),e._v(" "),t("h3",{attrs:{id:"microphone-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#microphone-input-events"}},[e._v("#")]),e._v(" Microphone input events")]),e._v(" "),t("p",[e._v("Figure 2 shows the configuration possibilities of a microphone input event:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(522),alt:"input event keypress options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 2: Configuration of a microphone input event")])]),e._v(" "),t("p",[e._v("These are the shown elements and options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Start/stop recording")]),e._v(": starts or stops recording from microphone. At the first time the browser will ask for permission to access the microphone. It’s required to see the live volume and frequency values below.")]),e._v(" "),t("li",[t("strong",[e._v("Volume threshold high")]),e._v(": the volume threshold for triggering a microphone event. If the volume level rises above this threshold, the microphone event is triggered.")]),e._v(" "),t("li",[t("strong",[e._v("Volume current value")]),e._v(": the current volume level recorded from microphone.")]),e._v(" "),t("li",[t("strong",[e._v("Volume threshold low")]),e._v(": after triggering a microphone event, the volume has to drop below this lower threshold before another microphone event will be triggered.")]),e._v(" "),t("li",[t("strong",[e._v("Frequency threshold high")]),e._v(": a microphone event is only triggered, if the frequency with the maximum volume is between "),t("em",[e._v("threshold low")]),e._v(" and "),t("em",[e._v("threshold high")]),e._v(". In this way it’s to some extent possible to distinguish between different sounds for triggering different actions.")]),e._v(" "),t("li",[t("strong",[e._v("Frequency current value")]),e._v(": the frequency of the current microphone input, where the volume is highest. Playing a 440 Hz note on a guitar will result in a value similar to 440 Hz.")]),e._v(" "),t("li",[t("strong",[e._v("Frequency threshold low")]),e._v(": see "),t("em",[e._v("Frequency threshold high")]),e._v(" above.")])]),e._v(" "),t("h3",{attrs:{id:"asterics-are-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-are-input-events"}},[e._v("#")]),e._v(" AsTeRICS ARE input events")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=P8s7Ylr1USM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=20&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS input events"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("AsTeRICS ARE input events are triggered by external events of a running "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" within the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-framework"}},[e._v("AsTeRICS Framework")]),e._v(".")],1),e._v(" "),t("p",[t("img",{attrs:{src:n(523),alt:"input event asterics are options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 3: Configuration of an AsTeRICS ARE input event")])]),e._v(" "),t("p",[e._v("Figure 3 shows the configuration of an AsTeRICS ARE input event (AsTeRICS ARE Event is selected as select element in Figure 1, (1)):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Dropdown")]),e._v(": allows to choose between "),t("em",[e._v("Keypress")]),e._v(" or "),t("em",[e._v("AsTeRICS ARE")]),e._v(" event (or not defined). Here, the AsTeRICS ARE event is selected.")]),e._v(" "),t("li",[t("strong",[e._v("Record ARE event")]),e._v(": start recording of AsTeRICS ARE events. Subsequently trigger the desired event in ARE in order to be recorded.")]),e._v(" "),t("li",[t("strong",[e._v("ARE URL")]),e._v(": the URL of the running AsTeRICS instance. If AsTeRICS ARE is running on the same computer this field can be empty.")]),e._v(" "),t("li",[t("strong",[e._v("List of events")]),e._v(": list of recorded ARE events. Any of these events triggers the currently configured action.")]),e._v(" "),t("li",[t("strong",[e._v("Recycle bin symbols")]),e._v(": a click on the recycle bin symbol next to a recorded event deletes it")])]),e._v(" "),t("h4",{attrs:{id:"example-of-using-an-asterics-are-event"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-of-using-an-asterics-are-event"}},[e._v("#")]),e._v(" Example of using an AsTeRICS ARE event")]),e._v(" "),t("p",[e._v("Follow these steps in order to set up an AsTeRICS Grid input method while using AsTeRICS ARE event for input:")]),e._v(" "),t("ol",[t("li",[e._v("Open the settings modal for the desired input method in AsTeRICS Grid")]),e._v(" "),t("li",[e._v("Start AsTeRICS ARE")]),e._v(" "),t("li",[e._v("Select "),t("em",[e._v("AsTeRICS ARE event")]),e._v(" for the desired input action in AsTeRICS Grid")]),e._v(" "),t("li",[e._v("Click on “Record ARE event” to start recording")]),e._v(" "),t("li",[e._v("Do any action in AsTeRICS ARE that tiggers an event, e.g. clicking on a button")]),e._v(" "),t("li",[e._v("The recorded event should be shown in AsTeRICS Grid")]),e._v(" "),t("li",[e._v("Save and close the input options in AsTeRICS Grid by clicking “OK”")]),e._v(" "),t("li",[e._v("Redo the same action in AsTeRICS ARE as before - it should trigger the configured input action in AsTeRICS Grid")])]),e._v(" "),t("h2",{attrs:{id:"input-options-modals"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-options-modals"}},[e._v("#")]),e._v(" Input options modals")]),e._v(" "),t("p",[e._v("Each input option dialog opened by “"),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#main---view"}},[e._v("Main view")]),e._v(" - Input options” has about the same structure, see Figure 4 (can be seen as shown below when input option (here: Scanning) is enabled):")],1),e._v(" "),t("p",[t("img",{attrs:{src:n(524),alt:"general structure of an input option dialog"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 4: General structure of an input option dialog, when input option is enabled")])]),e._v(" "),t("p",[e._v("These are the basic elements of an input option dialog as in figure 4:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Enable checkbox")]),e._v(": Generally enable or disable this input method. The subsequent sections are only visible if the input method is enabled.")]),e._v(" "),t("li",[t("strong",[e._v("Input section")]),e._v(": configure input actions like described in section "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("Introduction to input events")])],1),e._v(" "),t("li",[t("strong",[e._v("Advanced settings")]),e._v(": configure advanced settings for this input method")]),e._v(" "),t("li",[t("strong",[e._v("Test configuration")]),e._v(": opens a 10x10 test grid where the current input configuration can be tested")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": close the dialog discarding changes")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": close the dialog saving and applying changes")])]),e._v(" "),t("h3",{attrs:{id:"mouse-touch-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mouse-touch-input"}},[e._v("#")]),e._v(" Mouse/Touch input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=umxrgE0sUjw&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=7&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mouse and touch input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[t("em",[e._v("Mouse/Touch input")]),e._v(" has the following options:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select with mouse click (or tap)")]),e._v(": if checked, elements can be selected by a simple mouse click or tap on a touchscreen")]),e._v(" "),t("li",[t("strong",[e._v("Select with double click (or tap)")]),e._v(": if checked, elements can be selected by a double mouse click or tap on a touchscreen")]),e._v(" "),t("li",[t("strong",[e._v("Enable hovering")]),e._v(": enables hovering where elements are selected by moving the mouse on the element (=hovering) and waiting for some time. Hovering also works on touchscreens where the finger is held on an element for some time.\n"),t("ul",[t("li",[t("strong",[e._v("Hover time")]),e._v(": time in milliseconds to wait until a hovered element is selected. The value "),t("code",[e._v("0")]),e._v(" means that the hovered element is never selected.")]),e._v(" "),t("li",[t("strong",[e._v("Hide cursor")]),e._v(": if checked the cursor is hidden and not visible while hovering above elements. This can be useful e.g. for eye-tracking where the cursor may be distracting.")]),e._v(" "),t("li",[t("strong",[e._v("Read out active element")]),e._v(": if checked the label of the hovered element is directly read out if the active element has changed")]),e._v(" "),t("li",[t("strong",[e._v("Disable hover pane")]),e._v(": Normally (without activating this option) it is possible to continue hovering after navigation to another grid without lifting the finger (on a touchscreen). Technically this function is implented by a global invisible hover pane., normally for hovering a global invisible hover pane is inserted. However this hover pane can cause problems in combination with a software controlled mouse cursor (emulated software mouse), because click actions may not reach the actual elements. In this case it might be useful / necessary to activate the function "),t("em",[e._v("Disable hover pane")]),e._v(".")])])])]),e._v(" "),t("h4",{attrs:{id:"advanced-setting-directly-select-element"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-setting-directly-select-element"}},[e._v("#")]),e._v(" Advanced setting “directly select element”")]),e._v(" "),t("p",[e._v("In Advanced Settings there is the additional option “"),t("em",[e._v("Directly select element on pressing mouse button (not waiting for complete click)")]),e._v("”. If it is enabled, the element is selected when pressing the mouse button, not when releasing the mouse button (which is default). For Touchscreens it’s similar: an element is selected directly at touching the screen, not after lifting the finger again (which is default). This can make sense for:")]),e._v(" "),t("ul",[t("li",[e._v("facilitating operation for people which can’t reliably “tap” (quickly put finger on and lifting the finger afterwards) on the touchscreen.")]),e._v(" "),t("li",[e._v("when using AsTeRICS Grid with an eyetracker and an additional button for clicking / selecting. Since the mouse controlled via an eyetracker always moves a little bit, in default mode it can happen that instead of selecting an element, the image of an element is dragged. This can be prevented if the selection of the element is done directly at pressing the mouse button.")])]),e._v(" "),t("h3",{attrs:{id:"scanning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#scanning"}},[e._v("#")]),e._v(" Scanning")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=L7OF1lKZbLs&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=8&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method scanning"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The input method "),t("em",[e._v("Scanning")]),e._v(" is suited to be used with 1-2 input events. It works as follows:")]),e._v(" "),t("ol",[t("li",[e._v("Available elements are divided into groups")]),e._v(" "),t("li",[e._v("One group is highlighted")]),e._v(" "),t("li",[e._v("Group containing the desired element is selected")]),e._v(" "),t("li",[e._v("Remaining elements are again divided into groups")]),e._v(" "),t("li",[e._v("Steps 3 and 4 are repeated until the single desired element is selected")])]),e._v(" "),t("h4",{attrs:{id:"input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(" for "),t("em",[e._v("Scanning")]),e._v(":")],1),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select element")]),e._v(": The select element selects the current group or element, it can be chosen by clicking on "),t("em",[e._v("Record key")]),e._v(" and afterwards clicking on the desired key.")]),e._v(" "),t("li",[t("strong",[e._v("Next scanning group")]),e._v(": Here, the key for moveing the focus to the next group or element can be chosen. This input event is optional and can be omitted if timed scanning is activated (see Advanced settings). As above, the desired key shall be tapped after clicking on "),t("em",[e._v("Record key")]),e._v(".")])]),e._v(" "),t("h4",{attrs:{id:"advanced-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the advanced settings for "),t("em",[e._v("Scanning")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Vertical scanning")]),e._v(": determines the orientation element groups are build:\n"),t("ul",[t("li",[t("strong",[e._v("vertical")]),e._v(" (checked): groups are built vertical, moving left to right "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:n(525),alt:"vertical scanning",width:"130"}})])]),e._v(" "),t("li",[t("strong",[e._v("horizontal")]),e._v(" (unchecked): groups are built horizontal, moving top to bottom "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{staticStyle:{"margin-left":"2em"},attrs:{src:n(526),alt:"horizontal scanning",width:"130"}})])])])]),e._v(" "),t("li",[t("strong",[e._v("Binary scanning")]),e._v(": defines if scanning groups are rows/columns or one half of existing elements:\n"),t("ul",[t("li",[t("strong",[e._v("binary")]),e._v(" (checked): groups are built by separating remaining elements in two halves each scanning step "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:n(527),alt:"binary scanning",width:"130"}})])]),e._v(" "),t("li",[t("strong",[e._v("non-binary")]),e._v(" (unchecked): groups are built row/column by row/column "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{staticStyle:{"margin-left":"2em"},attrs:{src:n(528),alt:"non-binary scanning",width:"130"}})])])])]),e._v(" "),t("li",[t("strong",[e._v("Start manually by user input event")]),e._v(": if checked, scanning will only start after a user input event, e.g. pressing a key / button.")]),e._v(" "),t("li",[t("strong",[e._v("Scanning rounds until going back")]),e._v(": the number of times the current scanning elements are iterated, until scanning goes back one step. For row/column scanning a value of "),t("code",[e._v("3")]),e._v(" means that after selecting a row, the selected row is iterated 3 times and if no element is selected, scanning restarts for selecting a different row. If "),t("em",[e._v("start manually by user event")]),e._v(" is checked, this number also defines the number of iterations on the top level until scanning is stopped.")]),e._v(" "),t("li",[t("strong",[e._v("Automatic (timed) scanning")]),e._v(": if checked the active scanning group is automatically changed after a specific time, making it possible to use scanning just with a single input event\n"),t("ul",[t("li",[t("strong",[e._v("Scanning time")]),e._v(": time to wait before highlighting the next scanning group (in milliseconds)")]),e._v(" "),t("li",[t("strong",[e._v("Time factor first element")]),e._v(": the time to keep the first scanning group (e.g. first row/column) highlighted is “Scanning Time” multiplied with this factor. Increasing the time for the first group often improves usability.")])])])]),e._v(" "),t("h3",{attrs:{id:"direction-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#direction-input"}},[e._v("#")]),e._v(" Direction Input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Ui27d_ZlFz8&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=9&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method direction input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The input method "),t("em",[e._v("Direction Input")]),e._v(" is suited to be used with 2-5 "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(". It gives the possibility to simply navigate through elements in up to 4 directions.")],1),e._v(" "),t("h4",{attrs:{id:"input-events-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events-2"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible input events for "),t("em",[e._v("Direction Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select element")]),e._v(": selects the currently highlighted element")]),e._v(" "),t("li",[t("strong",[e._v("Go right")]),e._v(": navigate to the right")]),e._v(" "),t("li",[t("strong",[e._v("Go left")]),e._v(": navigate to the left")]),e._v(" "),t("li",[t("strong",[e._v("Go down")]),e._v(": navigate down")]),e._v(" "),t("li",[t("strong",[e._v("Go up")]),e._v(": navigate up")])]),e._v(" "),t("p",[e._v("The desired keys for each input event can be selected by clicking first on "),t("em",[e._v("Record key")]),e._v(" and consecutively clicking on the desired key.")]),e._v(" "),t("h4",{attrs:{id:"advanced-settings-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings-2"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the Advanced settings for "),t("em",[e._v("Direction Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Wrap around")]),e._v(": if checked navigation continues at the opposite border, so e.g. moving left on the most left element sets the focus to the most right element")]),e._v(" "),t("li",[t("strong",[e._v("Go to start position after select")]),e._v(": if checked the focused element is set to the first element after an element was selected respective")])]),e._v(" "),t("h3",{attrs:{id:"huffman-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#huffman-input"}},[e._v("#")]),e._v(" Huffman Input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=2EEmOdOQk98&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=10&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method huffman input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The input method "),t("em",[e._v("huffman input")]),e._v(" is suited to be used with 2-9 "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(". It assigns an unique code of input event sequences to each element. Triggering the respective input event sequence directly selects an element.")],1),e._v(" "),t("p",[e._v("This is an example for 2 input events and 4 elements:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Element A")]),e._v(" has code "),t("code",[e._v("11")])]),e._v(" "),t("li",[t("strong",[e._v("Element B")]),e._v(" has code "),t("code",[e._v("12")])]),e._v(" "),t("li",[t("strong",[e._v("Element C")]),e._v(" has code "),t("code",[e._v("21")])]),e._v(" "),t("li",[t("strong",[e._v("Element D")]),e._v(" has code "),t("code",[e._v("22")])])]),e._v(" "),t("p",[e._v("Triggering input event "),t("code",[e._v("1")]),e._v(" and then input event "),t("code",[e._v("2")]),e._v(" would directly select "),t("em",[e._v("Element B")]),e._v(".")]),e._v(" "),t("p",[e._v("Huffman input uses the theory of "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Huffman_coding#n-ary_Huffman_coding",target:"_blank",rel:"noopener noreferrer"}},[e._v("n-ary huffman codes"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"input-events-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events-3"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible input events for "),t("em",[e._v("Huffman Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Input [1-9]")]),e._v(": defines the input events of numbers "),t("code",[e._v("1-9")]),e._v(" that are used to enter the codes for selecting the elements. At least two input events have to be defined.")])]),e._v(" "),t("h4",{attrs:{id:"advanced-settings-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings-3"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the Advanced settings for "),t("em",[e._v("Huffman Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Show numbers")]),e._v(": if checked the assigned codes are shown at the bottom of each element")]),e._v(" "),t("li",[t("strong",[e._v("Show colors")]),e._v(": if checked a color code is shown at the bottom of each element")]),e._v(" "),t("li",[t("strong",[e._v("Color whole element")]),e._v(": if checked the all grid elements are fully colored in the color of the next input event to trigger in order to select the element of interest")]),e._v(" "),t("li",[t("strong",[e._v("Mark inactive elements")]),e._v(": if checked all impossible elements are grayed out, so that e.g. starting input of the code with "),t("code",[e._v("1")]),e._v(" grays out all elements with codes that aren’t starting with "),t("code",[e._v("1")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Timeout")]),e._v(": time of inactivity (in milliseconds) for resetting the current, incomplete input. So if the first digit of the code "),t("code",[e._v("1")]),e._v(" was typed accidentally the user has to wait this time in order to be able to restart with another code. Simultaneously this is the time the user has to input the next digit of the code. If set to "),t("code",[e._v("0")]),e._v(" the timeout is disabled.")]),e._v(" "),t("li",[t("strong",[e._v("Number of elements")]),e._v(": by default (if this property is set to "),t("code",[e._v("0")]),e._v(") the codes are automatically generated based on the number of elements in the current grid. This means that in one grid the n-th element could have a different code than in an other grid. To prevent this the "),t("code",[e._v("number of elements")]),e._v(" property can be set to the maximum number of elements that are existing in any grid. Therefore in every grid the n-th element will have the same code.")]),e._v(" "),t("li",[t("strong",[e._v("Color[1-n]")]),e._v(": select the colors of the input events. If e.g. three inputs 1-4 are connected to a red, yellow, green and blue button, the colors can be adapted here in order to match the button colors. Default colors are taken from the "),t("a",{attrs:{href:"https://davidmathlogic.com/colorblind/",target:"_blank",rel:"noopener noreferrer"}},[e._v("“Wong” color pallete"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"sequential-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sequential-input"}},[e._v("#")]),e._v(" Sequential Input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=plpOzwMUahw&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=11&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method sequential input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The sequential input method can be used with 2-3 "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(". 2 input events are necessary, one (Previous element) is optional. The sequential input sequentially focuses all elements and afterwards restarts at the first element.")],1),e._v(" "),t("h4",{attrs:{id:"input-events-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events-4"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible input events for "),t("em",[e._v("Sequential Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Next element")]),e._v(": moves the focus to the next element. If focus is currently on the last element, the first element will be focused.")]),e._v(" "),t("li",[t("strong",[e._v("Previous Element")]),e._v(" (optional): moves the focus to the previous element. If focus is currently on the first element, the last element will be focused.")]),e._v(" "),t("li",[t("strong",[e._v("Select element")]),e._v(": selects the element that is currently focused")])]),e._v(" "),t("p",[e._v("The desired keys for each input event can be selected by clicking first on "),t("em",[e._v("Record key")]),e._v(" and consecutively clicking on the desired key.")]),e._v(" "),t("h4",{attrs:{id:"advanced-settings-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings-4"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the Advanced settings for "),t("em",[e._v("Sequential Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Go to start position after select")]),e._v(": if checked, the first element is highlighted after selecting an element. Otherwise focus stays on the current element after selection.")]),e._v(" "),t("li",[t("strong",[e._v("Start manually by user input event")]),e._v(": if checked, the input method will only start after a user input event, e.g. pressing a key / button.")]),e._v(" "),t("li",[t("strong",[e._v("Scanning rounds until stop")]),e._v(": the number of times all elements are iterated, until the input method is stopped. Only takes effect if "),t("em",[e._v("start manually by user input event")]),e._v(" is active.")]),e._v(" "),t("li",[t("strong",[e._v("Automatic (timed) sequential input")]),e._v(": if checked the active element is automatically changed after a specific time, making it possible to use this input just with a single input event\n"),t("ul",[t("li",[t("strong",[e._v("Scanning time")]),e._v(": time to wait before highlighting the next element (in milliseconds)")]),e._v(" "),t("li",[t("strong",[e._v("Time factor first element")]),e._v(": the time to keep the first element highlighted is “Scanning Time” multiplied with this factor. Increasing the time for the first element often improves usability.")])])])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=s.exports},521:function(e,t,n){e.exports=n.p+"assets/img/input_channel_keyboard_en1.962335af.jpg"},522:function(e,t,n){e.exports=n.p+"assets/img/input_channel_mic_en.c03ecd8d.png"},523:function(e,t,n){e.exports=n.p+"assets/img/input_channel_are_en.43aab746.jpg"},524:function(e,t,n){e.exports=n.p+"assets/img/input_options_general_en.264c9e4c.jpg"},525:function(e,t,n){e.exports=n.p+"assets/img/scanning_vertical.9edd8062.gif"},526:function(e,t,n){e.exports=n.p+"assets/img/scanning_horizontal.b306105b.gif"},527:function(e,t){e.exports="data:image/gif;base64,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"},528:function(e,t,n){e.exports=n.p+"assets/img/scanning_non_binary.f5d202a9.gif"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{1051:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"input-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-options"}},[e._v("#")]),e._v(" Input Options")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Y0itTyz-D5Y&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=5&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Overview input options"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("This chapter is about how grid elements can be selected with different input modalities.")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("p",[e._v("Clicking on Button “Input Options” in "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#main---view"}},[e._v("Main view")]),e._v(" opens a menu with the following entries:")],1),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Mouse/Touch input:")]),e._v(" options for input types like normal mouse click, tap or hovering")]),e._v(" "),t("li",[t("strong",[e._v("Scanning:")]),e._v(" Input method for 1-2 input events, subsequently select groups of elements until one element is chosen")]),e._v(" "),t("li",[t("strong",[e._v("Direction input:")]),e._v(" Input method for 2-5 input events, 1-4 input events for navigating in different directions, 1 input event for selecting an element")]),e._v(" "),t("li",[t("strong",[e._v("Huffman input:")]),e._v(" 2-9 input events, assigns a code to each grid element which consists of an ordered sequence of the available input events")]),e._v(" "),t("li",[t("strong",[e._v("Sequential input:")]),e._v(" 2 input events, one for navigating to the next element one for selecting the current element")])]),e._v(" "),t("h2",{attrs:{id:"introduction-to-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction-to-input-events"}},[e._v("#")]),e._v(" Introduction to input events")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=ZsBsifa2kwc&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=6&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input actions and input events"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("An input event in general is any kind of defined, single user interaction. AsTeRICS Grid currently supports the following input event types:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Keypress, Mouseclick, Tap:")]),e._v(" event of pressing a key on the keyboard, click on the mouse or tap on the screen, also can be an external button press using additional external hardware")]),e._v(" "),t("li",[t("strong",[e._v("Microphone input:")]),e._v(" event from microphone input, e.g. reaching a threshold of microphone input volume at a specific frequency.")]),e._v(" "),t("li",[t("strong",[e._v("AsTeRICS ARE event:")]),e._v(" any event that is generated by a running model within the AsTeRICS Framework. This type of event is very flexible and can be e.g. eye movement, head movement or a signal of an EMG muscle activity sensor.")])]),e._v(" "),t("p",[e._v("These types of input events can be used in all input methods except "),t("em",[e._v("Mouse/Touch input")]),e._v(" where the input events are mouse movements and click/tap events.")]),e._v(" "),t("h3",{attrs:{id:"keypress-mouseclick-tap-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keypress-mouseclick-tap-input-events"}},[e._v("#")]),e._v(" “Keypress, Mouseclick, Tap” input events")]),e._v(" "),t("p",[e._v("Figure 1 shows the configuration possibilities of a “keypress, mouseclick, tap” event (f.e. choose Scanning as Input option and enable Scanning):")]),e._v(" "),t("p",[t("img",{attrs:{src:n(514),alt:"input event keypress options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 1: Configuration of a “keypress, mouseclick, tap” input event")])]),e._v(" "),t("p",[e._v("These are the shown elements and options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Dropdown")]),e._v(": allows to choose between "),t("em",[e._v("Keypress, Mouseclick, Tap")]),e._v(", "),t("em",[e._v("Microphone input")]),e._v(" or "),t("em",[e._v("AsTeRICS ARE")]),e._v(" event (or "),t("em",[e._v("not defined")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("Record action")]),e._v(": click in order to start action record mode. A subsequent keypress on the keyboard, mouse click or tap on the screen will be recorded and defines which user action is used for the event.")]),e._v(" "),t("li",[t("strong",[e._v("Current action")]),e._v(": prints the currently recorded/used (e.g. "),t("code",[e._v("Space")]),e._v(").")]),e._v(" "),t("li",[t("strong",[e._v("More")]),e._v(": an accordion of additional options that can be opened/closed by a click")]),e._v(" "),t("li",[t("strong",[e._v("Timeout")]),e._v(": minimum pause in milliseconds between two subsequent actions (if faster, the second action is ignored). Mandatory if different "),t("em",[e._v("Repetitions")]),e._v(" are set for the same key in order to wait for possible upcoming repetitions before performing the action.")]),e._v(" "),t("li",[t("strong",[e._v("Repetitions")]),e._v(": the number of times the key has to be pressed in order to perform the action")]),e._v(" "),t("li",[t("strong",[e._v("Hold duration")]),e._v(": time in milliseconds how long a key has to be pressed in order to perform the action")])]),e._v(" "),t("p",[e._v("Note that it’s not possible to set both "),t("em",[e._v("Repetitions")]),e._v(" greater 1 and "),t("em",[e._v("Hold duration")]),e._v(" greater 0 at the same time.")]),e._v(" "),t("h4",{attrs:{id:"usage-examples"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage-examples"}},[e._v("#")]),e._v(" Usage examples")]),e._v(" "),t("p",[e._v("Here are some examples for the properties "),t("em",[e._v("Timeout")]),e._v(", "),t("em",[e._v("Repetitions")]),e._v(" and "),t("em",[e._v("Hold duration")]),e._v(" that could be useful in real use cases:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Different actions with same key (e.g. Space), distinction by hold duration:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Action 1")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=0")]),e._v(" "),t("li",[t("strong",[e._v("Action 2")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=400")]),e._v(" "),t("li",[e._v("Pressing the key once performs action 1, Pressing and holding the key for 400ms performs action 2")]),e._v(" "),t("li",[e._v("This is the default configuration for input method "),t("em",[e._v("Scanning")]),e._v(" where this configuration can be tested")])])]),e._v(" "),t("li",[t("strong",[e._v("Different actions with same key (e.g. Space), distinction by repetition:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Action 1")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=0")]),e._v(" "),t("li",[t("strong",[e._v("Action 2")]),e._v(": Timeout=300, Repetitions=2, Hold Duration=0")]),e._v(" "),t("li",[e._v("Pressing the key once and waiting 300ms performs action 1, pressing the key twice (with less than 300ms pause) performs action 2")])])]),e._v(" "),t("li",[t("strong",[e._v("Filter unintended keypresses")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("all actions")]),e._v(": Timeout=0, Repetitions=1, Hold Duration=300")]),e._v(" "),t("li",[e._v("any unintended keypresses are ignored and actions are only performed if a key is pressed longer than 300ms")])])])]),e._v(" "),t("h3",{attrs:{id:"microphone-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#microphone-input-events"}},[e._v("#")]),e._v(" Microphone input events")]),e._v(" "),t("p",[e._v("Figure 2 shows the configuration possibilities of a microphone input event:")]),e._v(" "),t("p",[t("img",{attrs:{src:n(515),alt:"input event keypress options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 2: Configuration of a microphone input event")])]),e._v(" "),t("p",[e._v("These are the shown elements and options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Start/stop recording")]),e._v(": starts or stops recording from microphone. At the first time the browser will ask for permission to access the microphone. It’s required to see the live volume and frequency values below.")]),e._v(" "),t("li",[t("strong",[e._v("Volume threshold high")]),e._v(": the volume threshold for triggering a microphone event. If the volume level rises above this threshold, the microphone event is triggered.")]),e._v(" "),t("li",[t("strong",[e._v("Volume current value")]),e._v(": the current volume level recorded from microphone.")]),e._v(" "),t("li",[t("strong",[e._v("Volume threshold low")]),e._v(": after triggering a microphone event, the volume has to drop below this lower threshold before another microphone event will be triggered.")]),e._v(" "),t("li",[t("strong",[e._v("Frequency threshold high")]),e._v(": a microphone event is only triggered, if the frequency with the maximum volume is between "),t("em",[e._v("threshold low")]),e._v(" and "),t("em",[e._v("threshold high")]),e._v(". In this way it’s to some extent possible to distinguish between different sounds for triggering different actions.")]),e._v(" "),t("li",[t("strong",[e._v("Frequency current value")]),e._v(": the frequency of the current microphone input, where the volume is highest. Playing a 440 Hz note on a guitar will result in a value similar to 440 Hz.")]),e._v(" "),t("li",[t("strong",[e._v("Frequency threshold low")]),e._v(": see "),t("em",[e._v("Frequency threshold high")]),e._v(" above.")])]),e._v(" "),t("h3",{attrs:{id:"asterics-are-input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-are-input-events"}},[e._v("#")]),e._v(" AsTeRICS ARE input events")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=P8s7Ylr1USM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=20&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS input events"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("AsTeRICS ARE input events are triggered by external events of a running "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" within the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-framework"}},[e._v("AsTeRICS Framework")]),e._v(".")],1),e._v(" "),t("p",[t("img",{attrs:{src:n(516),alt:"input event asterics are options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 3: Configuration of an AsTeRICS ARE input event")])]),e._v(" "),t("p",[e._v("Figure 3 shows the configuration of an AsTeRICS ARE input event (AsTeRICS ARE Event is selected as select element in Figure 1, (1)):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Dropdown")]),e._v(": allows to choose between "),t("em",[e._v("Keypress")]),e._v(" or "),t("em",[e._v("AsTeRICS ARE")]),e._v(" event (or not defined). Here, the AsTeRICS ARE event is selected.")]),e._v(" "),t("li",[t("strong",[e._v("Record ARE event")]),e._v(": start recording of AsTeRICS ARE events. Subsequently trigger the desired event in ARE in order to be recorded.")]),e._v(" "),t("li",[t("strong",[e._v("ARE URL")]),e._v(": the URL of the running AsTeRICS instance. If AsTeRICS ARE is running on the same computer this field can be empty.")]),e._v(" "),t("li",[t("strong",[e._v("List of events")]),e._v(": list of recorded ARE events. Any of these events triggers the currently configured action.")]),e._v(" "),t("li",[t("strong",[e._v("Recycle bin symbols")]),e._v(": a click on the recycle bin symbol next to a recorded event deletes it")])]),e._v(" "),t("h4",{attrs:{id:"example-of-using-an-asterics-are-event"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-of-using-an-asterics-are-event"}},[e._v("#")]),e._v(" Example of using an AsTeRICS ARE event")]),e._v(" "),t("p",[e._v("Follow these steps in order to set up an AsTeRICS Grid input method while using AsTeRICS ARE event for input:")]),e._v(" "),t("ol",[t("li",[e._v("Open the settings modal for the desired input method in AsTeRICS Grid")]),e._v(" "),t("li",[e._v("Start AsTeRICS ARE")]),e._v(" "),t("li",[e._v("Select "),t("em",[e._v("AsTeRICS ARE event")]),e._v(" for the desired input action in AsTeRICS Grid")]),e._v(" "),t("li",[e._v("Click on “Record ARE event” to start recording")]),e._v(" "),t("li",[e._v("Do any action in AsTeRICS ARE that tiggers an event, e.g. clicking on a button")]),e._v(" "),t("li",[e._v("The recorded event should be shown in AsTeRICS Grid")]),e._v(" "),t("li",[e._v("Save and close the input options in AsTeRICS Grid by clicking “OK”")]),e._v(" "),t("li",[e._v("Redo the same action in AsTeRICS ARE as before - it should trigger the configured input action in AsTeRICS Grid")])]),e._v(" "),t("h2",{attrs:{id:"input-options-modals"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-options-modals"}},[e._v("#")]),e._v(" Input options modals")]),e._v(" "),t("p",[e._v("Each input option dialog opened by “"),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#main---view"}},[e._v("Main view")]),e._v(" - Input options” has about the same structure, see Figure 4 (can be seen as shown below when input option (here: Scanning) is enabled):")],1),e._v(" "),t("p",[t("img",{attrs:{src:n(517),alt:"general structure of an input option dialog"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 4: General structure of an input option dialog, when input option is enabled")])]),e._v(" "),t("p",[e._v("These are the basic elements of an input option dialog as in figure 4:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Enable checkbox")]),e._v(": Generally enable or disable this input method. The subsequent sections are only visible if the input method is enabled.")]),e._v(" "),t("li",[t("strong",[e._v("Input section")]),e._v(": configure input actions like described in section "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("Introduction to input events")])],1),e._v(" "),t("li",[t("strong",[e._v("Advanced settings")]),e._v(": configure advanced settings for this input method")]),e._v(" "),t("li",[t("strong",[e._v("Test configuration")]),e._v(": opens a 10x10 test grid where the current input configuration can be tested")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": close the dialog discarding changes")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": close the dialog saving and applying changes")])]),e._v(" "),t("h3",{attrs:{id:"mouse-touch-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mouse-touch-input"}},[e._v("#")]),e._v(" Mouse/Touch input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=umxrgE0sUjw&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=7&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mouse and touch input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[t("em",[e._v("Mouse/Touch input")]),e._v(" has the following options:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select with mouse click (or tap)")]),e._v(": if checked, elements can be selected by a simple mouse click or tap on a touchscreen")]),e._v(" "),t("li",[t("strong",[e._v("Select with double click (or tap)")]),e._v(": if checked, elements can be selected by a double mouse click or tap on a touchscreen")]),e._v(" "),t("li",[t("strong",[e._v("Enable hovering")]),e._v(": enables hovering where elements are selected by moving the mouse on the element (=hovering) and waiting for some time. Hovering also works on touchscreens where the finger is held on an element for some time.\n"),t("ul",[t("li",[t("strong",[e._v("Hover time")]),e._v(": time in milliseconds to wait until a hovered element is selected. The value "),t("code",[e._v("0")]),e._v(" means that the hovered element is never selected.")]),e._v(" "),t("li",[t("strong",[e._v("Hide cursor")]),e._v(": if checked the cursor is hidden and not visible while hovering above elements. This can be useful e.g. for eye-tracking where the cursor may be distracting.")]),e._v(" "),t("li",[t("strong",[e._v("Read out active element")]),e._v(": if checked the label of the hovered element is directly read out if the active element has changed")]),e._v(" "),t("li",[t("strong",[e._v("Disable hover pane")]),e._v(": Normally (without activating this option) it is possible to continue hovering after navigation to another grid without lifting the finger (on a touchscreen). Technically this function is implented by a global invisible hover pane., normally for hovering a global invisible hover pane is inserted. However this hover pane can cause problems in combination with a software controlled mouse cursor (emulated software mouse), because click actions may not reach the actual elements. In this case it might be useful / necessary to activate the function "),t("em",[e._v("Disable hover pane")]),e._v(".")])])])]),e._v(" "),t("h4",{attrs:{id:"advanced-setting-directly-select-element"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-setting-directly-select-element"}},[e._v("#")]),e._v(" Advanced setting “directly select element”")]),e._v(" "),t("p",[e._v("In Advanced Settings there is the additional option “"),t("em",[e._v("Directly select element on pressing mouse button (not waiting for complete click)")]),e._v("”. If it is enabled, the element is selected when pressing the mouse button, not when releasing the mouse button (which is default). For Touchscreens it’s similar: an element is selected directly at touching the screen, not after lifting the finger again (which is default). This can make sense for:")]),e._v(" "),t("ul",[t("li",[e._v("facilitating operation for people which can’t reliably “tap” (quickly put finger on and lifting the finger afterwards) on the touchscreen.")]),e._v(" "),t("li",[e._v("when using AsTeRICS Grid with an eyetracker and an additional button for clicking / selecting. Since the mouse controlled via an eyetracker always moves a little bit, in default mode it can happen that instead of selecting an element, the image of an element is dragged. This can be prevented if the selection of the element is done directly at pressing the mouse button.")])]),e._v(" "),t("h3",{attrs:{id:"scanning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#scanning"}},[e._v("#")]),e._v(" Scanning")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=L7OF1lKZbLs&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=8&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method scanning"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The input method "),t("em",[e._v("Scanning")]),e._v(" is suited to be used with 1-2 input events. It works as follows:")]),e._v(" "),t("ol",[t("li",[e._v("Available elements are divided into groups")]),e._v(" "),t("li",[e._v("One group is highlighted")]),e._v(" "),t("li",[e._v("Group containing the desired element is selected")]),e._v(" "),t("li",[e._v("Remaining elements are again divided into groups")]),e._v(" "),t("li",[e._v("Steps 3 and 4 are repeated until the single desired element is selected")])]),e._v(" "),t("h4",{attrs:{id:"input-events"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(" for "),t("em",[e._v("Scanning")]),e._v(":")],1),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select element")]),e._v(": The select element selects the current group or element, it can be chosen by clicking on "),t("em",[e._v("Record key")]),e._v(" and afterwards clicking on the desired key.")]),e._v(" "),t("li",[t("strong",[e._v("Next scanning group")]),e._v(": Here, the key for moveing the focus to the next group or element can be chosen. This input event is optional and can be omitted if timed scanning is activated (see Advanced settings). As above, the desired key shall be tapped after clicking on "),t("em",[e._v("Record key")]),e._v(".")])]),e._v(" "),t("h4",{attrs:{id:"advanced-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the advanced settings for "),t("em",[e._v("Scanning")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Vertical scanning")]),e._v(": determines the orientation element groups are build:\n"),t("ul",[t("li",[t("strong",[e._v("vertical")]),e._v(" (checked): groups are built vertical, moving left to right "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:n(518),alt:"vertical scanning",width:"130"}})])]),e._v(" "),t("li",[t("strong",[e._v("horizontal")]),e._v(" (unchecked): groups are built horizontal, moving top to bottom "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{staticStyle:{"margin-left":"2em"},attrs:{src:n(519),alt:"horizontal scanning",width:"130"}})])])])]),e._v(" "),t("li",[t("strong",[e._v("Binary scanning")]),e._v(": defines if scanning groups are rows/columns or one half of existing elements:\n"),t("ul",[t("li",[t("strong",[e._v("binary")]),e._v(" (checked): groups are built by separating remaining elements in two halves each scanning step "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:n(520),alt:"binary scanning",width:"130"}})])]),e._v(" "),t("li",[t("strong",[e._v("non-binary")]),e._v(" (unchecked): groups are built row/column by row/column "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{staticStyle:{"margin-left":"2em"},attrs:{src:n(521),alt:"non-binary scanning",width:"130"}})])])])]),e._v(" "),t("li",[t("strong",[e._v("Start manually by user input event")]),e._v(": if checked, scanning will only start after a user input event, e.g. pressing a key / button.")]),e._v(" "),t("li",[t("strong",[e._v("Scanning rounds until going back")]),e._v(": the number of times the current scanning elements are iterated, until scanning goes back one step. For row/column scanning a value of "),t("code",[e._v("3")]),e._v(" means that after selecting a row, the selected row is iterated 3 times and if no element is selected, scanning restarts for selecting a different row. If "),t("em",[e._v("start manually by user event")]),e._v(" is checked, this number also defines the number of iterations on the top level until scanning is stopped.")]),e._v(" "),t("li",[t("strong",[e._v("Automatic (timed) scanning")]),e._v(": if checked the active scanning group is automatically changed after a specific time, making it possible to use scanning just with a single input event\n"),t("ul",[t("li",[t("strong",[e._v("Scanning time")]),e._v(": time to wait before highlighting the next scanning group (in milliseconds)")]),e._v(" "),t("li",[t("strong",[e._v("Time factor first element")]),e._v(": the time to keep the first scanning group (e.g. first row/column) highlighted is “Scanning Time” multiplied with this factor. Increasing the time for the first group often improves usability.")])])])]),e._v(" "),t("h3",{attrs:{id:"direction-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#direction-input"}},[e._v("#")]),e._v(" Direction Input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Ui27d_ZlFz8&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=9&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method direction input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The input method "),t("em",[e._v("Direction Input")]),e._v(" is suited to be used with 2-5 "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(". It gives the possibility to simply navigate through elements in up to 4 directions.")],1),e._v(" "),t("h4",{attrs:{id:"input-events-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events-2"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible input events for "),t("em",[e._v("Direction Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select element")]),e._v(": selects the currently highlighted element")]),e._v(" "),t("li",[t("strong",[e._v("Go right")]),e._v(": navigate to the right")]),e._v(" "),t("li",[t("strong",[e._v("Go left")]),e._v(": navigate to the left")]),e._v(" "),t("li",[t("strong",[e._v("Go down")]),e._v(": navigate down")]),e._v(" "),t("li",[t("strong",[e._v("Go up")]),e._v(": navigate up")])]),e._v(" "),t("p",[e._v("The desired keys for each input event can be selected by clicking first on "),t("em",[e._v("Record key")]),e._v(" and consecutively clicking on the desired key.")]),e._v(" "),t("h4",{attrs:{id:"advanced-settings-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings-2"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the Advanced settings for "),t("em",[e._v("Direction Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Wrap around")]),e._v(": if checked navigation continues at the opposite border, so e.g. moving left on the most left element sets the focus to the most right element")]),e._v(" "),t("li",[t("strong",[e._v("Go to start position after select")]),e._v(": if checked the focused element is set to the first element after an element was selected respective")])]),e._v(" "),t("h3",{attrs:{id:"huffman-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#huffman-input"}},[e._v("#")]),e._v(" Huffman Input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=2EEmOdOQk98&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=10&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method huffman input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The input method "),t("em",[e._v("huffman input")]),e._v(" is suited to be used with 2-9 "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(". It assigns an unique code of input event sequences to each element. Triggering the respective input event sequence directly selects an element.")],1),e._v(" "),t("p",[e._v("This is an example for 2 input events and 4 elements:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Element A")]),e._v(" has code "),t("code",[e._v("11")])]),e._v(" "),t("li",[t("strong",[e._v("Element B")]),e._v(" has code "),t("code",[e._v("12")])]),e._v(" "),t("li",[t("strong",[e._v("Element C")]),e._v(" has code "),t("code",[e._v("21")])]),e._v(" "),t("li",[t("strong",[e._v("Element D")]),e._v(" has code "),t("code",[e._v("22")])])]),e._v(" "),t("p",[e._v("Triggering input event "),t("code",[e._v("1")]),e._v(" and then input event "),t("code",[e._v("2")]),e._v(" would directly select "),t("em",[e._v("Element B")]),e._v(".")]),e._v(" "),t("p",[e._v("Huffman input uses the theory of "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Huffman_coding#n-ary_Huffman_coding",target:"_blank",rel:"noopener noreferrer"}},[e._v("n-ary huffman codes"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"input-events-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events-3"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible input events for "),t("em",[e._v("Huffman Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Input [1-9]")]),e._v(": defines the input events of numbers "),t("code",[e._v("1-9")]),e._v(" that are used to enter the codes for selecting the elements. At least two input events have to be defined.")])]),e._v(" "),t("h4",{attrs:{id:"advanced-settings-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings-3"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the Advanced settings for "),t("em",[e._v("Huffman Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Show numbers")]),e._v(": if checked the assigned codes are shown at the bottom of each element")]),e._v(" "),t("li",[t("strong",[e._v("Show colors")]),e._v(": if checked a color code is shown at the bottom of each element")]),e._v(" "),t("li",[t("strong",[e._v("Color whole element")]),e._v(": if checked the all grid elements are fully colored in the color of the next input event to trigger in order to select the element of interest")]),e._v(" "),t("li",[t("strong",[e._v("Mark inactive elements")]),e._v(": if checked all impossible elements are grayed out, so that e.g. starting input of the code with "),t("code",[e._v("1")]),e._v(" grays out all elements with codes that aren’t starting with "),t("code",[e._v("1")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Timeout")]),e._v(": time of inactivity (in milliseconds) for resetting the current, incomplete input. So if the first digit of the code "),t("code",[e._v("1")]),e._v(" was typed accidentally the user has to wait this time in order to be able to restart with another code. Simultaneously this is the time the user has to input the next digit of the code. If set to "),t("code",[e._v("0")]),e._v(" the timeout is disabled.")]),e._v(" "),t("li",[t("strong",[e._v("Number of elements")]),e._v(": by default (if this property is set to "),t("code",[e._v("0")]),e._v(") the codes are automatically generated based on the number of elements in the current grid. This means that in one grid the n-th element could have a different code than in an other grid. To prevent this the "),t("code",[e._v("number of elements")]),e._v(" property can be set to the maximum number of elements that are existing in any grid. Therefore in every grid the n-th element will have the same code.")]),e._v(" "),t("li",[t("strong",[e._v("Color[1-n]")]),e._v(": select the colors of the input events. If e.g. three inputs 1-4 are connected to a red, yellow, green and blue button, the colors can be adapted here in order to match the button colors. Default colors are taken from the "),t("a",{attrs:{href:"https://davidmathlogic.com/colorblind/",target:"_blank",rel:"noopener noreferrer"}},[e._v("“Wong” color pallete"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"sequential-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sequential-input"}},[e._v("#")]),e._v(" Sequential Input")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=plpOzwMUahw&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=11&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Input method sequential input"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The sequential input method can be used with 2-3 "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html#introduction-to-input-events"}},[e._v("input events")]),e._v(". 2 input events are necessary, one (Previous element) is optional. The sequential input sequentially focuses all elements and afterwards restarts at the first element.")],1),e._v(" "),t("h4",{attrs:{id:"input-events-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-events-4"}},[e._v("#")]),e._v(" Input events")]),e._v(" "),t("p",[e._v("These are the possible input events for "),t("em",[e._v("Sequential Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Next element")]),e._v(": moves the focus to the next element. If focus is currently on the last element, the first element will be focused.")]),e._v(" "),t("li",[t("strong",[e._v("Previous Element")]),e._v(" (optional): moves the focus to the previous element. If focus is currently on the first element, the last element will be focused.")]),e._v(" "),t("li",[t("strong",[e._v("Select element")]),e._v(": selects the element that is currently focused")])]),e._v(" "),t("p",[e._v("The desired keys for each input event can be selected by clicking first on "),t("em",[e._v("Record key")]),e._v(" and consecutively clicking on the desired key.")]),e._v(" "),t("h4",{attrs:{id:"advanced-settings-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advanced-settings-4"}},[e._v("#")]),e._v(" Advanced Settings")]),e._v(" "),t("p",[e._v("These are the Advanced settings for "),t("em",[e._v("Sequential Input")]),e._v(":")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Go to start position after select")]),e._v(": if checked, the first element is highlighted after selecting an element. Otherwise focus stays on the current element after selection.")]),e._v(" "),t("li",[t("strong",[e._v("Start manually by user input event")]),e._v(": if checked, the input method will only start after a user input event, e.g. pressing a key / button.")]),e._v(" "),t("li",[t("strong",[e._v("Scanning rounds until stop")]),e._v(": the number of times all elements are iterated, until the input method is stopped. Only takes effect if "),t("em",[e._v("start manually by user input event")]),e._v(" is active.")]),e._v(" "),t("li",[t("strong",[e._v("Automatic (timed) sequential input")]),e._v(": if checked the active element is automatically changed after a specific time, making it possible to use this input just with a single input event\n"),t("ul",[t("li",[t("strong",[e._v("Scanning time")]),e._v(": time to wait before highlighting the next element (in milliseconds)")]),e._v(" "),t("li",[t("strong",[e._v("Time factor first element")]),e._v(": the time to keep the first element highlighted is “Scanning Time” multiplied with this factor. Increasing the time for the first element often improves usability.")])])])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=s.exports},514:function(e,t,n){e.exports=n.p+"assets/img/input_channel_keyboard_en1.962335af.jpg"},515:function(e,t,n){e.exports=n.p+"assets/img/input_channel_mic_en.c03ecd8d.png"},516:function(e,t,n){e.exports=n.p+"assets/img/input_channel_are_en.43aab746.jpg"},517:function(e,t,n){e.exports=n.p+"assets/img/input_options_general_en.264c9e4c.jpg"},518:function(e,t,n){e.exports=n.p+"assets/img/scanning_vertical.9edd8062.gif"},519:function(e,t,n){e.exports=n.p+"assets/img/scanning_horizontal.b306105b.gif"},520:function(e,t){e.exports="data:image/gif;base64,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"},521:function(e,t,n){e.exports=n.p+"assets/img/scanning_non_binary.f5d202a9.gif"}}]); \ No newline at end of file diff --git a/assets/js/180.3b4a13f6.js b/assets/js/180.7e542b45.js similarity index 98% rename from assets/js/180.3b4a13f6.js rename to assets/js/180.7e542b45.js index 2c5bf386d6..e4db237b5f 100644 --- a/assets/js/180.3b4a13f6.js +++ b/assets/js/180.7e542b45.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[180],{1131:function(e,t,a){"use strict";a.r(t);var i=a(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"averager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#averager"}},[e._v("#")]),e._v(" Averager")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Basic Math)")]),e._v(" "),t("p",[e._v("The averager component takes an input stream and forwards the average of certain amount of buffered last inputs. The size of the buffer can be set via a property. The component can be used to eliminate spikes in an input data stream. Furthermore the unit can also be used as an accumulator which accumulates all inputs within a certain time interval.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(694),alt:"Screenshot: Averager plugin",title:"Screenshot: Averager plugin"}})]),e._v(" "),t("p",[e._v("Averager plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [double]:")]),e._v(" This port reads the inputs to be averaged.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [double]:")]),e._v(" This port provides the current average of the buffered inputs.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enablePlugin:")]),e._v(" Enables the functionality of this plugin.")]),e._v(" "),t("li",[t("strong",[e._v("disablePlugin:")]),e._v(" Disables the functionality of this plugin. New values aren’t accumulated anymore and no output is sent to the output port. If property autoReenableTime set, the plugin is automatically re-enabled after the time defined by this property. Generally disabling is delayed until the buffer of values is full, preventing any startup glitches.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" if true (default), the plugin is enabled, if false the plugin does nothing. Generally disabling is delayed until the buffer of values is full, preventing any startup glitches.")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer]:")]),e._v(" Denotes the operating mode of the unit, three modes are available:\n"),t("ul",[t("li",[t("em",[e._v("average:")]),e._v(" unit performs averaging calculations and emits double values average with integer.")]),e._v(" "),t("li",[t("em",[e._v("output:")]),e._v(" unit performs calculations and rounds result to integer.")]),e._v(" "),t("li",[t("em",[e._v("accumulate:")]),e._v(" unit accumulates inputs for certain amount of time.")])])]),e._v(" "),t("li",[t("strong",[e._v("bufferSize [integer]:")]),e._v(" Specifies the size of the buffer in the averaging modes or the amount of milliseconds to accumulate in the accumulator mode.")]),e._v(" "),t("li",[t("strong",[e._v("autoReenableTime [integer]:")]),e._v(" Time in ms, after the plugin automatically re-enables itself after being disabled. Set to zero (default) to deactivate this functionality (never auto re-enable).")])])])}),[],!1,null,null,null);t.default=r.exports},694:function(e,t,a){e.exports=a.p+"assets/img/averager.e86f771d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[180],{1130:function(e,t,a){"use strict";a.r(t);var i=a(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"averager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#averager"}},[e._v("#")]),e._v(" Averager")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Basic Math)")]),e._v(" "),t("p",[e._v("The averager component takes an input stream and forwards the average of certain amount of buffered last inputs. The size of the buffer can be set via a property. The component can be used to eliminate spikes in an input data stream. Furthermore the unit can also be used as an accumulator which accumulates all inputs within a certain time interval.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(694),alt:"Screenshot: Averager plugin",title:"Screenshot: Averager plugin"}})]),e._v(" "),t("p",[e._v("Averager plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [double]:")]),e._v(" This port reads the inputs to be averaged.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [double]:")]),e._v(" This port provides the current average of the buffered inputs.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enablePlugin:")]),e._v(" Enables the functionality of this plugin.")]),e._v(" "),t("li",[t("strong",[e._v("disablePlugin:")]),e._v(" Disables the functionality of this plugin. New values aren’t accumulated anymore and no output is sent to the output port. If property autoReenableTime set, the plugin is automatically re-enabled after the time defined by this property. Generally disabling is delayed until the buffer of values is full, preventing any startup glitches.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" if true (default), the plugin is enabled, if false the plugin does nothing. Generally disabling is delayed until the buffer of values is full, preventing any startup glitches.")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer]:")]),e._v(" Denotes the operating mode of the unit, three modes are available:\n"),t("ul",[t("li",[t("em",[e._v("average:")]),e._v(" unit performs averaging calculations and emits double values average with integer.")]),e._v(" "),t("li",[t("em",[e._v("output:")]),e._v(" unit performs calculations and rounds result to integer.")]),e._v(" "),t("li",[t("em",[e._v("accumulate:")]),e._v(" unit accumulates inputs for certain amount of time.")])])]),e._v(" "),t("li",[t("strong",[e._v("bufferSize [integer]:")]),e._v(" Specifies the size of the buffer in the averaging modes or the amount of milliseconds to accumulate in the accumulator mode.")]),e._v(" "),t("li",[t("strong",[e._v("autoReenableTime [integer]:")]),e._v(" Time in ms, after the plugin automatically re-enables itself after being disabled. Set to zero (default) to deactivate this functionality (never auto re-enable).")])])])}),[],!1,null,null,null);t.default=r.exports},694:function(e,t,a){e.exports=a.p+"assets/img/averager.e86f771d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/181.c04ff370.js b/assets/js/181.7ea61dc6.js similarity index 98% rename from assets/js/181.c04ff370.js rename to assets/js/181.7ea61dc6.js index 8297120aed..4396a74d52 100644 --- a/assets/js/181.c04ff370.js +++ b/assets/js/181.7ea61dc6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{1132:function(t,e,i){"use strict";i.r(e);var r=i(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"basic-tremor-reduction-algorithms"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#basic-tremor-reduction-algorithms"}},[t._v("#")]),t._v(" Basic Tremor Reduction algorithms")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Singal Shaping)")]),t._v(" "),e("p",[t._v("This plugin contains three algorithms for user hand tremor reduction: Arithmetic Mean, Outlier Reduction and Exponential Smoothing. The Arithmetic Mean algorithm calculates the cursor position as an average of the past n cursor positions. N is defined by the bufferSize parameter. The Outlier Reduction algorithm keeps the maximum distance between two followed cursor positions. The maximum distance is defined by the maxDistance parameter. If the distance between two cursor positions is greater than maxDistance, it is reduced to the value of maxDistance. The Exponential Smoothing algorithm implements the "),e("a",{attrs:{href:"http://en.wikipedia.org/wiki/Exponential_smoothing",target:"_blank",rel:"noopener noreferrer"}},[t._v("Exponential smoothing"),e("OutboundLink")],1),t._v(" technique. The factor parameter defines the Exponential Smoothing and the degree parameters define the degree of the equation.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(695),alt:"Screenshot: Basic Tremor Reduction algorithms plugin",title:"Screenshot: Basic Tremor Reduction algorithms plugin"}})]),t._v(" "),e("p",[t._v("Basic Tremor Reduction algorithms plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputX [integer]:")]),t._v(" Input mouse X position.")]),t._v(" "),e("li",[e("strong",[t._v("inputY [integer]:")]),t._v(" Input mouse Y position.")]),t._v(" "),e("li",[e("strong",[t._v("bufferSize [integer]:")]),t._v(" The new buffer size value for the Arithmetic Mean algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("maxDistance [double]:")]),t._v(" The new maximum distance value for the Outlier Reduction algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("factor [double]:")]),t._v(" The new factor value for Exponential Smoothing algorithm.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputX [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output mouse X position.")]),t._v(" "),e("li",[e("strong",[t._v("outputY [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output mouse Y position.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("algorithm [integer]:")]),t._v(" Defines the algorithm used for the tremor reduction.")]),t._v(" "),e("li",[e("strong",[t._v("eventsType [integer]:")]),t._v(" Defines if the mouse coordinates are absolute or relative.")]),t._v(" "),e("li",[e("strong",[t._v("bufferSize [integer]:")]),t._v(" The buffer size value for the Arithmetic Mean algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("maxDistance [double]:")]),t._v(" The maximum distance value for the Outlier Reduction algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("factor [double]:")]),t._v(" The factor value for Exponential Smoothing algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("degree [integer]:")]),t._v(" The degree of the equation for Exponential Smoothing algorithm.")])])])}),[],!1,null,null,null);e.default=o.exports},695:function(t,e,i){t.exports=i.p+"assets/img/basictralgorithms.e1416158.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{1131:function(t,e,i){"use strict";i.r(e);var r=i(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"basic-tremor-reduction-algorithms"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#basic-tremor-reduction-algorithms"}},[t._v("#")]),t._v(" Basic Tremor Reduction algorithms")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Singal Shaping)")]),t._v(" "),e("p",[t._v("This plugin contains three algorithms for user hand tremor reduction: Arithmetic Mean, Outlier Reduction and Exponential Smoothing. The Arithmetic Mean algorithm calculates the cursor position as an average of the past n cursor positions. N is defined by the bufferSize parameter. The Outlier Reduction algorithm keeps the maximum distance between two followed cursor positions. The maximum distance is defined by the maxDistance parameter. If the distance between two cursor positions is greater than maxDistance, it is reduced to the value of maxDistance. The Exponential Smoothing algorithm implements the "),e("a",{attrs:{href:"http://en.wikipedia.org/wiki/Exponential_smoothing",target:"_blank",rel:"noopener noreferrer"}},[t._v("Exponential smoothing"),e("OutboundLink")],1),t._v(" technique. The factor parameter defines the Exponential Smoothing and the degree parameters define the degree of the equation.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(695),alt:"Screenshot: Basic Tremor Reduction algorithms plugin",title:"Screenshot: Basic Tremor Reduction algorithms plugin"}})]),t._v(" "),e("p",[t._v("Basic Tremor Reduction algorithms plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputX [integer]:")]),t._v(" Input mouse X position.")]),t._v(" "),e("li",[e("strong",[t._v("inputY [integer]:")]),t._v(" Input mouse Y position.")]),t._v(" "),e("li",[e("strong",[t._v("bufferSize [integer]:")]),t._v(" The new buffer size value for the Arithmetic Mean algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("maxDistance [double]:")]),t._v(" The new maximum distance value for the Outlier Reduction algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("factor [double]:")]),t._v(" The new factor value for Exponential Smoothing algorithm.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputX [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output mouse X position.")]),t._v(" "),e("li",[e("strong",[t._v("outputY [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output mouse Y position.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("algorithm [integer]:")]),t._v(" Defines the algorithm used for the tremor reduction.")]),t._v(" "),e("li",[e("strong",[t._v("eventsType [integer]:")]),t._v(" Defines if the mouse coordinates are absolute or relative.")]),t._v(" "),e("li",[e("strong",[t._v("bufferSize [integer]:")]),t._v(" The buffer size value for the Arithmetic Mean algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("maxDistance [double]:")]),t._v(" The maximum distance value for the Outlier Reduction algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("factor [double]:")]),t._v(" The factor value for Exponential Smoothing algorithm.")]),t._v(" "),e("li",[e("strong",[t._v("degree [integer]:")]),t._v(" The degree of the equation for Exponential Smoothing algorithm.")])])])}),[],!1,null,null,null);e.default=o.exports},695:function(t,e,i){t.exports=i.p+"assets/img/basictralgorithms.e1416158.jpg"}}]); \ No newline at end of file diff --git a/assets/js/182.63104349.js b/assets/js/182.1d59391c.js similarity index 97% rename from assets/js/182.63104349.js rename to assets/js/182.1d59391c.js index b68df65ec9..fab966dd39 100644 --- a/assets/js/182.63104349.js +++ b/assets/js/182.1d59391c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{1133:function(t,e,r){"use strict";r.r(e);var n=r(2),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"benchmark"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#benchmark"}},[t._v("#")]),t._v(" Benchmark")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component may be used to perform benchmark of data throughput at a particular location of the model / design. It counts port activity of data and event ports per given time.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(696),alt:"Screenshot: Benchmark plugin",title:"Screenshot: Benchmark plugin"}})]),t._v(" "),e("p",[t._v("Benchmark plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" Input port for numeric values. Incoming activity increases the data counter.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dataCount [integer]:")]),t._v(" The current value of the data counter.")]),t._v(" "),e("li",[e("strong",[t._v("eventCount [integer]:")]),t._v(" The current value of the event counter.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("eventIncrease:")]),t._v(" Incoming events increase the event counter.")]),t._v(" "),e("li",[e("strong",[t._v("resetCounter:")]),t._v(" An incoming event resets data counter and event counter to 0.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("time [integer]:")]),t._v(" The time period in milliseconds for measuring data activity and events. After the time has passed, the current values of data counter and event counter are provided at the output port, and the counters are reset to zero.")])])])}),[],!1,null,null,null);e.default=a.exports},696:function(t,e,r){t.exports=r.p+"assets/img/benchmark.86b6eaf0.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{1132:function(t,e,r){"use strict";r.r(e);var n=r(2),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"benchmark"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#benchmark"}},[t._v("#")]),t._v(" Benchmark")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component may be used to perform benchmark of data throughput at a particular location of the model / design. It counts port activity of data and event ports per given time.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(696),alt:"Screenshot: Benchmark plugin",title:"Screenshot: Benchmark plugin"}})]),t._v(" "),e("p",[t._v("Benchmark plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" Input port for numeric values. Incoming activity increases the data counter.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dataCount [integer]:")]),t._v(" The current value of the data counter.")]),t._v(" "),e("li",[e("strong",[t._v("eventCount [integer]:")]),t._v(" The current value of the event counter.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("eventIncrease:")]),t._v(" Incoming events increase the event counter.")]),t._v(" "),e("li",[e("strong",[t._v("resetCounter:")]),t._v(" An incoming event resets data counter and event counter to 0.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("time [integer]:")]),t._v(" The time period in milliseconds for measuring data activity and events. After the time has passed, the current values of data counter and event counter are provided at the output port, and the counters are reset to zero.")])])])}),[],!1,null,null,null);e.default=a.exports},696:function(t,e,r){t.exports=r.p+"assets/img/benchmark.86b6eaf0.jpg"}}]); \ No newline at end of file diff --git a/assets/js/183.e381be72.js b/assets/js/183.31d14bad.js similarity index 90% rename from assets/js/183.e381be72.js rename to assets/js/183.31d14bad.js index da2a826a91..f542525e8f 100644 --- a/assets/js/183.e381be72.js +++ b/assets/js/183.31d14bad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{1138:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"blink-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blink-detection"}},[e._v("#")]),e._v(" Blink Detection")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component detects the shape that a blink produces in an electro-oculogram signal. The plugin analyses the input samples and recognises both a single blink and a double blink. Here a single blink is defined by an action whereby both eyes are simultaneously and voluntary closed and open. A double blink refers to the repletion of this action twice in an consecutive way. When one of these conditions is found the corresponding event is fired. In addition, a true Boolean will be output to the corresponding output port.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(702),alt:"Screenshot: Blink Detection plugin",title:"Screenshot: Blink Detection plugin"}})]),e._v(" "),t("p",[e._v("Blink Detection plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The input signal shall correspond to a 250-Hz sampled electro-oculogram signal, i.e., an output port of the "),t("a",{attrs:{href:"../sensors/Enobio.htm"}},[e._v("Enobio")]),e._v(" component when the corresponding electrode is placed on the user’s forehead.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [integer]:")]),e._v(" Input values that correspond to a 250-Hz sampled electro-oculogram signal.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("BlinkDetected:")]),e._v(" This event port fires an event if a blink is detected in the input sequence of integers.")]),e._v(" "),t("li",[t("strong",[e._v("DoubleblinkDetected:")]),e._v(" This event port fires an event if a double blink is detected in the input sequence of integers.")])])])}),[],!1,null,null,null);t.default=i.exports},702:function(e,t,n){e.exports=n.p+"assets/img/blinkdetection.5593407c.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{1133:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"blink-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blink-detection"}},[e._v("#")]),e._v(" Blink Detection")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component detects the shape that a blink produces in an electro-oculogram signal. The plugin analyses the input samples and recognises both a single blink and a double blink. Here a single blink is defined by an action whereby both eyes are simultaneously and voluntary closed and open. A double blink refers to the repletion of this action twice in an consecutive way. When one of these conditions is found the corresponding event is fired. In addition, a true Boolean will be output to the corresponding output port.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(697),alt:"Screenshot: Blink Detection plugin",title:"Screenshot: Blink Detection plugin"}})]),e._v(" "),t("p",[e._v("Blink Detection plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The input signal shall correspond to a 250-Hz sampled electro-oculogram signal, i.e., an output port of the "),t("a",{attrs:{href:"../sensors/Enobio.htm"}},[e._v("Enobio")]),e._v(" component when the corresponding electrode is placed on the user’s forehead.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [integer]:")]),e._v(" Input values that correspond to a 250-Hz sampled electro-oculogram signal.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("BlinkDetected:")]),e._v(" This event port fires an event if a blink is detected in the input sequence of integers.")]),e._v(" "),t("li",[t("strong",[e._v("DoubleblinkDetected:")]),e._v(" This event port fires an event if a double blink is detected in the input sequence of integers.")])])])}),[],!1,null,null,null);t.default=i.exports},697:function(e,t,n){e.exports=n.p+"assets/img/blinkdetection.5593407c.jpg"}}]); \ No newline at end of file diff --git a/assets/js/184.b91c67fe.js b/assets/js/184.fdebdc91.js similarity index 95% rename from assets/js/184.b91c67fe.js rename to assets/js/184.fdebdc91.js index 9c7187e990..32e8dec92d 100644 --- a/assets/js/184.b91c67fe.js +++ b/assets/js/184.fdebdc91.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[184],{1136:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blink-detector-trainer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blink-detector-trainer"}},[t._v("#")]),t._v(" Blink Detector Trainer")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This component calculates the maxThreshold, minThreshold, BlinkLength and DoubleBlinkSeparation customized properties of the "),e("a",{attrs:{href:"../processors/BlinkDetector.htm"}},[t._v("Blink Detector")]),t._v(" plugin for each specific subject. For a description of the meaning of these properties, please see "),e("a",{attrs:{href:"../processors/BlinkDetector.htm"}},[t._v("Blink Detector")]),t._v(". The training of the system consists on asking the subject to follow a protocol. This protocol consists on a series of 5 simple blinks and 5 double blinks. Note that the subject can perform only "),e("strong",[t._v("one")]),t._v(" simple (or double) blink each time the protocol indicates so through its Protocol port. When the protocol finishes, the results show up through the Results output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(700),alt:"Screenshot: Blink Detector Trainer plugin",title:"Screenshot: Blink Detector Trainer plugin"}})]),t._v(" "),e("p",[t._v("Blink Detector plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The input signal shall correspond to a 250-Hz sampled electro-oculogram signal, i.e., an output port of the "),e("a",{attrs:{href:"../sensors/Enobio.htm"}},[t._v("Enobio")]),t._v(" component when the corresponding electrode is placed on the user’s forehead.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [integer]:")]),t._v(" Input values that correspond to a 250-Hz sampled electro-oculogram signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Protocol [string]:")]),t._v(" Actions to be performed by the user. Note that the user must perform just one blink (or double blink) each time the corresponding message is delivered through this port.")]),t._v(" "),e("li",[e("strong",[t._v("Results [string]:")]),t._v(" Final parameters calculated for the specific subject. They will delivered when the protocol has finished.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartProtocol [integer]:")]),t._v(" Starts the training protocol. The actions to be performed by the subject will be delivered through the Protocol port.")]),t._v(" "),e("li",[e("strong",[t._v("StopProtocol:")]),t._v(" Stops the training protocol.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sampleRate [integer]:")]),t._v(" Sample rate of the input signal in Hertz.")]),t._v(" "),e("li",[e("strong",[t._v("language [list]:")]),t._v(" Language of the messages thrown through the Protocol port while the protocol is running. The user can chose English or Spanish.")])])])}),[],!1,null,null,null);e.default=s.exports},700:function(t,e,r){t.exports=r.p+"assets/img/blinkdetectortrainer.c93653c5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[184],{1134:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blink-detector-trainer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blink-detector-trainer"}},[t._v("#")]),t._v(" Blink Detector Trainer")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This component calculates the maxThreshold, minThreshold, BlinkLength and DoubleBlinkSeparation customized properties of the "),e("a",{attrs:{href:"../processors/BlinkDetector.htm"}},[t._v("Blink Detector")]),t._v(" plugin for each specific subject. For a description of the meaning of these properties, please see "),e("a",{attrs:{href:"../processors/BlinkDetector.htm"}},[t._v("Blink Detector")]),t._v(". The training of the system consists on asking the subject to follow a protocol. This protocol consists on a series of 5 simple blinks and 5 double blinks. Note that the subject can perform only "),e("strong",[t._v("one")]),t._v(" simple (or double) blink each time the protocol indicates so through its Protocol port. When the protocol finishes, the results show up through the Results output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(698),alt:"Screenshot: Blink Detector Trainer plugin",title:"Screenshot: Blink Detector Trainer plugin"}})]),t._v(" "),e("p",[t._v("Blink Detector plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The input signal shall correspond to a 250-Hz sampled electro-oculogram signal, i.e., an output port of the "),e("a",{attrs:{href:"../sensors/Enobio.htm"}},[t._v("Enobio")]),t._v(" component when the corresponding electrode is placed on the user’s forehead.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [integer]:")]),t._v(" Input values that correspond to a 250-Hz sampled electro-oculogram signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Protocol [string]:")]),t._v(" Actions to be performed by the user. Note that the user must perform just one blink (or double blink) each time the corresponding message is delivered through this port.")]),t._v(" "),e("li",[e("strong",[t._v("Results [string]:")]),t._v(" Final parameters calculated for the specific subject. They will delivered when the protocol has finished.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartProtocol [integer]:")]),t._v(" Starts the training protocol. The actions to be performed by the subject will be delivered through the Protocol port.")]),t._v(" "),e("li",[e("strong",[t._v("StopProtocol:")]),t._v(" Stops the training protocol.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sampleRate [integer]:")]),t._v(" Sample rate of the input signal in Hertz.")]),t._v(" "),e("li",[e("strong",[t._v("language [list]:")]),t._v(" Language of the messages thrown through the Protocol port while the protocol is running. The user can chose English or Spanish.")])])])}),[],!1,null,null,null);e.default=s.exports},698:function(t,e,r){t.exports=r.p+"assets/img/blinkdetectortrainer.c93653c5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/185.b590396e.js b/assets/js/185.e3ca0e07.js similarity index 96% rename from assets/js/185.b590396e.js rename to assets/js/185.e3ca0e07.js index c0fa4b7afa..a45ab81792 100644 --- a/assets/js/185.b590396e.js +++ b/assets/js/185.e3ca0e07.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[185],{1137:function(t,e,r){"use strict";r.r(e);var i=r(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"comport"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#comport"}},[t._v("#")]),t._v(" ComPort")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Communication)")]),t._v(" "),e("p",[t._v("The ComPort plugin can be used to send and receive data from serial devices (e.g. microcontrollers/embedded devices/wireless links etc.) via a COM port or virtual COM port. The plugin provides support for different data formats of serial communication, e.g. string or binary")]),t._v(" "),e("p",[e("img",{attrs:{src:r(701),alt:"Screenshot: COMPort plugin",title:"Screenshot: COMPort plugin"}})]),t._v(" "),e("p",[t._v("COMPort plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("send [string]:")]),t._v(" string which will be sent to the microcontroller / embedded module")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("received [string]:")]),t._v(" string which has been received (was sent from the microcontroller / embedded module)")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("enablePlugin:")]),t._v(" Enables the functionality of this plugin.")]),t._v(" "),e("li",[e("strong",[t._v("disablePlugin:")]),t._v(" Disables the functionality of this plugin. Any open COM port is closed and no new values are received.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("enabled [boolean]:")]),t._v(" If true (default), the plugin is enabled, if false the plugin does nothing and doesn’t attempt to open the given COM port.")]),t._v(" "),e("li",[e("strong",[t._v("ComPort [string]:")]),t._v(" Defines the COM Port of the target serial device. e.g. COM0")]),t._v(" "),e("li",[e("strong",[t._v("BaudRate [integer]:")]),t._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),t._v(" "),e("li",[t._v("**ReceivedDataType [combobox selection]"),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("*can be used to indicate other data type like binary integer type etc. (currently, only string is supported)")]),t._v(" "),e("li",[t._v("**SendDataType [combobox selection]"),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("*can be used to indicate data type for sending (currently, string is supported and a selectable termination character can be added)")])])])}),[],!1,null,null,null);e.default=s.exports},701:function(t,e,r){t.exports=r.p+"assets/img/comport.81304d08.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[185],{1137:function(t,e,r){"use strict";r.r(e);var i=r(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"comport"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#comport"}},[t._v("#")]),t._v(" ComPort")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Communication)")]),t._v(" "),e("p",[t._v("The ComPort plugin can be used to send and receive data from serial devices (e.g. microcontrollers/embedded devices/wireless links etc.) via a COM port or virtual COM port. The plugin provides support for different data formats of serial communication, e.g. string or binary")]),t._v(" "),e("p",[e("img",{attrs:{src:r(702),alt:"Screenshot: COMPort plugin",title:"Screenshot: COMPort plugin"}})]),t._v(" "),e("p",[t._v("COMPort plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("send [string]:")]),t._v(" string which will be sent to the microcontroller / embedded module")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("received [string]:")]),t._v(" string which has been received (was sent from the microcontroller / embedded module)")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("enablePlugin:")]),t._v(" Enables the functionality of this plugin.")]),t._v(" "),e("li",[e("strong",[t._v("disablePlugin:")]),t._v(" Disables the functionality of this plugin. Any open COM port is closed and no new values are received.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("enabled [boolean]:")]),t._v(" If true (default), the plugin is enabled, if false the plugin does nothing and doesn’t attempt to open the given COM port.")]),t._v(" "),e("li",[e("strong",[t._v("ComPort [string]:")]),t._v(" Defines the COM Port of the target serial device. e.g. COM0")]),t._v(" "),e("li",[e("strong",[t._v("BaudRate [integer]:")]),t._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),t._v(" "),e("li",[t._v("**ReceivedDataType [combobox selection]"),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("*can be used to indicate other data type like binary integer type etc. (currently, only string is supported)")]),t._v(" "),e("li",[t._v("**SendDataType [combobox selection]"),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("*can be used to indicate data type for sending (currently, string is supported and a selectable termination character can be added)")])])])}),[],!1,null,null,null);e.default=s.exports},702:function(t,e,r){t.exports=r.p+"assets/img/comport.81304d08.jpg"}}]); \ No newline at end of file diff --git a/assets/js/186.52dea392.js b/assets/js/186.7bc84a7b.js similarity index 98% rename from assets/js/186.52dea392.js rename to assets/js/186.7bc84a7b.js index 10b9497e1f..b99fe87bc5 100644 --- a/assets/js/186.52dea392.js +++ b/assets/js/186.7bc84a7b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[186],{1139:function(t,e,o){"use strict";o.r(e);var r=o(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"comparator"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#comparator"}},[t._v("#")]),t._v(" Comparator")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component compares the numerical values of two input ports and provides output depending on the result of the comparison.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(703),alt:"Screenshot: Comparator plugin",title:"Screenshot: Comparator plugin"}})]),t._v(" "),e("p",[t._v("Comparator plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inA [double]:")]),t._v(" Input port for signal a. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("inB [double]:")]),t._v(" Input port for signal b. "),e("strong",[t._v("This input port supports synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" Output port of the comparator (value according to condition and operational mode).")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("conditionTrue:")]),t._v(" This event is triggered when the comparator condition switches from false to true.")]),t._v(" "),e("li",[e("strong",[t._v("comparatorFalse:")]),t._v(" This event is triggered when the comparator condition switches from true to false.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("condition [integer]:")]),t._v(" Defines the condition to be met. Available conditions are “a greater b”, “a equals b”, “a lower b”, “a greater threshold”, “a equals threshold”, “a lower threshold” and “a between threshold and threshold2”.")]),t._v(" "),e("li",[e("strong",[t._v("outputMode [integer]:")]),t._v(" Defines the mode of operation, respectively which values are put to the output port of the plugin. Following modes are available: “output min”, “output max” and “output a if condition met”.")]),t._v(" "),e("li",[e("strong",[t._v("eventMode [integer]:")]),t._v(" Defines the mode of event generation (if events are created on every comparison of input values or only if the output condition changes).")]),t._v(" "),e("li",[e("strong",[t._v("threshold [double]:")]),t._v(" Defines the threshold value for the condition modes “a greater than threshold”, “a equals threshold” and “a lower than threshold”.")]),t._v(" "),e("li",[e("strong",[t._v("threshold2 [double]:")]),t._v(" Defines the threshold2 value for the condition mode “a between threshold and threshold2”.")])])])}),[],!1,null,null,null);e.default=n.exports},703:function(t,e,o){t.exports=o.p+"assets/img/comparator.2dfefc2b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[186],{1138:function(t,e,o){"use strict";o.r(e);var r=o(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"comparator"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#comparator"}},[t._v("#")]),t._v(" Comparator")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component compares the numerical values of two input ports and provides output depending on the result of the comparison.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(703),alt:"Screenshot: Comparator plugin",title:"Screenshot: Comparator plugin"}})]),t._v(" "),e("p",[t._v("Comparator plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inA [double]:")]),t._v(" Input port for signal a. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("inB [double]:")]),t._v(" Input port for signal b. "),e("strong",[t._v("This input port supports synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" Output port of the comparator (value according to condition and operational mode).")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("conditionTrue:")]),t._v(" This event is triggered when the comparator condition switches from false to true.")]),t._v(" "),e("li",[e("strong",[t._v("comparatorFalse:")]),t._v(" This event is triggered when the comparator condition switches from true to false.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("condition [integer]:")]),t._v(" Defines the condition to be met. Available conditions are “a greater b”, “a equals b”, “a lower b”, “a greater threshold”, “a equals threshold”, “a lower threshold” and “a between threshold and threshold2”.")]),t._v(" "),e("li",[e("strong",[t._v("outputMode [integer]:")]),t._v(" Defines the mode of operation, respectively which values are put to the output port of the plugin. Following modes are available: “output min”, “output max” and “output a if condition met”.")]),t._v(" "),e("li",[e("strong",[t._v("eventMode [integer]:")]),t._v(" Defines the mode of event generation (if events are created on every comparison of input values or only if the output condition changes).")]),t._v(" "),e("li",[e("strong",[t._v("threshold [double]:")]),t._v(" Defines the threshold value for the condition modes “a greater than threshold”, “a equals threshold” and “a lower than threshold”.")]),t._v(" "),e("li",[e("strong",[t._v("threshold2 [double]:")]),t._v(" Defines the threshold2 value for the condition mode “a between threshold and threshold2”.")])])])}),[],!1,null,null,null);e.default=n.exports},703:function(t,e,o){t.exports=o.p+"assets/img/comparator.2dfefc2b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/187.5b1fee43.js b/assets/js/187.abef5dfc.js similarity index 94% rename from assets/js/187.5b1fee43.js rename to assets/js/187.abef5dfc.js index 96cd8c1c54..6f73d2a694 100644 --- a/assets/js/187.5b1fee43.js +++ b/assets/js/187.abef5dfc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[187],{1141:function(e,t,s){"use strict";s.r(t);var r=s(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"compute-bandpower"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#compute-bandpower"}},[e._v("#")]),e._v(" Compute Bandpower")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component computes the power that an input signal has in a specific frequency band. The plugin stores as many values as the DataLen property indicates before providing a new value in the output port. This solution is based on the FFT so only the bins corresponding to the specified band are considered. This approach removes the contribution of the out-band frequencies to the final value. This approach improves the power output of the filter plugin which uses the filtered signal for computing the output value so the frequencies out of the pass band contributes to the final value since the filter is implemented as FIR filter with a finite number of coefficients so the frequency response will not never be perfect.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(705),alt:"Screenshot: Compute Bandpower plugin",title:"Screenshot: Compute Bandpower plugin"}})]),e._v(" "),t("p",[e._v("Compute Bandpower plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The values in the input port shall correspond to a time series.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [double]:")]),e._v(" Input port for the values of time series which power in band is computed.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [double]:")]),e._v(" Output of the value that corresponds to the power of the signal present in the last DataLen samples. If the input signal is expressed in volts, then the output is expressed in squared volts.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("DataLen [integer]:")]),e._v(" Defines the length of the time series over which the band power computation is performed. Only power of two values are allowed for this property.")]),e._v(" "),t("li",[t("strong",[e._v("SampleRate [integer]:")]),e._v(" Defines the sample rate of the input time series. It is defined in samples per second.")]),e._v(" "),t("li",[t("strong",[e._v("StartBandFrequency [integer]:")]),e._v(" Defines the beginning of the band to be analysed. It is defined in Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("EndBandFrequency [integer]:")]),e._v(" Defines the end of the band to be analysed. It is defined in Hertz.")])])])}),[],!1,null,null,null);t.default=n.exports},705:function(e,t,s){e.exports=s.p+"assets/img/computebandpower.9a67636f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[187],{1139:function(e,t,s){"use strict";s.r(t);var r=s(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"compute-bandpower"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#compute-bandpower"}},[e._v("#")]),e._v(" Compute Bandpower")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component computes the power that an input signal has in a specific frequency band. The plugin stores as many values as the DataLen property indicates before providing a new value in the output port. This solution is based on the FFT so only the bins corresponding to the specified band are considered. This approach removes the contribution of the out-band frequencies to the final value. This approach improves the power output of the filter plugin which uses the filtered signal for computing the output value so the frequencies out of the pass band contributes to the final value since the filter is implemented as FIR filter with a finite number of coefficients so the frequency response will not never be perfect.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(704),alt:"Screenshot: Compute Bandpower plugin",title:"Screenshot: Compute Bandpower plugin"}})]),e._v(" "),t("p",[e._v("Compute Bandpower plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The values in the input port shall correspond to a time series.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [double]:")]),e._v(" Input port for the values of time series which power in band is computed.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [double]:")]),e._v(" Output of the value that corresponds to the power of the signal present in the last DataLen samples. If the input signal is expressed in volts, then the output is expressed in squared volts.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("DataLen [integer]:")]),e._v(" Defines the length of the time series over which the band power computation is performed. Only power of two values are allowed for this property.")]),e._v(" "),t("li",[t("strong",[e._v("SampleRate [integer]:")]),e._v(" Defines the sample rate of the input time series. It is defined in samples per second.")]),e._v(" "),t("li",[t("strong",[e._v("StartBandFrequency [integer]:")]),e._v(" Defines the beginning of the band to be analysed. It is defined in Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("EndBandFrequency [integer]:")]),e._v(" Defines the end of the band to be analysed. It is defined in Hertz.")])])])}),[],!1,null,null,null);t.default=n.exports},704:function(e,t,s){e.exports=s.p+"assets/img/computebandpower.9a67636f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/188.3bda8bb2.js b/assets/js/188.ed107055.js similarity index 95% rename from assets/js/188.3bda8bb2.js rename to assets/js/188.ed107055.js index 2d465bc32c..22d99299aa 100644 --- a/assets/js/188.3bda8bb2.js +++ b/assets/js/188.ed107055.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[188],{1140:function(t,e,s){"use strict";s.r(e);var r=s(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component sends double values from the chosen slot.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(704),alt:"Screenshot: ConstantDispatcher plugin",title:"Screenshot: ConstantDispatcher plugin"}})]),t._v(" "),e("p",[t._v("ConstantDispatcher plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("slotDispatch [integer]:")]),t._v(" Sends the value from the slot defined by number.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" The port for the output value.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dispatchSlot1…dispatchSlot20 :")]),t._v(" Sends the double value from the slot: 1…20.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchNextSlot:")]),t._v(" Sends double value from the next slot.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchPreviousSlot:")]),t._v(" Sends double value from the previous slot.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchSlotSeries:")]),t._v(" Sends slots values in sequence from slot 1 to slot defined by the Number property with the delay defined by the Delay property.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("number [integer]:")]),t._v(" Number of used slots.")]),t._v(" "),e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" Delay in ms used in sequence slot dispatch.")]),t._v(" "),e("li",[e("strong",[t._v("slot1…slot20 [double]:")]),t._v(" The slot for the value: 1…20.")]),t._v(" "),e("li",[e("strong",[t._v("autosendSlot [integer]:")]),t._v(" Number of slot which is automatically sent at start (0=disable).")])])])}),[],!1,null,null,null);e.default=o.exports},704:function(t,e,s){t.exports=s.p+"assets/img/constantdispatcher.bda97c1f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[188],{1140:function(t,e,s){"use strict";s.r(e);var r=s(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component sends double values from the chosen slot.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(705),alt:"Screenshot: ConstantDispatcher plugin",title:"Screenshot: ConstantDispatcher plugin"}})]),t._v(" "),e("p",[t._v("ConstantDispatcher plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("slotDispatch [integer]:")]),t._v(" Sends the value from the slot defined by number.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" The port for the output value.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dispatchSlot1…dispatchSlot20 :")]),t._v(" Sends the double value from the slot: 1…20.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchNextSlot:")]),t._v(" Sends double value from the next slot.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchPreviousSlot:")]),t._v(" Sends double value from the previous slot.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchSlotSeries:")]),t._v(" Sends slots values in sequence from slot 1 to slot defined by the Number property with the delay defined by the Delay property.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("number [integer]:")]),t._v(" Number of used slots.")]),t._v(" "),e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" Delay in ms used in sequence slot dispatch.")]),t._v(" "),e("li",[e("strong",[t._v("slot1…slot20 [double]:")]),t._v(" The slot for the value: 1…20.")]),t._v(" "),e("li",[e("strong",[t._v("autosendSlot [integer]:")]),t._v(" Number of slot which is automatically sent at start (0=disable).")])])])}),[],!1,null,null,null);e.default=o.exports},705:function(t,e,s){t.exports=s.p+"assets/img/constantdispatcher.bda97c1f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/189.2108776c.js b/assets/js/189.41207779.js similarity index 96% rename from assets/js/189.2108776c.js rename to assets/js/189.41207779.js index a6b8c8b3a0..37cc7121d5 100644 --- a/assets/js/189.2108776c.js +++ b/assets/js/189.41207779.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[189],{1146:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"deadzone"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deadzone"}},[e._v("#")]),e._v(" Deadzone")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Signal Shaping)")]),e._v(" "),t("p",[e._v("The purpose of this component is to define active and passive areas (zones) for one- or two dimensional sensor values. This function could also be called “resting zone” or “centerzone”. It can be useful for example when a mouse pointer should not move before a certain value of a sensor (displacement of an analogue sensor, strength of activity) is reached.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(708),alt:"Screenshot: Deadzone plugin",title:"Screenshot: Deadzone plugin"}})]),e._v(" "),t("p",[e._v("Deadzone plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("inX [double]:")]),e._v(" Input of x values. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("inY [double]:")]),e._v(" Input of y values. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("radius [double]:")]),e._v(" The radius of the active/passive zone around the centre point.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outX [double]:")]),e._v(" Output of modified x values.")]),e._v(" "),t("li",[t("strong",[e._v("outY [double]:")]),e._v(" Output of modified y values.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("setCenter:")]),e._v(" An incoming event stores the current x- and y- input values to represent the centre (It defines them as offset values). This can be useful for sensor calibration because it defines the “baseline” or resting position.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enterZone:")]),e._v(" This event is triggered when the x- and/or y- values enter the active zone. The active zone is the zone, in which values are passed to the output ports, see property ‘mode’.")]),e._v(" "),t("li",[t("strong",[e._v("exitZone:")]),e._v(" This event is triggered when the x- and/or y- values leave the active zone. The active zone is the zone, in which values are passed to the output ports, see property ‘mode’.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xCenter [double]:")]),e._v(" This value defines the x- position of the centre (the middle of the active/passive zones).")]),e._v(" "),t("li",[t("strong",[e._v("yCenter [double]:")]),e._v(" This value defines the y- position of the centre (the middle of the active/passive zones).")]),e._v(" "),t("li",[t("strong",[e._v("radius [double]:")]),e._v(" The radius of the active/passive zone around the centre point.")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer]:")]),e._v(" Selects the mode of operation of the centerzone component, following modes are available:\n"),t("ul",[t("li",[t("em",[e._v("“only inner values”:")]),e._v(" x- and y- values are passed to the output ports only if the distance to the centre is lower than the given radius.")]),e._v(" "),t("li",[t("em",[e._v("“only outer values”:")]),e._v(" x- and y- values are passed to the output ports only if the distance to the centre is greater than the given radius.")]),e._v(" "),t("li",[t("em",[e._v("“deadzone”:")]),e._v(" x- and y- values are passed to the output ports only if the distance to the center is greater than the given radius, and additionally a correction of the values is performed so that they start with 0 when leaving the inner zone. This is useful for defining a “deadzone” for sensor values, where an inactive area shall be provided and no sudden acceleration is desired when leaving this inactive area.")])])])])])}),[],!1,null,null,null);t.default=s.exports},708:function(e,t,n){e.exports=n.p+"assets/img/deadzone.fa4ae800.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[189],{1141:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"deadzone"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deadzone"}},[e._v("#")]),e._v(" Deadzone")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Signal Shaping)")]),e._v(" "),t("p",[e._v("The purpose of this component is to define active and passive areas (zones) for one- or two dimensional sensor values. This function could also be called “resting zone” or “centerzone”. It can be useful for example when a mouse pointer should not move before a certain value of a sensor (displacement of an analogue sensor, strength of activity) is reached.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(706),alt:"Screenshot: Deadzone plugin",title:"Screenshot: Deadzone plugin"}})]),e._v(" "),t("p",[e._v("Deadzone plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("inX [double]:")]),e._v(" Input of x values. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("inY [double]:")]),e._v(" Input of y values. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("radius [double]:")]),e._v(" The radius of the active/passive zone around the centre point.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outX [double]:")]),e._v(" Output of modified x values.")]),e._v(" "),t("li",[t("strong",[e._v("outY [double]:")]),e._v(" Output of modified y values.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("setCenter:")]),e._v(" An incoming event stores the current x- and y- input values to represent the centre (It defines them as offset values). This can be useful for sensor calibration because it defines the “baseline” or resting position.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enterZone:")]),e._v(" This event is triggered when the x- and/or y- values enter the active zone. The active zone is the zone, in which values are passed to the output ports, see property ‘mode’.")]),e._v(" "),t("li",[t("strong",[e._v("exitZone:")]),e._v(" This event is triggered when the x- and/or y- values leave the active zone. The active zone is the zone, in which values are passed to the output ports, see property ‘mode’.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xCenter [double]:")]),e._v(" This value defines the x- position of the centre (the middle of the active/passive zones).")]),e._v(" "),t("li",[t("strong",[e._v("yCenter [double]:")]),e._v(" This value defines the y- position of the centre (the middle of the active/passive zones).")]),e._v(" "),t("li",[t("strong",[e._v("radius [double]:")]),e._v(" The radius of the active/passive zone around the centre point.")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer]:")]),e._v(" Selects the mode of operation of the centerzone component, following modes are available:\n"),t("ul",[t("li",[t("em",[e._v("“only inner values”:")]),e._v(" x- and y- values are passed to the output ports only if the distance to the centre is lower than the given radius.")]),e._v(" "),t("li",[t("em",[e._v("“only outer values”:")]),e._v(" x- and y- values are passed to the output ports only if the distance to the centre is greater than the given radius.")]),e._v(" "),t("li",[t("em",[e._v("“deadzone”:")]),e._v(" x- and y- values are passed to the output ports only if the distance to the center is greater than the given radius, and additionally a correction of the values is performed so that they start with 0 when leaving the inner zone. This is useful for defining a “deadzone” for sensor values, where an inactive area shall be provided and no sudden acceleration is desired when leaving this inactive area.")])])])])])}),[],!1,null,null,null);t.default=s.exports},706:function(e,t,n){e.exports=n.p+"assets/img/deadzone.fa4ae800.jpg"}}]); \ No newline at end of file diff --git a/assets/js/19.ee664fc6.js b/assets/js/19.d900a5a7.js similarity index 99% rename from assets/js/19.ee664fc6.js rename to assets/js/19.d900a5a7.js index 54763aa381..5d8543977e 100644 --- a/assets/js/19.ee664fc6.js +++ b/assets/js/19.d900a5a7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{289:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_74b8c615b8455605.d7a70de8.png"},290:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_c0991ef32ae9b458.424ba3f3.png"},291:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_4dfe72317ab9f571.6b0975c3.jpg"},292:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_b6693a1cbcd9178a.03fc763d.png"},293:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_f1a0b4f36dd370ba.c1a39a2a.jpg"},294:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_fb7627584ba9d5d7.45a2067d.png"},295:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_3e993efbc73f2910.c6357005.png"},940:function(t,e,a){"use strict";a.r(e);var s=a(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"are-middleware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-middleware"}},[t._v("#")]),t._v(" ARE Middleware")]),t._v(" "),e("h2",{attrs:{id:"the-asterics-runtime-environment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-asterics-runtime-environment"}},[t._v("#")]),t._v(" The AsTeRICS Runtime Environment")]),t._v(" "),e("p",[t._v("The AsTeRICS Runtime environment (ARE) is an OSGi-based middleware [3] which allows software plugins to run in parallel. The plugins usually represent a sensor or an actuator and are implemented as independent OSGi bundles. The runtime environment identifies AsTeRICS plugins from other OSGi bundles based on metadata defined inside the plugins.")]),t._v(" "),e("p",[t._v("The ARE expects from plugin-developers to define the structure of their plugins (properties, inputs, outputs and event ports) in XML files. Based on these XMLs, the middleware constructs a runtime representation of each installed AsTeRICS plugin.")]),t._v(" "),e("p",[t._v("Furthermore, the ARE expects a runtime model (system model) which usually comes from the AsTeRICS Configuration Suite (ACS). The ACS is running on a Windows Personal Computer (.net 4.0 required) and mainly used to graphically design the layout of the system as a network of interconnected components. The system model is another XML file that defines the components participating in a specific application, connections between them, events and other properties. Based on this file, ARE knows which plugins to activate and how to define the data flow between them. Since the system model represents the main communication means between the ACS and the ARE, it is expected to be a serialisable object, easy to transfer and translate. ARE and ACS communicate through an appropriate TCP/IP-based communication protocol named ASAPI.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(289),alt:""}})]),t._v(" "),e("p",[t._v("The ARE also provides “services” to plugin developers (for example communication support for COM ports) and it allows reporting errors on the runtime environment, registering event listeners and interacting with its graphical user interface (ARE GUI).")]),t._v(" "),e("p",[t._v("The ARE GUI is a simple graphical environment developed to allow end-users to interact directly with the runtime environment. It may be used to modify runtime parameters of a model via buttons or sliders, and to monitor live signals and events of the running model.")]),t._v(" "),e("h2",{attrs:{id:"are-components"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-components"}},[t._v("#")]),t._v(" ARE Components")]),t._v(" "),e("p",[t._v("The ARE consist of the following main parts:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("The ARE middleware")])]),t._v(" "),e("li",[e("p",[t._v("ARE plugins (also referred to as “components”) – sensor, processor and actuator modules which provide functional building blocks for assistive functionalities")])]),t._v(" "),e("li",[e("p",[t._v("A service layer which provides infrastructure to the ARE components,"),e("br"),t._v("\nfor example COM port and communication management for connection of the Communication Interface Modules (CIMs)")])])]),t._v(" "),e("p",[t._v("The ARE is commonly deployed on an embedded device, running an appropriate operating system (OS), typically an embedded variant of Windows. On top of the OS, an appropriate Java Virtual Machine (JVM) is used to host the OSGi component framework which provides support for modularity and dynamic loading/unloading of components.")]),t._v(" "),e("p",[t._v("All the core components of the framework (described in detail later) are defined as OSGi modules. Certain components that need to access legacy code (e.g., written in C or C++) are also deployed on top of OSGi, and are interfaced to the native code using Java Native Interface (JNI) as needed. In this regard, and with the exception of the pluggable components that use native code interfaces with platform-specific JNI bindings, the ARE middleware is expected to be "),e("em",[t._v("platform independent")]),t._v(".")]),t._v(" "),e("p",[t._v("The implementation requires basically JAVA 1.7 (JDK/JRE 7) and an OSGi framework (which is part of the source code downloads).")]),t._v(" "),e("h2",{attrs:{id:"about-osgi"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about-osgi"}},[t._v("#")]),t._v(" About OSGi")]),t._v(" "),e("p",[t._v("The Open Service Gateway initiative (OSGi) is an open specification that enables the modular assembly of software built with the Java technology [3]. The OSGi Service Platform facilitates the componentization of software modules and applications and assures interoperability of applications and services over a variety of networked devices.")]),t._v(" "),e("p",[t._v("OSGi technology is the dynamic module system for Java™. Java provides the portability that is required to support products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployed; The OSGi Service Platform provides a service-oriented architecture that enables these components to dynamically discover each other for collaboration, and thereby forms the optimal basis for the AsTeRICS middleware.")]),t._v(" "),e("h2",{attrs:{id:"getting-started-with-asterics-development"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-asterics-development"}},[t._v("#")]),t._v(" Getting Started with AsTeRICS Development")]),t._v(" "),e("p",[t._v("The AsTeRICS source code repository is hosted at github and located at")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[e("strong",[t._v("https://github.com/asterics/AsTeRICS")]),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("The source code contains open source software modules in JAVA, C++ and C, and proprietary modules by AsTeRICS partners which are available in binary from (.dll or .exe).")]),t._v(" "),e("p",[t._v("The licenses of the utilized software packages and 3rd party products can be viewed in the file "),e("em",[t._v("/documentation/licenses.doc")])]),t._v(" "),e("p",[t._v("Currently, the editor for OSKA (the on-screen keyboard application) is the only commercial software package within the AsTeRICS framework – and not included in the free downloads. The OSKA editor is only needed if you want to design custom on-screen keyboard layouts for OSKA (see AsTeRICS User Manual).")]),t._v(" "),e("h2",{attrs:{id:"understanding-the-component-build-scripts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#understanding-the-component-build-scripts"}},[t._v("#")]),t._v(" Understanding the component build-scripts")]),t._v(" "),e("p",[t._v("A typical ANT build script for an ARE component looks like the following:")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("project")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("default")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("component.id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("processor.MyComponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- set global properties for this build --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("build"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../out/production/${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src.java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("dist"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("runtime"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../../examples/ARE"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("path")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bin"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${osgi}/org.eclipse.osgi_3.6.0.v20100517.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${middleware}/asterics.ARE.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the time stamp --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tstamp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the build directory structure used by compile --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mkdir")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile the source "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("javac")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("srcdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${src.java}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("destdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("verbose")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("true"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("debug")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${debug}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("classpath")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${classpath}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("classpath")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("refid")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("generate the OSGi bundle"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("jar")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("jarfile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("manifest")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}/META-INF/MANIFEST.MF"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("fileset")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("copy")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("file")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("tofile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${runtime}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[t._v("In the first section of the build script, folder locations for the build intermediates, the final build products (.jar file) and the classpath are defined. The classpath usually points to the “bin” folder, the middleware “asterics.ARE.jar” and the osgi distribution. If a component needs additional resources, their location has to be defined here.")]),t._v(" "),e("p",[t._v("Subsequently the build script defines two build targets: the compilation of the Java source code and the creation of the .jar file. If the .jar file shall contain additional .dlls with native code, they have to be specified in the Manifest file as shows in section 5.14.1.")]),t._v(" "),e("p",[t._v("After the .jar file has been created in the distribution folder, it is copied to the runtime folder (/bin/ARE).")]),t._v(" "),e("h2",{attrs:{id:"starting-the-are-middleware-and-component-deployments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#starting-the-are-middleware-and-component-deployments"}},[t._v("#")]),t._v(" Starting the ARE middleware and component deployments")]),t._v(" "),e("p",[t._v("To test the ARE and component bundles, open the folder “/bin/ARE”, and use ARE.exe, start.bat or start_debug.bat.")]),t._v(" "),e("h2",{attrs:{id:"structure-of-the-runtime-folder-bin-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-the-runtime-folder-bin-are"}},[t._v("#")]),t._v(" Structure of the runtime folder “./bin/ARE”:")]),t._v(" "),e("p",[t._v("This folder contains dependencies for running the ARE middleware and the .jars resulting from ANT builds, it has the following structure:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("/\n+- bin/\n +- ARE/\n +- data/ folder for plugin working data\n +- models/ stored models (configurations)\n +- profile/\n +- config.ini system bundles to be started\n +- services.ini general service bundles to be started\n +- services-windows.ini windows-specific service bundles\n +- services-linux.ini linux-specific service bundles\n +- services-macosx.ini macosx-specific service bundles\n +- org.eclipse.osgi/ osgi bundle cache folder\n +- 1238790741.log system log messages, stack trace\n +- tools/ plugin helper apps and dlls\n +- .logger stores console logging settings\n +- ARE.exe starts the ARE without console output\n +- areProperties stores recent window/GUI properties\n +- component bundle(s)\n +- asterics.ARE.jar ARE middleware\n +- asterics.mw.services.cimcommunication.jar CIM port manager\n +- grizzly-httpservice-bundle-2.3.23.jar http service for webservice feature\n +- javacv-*-linux|windows|macosx.jar platform specific javacv service\n +- tmp/*.log application log files\n +- jtester.exe helper app for checking Java version\n +- logging.properties configuration of loglevel etc.\n +- org.eclipse.osgi.*.jar osgi distribution\n +- sleeper.exe helper app for launcher timing\n +- start.bat starts ARE with console output\n +- findjava.bat searches for the newest 32bit JRE\n +- start_debug.bat starts ARE with Eclipse debug support\n +- start.sh starts ARE without console on Linux\n +- start_debug.sh starts ARE with debugging on Linux\n +- VCChecker.jar helper jar for checking VC redist dependency\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Important Note: The osgi configuration folder “org.eclipse.osgi” in the “profile” subdirectory has to be deleted if .dlls in .jar bundles are updated or changed. (This folder is automatically created when starting the ARE and holds working data for the OSGI-bundles.) The One-Click build.xml script described in chapter 2.4.2 deletes the folder automatically.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-services"}},[t._v("#")]),t._v(" AsteRICS services")]),t._v(" "),e("p",[t._v("An AsteRICS service is a bundle that provides ARE-wide functionality usable by other services or plugins. The service can be optionally disabled which means that the service bundle is not installed and not activated. The file services.ini contains a list of general services to be loaded. Whereas the services-windows.ini, services-linux.ini and services-macosx.ini files contain platform dependent service names. You can also create your own use-case specific services ini file and edit the start script to load it.")]),t._v(" "),e("h2",{attrs:{id:"running-a-deployment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#running-a-deployment"}},[t._v("#")]),t._v(" Running a deployment")]),t._v(" "),e("p",[t._v("The “ARE.exe” starter application launches the ARE without console output and without debugging instrumentation.")]),t._v(" "),e("p",[t._v("Alternatively, the commandline batch script “start_debug.bat” which is provided in the folder “.bin/ARE” runs Java with additional configuration parameters including:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the location of the OSGi distribution")])]),t._v(" "),e("li",[e("p",[t._v("the profile subfolder which contains the config.ini file: “./bin/ARE/profile”")])]),t._v(" "),e("li",[e("p",[t._v("debugging instrumentation for the remote debugging server connection")])])]),t._v(" "),e("p",[t._v("After starting the ARE middleware, bundles are loaded and started on-demand if they are needed for the deployment of a model. If everything is properly configured, the ARE window comes up with a GUI and provides ASAPI server functionalities for connection of the ACS or other client applications.")]),t._v(" "),e("h2",{attrs:{id:"are-webserver-including-rest-api-websocket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver-including-rest-api-websocket"}},[t._v("#")]),t._v(" ARE webserver (including REST API, websocket)")]),t._v(" "),e("p",[t._v("The ARE contains a service that creates several web-based services. These include")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a webserver with document root "),e("em",[t._v("ARE/web")]),t._v(" and URL: "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a websocket at URL "),e("a",{attrs:{href:"http://localhost:8082/ws/astericsData",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/ws/astericsData"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a REST API at URL "),e("a",{attrs:{href:"http://localhost:8081/rest",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/rest"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a javascript REST API client implementation example at "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])])]),t._v(" "),e("h2",{attrs:{id:"define-autostart-model-per-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#define-autostart-model-per-command-line"}},[t._v("#")]),t._v(" Define autostart model per command line")]),t._v(" "),e("p",[t._v("By starting the ARE with the name of a model as first command line parameter a model that should be started automatically can be defined. The model must exist in the sub-folder “models”.")]),t._v(" "),e("p",[t._v("‘ARE.exe CameraMouse.acs’")]),t._v(" "),e("p",[t._v("or")]),t._v(" "),e("p",[t._v("‘start_debug.bat CameraMouse.acs’")]),t._v(" "),e("h2",{attrs:{id:"change-model-task-submit-timeout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-model-task-submit-timeout"}},[t._v("#")]),t._v(" Change model task submit timeout")]),t._v(" "),e("p",[t._v("The file “areProperties” contains properties to configure ARE features and to configure the internal model execution behaviour. The following internal model execution properties exist:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("ThreadPoolTasks.submitTimeout=20000")]),t._v(" "),e("ul",[e("li",[t._v("When submitting a task to be executed in the ModelExecutor thread a submit timeout can be configured. After the time elapsed a TimeoutException is thrown. The timeout value must be specified in milliseconds."),e("br"),t._v("\nThe submit timeout is used for starting, stopping, pausing and resuming a model.")])])])]),t._v(" "),e("h2",{attrs:{id:"debugging-the-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#debugging-the-are"}},[t._v("#")]),t._v(" Debugging the ARE")]),t._v(" "),e("p",[t._v("If the ARE is started using the “start_debug.bat” script and source-level debug information was added during the compilation (see section 2.3), debugging with Eclipse is supported via a remote debugging connection. This is a convenient way for debugging an OSGI-based java framework with a lot of plugins. To enable the debugging support in Eclipse, a Debug Configuration is created via the dedicated menu entry:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(290),alt:""}})]),t._v(" "),e("p",[t._v("Create a “Remote Java Application” Debug Configuration and assign a name for it, e.g. “ARE”. Then, specify the connection properties of the Debug Configuration to use the Host “localhost” and the Socket/Port “1044” (this port is given in the ARE build scripts for the remote debug server to listen for incoming client connections):")]),t._v(" "),e("p",[e("img",{attrs:{src:a(291),alt:""}})]),t._v(" "),e("p",[t._v("Now launch the ARE using “start_debug.bat”. The messages in the console window should indicate the establishment of the listening socket 1044 for the debugging connection:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(292),alt:""}})]),t._v(" "),e("p",[t._v("Now, the usual debugging support of Eclipse can be used, including breakpoints in middleware or components, variable and context watch windows, single stepping etc. All these operations are performed in the Eclipse “Debug” perspective.")]),t._v(" "),e("p",[t._v("The following screenshot shows a program execution of the ARE which ran into a breakpoint (here: the OSKA plugin was halted as a command was selected in the OSKA-application and transferred to the ARE plugin’s command handler:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(293),alt:""}})]),t._v(" "),e("p",[t._v("I"),e("img",{attrs:{src:a(294),alt:""}}),t._v(" f the source-level debug information is missing (due to compilation without debugging support) an error message indicates a problem, e.g. the missing line number for breakpoint installation:")]),t._v(" "),e("h2",{attrs:{id:"services-and-utils-infrastructure-for-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#services-and-utils-infrastructure-for-plugins"}},[t._v("#")]),t._v(" Services and Utils: Infrastructure for plugins")]),t._v(" "),e("p",[t._v("The ARE Services are a set of classes that enable the direct interaction between AsTeRICS plugins and other software to directly interact with the runtime environment. The most significant ARE Services are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIM Communication Service: the ARE CIM Communication service layer is a unified approach to allow plugins of the ARE to communicate with their associated hardware modules attached to the AsTeRICS platform via a COM port. A range of hardware modules are provided which implement the dedicated Communication Interface Module (CIM) protocol. Further details on this communication protocol and implementation details for the ARE CIM Communication Service can be found in chapter 5.15.")])]),t._v(" "),e("li",[e("p",[t._v("Remote Connection Service: the remote connection services allows external software that cannot be integrated into the standard plugin inter communication system used by the ARE, for example because of programming language incompatibilities, to work with the AsTeRICS system. For example, the interconnection of OSKA (the On-Screen Keyboard Application developed by AsTeRICS partner SENSORY) and the ARE uses the Remote Connection Service to send key selection information to the ARE. On the other hand, the ARE can reply with cell selection commands or other information. The actual communication is done via a protocol that can be understood by the Java ServerSocket implementation. The port number that the external software component connects to identifies the connecting component.")])]),t._v(" "),e("li",[e("p",[t._v("Local Storage Service: The Local Storage Service will allow plugins to store individual working data “per model” and “per plugin-instance”. This is necessary when plugins need to store own calibration data, pattern recognition samples or similar data. In course of the architectural refinements for the final prototype, a service class will be provided which generates an according folder and respective file read- and write methods.")])]),t._v(" "),e("li",[e("p",[t._v("Native Hook Services for systemwide keyboard and mouse capturing")])]),t._v(" "),e("li",[e("p",[t._v("Computer Vision services to support a unified way for frame grabbing, computer vision processing and video frame rendering.")])]),t._v(" "),e("li",[e("p",[t._v("Logging service")])]),t._v(" "),e("li",[e("p",[t._v("ConversionUtils: Helper class to convert port data streams into Java data types and vice versa.")])]),t._v(" "),e("li",[e("p",[t._v("Class "),e("strong",[t._v("ResourceRegistry")]),t._v(" to fetch resource URIs. If a plugin needs access to a config, data or a multimedia file, the class ResourceRegistry must be used.")])])]),t._v(" "),e("h2",{attrs:{id:"communicating-with-peripherals-cim-communication-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communicating-with-peripherals-cim-communication-service"}},[t._v("#")]),t._v(" Communicating with peripherals: CIM Communication service")]),t._v(" "),e("p",[t._v("Communication between actuator and sensor components in the ARE and peripheral devices is currently defined to use a serial communication i.e. a COM port or a virtual COM port. Messaging via this interface can either adhere to the CIM protocol (see section 5.15) or use any other protocol using the raw port implementation of the CIM communication services.")]),t._v(" "),e("p",[t._v("All the communication with peripheral devices is done through a service in the ARE service layer called CIM Communication. The service is provided as a separate OSGi bundle which places its classes in the package "),e("code",[t._v("$1")]),t._v(". Access to the classes is done by exporting the entire package in the bundle.")]),t._v(" "),e("p",[t._v("Four classes of the CIM Communication service are important to the component programmer:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMPortManager")])]),t._v(" "),e("li",[e("p",[t._v("CIMController")])]),t._v(" "),e("li",[e("p",[t._v("CIMProtocolPacket")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventHandler")])])]),t._v(" "),e("h2",{attrs:{id:"cimportcontroller"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportcontroller"}},[t._v("#")]),t._v(" CIMPortController")]),t._v(" "),e("p",[t._v("CIMPortController is an abstract class which hides the actual implementation of the port controller. The port controller provides the same methods for sending packets using the CIM protocol, for raw port implementations and for future uses such as a port controller handling Zigbee connections.")]),t._v(" "),e("h2",{attrs:{id:"cimportmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportmanager"}},[t._v("#")]),t._v(" CIMPortManager")]),t._v(" "),e("p",[t._v("All CIM ports and other COM ports are access through the main class of the package CIMPortManager. This is implemented as a singleton with a public access method getInstance(). Thus all calls to the CIM communication service have to be done through:")]),t._v(" "),e("p",[e("code",[t._v("CIMPortManager.getInstance()")])]),t._v(" "),e("p",[t._v("Upon creation the CIMPortManager detects all the connected CIMs and registers them in a HashMap. CIMs are identified and stored by the combination of their CIM Id and their unique number. Therefore multiple CIMs of the same CIM Id can be used on the AsTeRICS platform.")]),t._v(" "),e("p",[t._v("On some computers there exist certain serial ports which do not work correctly and behave strangely. An example of such a port is a loopback port which echoes everything written to it or ports created by Bluetooth dongles. Since the CIMPortManager iterates through all serial ports, these ports can cause problems in the auto detection of attached CIMs and even lock up the runtime. Therefore a file "),e("em",[t._v("ignore_ports.txt")]),t._v(" in the directory "),e("em",[t._v("data/cimcommunication")]),t._v(" is parsed upon start of the auto detection. This file should be filled with the name of the COM ports behaving erratically one name per line.")]),t._v(" "),e("p",[t._v("To be able to communicate with a CIM, the CIM port manager provides several methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("long")]),t._v(" uniqueNumber"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("These methods return a CIMPortController (read on for details) instance of the requested CIM. The method using two parameters will return the instance to the port controller which works with the CIM of the exact CIM ID and unique number. If the CIM cannot be found, null will be returned.")]),t._v(" "),e("p",[t._v("Requesting a connection without naming a unique number will return the first port controller connected to a CIM of the correct ID found in the HashMap holding all the port controllers.")]),t._v(" "),e("p",[t._v("Sending data to the connected peripheral can be done in several ways using the following methods of CIMPortManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMUniqueIdentifier")]),t._v(" cuid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" ctrl"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Basically these three methods do the same thing, however they do it at different speeds as the first two methods will look up the port controller that the packet should be sent to. Again the method taking only the CIM ID as a parameter will look up the first correct port controller. The third method which is passed the CIMPortController instance returned on getConnection() is the fastest method and should be used whenever possible.")]),t._v(" "),e("p",[t._v("Sending a CIM packet is done by providing the feature address and request code for a certain packet. The feature addresses and request codes can be found in the CIM protocol specification and the basic addresses and requests are also provided as static fields in the CIMProtocolPacket class. If data has to be attached to a CIM protocol packet a byte array holding said data has to be passed to the method, otherwise the data parameter of the method has to be set to null. The caller can also decide whether a CRC checksum should be added to the packet although this is currently unimplemented.")]),t._v(" "),e("h2",{attrs:{id:"cimeventhandler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimeventhandler"}},[t._v("#")]),t._v(" CIMEventHandler")]),t._v(" "),e("p",[t._v("Receiving a packet is done through use of the CIMEventHandler interface. This interface should be implemented by plugins that wish to communicate with CIMs (or raw ports). The interface contains two methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("These methods are called upon correct reception of a packet or upon discovery of an error (timeout of a reply, packet transmission errors, incorrect order of incoming packets …) respectively by the port controller.")]),t._v(" "),e("p",[t._v("Upon correct reception of a CIM protocol based packet the method handlePacketReceived() is called with an instance of CIMEventPacketReceived as parameter. After conversion of the CIMEvent to this class, the packet can be extracted from the event and processed further.")]),t._v(" "),e("p",[t._v("All detected errors lead to a call of handlePacketError() with an appropriate CIMEvent implementation. The possible implemenations are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMEventErrorPacketFault: holds information to error in packet and the broken packet itself")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventErrorPacketLost: holds information on serial number of lost packet")])])]),t._v(" "),e("p",[t._v("To register the event handler with a specific CIM port controller, the CIMPortController class exposes the following methods:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("addEventHandler(CIMEventHandler hdlr)")])]),t._v(" "),e("li",[e("p",[t._v("removeEventHandler(CIMEventHandler hdlr)")])])]),t._v(" "),e("p",[t._v("A port controller can handle multiple attached event handlers and remove each one separately.")]),t._v(" "),e("h2",{attrs:{id:"cimprotocolpacket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimprotocolpacket"}},[t._v("#")]),t._v(" CIMProtocolPacket")]),t._v(" "),e("p",[t._v("This class holds all the information given in a packet transferred to or from a CIM. There are two ways the developer has to use this class. Upon sending packets the sending component has to set the feature address and the request code. The CIMProtocolPacket class provides the constants as static field to facilitate setting commands.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x00")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x01")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_EVENT_REPLY")]),t._v(" \t\t\t "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x20")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Furthermore the class contains constants for the global features that every CIM has to provide.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("FEATURE_UNIQUE_SERIAL_NUMBER")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Upon reception of an incoming packet the component associated with the CIM sending the packet is notified and a reference to the packet is passed as an instance of CIMProtocolPacket wrapped in a CIMEvent instance. The developer can access all the fields of the packet via the getter methods the class provides:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAreCimID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSerialNumber")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFeatureAddress")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRequestReplyCode")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getCrc")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h2",{attrs:{id:"serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[t._v("#")]),t._v(" Serial ports not adhering to CIM Protocol (Raw Ports)")]),t._v(" "),e("p",[t._v("Some peripherals use a proprietary protocol to transfer their data. If this is the case the user can open a raw port through the CIMPortManager method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will open the port with the name specified in the parameter portName and set the communication to the specified Baud rate.")]),t._v(" "),e("p",[t._v("Data can be sent to peripheral using the sendPacket() method for the returned CIMPortController. The packet will simply transfer the byte array passed in the data parameter and ignore the values giving the in the other parameter fields.")]),t._v(" "),e("p",[t._v("Received data will be forwarded to the event handler through calls to handlePacketReceived() with a CIMEventRawPacket as parameter. This class holds a public member variable b which holds the value of the received byte. The event handler has to handle the reconstruction of the proprietary packet itself.")]),t._v(" "),e("p",[e("strong",[t._v("HighSpeed Raw Ports:")])]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" highSpeed"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("A second variant opf the getRawConnection method allows specification of a “highSpeed” parameter. If highSpeed is true, the CIMPortController does not apply any connection handling or callbacks for received data to avoid performance problems in higher bandwidth streaming use cases. In this case, the CIMPortController can return the JAVA InputStream for the openend COM port connection and the plug developer can use it as desired:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("portController "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COM12")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nin "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" portController"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputStream")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("available")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" myHandlePacket "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("read")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"communication-through-a-socket-interface-remote-connection-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communication-through-a-socket-interface-remote-connection-manager"}},[t._v("#")]),t._v(" Communication through a socket interface: Remote Connection Manager")]),t._v(" "),e("p",[t._v("When using third party software that runs on the same platform (as for example the prominently used On Screen Keyboard Application OSKA), it becomes necessary to establish a communication between ARE and the third party application. This is managed by the RemoteConnectionManager found in the package eu.asterics.mw.services. The main interface to this manager are the classes RemoteConnectionManager and IRemoteConnectionListener.")]),t._v(" "),e("h2",{attrs:{id:"iremoteconnectionlistener"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#iremoteconnectionlistener"}},[t._v("#")]),t._v(" IRemoteConnectionListener")]),t._v(" "),e("p",[t._v("This interface is implemented by plugins that need to communicate via a socket communication. The interface contains the following methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionEstablished")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("dataReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionLost")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionClosed")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("connectionEstablished() is called whenever a plugin requests a connection and the connection has been established. This can either happen if a connection has already been established before or if the new connection has finished its setup and connection process.")]),t._v(" "),e("p",[t._v("dataReceived() is called whenever new data arrives from the other end of the connection. Data is transferred in a byte array and has to be processed by the event listener.")]),t._v(" "),e("p",[t._v("connectionLost() is called when the connection management cannot read from or write to the socket.")]),t._v(" "),e("p",[t._v("connectionClosed() is called after the connection has been closed.")]),t._v(" "),e("h2",{attrs:{id:"remoteconnectionmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#remoteconnectionmanager"}},[t._v("#")]),t._v(" RemoteConnectionManager")]),t._v(" "),e("p",[t._v("The RemoteConnectionManager is implemented as a singleton and can be accessed via a public static member of the class. Thus access is always achieved through:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RemoteConnectionManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance\n")])])]),e("p",[t._v("A connection is opened by calling the RemoteConnectionManager’s method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" requestConnection "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRemoteConnectionListener")]),t._v(" l"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This call will try to access a connection on the specified port. Although the port is actually an integer it is passed as a String here. The method will return true if a connection on this port has already been established and attach the remote connection listener passed in the second argument to the connection. If there is no active connection on the specified port, the requestConnection method will initiate the setup of the connection and return false. With this return value the user can decide whether he needs to perform setup actions or will be able to do this in the connectionEstablished() callback.")]),t._v(" "),e("p",[t._v("The socket connection handling is implemented using two threads, one for sending, one for receiving data. The receiver thread will continuously read data from the socket and forward it to the registered listener calling the dataReceived() method. Since incoming data is handled in another thread than the plugin which will use the socket connection, access to the methods handling this data or the way of passing data should be done in a synchronised code block.")]),t._v(" "),e("p",[t._v("Sending data is done calling the method sendData of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is called using a String holding the port number of the connection socket and an array of bytes to be sent. The call to this method will place the data in an outgoing queue and return true if this was successful. Thus it is not guaranteed that the data has already been sent when the method returns. The sender thread will grab data from the outgoing queue and transfer it via the socket or call the connectionLost() method of the registered listener if there are problems while sending.")]),t._v(" "),e("p",[t._v("Once the connection to a socket is not needed anymore, the user has to close the connection, calling the following method of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("closeConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will close the socket connection, end all threads and return.")]),t._v(" "),e("h2",{attrs:{id:"local-storage-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#local-storage-service"}},[t._v("#")]),t._v(" Local Storage Service")]),t._v(" "),e("p",[t._v("If a model needs to save its own calibration data, training data or other private data that can be different in every model and every instance, the local storage service provides a method to save different data to the same file name on a per plugin instance per model basis.")]),t._v(" "),e("p",[t._v("The service uses a directory tree structure that is placed in the directory the OSGi is run from. Data is saved in a directory called “storage”. In this directory, directories for every model name of a model that uses at least one plugin that accesses local storage can be found. In the third directory layer, directories with the plugin instance name of every plugin that accesses local storage can be found. Thus if a model named “timertest” uses a plugin instance named “timer1” that saves local data this data can be found at the path location “storage/timertest/timer1”.")]),t._v(" "),e("p",[t._v("The service practically consists of only one method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLocalStorageFile")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" fileName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Calling this method located in the AREServices class will return a File object pointing to the requested file name or null if the file could not be opened or the model name could not be retrieved. After opening the file the standard JAVA ways to manipulate files apply.")]),t._v(" "),e("h2",{attrs:{id:"keyboard-mouse-native-hook-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-mouse-native-hook-services"}},[t._v("#")]),t._v(" Keyboard/Mouse Native Hook Services")]),t._v(" "),e("p",[t._v("The AsTeRICS service jnativehook (if enabled) provides access to the library "),e("a",{attrs:{href:"https://github.com/kwhat/jnativehook",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/kwhat/jnativehook"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("Additionally, the service contains the singleton NativeHookServices that initializes the library to be usable in plugins. A plugin that wants to be a keaboard/mouse listener only has to add the listener to the GlobalScreen instance of the library.")]),t._v(" "),e("h2",{attrs:{id:"computer-vision-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#computer-vision-services"}},[t._v("#")]),t._v(" Computer Vision Services")]),t._v(" "),e("p",[t._v("The AsTeRICS services javacv and computervision (if enabled) provide access to the library "),e("a",{attrs:{href:"https://github.com/bytedeco/javacv",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/bytedeco/javacv"),e("OutboundLink")],1),t._v(", which again provides access to numerous libs in the field of computer vision (e.g. OpenCV), frame grabbing and frame rendering. Additionally, some helper classes are provided for face detection.")]),t._v(" "),e("h2",{attrs:{id:"data-conversion-utilities"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-conversion-utilities"}},[t._v("#")]),t._v(" Data Conversion Utilities")]),t._v(" "),e("p",[t._v("The middleware provides the class “ConversionUtils” that provide static helper methods to convert model data types to byte arrays and vice versa. The conversion is needed to convert incoming data of input ports or outgoing data to output ports. There are methods for each type of conversion. If two connected ports (output to input) have different data types the data is automatically converted to the data type of the input port.")]),t._v(" "),e("p",[t._v("Check the class ConversionUtils for a full list of supported methods: "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"fetching-resource-uris-with-resourceregistry-class"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fetching-resource-uris-with-resourceregistry-class"}},[t._v("#")]),t._v(" Fetching resource URIs with ResourceRegistry class")]),t._v(" "),e("p",[t._v("If a plugin needs resources like data files (images, keyboard files, haarcascade definitions,…), the class "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("ResourceRegistry"),e("OutboundLink")],1),t._v(" must be used to fetch the resource URI.")]),t._v(" "),e("p",[t._v("This can be done by using the method:")]),t._v(" "),e("p",[e("code",[t._v("public URI getResource(String resourcePath, RES_TYPE type) throws URISyntaxException")])]),t._v(" "),e("p",[t._v("Returns the URI according to the given resourcePath string and the given resource type RES_TYPE.")]),t._v(" "),e("p",[t._v("Please refer to the Javadoc of the class and to the "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Fetching-resources-with-class-ResourceRegistry",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki page"),e("OutboundLink")],1),t._v(" for further examples.")]),t._v(" "),e("h2",{attrs:{id:"error-reporting-astericserrorhandling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-astericserrorhandling"}},[t._v("#")]),t._v(" Error Reporting (AstericsErrorHandling)")]),t._v(" "),e("p",[t._v("The "),e("code",[t._v("AstericsErrorHandling")]),t._v(" provides a unified logging and error reporting mechanism. It contains methods for reporting an error of a component or even the ARE.")]),t._v(" "),e("h3",{attrs:{id:"logging"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging"}},[t._v("#")]),t._v(" Logging")]),t._v(" "),e("p",[t._v("The Logging support provides a uniform way of error reporting in the runtime environment so we have utilized the Java logging libraries and the various severity levels supported. The AsTeRICS error handling mechanism is used extensively from the runtime core classes but also utilized by the AsTeRICS components via the AstericsErrorHandling interface.")]),t._v(" "),e("p",[t._v("Each component is allowed to report an error message, a debug information or a simple information to be displayed on the screen. The ARE maintains four separate log files and updates them whenever a new error occurs. In particular there are different loggers for reporting severe errors, warnings, fine errors and one logger that contains them all.")]),t._v(" "),e("p",[t._v("ARE also maintains a status object for the current status of the runtime environment. Whenever a fatal error occurs (either internally or caused by one of the deployed components) the status changes to fatal error. Other possible statuses are unknown, OK, deployed, running and paused.")]),t._v(" "),e("p",[t._v("The ACS can request the current status of the runtime environment and update its own state accordingly. For example the ACS user can be informed about the current ARE status while the ACS will terminate a connection (or refuse to establish a new one) with a non-working ARE.")]),t._v(" "),e("p",[t._v("Using a Logger is the recommended way to report notifications or error descriptions to the user. In the ARE framework, using the Java logging service is recommended. The Java logger can be configured using the file “logging.properties” (see section 2.3.3.1) and used as follows:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("…"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h3",{attrs:{id:"error-reporting-of-components"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-of-components"}},[t._v("#")]),t._v(" Error Reporting of components")]),t._v(" "),e("p",[t._v("If a component wants to notify an error it should use the following method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_warning.log” file. Additionally the status of the component is set to error with the given error message and an error dialog is shown in the ARE gui, if enabled.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportInfo")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" info"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_fine.log” file.")]),t._v(" "),e("h3",{attrs:{id:"status-checking"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#status-checking"}},[t._v("#")]),t._v(" Status checking")]),t._v(" "),e("p",[t._v("The status checking mechanism is responsible for recording the current status of the ARE or the error state of a component. The status is recorded by creating and storing objects called "),e("em",[t._v("statusObjects")]),t._v(". A statusObject stores the status of its creator as a string, its creator (the ARE or the specific component) and the error message.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setStatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" status"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The status of the ARE can be one of the following strings:")]),t._v(" "),e("p",[t._v("UNKNOWN: initial state for the ARE")]),t._v(" "),e("p",[t._v("OK: ARE is running and ready to deploy a model")]),t._v(" "),e("p",[t._v("DEPLOYED: A model has been deployed and the ARE is now ready to run the model")]),t._v(" "),e("p",[t._v("RUNNING: A model is running on the ARE")]),t._v(" "),e("p",[t._v("PAUSED: A model has been deployed and the ARE is in paused mode")]),t._v(" "),e("p",[t._v("ERROR: An error occurred")]),t._v(" "),e("p",[t._v("FATAL_ERROR: A fatal error occurred, model or deployment aborted")]),t._v(" "),e("p",[t._v("The status of a component can only be the ERROR state because this is the only state of a component that we are interested in recording for later use. An ERROR statusObject is automatically created when a component calls the reportError method as described above.")]),t._v(" "),e("p",[t._v("For retrieving the statusObjects, the following method is used:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("StatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("queryStatus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" fullList"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is particularly useful for the ACS to determine the current status of the runtime environment and of the deployed components. If the ARE or one of the components are in a problematic state it can be reflected in the ACS.")]),t._v(" "),e("p",[t._v("The boolean "),e("em",[t._v("fullList")]),t._v(" argument specifies whether the error list to be returned will include all statusObjects generated since the ARE startup or just those that have not been requested by the ACS before.")]),t._v(" "),e("h2",{attrs:{id:"the-are-thread-pool"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-thread-pool"}},[t._v("#")]),t._v(" The ARE Thread Pool")]),t._v(" "),e("p",[t._v("In order to avoid resource greedy threads and to achieve best thread handling, ARE uses one of the Thread Pool implementations provided by Java since JRE 1.5. In particular, we have utilized the java.util.concurrent.Executors library for creating a CachedThreadPool.")]),t._v(" "),e("p",[t._v("A cached thread pool will create threads as needed but will reuse previously instantiated threads when they are available and inactive. A cached thread pool is particularly useful for many short-lived asynchronous tasks and improves the performance of the runtime environment.")]),t._v(" "),e("p",[t._v("Developers are expected to use the ARE thread pool for executing their tasks that require a new Thread. You will need to import the middleware services package in order to get access to the "),e("strong",[t._v("AstericsThreadPool")]),t._v(" class.")]),t._v(" "),e("h2",{attrs:{id:"the-are-gui-support"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-gui-support"}},[t._v("#")]),t._v(" The ARE GUI support")]),t._v(" "),e("p",[t._v("The ARE provides a panel area (“ARE Desktop”) where plugins can display their graphical elements using the ARE GUI support classes. The ACS provides a dedicated canvas editor that allows end users positioning and resizing graphical elements of the plugins. Based on this information, the ARE displays plugins on the local device, maintaining the correct screen position and aspect ratio of graphical elements with respect to the screen resolution of the deployment device. (For more information about the usage of the ACS GUI editor and the ARE GUI control panel refer to the User Manual.)")]),t._v(" "),e("p",[e("img",{attrs:{src:a(295),alt:""}})]),t._v(" "),e("p",[e("strong",[t._v("GUI composition using the ACS GUI designer (right), resulting ARE GUI (left)")])]),t._v(" "),e("p",[t._v("In order to be recognized as GUI-plugin by ACS and ARE, the bundle descriptor of the plugin has to be extended with a dedicated "),e("code",[t._v("")]),t._v(" entry, which specifies the default size in a virtual coordinate system of 10000/10000 pixels. In the deployment model, the ACS will create position and size information according to the area defined in the ACS GUI designer.")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("gui")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("width")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("5000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("height")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("3000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[e("strong",[t._v("The gui element addition to the bundle descriptor")])]),t._v(" "),e("p",[t._v("The AsTeRICS middleware provides some services to the plugin developers in order to allow them displaying their GUI element onto the ARE Desktop. The middleware services encapsulate the complexity of dealing with positioning and allow displaying all GUI elements onto the same container: the ARE Desktop.")]),t._v(" "),e("p",[t._v("All GUI services are defined in eu.asterics.mw.services.AREServices so developers need to import this class in order to get access to the following methods:")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void displayPanel (JPanel panel, IRuntimeComponentInstance componentInstance, boolean display)")])])]),t._v(" "),e("p",[t._v("This method is used for displaying (or hiding) a plugin’s panel at/from the ARE desktop. Developers need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the panel they want to be displayed (or removed)")])]),t._v(" "),e("li",[e("p",[t._v("the plugin object, in order to help the middleware finding the desired position and dimensions from the deployment model")])]),t._v(" "),e("li",[e("p",[t._v("a boolean argument specifying if they wish to hide or show the given panel.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("Dimension getAvailableSpace(IRuntimeComponentInstance componentInstance)")])])])]),t._v(" "),e("p",[t._v("The space that each plugin will occupy on the ARE desktop is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the available space for their graphical elements by calling the getAvailableSpace method which will return the space occupied for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Point getComponentPosition (IRuntimeComponentInstance componentInstance)")])])]),t._v(" "),e("p",[t._v("The positioning of plugin’s GUI elements is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the position of their graphical elements by calling the getComponentPosition which will return the position on screen for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void adjustFonts(JPanel panel, int maxFontSize, int minFontSize, int offset)")])])]),t._v(" "),e("p",[t._v("This service can be used by plugin developers interested in auto-adjusting the fonts of their GUI components depending on the space occupied for their plugins on the ARE desktop. They need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a panel to which all the internal fonts will be auto-adjusted")])]),t._v(" "),e("li",[e("p",[t._v("the maximum font size (in case there is more space available than needed)")])]),t._v(" "),e("li",[e("p",[t._v("the minimum font size, in case there is too little space which causes the text to become non-readable. Finally, the offset argument is used in case we want to occupy a percentage of the available space.")])])]),t._v(" "),e("p",[t._v("A good approach to GUI plugin development is to analyse existing plugins which provide GUI elements, e.g. the BarDisplay or Oscilloscope actuators, or the Slider or Cellboard sensor components.")]),t._v(" "),e("p",[t._v("If the plugin uses "),e("strong",[t._v("Swing to implement a GUI-widget")]),t._v(" (e.g. Slider,…), please check the following guidelines as well 4.2.8")]),t._v(" "),e("h2",{attrs:{id:"are-core-events-notification-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-core-events-notification-services"}},[t._v("#")]),t._v(" ARE core events notification services")]),t._v(" "),e("p",[t._v("The ARE core events notification service allows plugins to register/unregister to the ARE middleware in order to receive notifications of ARE core events.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void registerAREEventListener(IAREEventListener clazz)")])])]),t._v(" "),e("p",[t._v("It is sometimes necessary that plugins can be notified of various ARE events so they can react as needed. This method can be called by component instances that wish to be notified of such ARE events. Currently, the core events supported are:")]),t._v(" "),e("ul",[e("li",[e("p",[e("em",[t._v("preDeployModel:")]),t._v(" registered ARE event listeners will be notified just before the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postDeployModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStartModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStartModel:")]),t._v(" registered ARE event listeners will be notified immediately after the currently deployed model has been started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStopModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStopModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("prePauseModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postPauseModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preResumeModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postResumeModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified just before the bundles are is installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified immediately after the bundles have been installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("void unregisterAREEventListener(IAREEventListener clazz)")])])])]),t._v(" "),e("p",[t._v("Plugins already registered for receiving ARE core events can un-register using this method.")]),t._v(" "),e("h2",{attrs:{id:"dynamic-properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-properties"}},[t._v("#")]),t._v(" Dynamic Properties")]),t._v(" "),e("p",[t._v("In some applications, the ACS should be able to provide several options for property values which are not known in advance but depend on the current state of the ARE (see AsTeRUCS User Manual, section “Dynamic Properties”)… A typical example is the selection of a file which is available in the ARE file system (e.g. a .wav-file for the wave player plugin). This feature is particularly useful for plugins that are hardware dependent (selecting e.g. a soundcard or a midi player), or depend on the file system.")]),t._v(" "),e("p",[t._v("If a plugin is implementing a dynamic property, the values will be requested from the ARE, as soon as the ACS is synchronized with the ARE, via the ASAPI function:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),e("span",{pre:!0,attrs:{class:"token generics"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("\n")])])]),e("p",[t._v("The ARE middleware will forward the request for valid property values to the component instance with the given ID. The "),e("code",[t._v("List getRuntimePropertyList(String key)")]),t._v(" method has to be implemented in the "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" class which every AsTeRICS component extends.\nThe method implementation creates the list of valid properties and returns it to the middleware and the latter forwards the string list to the ACS via ASAPI. The ACS will dynamically update the property list in the properties window.")]),t._v(" "),e("p",[t._v("For an example of the dynamic property implementation, see the WaveFilePlayer plugin.")]),t._v(" "),e("h2",{attrs:{id:"data-synchronization"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-synchronization"}},[t._v("#")]),t._v(" Data Synchronization")]),t._v(" "),e("p",[t._v("Some plugins need data of multiple input ports to be able to start processing. Without data synchronization it is possible that one input port of a plugin receives multiple values before another port gets one value, although both signal channels deliver values at the same sampling rate.")]),t._v(" "),e("p",[t._v("The synchronization service provides a buffering mechanism at the middleware level that can be utilized by plugin developers in order to make sure that incoming data of selected input ports arrives synchronized.")]),t._v(" "),e("p",[t._v("To use the synchronization service in the plugin code, plugin developers are expected to extend the "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" instead of implementing the "),e("em",[t._v("IRuntimeInputPort.")]),t._v(" Basically, "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" provides a default implementation for the necessary buffering methods, as shown in the table below.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("abstract")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" startBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" stopBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" isBuffered "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The designer can define that a plugin’s input port should be synchronized with some other input ports via the ACS. This will cause an argument change of the inputPort element on the deployment model file (e.g.,"),e("code",[t._v('')]),t._v(").")]),t._v(" "),e("p",[t._v("As soon as a model is deployed on the ARE, the middleware collects per component every port noted as synchronized port. When the model is successfully deployed and started, the ARE will buffer data which enters synchronized input ports until data on all synchronized ports has arrived. At that point, the ARE will call a new "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" callback method.")]),t._v(" "),e("p",[t._v("Developers that wish to support data synchronization need to implement the following method at their component instances.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("syncedValuesReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Where dataRow is a HashMap between Input Port ID and byte[]. For synchronized input ports, instead of implementing the regular "),e("em",[t._v("void receiveData(byte[] data)")]),t._v(" method which delivers incoming data of a single port, developers need to implement the "),e("em",[t._v("syncedValuesReceived")]),t._v(" method which will be called from the ARE with synchronized data from all the input ports that have been selected.")]),t._v(" "),e("h2",{attrs:{id:"interfacing-native-c-c-code-via-jni"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#interfacing-native-c-c-code-via-jni"}},[t._v("#")]),t._v(" Interfacing Native C/C++ Code via JNI")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("## Specifying native libraries in the Manifest\n")])])]),e("p",[t._v("The Manifest file of a bundle which includes native libraries has to specify these .dlls as shown in the following example:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-sensors.mycomponent\nBundle-SymbolicName: org.asterics.mycomponent\nBundle-Version: 0.1.0\nBundle-NativeCode: lib/native/mylib1.dll;\n lib/native/mylib2.dll;\n lib/native/mylib3.dll;\n osname=win32;processor=x86;\n osname=win;processor=x86-64;\n osname=win8;processor=x86;\n osname=win8;processor=x86-64;\n osname=windows 8;processor=x86;\n osname=windows 8;processor=x86-64;\n osname=windows8;processor=x86;\n osname=windows8;processor=x86-64;\n osname=Windows 8.1;processor=x86;\n osname=Windows 8.1;processor=x86-64\nDynamicImport-Package: *\n")])])]),e("p",[t._v("Components which interface native code via JNI and their respective manifest files can be found in the SVN, e.g. the “webcamera” component or the signal processing plugins by Starlab.")]),t._v(" "),e("p",[t._v("Note that the .jar containing the .dlls can be built manually using the command:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("jar "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-cvfm")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("/mybundle.jar META-INF/MANIFEST.MF "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\n")])])]),e("h2",{attrs:{id:"java-implementation-jni-bridge"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java-implementation-jni-bridge"}},[t._v("#")]),t._v(" Java-Implementation: JNI-Bridge")]),t._v(" "),e("p",[t._v("The recommended way to interface Java code of an ARE component with native code in a .dll is a bridge class which encapsulates the JNI functions and callbacks and maps the functions of the ARE component’s lifecycle-, port- and property-management to the corresponding functions in the native code. Here is a simple example which comprises one component property and receives data callbacks from a thread implemented in C. The received values are transferred to the component’s output port:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("jni")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mycomponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* Statically load the native library */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib1.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib2"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib2.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib3.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAnonymousLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("my_outport "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Activates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("activate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Deactivates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("deactivate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Gets the value of the named property.\n *\n * @param key the name of the property to be accessed\n * @return the value of the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Sets the named property to the defined value.\n *\n * @param key the name of the property to be accessed\n * @param value the value to be assigned to the named property\n * @return the value previously assigned to the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code on demand to signify \n * an internal error. The first argument corresponds to an error code \n * and the second argument corresponds to a textual description \n * of the error.\n * @param errorCode an error code\n * @param message a textual description of the error\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("errorReport_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" errorCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n logger"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("severe")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorCode "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('": "')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code to send data\n * to the component’s output port.\n *\n * @param data1 (range is [0, Short.MAX_VALUE])\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("newData_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h2",{attrs:{id:"c-implementation-callbacks-and-jni-code"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#c-implementation-callbacks-and-jni-code"}},[t._v("#")]),t._v(" C-Implementation: Callbacks and JNI code")]),t._v(" "),e("p",[t._v("The native C-code needs to be compiled into a .dll and include the JNI header files and libraries. An example for the Microsoft Visual Studio compiler looks as follows:")]),t._v(" "),e("p",[t._v("The following C-example shows how to implement a JNI-callback from a C-thread and an ARE-compliant exchange of a component property:")]),t._v(" "),e("div",{staticClass:"language-c extra-class"},[e("pre",{pre:!0,attrs:{class:"language-c"}},[e("code",[e("span",{pre:!0,attrs:{class:"token macro property"}},[e("span",{pre:!0,attrs:{class:"token directive-hash"}},[t._v("#")]),e("span",{pre:!0,attrs:{class:"token directive keyword"}},[t._v("include")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("")])]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" JavaVM "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" jobject g_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myProperty"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"20"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_activate")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\terror_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetJavaVM")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\tjclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newData_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* method not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// explicitly ask for a global reference")]),t._v("\n\tg_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_init")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_deactivate")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_exit")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tenv"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("DeleteGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_getProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\t\t\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_setProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n\t strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown */")]),t._v("\n\t strValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\tpollingIntervalValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// prepare JNI callback")]),t._v("\n JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n g_jvm"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("AttachCurrentThread")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newCoordinates_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// perform JNI callback")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("CallVoidMethod")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("jint"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("my_new_data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("This native C-code needs to be compiled into a .dll, the JNI header files and libraries have to be specified to the compiler and linker respectively. An example for the Microsoft Visual Studio build tools looks as follows:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v('cl -c -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include" -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include\\win32" -I ".\\3rdparylib" my_c_file.cpp /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_WARNINGS" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /errorReport:queue \nlink my_c_file.obj /DLL /OUT:".\\my_c_file.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"libmsvc" /LIBPATH:"3rdparylib" "odbc32.lib" "odbccp32.lib" "comctl32.lib" "winmm.lib" "opengl32.lib" "ole32.lib" "strmiids.lib" "uuid.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "oleaut32.lib" /NODEFAULTLIB:"libcd.lib" /NODEFAULTLIB:"atlthunk" /NODEFAULTLIB:"LIBCMT" /MANIFESTUAC:"level=\'asInvoker\' uiAccess=\'false\'" /DEBUG /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:QUEUE\n')])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The compiler and linker switches may differ depending on the nature of your dependency libraries and setup.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-packaging-environment-ape"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-packaging-environment-ape"}},[t._v("#")]),t._v(" AsTeRICS Packaging Environment (APE)")]),t._v(" "),e("p",[t._v("The APE let’s you select a set of AsTeRICS model files and create a downstripped (minimum size) version of the ARE including plugins, configuration files and data files to execute the models. Optionally, the APE allows the creation of native installers for Windows, Linux incl. Raspberry Pi and Mac OSX using "),e("a",{attrs:{href:"http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGIBBCI",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaFX packaging technology"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("See "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-Packaging-Environment-(APE)",target:"_blank",rel:"noopener noreferrer"}},[t._v("APE documentation"),e("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{289:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_c0991ef32ae9b458.424ba3f3.png"},290:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_4dfe72317ab9f571.6b0975c3.jpg"},291:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_b6693a1cbcd9178a.03fc763d.png"},292:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_f1a0b4f36dd370ba.c1a39a2a.jpg"},293:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_fb7627584ba9d5d7.45a2067d.png"},294:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_3e993efbc73f2910.c6357005.png"},295:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_74b8c615b8455605.d7a70de8.png"},941:function(t,e,a){"use strict";a.r(e);var s=a(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"are-middleware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-middleware"}},[t._v("#")]),t._v(" ARE Middleware")]),t._v(" "),e("h2",{attrs:{id:"the-asterics-runtime-environment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-asterics-runtime-environment"}},[t._v("#")]),t._v(" The AsTeRICS Runtime Environment")]),t._v(" "),e("p",[t._v("The AsTeRICS Runtime environment (ARE) is an OSGi-based middleware [3] which allows software plugins to run in parallel. The plugins usually represent a sensor or an actuator and are implemented as independent OSGi bundles. The runtime environment identifies AsTeRICS plugins from other OSGi bundles based on metadata defined inside the plugins.")]),t._v(" "),e("p",[t._v("The ARE expects from plugin-developers to define the structure of their plugins (properties, inputs, outputs and event ports) in XML files. Based on these XMLs, the middleware constructs a runtime representation of each installed AsTeRICS plugin.")]),t._v(" "),e("p",[t._v("Furthermore, the ARE expects a runtime model (system model) which usually comes from the AsTeRICS Configuration Suite (ACS). The ACS is running on a Windows Personal Computer (.net 4.0 required) and mainly used to graphically design the layout of the system as a network of interconnected components. The system model is another XML file that defines the components participating in a specific application, connections between them, events and other properties. Based on this file, ARE knows which plugins to activate and how to define the data flow between them. Since the system model represents the main communication means between the ACS and the ARE, it is expected to be a serialisable object, easy to transfer and translate. ARE and ACS communicate through an appropriate TCP/IP-based communication protocol named ASAPI.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(295),alt:""}})]),t._v(" "),e("p",[t._v("The ARE also provides “services” to plugin developers (for example communication support for COM ports) and it allows reporting errors on the runtime environment, registering event listeners and interacting with its graphical user interface (ARE GUI).")]),t._v(" "),e("p",[t._v("The ARE GUI is a simple graphical environment developed to allow end-users to interact directly with the runtime environment. It may be used to modify runtime parameters of a model via buttons or sliders, and to monitor live signals and events of the running model.")]),t._v(" "),e("h2",{attrs:{id:"are-components"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-components"}},[t._v("#")]),t._v(" ARE Components")]),t._v(" "),e("p",[t._v("The ARE consist of the following main parts:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("The ARE middleware")])]),t._v(" "),e("li",[e("p",[t._v("ARE plugins (also referred to as “components”) – sensor, processor and actuator modules which provide functional building blocks for assistive functionalities")])]),t._v(" "),e("li",[e("p",[t._v("A service layer which provides infrastructure to the ARE components,"),e("br"),t._v("\nfor example COM port and communication management for connection of the Communication Interface Modules (CIMs)")])])]),t._v(" "),e("p",[t._v("The ARE is commonly deployed on an embedded device, running an appropriate operating system (OS), typically an embedded variant of Windows. On top of the OS, an appropriate Java Virtual Machine (JVM) is used to host the OSGi component framework which provides support for modularity and dynamic loading/unloading of components.")]),t._v(" "),e("p",[t._v("All the core components of the framework (described in detail later) are defined as OSGi modules. Certain components that need to access legacy code (e.g., written in C or C++) are also deployed on top of OSGi, and are interfaced to the native code using Java Native Interface (JNI) as needed. In this regard, and with the exception of the pluggable components that use native code interfaces with platform-specific JNI bindings, the ARE middleware is expected to be "),e("em",[t._v("platform independent")]),t._v(".")]),t._v(" "),e("p",[t._v("The implementation requires basically JAVA 1.7 (JDK/JRE 7) and an OSGi framework (which is part of the source code downloads).")]),t._v(" "),e("h2",{attrs:{id:"about-osgi"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about-osgi"}},[t._v("#")]),t._v(" About OSGi")]),t._v(" "),e("p",[t._v("The Open Service Gateway initiative (OSGi) is an open specification that enables the modular assembly of software built with the Java technology [3]. The OSGi Service Platform facilitates the componentization of software modules and applications and assures interoperability of applications and services over a variety of networked devices.")]),t._v(" "),e("p",[t._v("OSGi technology is the dynamic module system for Java™. Java provides the portability that is required to support products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployed; The OSGi Service Platform provides a service-oriented architecture that enables these components to dynamically discover each other for collaboration, and thereby forms the optimal basis for the AsTeRICS middleware.")]),t._v(" "),e("h2",{attrs:{id:"getting-started-with-asterics-development"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-asterics-development"}},[t._v("#")]),t._v(" Getting Started with AsTeRICS Development")]),t._v(" "),e("p",[t._v("The AsTeRICS source code repository is hosted at github and located at")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[e("strong",[t._v("https://github.com/asterics/AsTeRICS")]),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("The source code contains open source software modules in JAVA, C++ and C, and proprietary modules by AsTeRICS partners which are available in binary from (.dll or .exe).")]),t._v(" "),e("p",[t._v("The licenses of the utilized software packages and 3rd party products can be viewed in the file "),e("em",[t._v("/documentation/licenses.doc")])]),t._v(" "),e("p",[t._v("Currently, the editor for OSKA (the on-screen keyboard application) is the only commercial software package within the AsTeRICS framework – and not included in the free downloads. The OSKA editor is only needed if you want to design custom on-screen keyboard layouts for OSKA (see AsTeRICS User Manual).")]),t._v(" "),e("h2",{attrs:{id:"understanding-the-component-build-scripts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#understanding-the-component-build-scripts"}},[t._v("#")]),t._v(" Understanding the component build-scripts")]),t._v(" "),e("p",[t._v("A typical ANT build script for an ARE component looks like the following:")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("project")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("default")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("component.id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("processor.MyComponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- set global properties for this build --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("build"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../out/production/${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src.java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("dist"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("runtime"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../../examples/ARE"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("path")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bin"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${osgi}/org.eclipse.osgi_3.6.0.v20100517.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${middleware}/asterics.ARE.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the time stamp --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tstamp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the build directory structure used by compile --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mkdir")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile the source "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("javac")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("srcdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${src.java}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("destdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("verbose")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("true"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("debug")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${debug}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("classpath")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${classpath}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("classpath")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("refid")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("generate the OSGi bundle"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("jar")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("jarfile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("manifest")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}/META-INF/MANIFEST.MF"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("fileset")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("copy")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("file")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("tofile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${runtime}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[t._v("In the first section of the build script, folder locations for the build intermediates, the final build products (.jar file) and the classpath are defined. The classpath usually points to the “bin” folder, the middleware “asterics.ARE.jar” and the osgi distribution. If a component needs additional resources, their location has to be defined here.")]),t._v(" "),e("p",[t._v("Subsequently the build script defines two build targets: the compilation of the Java source code and the creation of the .jar file. If the .jar file shall contain additional .dlls with native code, they have to be specified in the Manifest file as shows in section 5.14.1.")]),t._v(" "),e("p",[t._v("After the .jar file has been created in the distribution folder, it is copied to the runtime folder (/bin/ARE).")]),t._v(" "),e("h2",{attrs:{id:"starting-the-are-middleware-and-component-deployments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#starting-the-are-middleware-and-component-deployments"}},[t._v("#")]),t._v(" Starting the ARE middleware and component deployments")]),t._v(" "),e("p",[t._v("To test the ARE and component bundles, open the folder “/bin/ARE”, and use ARE.exe, start.bat or start_debug.bat.")]),t._v(" "),e("h2",{attrs:{id:"structure-of-the-runtime-folder-bin-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-the-runtime-folder-bin-are"}},[t._v("#")]),t._v(" Structure of the runtime folder “./bin/ARE”:")]),t._v(" "),e("p",[t._v("This folder contains dependencies for running the ARE middleware and the .jars resulting from ANT builds, it has the following structure:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("/\n+- bin/\n +- ARE/\n +- data/ folder for plugin working data\n +- models/ stored models (configurations)\n +- profile/\n +- config.ini system bundles to be started\n +- services.ini general service bundles to be started\n +- services-windows.ini windows-specific service bundles\n +- services-linux.ini linux-specific service bundles\n +- services-macosx.ini macosx-specific service bundles\n +- org.eclipse.osgi/ osgi bundle cache folder\n +- 1238790741.log system log messages, stack trace\n +- tools/ plugin helper apps and dlls\n +- .logger stores console logging settings\n +- ARE.exe starts the ARE without console output\n +- areProperties stores recent window/GUI properties\n +- component bundle(s)\n +- asterics.ARE.jar ARE middleware\n +- asterics.mw.services.cimcommunication.jar CIM port manager\n +- grizzly-httpservice-bundle-2.3.23.jar http service for webservice feature\n +- javacv-*-linux|windows|macosx.jar platform specific javacv service\n +- tmp/*.log application log files\n +- jtester.exe helper app for checking Java version\n +- logging.properties configuration of loglevel etc.\n +- org.eclipse.osgi.*.jar osgi distribution\n +- sleeper.exe helper app for launcher timing\n +- start.bat starts ARE with console output\n +- findjava.bat searches for the newest 32bit JRE\n +- start_debug.bat starts ARE with Eclipse debug support\n +- start.sh starts ARE without console on Linux\n +- start_debug.sh starts ARE with debugging on Linux\n +- VCChecker.jar helper jar for checking VC redist dependency\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Important Note: The osgi configuration folder “org.eclipse.osgi” in the “profile” subdirectory has to be deleted if .dlls in .jar bundles are updated or changed. (This folder is automatically created when starting the ARE and holds working data for the OSGI-bundles.) The One-Click build.xml script described in chapter 2.4.2 deletes the folder automatically.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-services"}},[t._v("#")]),t._v(" AsteRICS services")]),t._v(" "),e("p",[t._v("An AsteRICS service is a bundle that provides ARE-wide functionality usable by other services or plugins. The service can be optionally disabled which means that the service bundle is not installed and not activated. The file services.ini contains a list of general services to be loaded. Whereas the services-windows.ini, services-linux.ini and services-macosx.ini files contain platform dependent service names. You can also create your own use-case specific services ini file and edit the start script to load it.")]),t._v(" "),e("h2",{attrs:{id:"running-a-deployment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#running-a-deployment"}},[t._v("#")]),t._v(" Running a deployment")]),t._v(" "),e("p",[t._v("The “ARE.exe” starter application launches the ARE without console output and without debugging instrumentation.")]),t._v(" "),e("p",[t._v("Alternatively, the commandline batch script “start_debug.bat” which is provided in the folder “.bin/ARE” runs Java with additional configuration parameters including:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the location of the OSGi distribution")])]),t._v(" "),e("li",[e("p",[t._v("the profile subfolder which contains the config.ini file: “./bin/ARE/profile”")])]),t._v(" "),e("li",[e("p",[t._v("debugging instrumentation for the remote debugging server connection")])])]),t._v(" "),e("p",[t._v("After starting the ARE middleware, bundles are loaded and started on-demand if they are needed for the deployment of a model. If everything is properly configured, the ARE window comes up with a GUI and provides ASAPI server functionalities for connection of the ACS or other client applications.")]),t._v(" "),e("h2",{attrs:{id:"are-webserver-including-rest-api-websocket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver-including-rest-api-websocket"}},[t._v("#")]),t._v(" ARE webserver (including REST API, websocket)")]),t._v(" "),e("p",[t._v("The ARE contains a service that creates several web-based services. These include")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a webserver with document root "),e("em",[t._v("ARE/web")]),t._v(" and URL: "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a websocket at URL "),e("a",{attrs:{href:"http://localhost:8082/ws/astericsData",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/ws/astericsData"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a REST API at URL "),e("a",{attrs:{href:"http://localhost:8081/rest",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/rest"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a javascript REST API client implementation example at "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])])]),t._v(" "),e("h2",{attrs:{id:"define-autostart-model-per-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#define-autostart-model-per-command-line"}},[t._v("#")]),t._v(" Define autostart model per command line")]),t._v(" "),e("p",[t._v("By starting the ARE with the name of a model as first command line parameter a model that should be started automatically can be defined. The model must exist in the sub-folder “models”.")]),t._v(" "),e("p",[t._v("‘ARE.exe CameraMouse.acs’")]),t._v(" "),e("p",[t._v("or")]),t._v(" "),e("p",[t._v("‘start_debug.bat CameraMouse.acs’")]),t._v(" "),e("h2",{attrs:{id:"change-model-task-submit-timeout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-model-task-submit-timeout"}},[t._v("#")]),t._v(" Change model task submit timeout")]),t._v(" "),e("p",[t._v("The file “areProperties” contains properties to configure ARE features and to configure the internal model execution behaviour. The following internal model execution properties exist:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("ThreadPoolTasks.submitTimeout=20000")]),t._v(" "),e("ul",[e("li",[t._v("When submitting a task to be executed in the ModelExecutor thread a submit timeout can be configured. After the time elapsed a TimeoutException is thrown. The timeout value must be specified in milliseconds."),e("br"),t._v("\nThe submit timeout is used for starting, stopping, pausing and resuming a model.")])])])]),t._v(" "),e("h2",{attrs:{id:"debugging-the-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#debugging-the-are"}},[t._v("#")]),t._v(" Debugging the ARE")]),t._v(" "),e("p",[t._v("If the ARE is started using the “start_debug.bat” script and source-level debug information was added during the compilation (see section 2.3), debugging with Eclipse is supported via a remote debugging connection. This is a convenient way for debugging an OSGI-based java framework with a lot of plugins. To enable the debugging support in Eclipse, a Debug Configuration is created via the dedicated menu entry:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(289),alt:""}})]),t._v(" "),e("p",[t._v("Create a “Remote Java Application” Debug Configuration and assign a name for it, e.g. “ARE”. Then, specify the connection properties of the Debug Configuration to use the Host “localhost” and the Socket/Port “1044” (this port is given in the ARE build scripts for the remote debug server to listen for incoming client connections):")]),t._v(" "),e("p",[e("img",{attrs:{src:a(290),alt:""}})]),t._v(" "),e("p",[t._v("Now launch the ARE using “start_debug.bat”. The messages in the console window should indicate the establishment of the listening socket 1044 for the debugging connection:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(291),alt:""}})]),t._v(" "),e("p",[t._v("Now, the usual debugging support of Eclipse can be used, including breakpoints in middleware or components, variable and context watch windows, single stepping etc. All these operations are performed in the Eclipse “Debug” perspective.")]),t._v(" "),e("p",[t._v("The following screenshot shows a program execution of the ARE which ran into a breakpoint (here: the OSKA plugin was halted as a command was selected in the OSKA-application and transferred to the ARE plugin’s command handler:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(292),alt:""}})]),t._v(" "),e("p",[t._v("I"),e("img",{attrs:{src:a(293),alt:""}}),t._v(" f the source-level debug information is missing (due to compilation without debugging support) an error message indicates a problem, e.g. the missing line number for breakpoint installation:")]),t._v(" "),e("h2",{attrs:{id:"services-and-utils-infrastructure-for-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#services-and-utils-infrastructure-for-plugins"}},[t._v("#")]),t._v(" Services and Utils: Infrastructure for plugins")]),t._v(" "),e("p",[t._v("The ARE Services are a set of classes that enable the direct interaction between AsTeRICS plugins and other software to directly interact with the runtime environment. The most significant ARE Services are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIM Communication Service: the ARE CIM Communication service layer is a unified approach to allow plugins of the ARE to communicate with their associated hardware modules attached to the AsTeRICS platform via a COM port. A range of hardware modules are provided which implement the dedicated Communication Interface Module (CIM) protocol. Further details on this communication protocol and implementation details for the ARE CIM Communication Service can be found in chapter 5.15.")])]),t._v(" "),e("li",[e("p",[t._v("Remote Connection Service: the remote connection services allows external software that cannot be integrated into the standard plugin inter communication system used by the ARE, for example because of programming language incompatibilities, to work with the AsTeRICS system. For example, the interconnection of OSKA (the On-Screen Keyboard Application developed by AsTeRICS partner SENSORY) and the ARE uses the Remote Connection Service to send key selection information to the ARE. On the other hand, the ARE can reply with cell selection commands or other information. The actual communication is done via a protocol that can be understood by the Java ServerSocket implementation. The port number that the external software component connects to identifies the connecting component.")])]),t._v(" "),e("li",[e("p",[t._v("Local Storage Service: The Local Storage Service will allow plugins to store individual working data “per model” and “per plugin-instance”. This is necessary when plugins need to store own calibration data, pattern recognition samples or similar data. In course of the architectural refinements for the final prototype, a service class will be provided which generates an according folder and respective file read- and write methods.")])]),t._v(" "),e("li",[e("p",[t._v("Native Hook Services for systemwide keyboard and mouse capturing")])]),t._v(" "),e("li",[e("p",[t._v("Computer Vision services to support a unified way for frame grabbing, computer vision processing and video frame rendering.")])]),t._v(" "),e("li",[e("p",[t._v("Logging service")])]),t._v(" "),e("li",[e("p",[t._v("ConversionUtils: Helper class to convert port data streams into Java data types and vice versa.")])]),t._v(" "),e("li",[e("p",[t._v("Class "),e("strong",[t._v("ResourceRegistry")]),t._v(" to fetch resource URIs. If a plugin needs access to a config, data or a multimedia file, the class ResourceRegistry must be used.")])])]),t._v(" "),e("h2",{attrs:{id:"communicating-with-peripherals-cim-communication-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communicating-with-peripherals-cim-communication-service"}},[t._v("#")]),t._v(" Communicating with peripherals: CIM Communication service")]),t._v(" "),e("p",[t._v("Communication between actuator and sensor components in the ARE and peripheral devices is currently defined to use a serial communication i.e. a COM port or a virtual COM port. Messaging via this interface can either adhere to the CIM protocol (see section 5.15) or use any other protocol using the raw port implementation of the CIM communication services.")]),t._v(" "),e("p",[t._v("All the communication with peripheral devices is done through a service in the ARE service layer called CIM Communication. The service is provided as a separate OSGi bundle which places its classes in the package "),e("code",[t._v("$1")]),t._v(". Access to the classes is done by exporting the entire package in the bundle.")]),t._v(" "),e("p",[t._v("Four classes of the CIM Communication service are important to the component programmer:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMPortManager")])]),t._v(" "),e("li",[e("p",[t._v("CIMController")])]),t._v(" "),e("li",[e("p",[t._v("CIMProtocolPacket")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventHandler")])])]),t._v(" "),e("h2",{attrs:{id:"cimportcontroller"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportcontroller"}},[t._v("#")]),t._v(" CIMPortController")]),t._v(" "),e("p",[t._v("CIMPortController is an abstract class which hides the actual implementation of the port controller. The port controller provides the same methods for sending packets using the CIM protocol, for raw port implementations and for future uses such as a port controller handling Zigbee connections.")]),t._v(" "),e("h2",{attrs:{id:"cimportmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportmanager"}},[t._v("#")]),t._v(" CIMPortManager")]),t._v(" "),e("p",[t._v("All CIM ports and other COM ports are access through the main class of the package CIMPortManager. This is implemented as a singleton with a public access method getInstance(). Thus all calls to the CIM communication service have to be done through:")]),t._v(" "),e("p",[e("code",[t._v("CIMPortManager.getInstance()")])]),t._v(" "),e("p",[t._v("Upon creation the CIMPortManager detects all the connected CIMs and registers them in a HashMap. CIMs are identified and stored by the combination of their CIM Id and their unique number. Therefore multiple CIMs of the same CIM Id can be used on the AsTeRICS platform.")]),t._v(" "),e("p",[t._v("On some computers there exist certain serial ports which do not work correctly and behave strangely. An example of such a port is a loopback port which echoes everything written to it or ports created by Bluetooth dongles. Since the CIMPortManager iterates through all serial ports, these ports can cause problems in the auto detection of attached CIMs and even lock up the runtime. Therefore a file "),e("em",[t._v("ignore_ports.txt")]),t._v(" in the directory "),e("em",[t._v("data/cimcommunication")]),t._v(" is parsed upon start of the auto detection. This file should be filled with the name of the COM ports behaving erratically one name per line.")]),t._v(" "),e("p",[t._v("To be able to communicate with a CIM, the CIM port manager provides several methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("long")]),t._v(" uniqueNumber"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("These methods return a CIMPortController (read on for details) instance of the requested CIM. The method using two parameters will return the instance to the port controller which works with the CIM of the exact CIM ID and unique number. If the CIM cannot be found, null will be returned.")]),t._v(" "),e("p",[t._v("Requesting a connection without naming a unique number will return the first port controller connected to a CIM of the correct ID found in the HashMap holding all the port controllers.")]),t._v(" "),e("p",[t._v("Sending data to the connected peripheral can be done in several ways using the following methods of CIMPortManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMUniqueIdentifier")]),t._v(" cuid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" ctrl"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Basically these three methods do the same thing, however they do it at different speeds as the first two methods will look up the port controller that the packet should be sent to. Again the method taking only the CIM ID as a parameter will look up the first correct port controller. The third method which is passed the CIMPortController instance returned on getConnection() is the fastest method and should be used whenever possible.")]),t._v(" "),e("p",[t._v("Sending a CIM packet is done by providing the feature address and request code for a certain packet. The feature addresses and request codes can be found in the CIM protocol specification and the basic addresses and requests are also provided as static fields in the CIMProtocolPacket class. If data has to be attached to a CIM protocol packet a byte array holding said data has to be passed to the method, otherwise the data parameter of the method has to be set to null. The caller can also decide whether a CRC checksum should be added to the packet although this is currently unimplemented.")]),t._v(" "),e("h2",{attrs:{id:"cimeventhandler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimeventhandler"}},[t._v("#")]),t._v(" CIMEventHandler")]),t._v(" "),e("p",[t._v("Receiving a packet is done through use of the CIMEventHandler interface. This interface should be implemented by plugins that wish to communicate with CIMs (or raw ports). The interface contains two methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("These methods are called upon correct reception of a packet or upon discovery of an error (timeout of a reply, packet transmission errors, incorrect order of incoming packets …) respectively by the port controller.")]),t._v(" "),e("p",[t._v("Upon correct reception of a CIM protocol based packet the method handlePacketReceived() is called with an instance of CIMEventPacketReceived as parameter. After conversion of the CIMEvent to this class, the packet can be extracted from the event and processed further.")]),t._v(" "),e("p",[t._v("All detected errors lead to a call of handlePacketError() with an appropriate CIMEvent implementation. The possible implemenations are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMEventErrorPacketFault: holds information to error in packet and the broken packet itself")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventErrorPacketLost: holds information on serial number of lost packet")])])]),t._v(" "),e("p",[t._v("To register the event handler with a specific CIM port controller, the CIMPortController class exposes the following methods:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("addEventHandler(CIMEventHandler hdlr)")])]),t._v(" "),e("li",[e("p",[t._v("removeEventHandler(CIMEventHandler hdlr)")])])]),t._v(" "),e("p",[t._v("A port controller can handle multiple attached event handlers and remove each one separately.")]),t._v(" "),e("h2",{attrs:{id:"cimprotocolpacket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimprotocolpacket"}},[t._v("#")]),t._v(" CIMProtocolPacket")]),t._v(" "),e("p",[t._v("This class holds all the information given in a packet transferred to or from a CIM. There are two ways the developer has to use this class. Upon sending packets the sending component has to set the feature address and the request code. The CIMProtocolPacket class provides the constants as static field to facilitate setting commands.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x00")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x01")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_EVENT_REPLY")]),t._v(" \t\t\t "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x20")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Furthermore the class contains constants for the global features that every CIM has to provide.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("FEATURE_UNIQUE_SERIAL_NUMBER")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Upon reception of an incoming packet the component associated with the CIM sending the packet is notified and a reference to the packet is passed as an instance of CIMProtocolPacket wrapped in a CIMEvent instance. The developer can access all the fields of the packet via the getter methods the class provides:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAreCimID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSerialNumber")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFeatureAddress")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRequestReplyCode")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getCrc")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h2",{attrs:{id:"serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[t._v("#")]),t._v(" Serial ports not adhering to CIM Protocol (Raw Ports)")]),t._v(" "),e("p",[t._v("Some peripherals use a proprietary protocol to transfer their data. If this is the case the user can open a raw port through the CIMPortManager method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will open the port with the name specified in the parameter portName and set the communication to the specified Baud rate.")]),t._v(" "),e("p",[t._v("Data can be sent to peripheral using the sendPacket() method for the returned CIMPortController. The packet will simply transfer the byte array passed in the data parameter and ignore the values giving the in the other parameter fields.")]),t._v(" "),e("p",[t._v("Received data will be forwarded to the event handler through calls to handlePacketReceived() with a CIMEventRawPacket as parameter. This class holds a public member variable b which holds the value of the received byte. The event handler has to handle the reconstruction of the proprietary packet itself.")]),t._v(" "),e("p",[e("strong",[t._v("HighSpeed Raw Ports:")])]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" highSpeed"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("A second variant opf the getRawConnection method allows specification of a “highSpeed” parameter. If highSpeed is true, the CIMPortController does not apply any connection handling or callbacks for received data to avoid performance problems in higher bandwidth streaming use cases. In this case, the CIMPortController can return the JAVA InputStream for the openend COM port connection and the plug developer can use it as desired:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("portController "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COM12")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nin "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" portController"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputStream")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("available")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" myHandlePacket "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("read")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"communication-through-a-socket-interface-remote-connection-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communication-through-a-socket-interface-remote-connection-manager"}},[t._v("#")]),t._v(" Communication through a socket interface: Remote Connection Manager")]),t._v(" "),e("p",[t._v("When using third party software that runs on the same platform (as for example the prominently used On Screen Keyboard Application OSKA), it becomes necessary to establish a communication between ARE and the third party application. This is managed by the RemoteConnectionManager found in the package eu.asterics.mw.services. The main interface to this manager are the classes RemoteConnectionManager and IRemoteConnectionListener.")]),t._v(" "),e("h2",{attrs:{id:"iremoteconnectionlistener"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#iremoteconnectionlistener"}},[t._v("#")]),t._v(" IRemoteConnectionListener")]),t._v(" "),e("p",[t._v("This interface is implemented by plugins that need to communicate via a socket communication. The interface contains the following methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionEstablished")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("dataReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionLost")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionClosed")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("connectionEstablished() is called whenever a plugin requests a connection and the connection has been established. This can either happen if a connection has already been established before or if the new connection has finished its setup and connection process.")]),t._v(" "),e("p",[t._v("dataReceived() is called whenever new data arrives from the other end of the connection. Data is transferred in a byte array and has to be processed by the event listener.")]),t._v(" "),e("p",[t._v("connectionLost() is called when the connection management cannot read from or write to the socket.")]),t._v(" "),e("p",[t._v("connectionClosed() is called after the connection has been closed.")]),t._v(" "),e("h2",{attrs:{id:"remoteconnectionmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#remoteconnectionmanager"}},[t._v("#")]),t._v(" RemoteConnectionManager")]),t._v(" "),e("p",[t._v("The RemoteConnectionManager is implemented as a singleton and can be accessed via a public static member of the class. Thus access is always achieved through:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RemoteConnectionManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance\n")])])]),e("p",[t._v("A connection is opened by calling the RemoteConnectionManager’s method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" requestConnection "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRemoteConnectionListener")]),t._v(" l"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This call will try to access a connection on the specified port. Although the port is actually an integer it is passed as a String here. The method will return true if a connection on this port has already been established and attach the remote connection listener passed in the second argument to the connection. If there is no active connection on the specified port, the requestConnection method will initiate the setup of the connection and return false. With this return value the user can decide whether he needs to perform setup actions or will be able to do this in the connectionEstablished() callback.")]),t._v(" "),e("p",[t._v("The socket connection handling is implemented using two threads, one for sending, one for receiving data. The receiver thread will continuously read data from the socket and forward it to the registered listener calling the dataReceived() method. Since incoming data is handled in another thread than the plugin which will use the socket connection, access to the methods handling this data or the way of passing data should be done in a synchronised code block.")]),t._v(" "),e("p",[t._v("Sending data is done calling the method sendData of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is called using a String holding the port number of the connection socket and an array of bytes to be sent. The call to this method will place the data in an outgoing queue and return true if this was successful. Thus it is not guaranteed that the data has already been sent when the method returns. The sender thread will grab data from the outgoing queue and transfer it via the socket or call the connectionLost() method of the registered listener if there are problems while sending.")]),t._v(" "),e("p",[t._v("Once the connection to a socket is not needed anymore, the user has to close the connection, calling the following method of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("closeConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will close the socket connection, end all threads and return.")]),t._v(" "),e("h2",{attrs:{id:"local-storage-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#local-storage-service"}},[t._v("#")]),t._v(" Local Storage Service")]),t._v(" "),e("p",[t._v("If a model needs to save its own calibration data, training data or other private data that can be different in every model and every instance, the local storage service provides a method to save different data to the same file name on a per plugin instance per model basis.")]),t._v(" "),e("p",[t._v("The service uses a directory tree structure that is placed in the directory the OSGi is run from. Data is saved in a directory called “storage”. In this directory, directories for every model name of a model that uses at least one plugin that accesses local storage can be found. In the third directory layer, directories with the plugin instance name of every plugin that accesses local storage can be found. Thus if a model named “timertest” uses a plugin instance named “timer1” that saves local data this data can be found at the path location “storage/timertest/timer1”.")]),t._v(" "),e("p",[t._v("The service practically consists of only one method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLocalStorageFile")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" fileName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Calling this method located in the AREServices class will return a File object pointing to the requested file name or null if the file could not be opened or the model name could not be retrieved. After opening the file the standard JAVA ways to manipulate files apply.")]),t._v(" "),e("h2",{attrs:{id:"keyboard-mouse-native-hook-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-mouse-native-hook-services"}},[t._v("#")]),t._v(" Keyboard/Mouse Native Hook Services")]),t._v(" "),e("p",[t._v("The AsTeRICS service jnativehook (if enabled) provides access to the library "),e("a",{attrs:{href:"https://github.com/kwhat/jnativehook",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/kwhat/jnativehook"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("Additionally, the service contains the singleton NativeHookServices that initializes the library to be usable in plugins. A plugin that wants to be a keaboard/mouse listener only has to add the listener to the GlobalScreen instance of the library.")]),t._v(" "),e("h2",{attrs:{id:"computer-vision-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#computer-vision-services"}},[t._v("#")]),t._v(" Computer Vision Services")]),t._v(" "),e("p",[t._v("The AsTeRICS services javacv and computervision (if enabled) provide access to the library "),e("a",{attrs:{href:"https://github.com/bytedeco/javacv",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/bytedeco/javacv"),e("OutboundLink")],1),t._v(", which again provides access to numerous libs in the field of computer vision (e.g. OpenCV), frame grabbing and frame rendering. Additionally, some helper classes are provided for face detection.")]),t._v(" "),e("h2",{attrs:{id:"data-conversion-utilities"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-conversion-utilities"}},[t._v("#")]),t._v(" Data Conversion Utilities")]),t._v(" "),e("p",[t._v("The middleware provides the class “ConversionUtils” that provide static helper methods to convert model data types to byte arrays and vice versa. The conversion is needed to convert incoming data of input ports or outgoing data to output ports. There are methods for each type of conversion. If two connected ports (output to input) have different data types the data is automatically converted to the data type of the input port.")]),t._v(" "),e("p",[t._v("Check the class ConversionUtils for a full list of supported methods: "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"fetching-resource-uris-with-resourceregistry-class"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fetching-resource-uris-with-resourceregistry-class"}},[t._v("#")]),t._v(" Fetching resource URIs with ResourceRegistry class")]),t._v(" "),e("p",[t._v("If a plugin needs resources like data files (images, keyboard files, haarcascade definitions,…), the class "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("ResourceRegistry"),e("OutboundLink")],1),t._v(" must be used to fetch the resource URI.")]),t._v(" "),e("p",[t._v("This can be done by using the method:")]),t._v(" "),e("p",[e("code",[t._v("public URI getResource(String resourcePath, RES_TYPE type) throws URISyntaxException")])]),t._v(" "),e("p",[t._v("Returns the URI according to the given resourcePath string and the given resource type RES_TYPE.")]),t._v(" "),e("p",[t._v("Please refer to the Javadoc of the class and to the "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Fetching-resources-with-class-ResourceRegistry",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki page"),e("OutboundLink")],1),t._v(" for further examples.")]),t._v(" "),e("h2",{attrs:{id:"error-reporting-astericserrorhandling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-astericserrorhandling"}},[t._v("#")]),t._v(" Error Reporting (AstericsErrorHandling)")]),t._v(" "),e("p",[t._v("The "),e("code",[t._v("AstericsErrorHandling")]),t._v(" provides a unified logging and error reporting mechanism. It contains methods for reporting an error of a component or even the ARE.")]),t._v(" "),e("h3",{attrs:{id:"logging"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging"}},[t._v("#")]),t._v(" Logging")]),t._v(" "),e("p",[t._v("The Logging support provides a uniform way of error reporting in the runtime environment so we have utilized the Java logging libraries and the various severity levels supported. The AsTeRICS error handling mechanism is used extensively from the runtime core classes but also utilized by the AsTeRICS components via the AstericsErrorHandling interface.")]),t._v(" "),e("p",[t._v("Each component is allowed to report an error message, a debug information or a simple information to be displayed on the screen. The ARE maintains four separate log files and updates them whenever a new error occurs. In particular there are different loggers for reporting severe errors, warnings, fine errors and one logger that contains them all.")]),t._v(" "),e("p",[t._v("ARE also maintains a status object for the current status of the runtime environment. Whenever a fatal error occurs (either internally or caused by one of the deployed components) the status changes to fatal error. Other possible statuses are unknown, OK, deployed, running and paused.")]),t._v(" "),e("p",[t._v("The ACS can request the current status of the runtime environment and update its own state accordingly. For example the ACS user can be informed about the current ARE status while the ACS will terminate a connection (or refuse to establish a new one) with a non-working ARE.")]),t._v(" "),e("p",[t._v("Using a Logger is the recommended way to report notifications or error descriptions to the user. In the ARE framework, using the Java logging service is recommended. The Java logger can be configured using the file “logging.properties” (see section 2.3.3.1) and used as follows:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("…"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h3",{attrs:{id:"error-reporting-of-components"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-of-components"}},[t._v("#")]),t._v(" Error Reporting of components")]),t._v(" "),e("p",[t._v("If a component wants to notify an error it should use the following method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_warning.log” file. Additionally the status of the component is set to error with the given error message and an error dialog is shown in the ARE gui, if enabled.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportInfo")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" info"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_fine.log” file.")]),t._v(" "),e("h3",{attrs:{id:"status-checking"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#status-checking"}},[t._v("#")]),t._v(" Status checking")]),t._v(" "),e("p",[t._v("The status checking mechanism is responsible for recording the current status of the ARE or the error state of a component. The status is recorded by creating and storing objects called "),e("em",[t._v("statusObjects")]),t._v(". A statusObject stores the status of its creator as a string, its creator (the ARE or the specific component) and the error message.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setStatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" status"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The status of the ARE can be one of the following strings:")]),t._v(" "),e("p",[t._v("UNKNOWN: initial state for the ARE")]),t._v(" "),e("p",[t._v("OK: ARE is running and ready to deploy a model")]),t._v(" "),e("p",[t._v("DEPLOYED: A model has been deployed and the ARE is now ready to run the model")]),t._v(" "),e("p",[t._v("RUNNING: A model is running on the ARE")]),t._v(" "),e("p",[t._v("PAUSED: A model has been deployed and the ARE is in paused mode")]),t._v(" "),e("p",[t._v("ERROR: An error occurred")]),t._v(" "),e("p",[t._v("FATAL_ERROR: A fatal error occurred, model or deployment aborted")]),t._v(" "),e("p",[t._v("The status of a component can only be the ERROR state because this is the only state of a component that we are interested in recording for later use. An ERROR statusObject is automatically created when a component calls the reportError method as described above.")]),t._v(" "),e("p",[t._v("For retrieving the statusObjects, the following method is used:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("StatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("queryStatus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" fullList"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is particularly useful for the ACS to determine the current status of the runtime environment and of the deployed components. If the ARE or one of the components are in a problematic state it can be reflected in the ACS.")]),t._v(" "),e("p",[t._v("The boolean "),e("em",[t._v("fullList")]),t._v(" argument specifies whether the error list to be returned will include all statusObjects generated since the ARE startup or just those that have not been requested by the ACS before.")]),t._v(" "),e("h2",{attrs:{id:"the-are-thread-pool"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-thread-pool"}},[t._v("#")]),t._v(" The ARE Thread Pool")]),t._v(" "),e("p",[t._v("In order to avoid resource greedy threads and to achieve best thread handling, ARE uses one of the Thread Pool implementations provided by Java since JRE 1.5. In particular, we have utilized the java.util.concurrent.Executors library for creating a CachedThreadPool.")]),t._v(" "),e("p",[t._v("A cached thread pool will create threads as needed but will reuse previously instantiated threads when they are available and inactive. A cached thread pool is particularly useful for many short-lived asynchronous tasks and improves the performance of the runtime environment.")]),t._v(" "),e("p",[t._v("Developers are expected to use the ARE thread pool for executing their tasks that require a new Thread. You will need to import the middleware services package in order to get access to the "),e("strong",[t._v("AstericsThreadPool")]),t._v(" class.")]),t._v(" "),e("h2",{attrs:{id:"the-are-gui-support"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-gui-support"}},[t._v("#")]),t._v(" The ARE GUI support")]),t._v(" "),e("p",[t._v("The ARE provides a panel area (“ARE Desktop”) where plugins can display their graphical elements using the ARE GUI support classes. The ACS provides a dedicated canvas editor that allows end users positioning and resizing graphical elements of the plugins. Based on this information, the ARE displays plugins on the local device, maintaining the correct screen position and aspect ratio of graphical elements with respect to the screen resolution of the deployment device. (For more information about the usage of the ACS GUI editor and the ARE GUI control panel refer to the User Manual.)")]),t._v(" "),e("p",[e("img",{attrs:{src:a(294),alt:""}})]),t._v(" "),e("p",[e("strong",[t._v("GUI composition using the ACS GUI designer (right), resulting ARE GUI (left)")])]),t._v(" "),e("p",[t._v("In order to be recognized as GUI-plugin by ACS and ARE, the bundle descriptor of the plugin has to be extended with a dedicated "),e("code",[t._v("")]),t._v(" entry, which specifies the default size in a virtual coordinate system of 10000/10000 pixels. In the deployment model, the ACS will create position and size information according to the area defined in the ACS GUI designer.")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("gui")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("width")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("5000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("height")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("3000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[e("strong",[t._v("The gui element addition to the bundle descriptor")])]),t._v(" "),e("p",[t._v("The AsTeRICS middleware provides some services to the plugin developers in order to allow them displaying their GUI element onto the ARE Desktop. The middleware services encapsulate the complexity of dealing with positioning and allow displaying all GUI elements onto the same container: the ARE Desktop.")]),t._v(" "),e("p",[t._v("All GUI services are defined in eu.asterics.mw.services.AREServices so developers need to import this class in order to get access to the following methods:")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void displayPanel (JPanel panel, IRuntimeComponentInstance componentInstance, boolean display)")])])]),t._v(" "),e("p",[t._v("This method is used for displaying (or hiding) a plugin’s panel at/from the ARE desktop. Developers need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the panel they want to be displayed (or removed)")])]),t._v(" "),e("li",[e("p",[t._v("the plugin object, in order to help the middleware finding the desired position and dimensions from the deployment model")])]),t._v(" "),e("li",[e("p",[t._v("a boolean argument specifying if they wish to hide or show the given panel.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("Dimension getAvailableSpace(IRuntimeComponentInstance componentInstance)")])])])]),t._v(" "),e("p",[t._v("The space that each plugin will occupy on the ARE desktop is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the available space for their graphical elements by calling the getAvailableSpace method which will return the space occupied for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Point getComponentPosition (IRuntimeComponentInstance componentInstance)")])])]),t._v(" "),e("p",[t._v("The positioning of plugin’s GUI elements is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the position of their graphical elements by calling the getComponentPosition which will return the position on screen for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void adjustFonts(JPanel panel, int maxFontSize, int minFontSize, int offset)")])])]),t._v(" "),e("p",[t._v("This service can be used by plugin developers interested in auto-adjusting the fonts of their GUI components depending on the space occupied for their plugins on the ARE desktop. They need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a panel to which all the internal fonts will be auto-adjusted")])]),t._v(" "),e("li",[e("p",[t._v("the maximum font size (in case there is more space available than needed)")])]),t._v(" "),e("li",[e("p",[t._v("the minimum font size, in case there is too little space which causes the text to become non-readable. Finally, the offset argument is used in case we want to occupy a percentage of the available space.")])])]),t._v(" "),e("p",[t._v("A good approach to GUI plugin development is to analyse existing plugins which provide GUI elements, e.g. the BarDisplay or Oscilloscope actuators, or the Slider or Cellboard sensor components.")]),t._v(" "),e("p",[t._v("If the plugin uses "),e("strong",[t._v("Swing to implement a GUI-widget")]),t._v(" (e.g. Slider,…), please check the following guidelines as well 4.2.8")]),t._v(" "),e("h2",{attrs:{id:"are-core-events-notification-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-core-events-notification-services"}},[t._v("#")]),t._v(" ARE core events notification services")]),t._v(" "),e("p",[t._v("The ARE core events notification service allows plugins to register/unregister to the ARE middleware in order to receive notifications of ARE core events.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void registerAREEventListener(IAREEventListener clazz)")])])]),t._v(" "),e("p",[t._v("It is sometimes necessary that plugins can be notified of various ARE events so they can react as needed. This method can be called by component instances that wish to be notified of such ARE events. Currently, the core events supported are:")]),t._v(" "),e("ul",[e("li",[e("p",[e("em",[t._v("preDeployModel:")]),t._v(" registered ARE event listeners will be notified just before the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postDeployModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStartModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStartModel:")]),t._v(" registered ARE event listeners will be notified immediately after the currently deployed model has been started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStopModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStopModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("prePauseModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postPauseModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preResumeModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postResumeModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified just before the bundles are is installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified immediately after the bundles have been installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("void unregisterAREEventListener(IAREEventListener clazz)")])])])]),t._v(" "),e("p",[t._v("Plugins already registered for receiving ARE core events can un-register using this method.")]),t._v(" "),e("h2",{attrs:{id:"dynamic-properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-properties"}},[t._v("#")]),t._v(" Dynamic Properties")]),t._v(" "),e("p",[t._v("In some applications, the ACS should be able to provide several options for property values which are not known in advance but depend on the current state of the ARE (see AsTeRUCS User Manual, section “Dynamic Properties”)… A typical example is the selection of a file which is available in the ARE file system (e.g. a .wav-file for the wave player plugin). This feature is particularly useful for plugins that are hardware dependent (selecting e.g. a soundcard or a midi player), or depend on the file system.")]),t._v(" "),e("p",[t._v("If a plugin is implementing a dynamic property, the values will be requested from the ARE, as soon as the ACS is synchronized with the ARE, via the ASAPI function:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),e("span",{pre:!0,attrs:{class:"token generics"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("\n")])])]),e("p",[t._v("The ARE middleware will forward the request for valid property values to the component instance with the given ID. The "),e("code",[t._v("List getRuntimePropertyList(String key)")]),t._v(" method has to be implemented in the "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" class which every AsTeRICS component extends.\nThe method implementation creates the list of valid properties and returns it to the middleware and the latter forwards the string list to the ACS via ASAPI. The ACS will dynamically update the property list in the properties window.")]),t._v(" "),e("p",[t._v("For an example of the dynamic property implementation, see the WaveFilePlayer plugin.")]),t._v(" "),e("h2",{attrs:{id:"data-synchronization"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-synchronization"}},[t._v("#")]),t._v(" Data Synchronization")]),t._v(" "),e("p",[t._v("Some plugins need data of multiple input ports to be able to start processing. Without data synchronization it is possible that one input port of a plugin receives multiple values before another port gets one value, although both signal channels deliver values at the same sampling rate.")]),t._v(" "),e("p",[t._v("The synchronization service provides a buffering mechanism at the middleware level that can be utilized by plugin developers in order to make sure that incoming data of selected input ports arrives synchronized.")]),t._v(" "),e("p",[t._v("To use the synchronization service in the plugin code, plugin developers are expected to extend the "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" instead of implementing the "),e("em",[t._v("IRuntimeInputPort.")]),t._v(" Basically, "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" provides a default implementation for the necessary buffering methods, as shown in the table below.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("abstract")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" startBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" stopBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" isBuffered "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The designer can define that a plugin’s input port should be synchronized with some other input ports via the ACS. This will cause an argument change of the inputPort element on the deployment model file (e.g.,"),e("code",[t._v('')]),t._v(").")]),t._v(" "),e("p",[t._v("As soon as a model is deployed on the ARE, the middleware collects per component every port noted as synchronized port. When the model is successfully deployed and started, the ARE will buffer data which enters synchronized input ports until data on all synchronized ports has arrived. At that point, the ARE will call a new "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" callback method.")]),t._v(" "),e("p",[t._v("Developers that wish to support data synchronization need to implement the following method at their component instances.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("syncedValuesReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Where dataRow is a HashMap between Input Port ID and byte[]. For synchronized input ports, instead of implementing the regular "),e("em",[t._v("void receiveData(byte[] data)")]),t._v(" method which delivers incoming data of a single port, developers need to implement the "),e("em",[t._v("syncedValuesReceived")]),t._v(" method which will be called from the ARE with synchronized data from all the input ports that have been selected.")]),t._v(" "),e("h2",{attrs:{id:"interfacing-native-c-c-code-via-jni"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#interfacing-native-c-c-code-via-jni"}},[t._v("#")]),t._v(" Interfacing Native C/C++ Code via JNI")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("## Specifying native libraries in the Manifest\n")])])]),e("p",[t._v("The Manifest file of a bundle which includes native libraries has to specify these .dlls as shown in the following example:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-sensors.mycomponent\nBundle-SymbolicName: org.asterics.mycomponent\nBundle-Version: 0.1.0\nBundle-NativeCode: lib/native/mylib1.dll;\n lib/native/mylib2.dll;\n lib/native/mylib3.dll;\n osname=win32;processor=x86;\n osname=win;processor=x86-64;\n osname=win8;processor=x86;\n osname=win8;processor=x86-64;\n osname=windows 8;processor=x86;\n osname=windows 8;processor=x86-64;\n osname=windows8;processor=x86;\n osname=windows8;processor=x86-64;\n osname=Windows 8.1;processor=x86;\n osname=Windows 8.1;processor=x86-64\nDynamicImport-Package: *\n")])])]),e("p",[t._v("Components which interface native code via JNI and their respective manifest files can be found in the SVN, e.g. the “webcamera” component or the signal processing plugins by Starlab.")]),t._v(" "),e("p",[t._v("Note that the .jar containing the .dlls can be built manually using the command:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("jar "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-cvfm")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("/mybundle.jar META-INF/MANIFEST.MF "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\n")])])]),e("h2",{attrs:{id:"java-implementation-jni-bridge"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java-implementation-jni-bridge"}},[t._v("#")]),t._v(" Java-Implementation: JNI-Bridge")]),t._v(" "),e("p",[t._v("The recommended way to interface Java code of an ARE component with native code in a .dll is a bridge class which encapsulates the JNI functions and callbacks and maps the functions of the ARE component’s lifecycle-, port- and property-management to the corresponding functions in the native code. Here is a simple example which comprises one component property and receives data callbacks from a thread implemented in C. The received values are transferred to the component’s output port:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("jni")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mycomponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* Statically load the native library */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib1.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib2"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib2.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib3.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAnonymousLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("my_outport "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Activates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("activate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Deactivates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("deactivate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Gets the value of the named property.\n *\n * @param key the name of the property to be accessed\n * @return the value of the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Sets the named property to the defined value.\n *\n * @param key the name of the property to be accessed\n * @param value the value to be assigned to the named property\n * @return the value previously assigned to the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code on demand to signify \n * an internal error. The first argument corresponds to an error code \n * and the second argument corresponds to a textual description \n * of the error.\n * @param errorCode an error code\n * @param message a textual description of the error\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("errorReport_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" errorCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n logger"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("severe")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorCode "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('": "')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code to send data\n * to the component’s output port.\n *\n * @param data1 (range is [0, Short.MAX_VALUE])\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("newData_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h2",{attrs:{id:"c-implementation-callbacks-and-jni-code"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#c-implementation-callbacks-and-jni-code"}},[t._v("#")]),t._v(" C-Implementation: Callbacks and JNI code")]),t._v(" "),e("p",[t._v("The native C-code needs to be compiled into a .dll and include the JNI header files and libraries. An example for the Microsoft Visual Studio compiler looks as follows:")]),t._v(" "),e("p",[t._v("The following C-example shows how to implement a JNI-callback from a C-thread and an ARE-compliant exchange of a component property:")]),t._v(" "),e("div",{staticClass:"language-c extra-class"},[e("pre",{pre:!0,attrs:{class:"language-c"}},[e("code",[e("span",{pre:!0,attrs:{class:"token macro property"}},[e("span",{pre:!0,attrs:{class:"token directive-hash"}},[t._v("#")]),e("span",{pre:!0,attrs:{class:"token directive keyword"}},[t._v("include")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("")])]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" JavaVM "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" jobject g_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myProperty"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"20"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_activate")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\terror_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetJavaVM")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\tjclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newData_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* method not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// explicitly ask for a global reference")]),t._v("\n\tg_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_init")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_deactivate")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_exit")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tenv"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("DeleteGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_getProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\t\t\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_setProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n\t strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown */")]),t._v("\n\t strValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\tpollingIntervalValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// prepare JNI callback")]),t._v("\n JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n g_jvm"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("AttachCurrentThread")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newCoordinates_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// perform JNI callback")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("CallVoidMethod")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("jint"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("my_new_data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("This native C-code needs to be compiled into a .dll, the JNI header files and libraries have to be specified to the compiler and linker respectively. An example for the Microsoft Visual Studio build tools looks as follows:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v('cl -c -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include" -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include\\win32" -I ".\\3rdparylib" my_c_file.cpp /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_WARNINGS" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /errorReport:queue \nlink my_c_file.obj /DLL /OUT:".\\my_c_file.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"libmsvc" /LIBPATH:"3rdparylib" "odbc32.lib" "odbccp32.lib" "comctl32.lib" "winmm.lib" "opengl32.lib" "ole32.lib" "strmiids.lib" "uuid.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "oleaut32.lib" /NODEFAULTLIB:"libcd.lib" /NODEFAULTLIB:"atlthunk" /NODEFAULTLIB:"LIBCMT" /MANIFESTUAC:"level=\'asInvoker\' uiAccess=\'false\'" /DEBUG /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:QUEUE\n')])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The compiler and linker switches may differ depending on the nature of your dependency libraries and setup.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-packaging-environment-ape"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-packaging-environment-ape"}},[t._v("#")]),t._v(" AsTeRICS Packaging Environment (APE)")]),t._v(" "),e("p",[t._v("The APE let’s you select a set of AsTeRICS model files and create a downstripped (minimum size) version of the ARE including plugins, configuration files and data files to execute the models. Optionally, the APE allows the creation of native installers for Windows, Linux incl. Raspberry Pi and Mac OSX using "),e("a",{attrs:{href:"http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGIBBCI",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaFX packaging technology"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("See "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-Packaging-Environment-(APE)",target:"_blank",rel:"noopener noreferrer"}},[t._v("APE documentation"),e("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/190.d880c210.js b/assets/js/190.43fd2af8.js similarity index 90% rename from assets/js/190.d880c210.js rename to assets/js/190.43fd2af8.js index eedf3e6846..9ccbbd25c2 100644 --- a/assets/js/190.d880c210.js +++ b/assets/js/190.43fd2af8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{1143:function(t,e,i){"use strict";i.r(e);var o=i(2),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"decimation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#decimation"}},[t._v("#")]),t._v(" Decimation")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The decimation operation performed by this component consists in an anti-aliasing low band pass filter plus a down-sampling. The component outputs a computed sample after receiving a certain number of input samples according to the down-sampling-ratio property value. So the resultant signal is like the original signal, but sampled to a lower ratio determined by the mentioned property.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(706),alt:"Screenshot: Decimation plugin",title:"Screenshot: Decimation plugin"}})]),t._v(" "),e("p",[t._v("Decimation plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the signal to be decimated.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port of the decimated signal.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("DownSamplingRatio [integer]:")]),t._v(" Defines the ratio between the number of samples in the input and output ports.")])])])}),[],!1,null,null,null);e.default=n.exports},706:function(t,e,i){t.exports=i.p+"assets/img/decimation.9b7875bb.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{1150:function(t,e,i){"use strict";i.r(e);var o=i(2),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"decimation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#decimation"}},[t._v("#")]),t._v(" Decimation")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The decimation operation performed by this component consists in an anti-aliasing low band pass filter plus a down-sampling. The component outputs a computed sample after receiving a certain number of input samples according to the down-sampling-ratio property value. So the resultant signal is like the original signal, but sampled to a lower ratio determined by the mentioned property.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(713),alt:"Screenshot: Decimation plugin",title:"Screenshot: Decimation plugin"}})]),t._v(" "),e("p",[t._v("Decimation plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the signal to be decimated.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port of the decimated signal.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("DownSamplingRatio [integer]:")]),t._v(" Defines the ratio between the number of samples in the input and output ports.")])])])}),[],!1,null,null,null);e.default=n.exports},713:function(t,e,i){t.exports=i.p+"assets/img/decimation.9b7875bb.jpg"}}]); \ No newline at end of file diff --git a/assets/js/191.6e194d42.js b/assets/js/191.3ee5c506.js similarity index 88% rename from assets/js/191.6e194d42.js rename to assets/js/191.3ee5c506.js index cfb4798235..b90a718841 100644 --- a/assets/js/191.6e194d42.js +++ b/assets/js/191.3ee5c506.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{1148:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"delay"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#delay"}},[t._v("#")]),t._v(" Delay")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin passes received double values after a defined delay.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(710),alt:"Screenshot: Delay plugin",title:"Screenshot: Delay plugin"}})]),t._v(" "),e("p",[t._v("Delay plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in (double):")]),t._v(" Input port for the incoming signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out (double):")]),t._v(" Output port for the delayed signal.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" Delay between input and output signal (in milliseconds).")])])])}),[],!1,null,null,null);e.default=a.exports},710:function(t,e,r){t.exports=r.p+"assets/img/delay.04385069.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{1144:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"delay"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#delay"}},[t._v("#")]),t._v(" Delay")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin passes received double values after a defined delay.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(707),alt:"Screenshot: Delay plugin",title:"Screenshot: Delay plugin"}})]),t._v(" "),e("p",[t._v("Delay plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in (double):")]),t._v(" Input port for the incoming signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out (double):")]),t._v(" Output port for the delayed signal.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" Delay between input and output signal (in milliseconds).")])])])}),[],!1,null,null,null);e.default=a.exports},707:function(t,e,r){t.exports=r.p+"assets/img/delay.04385069.jpg"}}]); \ No newline at end of file diff --git a/assets/js/192.04cef977.js b/assets/js/192.3ab5f6e6.js similarity index 91% rename from assets/js/192.04cef977.js rename to assets/js/192.3ab5f6e6.js index 2f3012f5cf..f20af817a9 100644 --- a/assets/js/192.04cef977.js +++ b/assets/js/192.3ab5f6e6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[192],{1145:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"derivative"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#derivative"}},[t._v("#")]),t._v(" Derivative")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component computes the first derivative operation of the input signal by using an approximation by a numerical differentiation method using five points. Due to the fact that the component takes into consideration the previous four samples plus the current one, it will output the derivative value corresponding to the centre sample of the five ones. It means two samples earlier from the one that is received in the input port.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(707),alt:"Screenshot: Derivative plugin",title:"Screenshot: Derivative plugin"}})]),t._v(" "),e("p",[t._v("Derivative plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the signal to be derived.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port of the first derivative of the input signal. The output values present a delay of two samples because of the reason given in the general description.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("SampleFrequency [integer]:")]),t._v(" Defines the frequency which the input signal is sampled, so the distance between two consecutive samples, which is used by the component, is defined.")])])])}),[],!1,null,null,null);e.default=s.exports},707:function(t,e,i){t.exports=i.p+"assets/img/derivative.b98138ff.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[192],{1147:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"derivative"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#derivative"}},[t._v("#")]),t._v(" Derivative")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component computes the first derivative operation of the input signal by using an approximation by a numerical differentiation method using five points. Due to the fact that the component takes into consideration the previous four samples plus the current one, it will output the derivative value corresponding to the centre sample of the five ones. It means two samples earlier from the one that is received in the input port.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(710),alt:"Screenshot: Derivative plugin",title:"Screenshot: Derivative plugin"}})]),t._v(" "),e("p",[t._v("Derivative plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the signal to be derived.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port of the first derivative of the input signal. The output values present a delay of two samples because of the reason given in the general description.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("SampleFrequency [integer]:")]),t._v(" Defines the frequency which the input signal is sampled, so the distance between two consecutive samples, which is used by the component, is defined.")])])])}),[],!1,null,null,null);e.default=s.exports},710:function(t,e,i){t.exports=i.p+"assets/img/derivative.b98138ff.jpg"}}]); \ No newline at end of file diff --git a/assets/js/193.e8d1d0b5.js b/assets/js/193.5759071f.js similarity index 89% rename from assets/js/193.e8d1d0b5.js rename to assets/js/193.5759071f.js index 978f11f601..397d08c49f 100644 --- a/assets/js/193.e8d1d0b5.js +++ b/assets/js/193.5759071f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[193],{1147:function(t,e,r){"use strict";r.r(e);var i=r(2),n=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"differentiate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#differentiate"}},[t._v("#")]),t._v(" Differentiate")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The differentiate component outputs the difference of the previous to the current input value on the output port. This functionality can be considered as a simplified implementation of the derivative component.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(709),alt:"Screenshot: Differentiate plugin",title:"Screenshot: Differentiate plugin"}})]),t._v(" "),e("p",[t._v("Differentiate plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" Input port for signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" Output of difference value.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("resetValue [double]:")]),t._v(" The value that is used in the first difference calculation after start.")])])])}),[],!1,null,null,null);e.default=n.exports},709:function(t,e,r){t.exports=r.p+"assets/img/differentiate.7fe386c5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[193],{1148:function(t,e,r){"use strict";r.r(e);var i=r(2),n=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"differentiate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#differentiate"}},[t._v("#")]),t._v(" Differentiate")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The differentiate component outputs the difference of the previous to the current input value on the output port. This functionality can be considered as a simplified implementation of the derivative component.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(711),alt:"Screenshot: Differentiate plugin",title:"Screenshot: Differentiate plugin"}})]),t._v(" "),e("p",[t._v("Differentiate plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" Input port for signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" Output of difference value.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("resetValue [double]:")]),t._v(" The value that is used in the first difference calculation after start.")])])])}),[],!1,null,null,null);e.default=n.exports},711:function(t,e,r){t.exports=r.p+"assets/img/differentiate.7fe386c5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/194.df3cc453.js b/assets/js/194.0e3e6669.js similarity index 91% rename from assets/js/194.df3cc453.js rename to assets/js/194.0e3e6669.js index 8d47732164..38e7d06863 100644 --- a/assets/js/194.df3cc453.js +++ b/assets/js/194.0e3e6669.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[194],{1150:function(t,e,i){"use strict";i.r(e);var s=i(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dissimilarity"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dissimilarity"}},[t._v("#")]),t._v(" Dissimilarity")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This component computes the Euclidean distance between two input vectors. The component stores the input values from both input ports until DataLen values have been received, then the computation is performed and sent to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(712),alt:"Screenshot: Dissimilarity plugin",title:"Screenshot: Dissimilarity plugin"}})]),t._v(" "),e("p",[t._v("Dissimilarity plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1 [double]:")]),t._v(" Input port for the first signal.")]),t._v(" "),e("li",[e("strong",[t._v("input2 [double]:")]),t._v(" Input port for the second signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port for the dissimilarity computation. A value is provided every time DataLen samples arrive to the input ports.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("DataLen [integer]:")]),t._v(" Defines the length of the signals over which the dissimilarity is computed.")])])])}),[],!1,null,null,null);e.default=r.exports},712:function(t,e,i){t.exports=i.p+"assets/img/dissimilarity.a5839466.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[194],{1145:function(t,e,i){"use strict";i.r(e);var s=i(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dissimilarity"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dissimilarity"}},[t._v("#")]),t._v(" Dissimilarity")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This component computes the Euclidean distance between two input vectors. The component stores the input values from both input ports until DataLen values have been received, then the computation is performed and sent to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(708),alt:"Screenshot: Dissimilarity plugin",title:"Screenshot: Dissimilarity plugin"}})]),t._v(" "),e("p",[t._v("Dissimilarity plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1 [double]:")]),t._v(" Input port for the first signal.")]),t._v(" "),e("li",[e("strong",[t._v("input2 [double]:")]),t._v(" Input port for the second signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port for the dissimilarity computation. A value is provided every time DataLen samples arrive to the input ports.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("DataLen [integer]:")]),t._v(" Defines the length of the signals over which the dissimilarity is computed.")])])])}),[],!1,null,null,null);e.default=r.exports},708:function(t,e,i){t.exports=i.p+"assets/img/dissimilarity.a5839466.jpg"}}]); \ No newline at end of file diff --git a/assets/js/195.f33483cf.js b/assets/js/195.ff5e6a58.js similarity index 87% rename from assets/js/195.f33483cf.js rename to assets/js/195.ff5e6a58.js index 55b1c276f6..8a15de96b4 100644 --- a/assets/js/195.f33483cf.js +++ b/assets/js/195.ff5e6a58.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[195],{1149:function(t,o,r){"use strict";r.r(o);var e=r(2),s=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"double-to-string"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#double-to-string"}},[t._v("#")]),t._v(" Double To String")]),t._v(" "),o("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),o("p",[t._v("This component converts the double values at the input port to string values at the output.")]),t._v(" "),o("p",[o("img",{attrs:{src:r(711),alt:"Screenshot: DoubleToString plugin",title:"Screenshot: DoubleToString plugin"}})]),t._v(" "),o("p",[t._v("DoubleToString plugin")]),t._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("input [double]:")]),t._v(" Input port for the double values to be converted.")])]),t._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("output [string]:")]),t._v(" Output port for the converted string values.")])])])}),[],!1,null,null,null);o.default=s.exports},711:function(t,o,r){t.exports=r.p+"assets/img/doubletostring.1cadca65.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[195],{1146:function(t,o,r){"use strict";r.r(o);var e=r(2),s=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"double-to-string"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#double-to-string"}},[t._v("#")]),t._v(" Double To String")]),t._v(" "),o("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),o("p",[t._v("This component converts the double values at the input port to string values at the output.")]),t._v(" "),o("p",[o("img",{attrs:{src:r(709),alt:"Screenshot: DoubleToString plugin",title:"Screenshot: DoubleToString plugin"}})]),t._v(" "),o("p",[t._v("DoubleToString plugin")]),t._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("input [double]:")]),t._v(" Input port for the double values to be converted.")])]),t._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("output [string]:")]),t._v(" Output port for the converted string values.")])])])}),[],!1,null,null,null);o.default=s.exports},709:function(t,o,r){t.exports=r.p+"assets/img/doubletostring.1cadca65.jpg"}}]); \ No newline at end of file diff --git a/assets/js/196.687bc6b2.js b/assets/js/196.69e8f6d9.js similarity index 95% rename from assets/js/196.687bc6b2.js rename to assets/js/196.69e8f6d9.js index eadb5190af..6358acbd03 100644 --- a/assets/js/196.687bc6b2.js +++ b/assets/js/196.69e8f6d9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[196],{1152:function(t,e,r){"use strict";r.r(e);var i=r(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ecmascriptinterpreter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ecmascriptinterpreter"}},[t._v("#")]),t._v(" ECMAScriptInterpreter")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Scripting)")]),t._v(" "),e("p",[t._v("This component is a general purpose processor that can relays the input and incoming events to a script compatible to the ECMA script specification (e.g. JavaScript). The script is specified by the property scriptname. If the property is left empty, the component will load the file “script.js” from local storage. If this file does not exist, the component will generate the file in local storage and fill it with a default “pass-through” script.")]),t._v(" "),e("p",[t._v("There are certain constraints for the script:")]),t._v(" "),e("ul",[e("li",[t._v("the script has to contain an object named scriptclass.")]),t._v(" "),e("li",[t._v("the object has to implement a method dataInput(input_index, input_data)")]),t._v(" "),e("li",[t._v("the object has to implement a method eventInput(event_index)")])]),t._v(" "),e("p",[t._v("The script is provided with the following external variables:")]),t._v(" "),e("ul",[e("li",[t._v("output: an array of size 8 representing 8 IRuntimeOutputPorts")]),t._v(" "),e("li",[t._v("eventout: an array of size 8 representing 8 IRuntimeEventTriggererPorts")]),t._v(" "),e("li",[t._v("property: an array of size 8 holding strings with the property inputs from the components property fields")])]),t._v(" "),e("p",[t._v("The sendData method of the output variables has to be called with a string. If necessary this needs to be converted into a Java string, this can be done like this:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("\t\tstr = new java.lang.String(in\\_data);\n\t\toutput\\[in\\_nb\\].sendData(str.getBytes());\n")])])]),e("p",[t._v("For more information please see a demo script in the plugin source code!")]),t._v(" "),e("p",[e("img",{attrs:{src:r(714),alt:"Screenshot: ECMAScriptInterpreter plugin",title:"Screenshot: ECMAScriptInterpreter plugin"}})]),t._v(" "),e("p",[t._v("ECMAScriptInterpreter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputPort1 - inputPort8 [string]:")]),t._v(" input ports for script parameters")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputPort1 - outputPort8 [string]:")]),t._v(" output ports for script results")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("elpPort1 - elpPort8:")]),t._v(" 8 event listener ports which can be used by the script code.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("etpPort1 - elpPort8:")]),t._v(" 8 event trigger ports which can be used by the script code.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("scriptname [string]:")]),t._v(" a valid filename of an ECMA-compatible script (e.g. Javascript) which shall be interpreted")]),t._v(" "),e("li",[e("strong",[t._v("value1 - value8 [string]:")]),t._v(" 8 properties which can be used by the script.")])])])}),[],!1,null,null,null);e.default=s.exports},714:function(t,e,r){t.exports=r.p+"assets/img/ecmascriptinterpreter.dc7ee5f0.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[196],{1149:function(t,e,r){"use strict";r.r(e);var i=r(2),s=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ecmascriptinterpreter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ecmascriptinterpreter"}},[t._v("#")]),t._v(" ECMAScriptInterpreter")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Scripting)")]),t._v(" "),e("p",[t._v("This component is a general purpose processor that can relays the input and incoming events to a script compatible to the ECMA script specification (e.g. JavaScript). The script is specified by the property scriptname. If the property is left empty, the component will load the file “script.js” from local storage. If this file does not exist, the component will generate the file in local storage and fill it with a default “pass-through” script.")]),t._v(" "),e("p",[t._v("There are certain constraints for the script:")]),t._v(" "),e("ul",[e("li",[t._v("the script has to contain an object named scriptclass.")]),t._v(" "),e("li",[t._v("the object has to implement a method dataInput(input_index, input_data)")]),t._v(" "),e("li",[t._v("the object has to implement a method eventInput(event_index)")])]),t._v(" "),e("p",[t._v("The script is provided with the following external variables:")]),t._v(" "),e("ul",[e("li",[t._v("output: an array of size 8 representing 8 IRuntimeOutputPorts")]),t._v(" "),e("li",[t._v("eventout: an array of size 8 representing 8 IRuntimeEventTriggererPorts")]),t._v(" "),e("li",[t._v("property: an array of size 8 holding strings with the property inputs from the components property fields")])]),t._v(" "),e("p",[t._v("The sendData method of the output variables has to be called with a string. If necessary this needs to be converted into a Java string, this can be done like this:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("\t\tstr = new java.lang.String(in\\_data);\n\t\toutput\\[in\\_nb\\].sendData(str.getBytes());\n")])])]),e("p",[t._v("For more information please see a demo script in the plugin source code!")]),t._v(" "),e("p",[e("img",{attrs:{src:r(712),alt:"Screenshot: ECMAScriptInterpreter plugin",title:"Screenshot: ECMAScriptInterpreter plugin"}})]),t._v(" "),e("p",[t._v("ECMAScriptInterpreter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputPort1 - inputPort8 [string]:")]),t._v(" input ports for script parameters")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputPort1 - outputPort8 [string]:")]),t._v(" output ports for script results")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("elpPort1 - elpPort8:")]),t._v(" 8 event listener ports which can be used by the script code.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("etpPort1 - elpPort8:")]),t._v(" 8 event trigger ports which can be used by the script code.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("scriptname [string]:")]),t._v(" a valid filename of an ECMA-compatible script (e.g. Javascript) which shall be interpreted")]),t._v(" "),e("li",[e("strong",[t._v("value1 - value8 [string]:")]),t._v(" 8 properties which can be used by the script.")])])])}),[],!1,null,null,null);e.default=s.exports},712:function(t,e,r){t.exports=r.p+"assets/img/ecmascriptinterpreter.dc7ee5f0.jpg"}}]); \ No newline at end of file diff --git a/assets/js/197.32e5bafe.js b/assets/js/197.656f66e0.js similarity index 94% rename from assets/js/197.32e5bafe.js rename to assets/js/197.656f66e0.js index 94938ea40d..1cdd8dbe1e 100644 --- a/assets/js/197.32e5bafe.js +++ b/assets/js/197.656f66e0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[197],{1151:function(t,e,s){"use strict";s.r(e);var n=s(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"event-block"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-block"}},[t._v("#")]),t._v(" Event Block")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This plugin, depending on its state, can pass or block events from the input port.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(713),alt:"Screenshot: EventBlock plugin",title:"Screenshot: EventBlock plugin"}})]),t._v(" "),e("p",[t._v("EventBlock plugin")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("input:")]),t._v(" Input port for the events.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("pass:")]),t._v(" Pass the events.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("block:")]),t._v(" Block the events.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("change:")]),t._v(" Change the state of component: pass/block to the opposite.")])])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v(":")]),t._v(" Output port for events.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("block [boolean]:")]),t._v(" If is set to true, the component will block the events after start.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("blockAfterEvent [boolean]:")]),t._v(" If is set to true, the component will block the events after passing one event.")])])])])}),[],!1,null,null,null);e.default=r.exports},713:function(t,e,s){t.exports=s.p+"assets/img/eventblock.a52607a8.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[197],{1151:function(t,e,s){"use strict";s.r(e);var n=s(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"event-block"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-block"}},[t._v("#")]),t._v(" Event Block")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This plugin, depending on its state, can pass or block events from the input port.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(714),alt:"Screenshot: EventBlock plugin",title:"Screenshot: EventBlock plugin"}})]),t._v(" "),e("p",[t._v("EventBlock plugin")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("input:")]),t._v(" Input port for the events.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("pass:")]),t._v(" Pass the events.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("block:")]),t._v(" Block the events.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("change:")]),t._v(" Change the state of component: pass/block to the opposite.")])])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v(":")]),t._v(" Output port for events.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("block [boolean]:")]),t._v(" If is set to true, the component will block the events after start.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("blockAfterEvent [boolean]:")]),t._v(" If is set to true, the component will block the events after passing one event.")])])])])}),[],!1,null,null,null);e.default=r.exports},714:function(t,e,s){t.exports=s.p+"assets/img/eventblock.a52607a8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/198.b702bd9b.js b/assets/js/198.287970e2.js similarity index 95% rename from assets/js/198.b702bd9b.js rename to assets/js/198.287970e2.js index 94de74f744..22af27aa92 100644 --- a/assets/js/198.b702bd9b.js +++ b/assets/js/198.287970e2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{1153:function(e,t,r){"use strict";r.r(t);var s=r(2),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("The EventCascade component can be used to generate a sequence (or loops) of events with selectable delay times. The sequence can be started and stopped via incoming events.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(715),alt:"Screenshot: EventCascade plugin",title:"Screenshot: EventCascade plugin"}})]),e._v(" "),t("p",[e._v("EventCascade plugin")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("nextEvent:")]),e._v(" Triggers the next event in the event cascade (with wrap-around)")]),e._v(" "),t("li",[t("strong",[e._v("previousEvent:")]),e._v(" Triggers the previouse event in the event cascade (with wrap-around)")]),e._v(" "),t("li",[t("strong",[e._v("startCascade:")]),e._v(" Starts the event sequence")]),e._v(" "),t("li",[t("strong",[e._v("startCascade:")]),e._v(" Stops the event sequence")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" Sets the next event number to zero (first in the sequence)")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("trigger1 - trigger15:")]),e._v(" The available event trigger outputs")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activeTriggers [integer]:")]),e._v(" How many event triggers are active (defines the wrap-around)")]),e._v(" "),t("li",[t("strong",[e._v("loops [integer]:")]),e._v(" How many loops will be performed before the event sequence stops (0=endless loop)")]),e._v(" "),t("li",[t("strong",[e._v("autoStart [boolean]:")]),e._v(" Defines if the event cascade will be automatically started at model startup")]),e._v(" "),t("li",[t("strong",[e._v("delayBeforeTrigger1 - delayBeforeTrigger15[integer]:")]),e._v(" Delay time before the corresponding trigger event is created")])])])}),[],!1,null,null,null);t.default=n.exports},715:function(e,t,r){e.exports=r.p+"assets/img/eventcascade.b78f3d67.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{1153:function(e,t,r){"use strict";r.r(t);var s=r(2),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("The EventCascade component can be used to generate a sequence (or loops) of events with selectable delay times. The sequence can be started and stopped via incoming events.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(716),alt:"Screenshot: EventCascade plugin",title:"Screenshot: EventCascade plugin"}})]),e._v(" "),t("p",[e._v("EventCascade plugin")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("nextEvent:")]),e._v(" Triggers the next event in the event cascade (with wrap-around)")]),e._v(" "),t("li",[t("strong",[e._v("previousEvent:")]),e._v(" Triggers the previouse event in the event cascade (with wrap-around)")]),e._v(" "),t("li",[t("strong",[e._v("startCascade:")]),e._v(" Starts the event sequence")]),e._v(" "),t("li",[t("strong",[e._v("startCascade:")]),e._v(" Stops the event sequence")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" Sets the next event number to zero (first in the sequence)")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("trigger1 - trigger15:")]),e._v(" The available event trigger outputs")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activeTriggers [integer]:")]),e._v(" How many event triggers are active (defines the wrap-around)")]),e._v(" "),t("li",[t("strong",[e._v("loops [integer]:")]),e._v(" How many loops will be performed before the event sequence stops (0=endless loop)")]),e._v(" "),t("li",[t("strong",[e._v("autoStart [boolean]:")]),e._v(" Defines if the event cascade will be automatically started at model startup")]),e._v(" "),t("li",[t("strong",[e._v("delayBeforeTrigger1 - delayBeforeTrigger15[integer]:")]),e._v(" Delay time before the corresponding trigger event is created")])])])}),[],!1,null,null,null);t.default=n.exports},716:function(e,t,r){e.exports=r.p+"assets/img/eventcascade.b78f3d67.jpg"}}]); \ No newline at end of file diff --git a/assets/js/199.c37d0bcb.js b/assets/js/199.aeaefb56.js similarity index 95% rename from assets/js/199.c37d0bcb.js rename to assets/js/199.aeaefb56.js index 797e2eeb92..a8be50fbe9 100644 --- a/assets/js/199.c37d0bcb.js +++ b/assets/js/199.aeaefb56.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[199],{1154:function(e,t,i){"use strict";i.r(t);var n=i(2),o=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component counts events. It can increase and decrease a counts via incoming events.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(716),alt:"Screenshot: EventCounter plugin",title:"Screenshot: EventCounter plugin"}})]),e._v(" "),t("p",[e._v("EventCounter plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("setValue [integer]:")]),e._v(" Sets the event counter to the incoming value. Note that this value is not propagated to the output port (to avoid loops).")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [integer]:")]),e._v(" Sends the number of events.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("increase:")]),e._v(" Increases the number of events.")]),e._v(" "),t("li",[t("strong",[e._v("decrease:")]),e._v(" Decreases the number of events.")]),e._v(" "),t("li",[t("strong",[e._v("resetToZero:")]),e._v(" Sets the event counter to zero.")]),e._v(" "),t("li",[t("strong",[e._v("resetToInitial:")]),e._v(" Sets the event counter to the initial value (property).")]),e._v(" "),t("li",[t("strong",[e._v("sendNow:")]),e._v(" sendes the current value of the counter to the output port")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("mode [integer]:")]),e._v(" Defines counting mode:")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("no limit:")]),e._v(" The component counts events without any limitation.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("limit maximum:")]),e._v(" In this mode, the maximum value of the counter is limited by the maxValue property.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("limit minimum:")]),e._v(" In this mode, the minimum value of the counter is limited by the minValue property.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("limit minimum and maximum:")]),e._v(" In this mode, both maximum and minimum values of the counter are limited by the maxValue amd minValue properties.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("minValue [integer]:")]),e._v(" Defines the minimum value of the counter.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("maxValue [integer]:")]),e._v(" Defines the maximum value of the counter.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("initialValue [integer]:")]),e._v(" Defines the initial value of the counter.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("wrapAround [boolean]:")]),e._v(" if selected and the appropriate mode is set, exceeding the maximum value will wrap to the minimum value and vice versa.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("sendInitialValue [boolean]:")]),e._v(" if selected, the initial value is sent at the startup.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("autoSend [boolean]:")]),e._v(" if selected, the changes of the event counter are sent immediately to the output port")])])])])}),[],!1,null,null,null);t.default=o.exports},716:function(e,t,i){e.exports=i.p+"assets/img/eventcounter.2b933163.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[199],{1152:function(e,t,i){"use strict";i.r(t);var n=i(2),o=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component counts events. It can increase and decrease a counts via incoming events.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(715),alt:"Screenshot: EventCounter plugin",title:"Screenshot: EventCounter plugin"}})]),e._v(" "),t("p",[e._v("EventCounter plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("setValue [integer]:")]),e._v(" Sets the event counter to the incoming value. Note that this value is not propagated to the output port (to avoid loops).")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output [integer]:")]),e._v(" Sends the number of events.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("increase:")]),e._v(" Increases the number of events.")]),e._v(" "),t("li",[t("strong",[e._v("decrease:")]),e._v(" Decreases the number of events.")]),e._v(" "),t("li",[t("strong",[e._v("resetToZero:")]),e._v(" Sets the event counter to zero.")]),e._v(" "),t("li",[t("strong",[e._v("resetToInitial:")]),e._v(" Sets the event counter to the initial value (property).")]),e._v(" "),t("li",[t("strong",[e._v("sendNow:")]),e._v(" sendes the current value of the counter to the output port")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("mode [integer]:")]),e._v(" Defines counting mode:")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("no limit:")]),e._v(" The component counts events without any limitation.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("limit maximum:")]),e._v(" In this mode, the maximum value of the counter is limited by the maxValue property.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("limit minimum:")]),e._v(" In this mode, the minimum value of the counter is limited by the minValue property.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("limit minimum and maximum:")]),e._v(" In this mode, both maximum and minimum values of the counter are limited by the maxValue amd minValue properties.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("minValue [integer]:")]),e._v(" Defines the minimum value of the counter.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("maxValue [integer]:")]),e._v(" Defines the maximum value of the counter.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("initialValue [integer]:")]),e._v(" Defines the initial value of the counter.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("wrapAround [boolean]:")]),e._v(" if selected and the appropriate mode is set, exceeding the maximum value will wrap to the minimum value and vice versa.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("sendInitialValue [boolean]:")]),e._v(" if selected, the initial value is sent at the startup.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("autoSend [boolean]:")]),e._v(" if selected, the changes of the event counter are sent immediately to the output port")])])])])}),[],!1,null,null,null);t.default=o.exports},715:function(e,t,i){e.exports=i.p+"assets/img/eventcounter.2b933163.jpg"}}]); \ No newline at end of file diff --git a/assets/js/20.3b70a273.js b/assets/js/20.3b70a273.js new file mode 100644 index 0000000000..8f3f14e5ba --- /dev/null +++ b/assets/js/20.3b70a273.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{441:function(e,t,i){e.exports=i.p+"assets/img/github-edit.407e1611.png"},442:function(e,t,i){e.exports=i.p+"assets/img/github-edit-preview.73262122.png"},443:function(e,t,i){e.exports=i.p+"assets/img/github-edit-commit-explanation.71943c6f.png"},444:function(e,t,i){e.exports=i.p+"assets/img/github-edit-upload.4d561aef.png"},445:function(e,t,i){e.exports=i.p+"assets/img/github-upload-location.98927c88.png"},446:function(e,t,i){e.exports=i.p+"assets/img/github-upload.56f5573f.png"},447:function(e,t,i){e.exports=i.p+"assets/img/github-dev-preview.1b4ac609.png"},999:function(e,t,i){"use strict";i.r(t);var s=i(2),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"website-editor-guide"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#website-editor-guide"}},[e._v("#")]),e._v(" Website Editor Guide")]),e._v(" "),t("p",[e._v("This guide describes how to edit or update content of the website "),t("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.asterics.eu"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("hr"),e._v(" "),t("p",[e._v("Editors can improve, correct and adapt the contents of this website in two ways:")]),e._v(" "),t("ul",[t("li",[e._v("online, or")]),e._v(" "),t("li",[e._v("offline")])]),e._v(" "),t("h2",{attrs:{id:"online"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#online"}},[e._v("#")]),e._v(" Online")]),e._v(" "),t("p",[e._v("You can edit the contents of this website online, or "),t("em",[e._v("remotely")]),e._v(", via GitHub.")]),e._v(" "),t("p",[e._v("The easiest way to locate the files in their source repository, is by clicking the link "),t("code",[e._v("Edit this page on GitHub")]),e._v(" provided within every page of this website.\nAfter clicking the link, a website at GitHub is opened, displaying the relevant file and allowing to perform the required changes and committing immediately.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(441),alt:"GitHub Editing",title:"GitHub Editing"}})]),e._v(" "),t("p",[e._v("Testing the changes is not possible when editing the files remotely, but GitHub provides a simple preview function, which understands basic markdown syntax.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(442),alt:"GitHub Editing - Preview",title:"GitHub Editing - Preview"}})]),e._v(" "),t("p",[e._v("Note, however, that GitHub supports only a "),t("strong",[e._v("subset")]),e._v(" of the markdown features described in the "),t("RouterLink",{attrs:{to:"/guide/markdown.html"}},[e._v("markdown guide")]),e._v(" of this website.\nThe preview does not show the same "),t("em",[e._v("style")]),e._v(" of the page as shown on "),t("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.asterics.eu"),t("OutboundLink")],1),e._v(".")],1),e._v(" "),t("p",[e._v("After you finish editing a file, you can commit your changes to the repository.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(443),alt:"Github Editing - Commit",title:"GitHub Editing - Commit"}})]),e._v(" "),t("p",[e._v("At the bottom of the page you will find the "),t("strong",[e._v("Commit changes")]),e._v(" section.\nPerform the following steps to save your changes.")]),e._v(" "),t("ol",[t("li",[e._v("Enter your commit message")]),e._v(" "),t("li",[e._v("Optionally, provide a detailed description of the current changes")]),e._v(" "),t("li",[e._v("Define a GitHub profile as the author of the commit")]),e._v(" "),t("li",[e._v("Create a "),t("em",[e._v("new branch")]),e._v(" , if you don’t have write access to the repository, and start a pull request")]),e._v(" "),t("li",[e._v("Propose the changes to the owners of the repository")])]),e._v(" "),t("h3",{attrs:{id:"uploading-files"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uploading-files"}},[e._v("#")]),e._v(" Uploading Files")]),e._v(" "),t("p",[e._v("GitHub allows you to upload files and pictures, by "),t("em",[e._v("dragging & dropping")]),e._v(", "),t("em",[e._v("selecting")]),e._v(", and "),t("em",[e._v("pasting")]),e._v(" them.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(444),alt:"GitHub Editing - Uploading Files",title:"GitHub Editing - Uploading Files"}})]),e._v(" "),t("p",[e._v("The above screenshots shows GitHub’s behavior when adding files ("),t("code",[e._v("editor.md")]),e._v(") and pictures ("),t("code",[e._v("github-edit.png")]),e._v(").\nFiles are stored in the respective repository directly.\nHowever, pictures are stored in user specific locations.\nYou can keep (and reuse) this link, without the need to add the picture to the source repository.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Hint")]),e._v(" "),t("p",[e._v("Pictures uploaded to "),t("code",[e._v("githubusercontent.com")]),e._v(" are added, by the developers of this website, to the source repository at a later point, when merging the changes to the main branch.")])]),e._v(" "),t("p",[e._v("Note, that you "),t("strong",[e._v("can’t")]),e._v(" determine their path or location using this view.")]),e._v(" "),t("p",[e._v("Alternatively, you can open the folder in a repository via GitHub, like in the following screenshot, by clicking the directory.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(445),alt:"GitHub Editing - Upload Location",title:"GitHub Editing - Upload Location"}})]),e._v(" "),t("p",[e._v("Afterwards you can create new files or upload multiple files in the opened directory and thereby define the path or location of the uploaded files in the repository.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(446),alt:"GitHub Editing - Uploading Files",title:"GitHub Editing - Uploading Files"}})]),e._v(" "),t("h3",{attrs:{id:"web-based-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#web-based-editor"}},[e._v("#")]),e._v(" Web-based editor")]),e._v(" "),t("p",[e._v("GitHub provides a "),t("a",{attrs:{href:"https://docs.github.com/en/codespaces/developing-in-codespaces/web-based-editor",target:"_blank",rel:"noopener noreferrer"}},[e._v("web-based editor"),t("OutboundLink")],1),e._v(" that allows editing files remotely, but with a similar experience to working locally.")]),e._v(" "),t("p",[e._v("To edit the files of a GitHub repository online, you can press "),t("code",[e._v(".")]),e._v(" on the main page of the repository.\nGitHub displays the files inside the "),t("em",[e._v("web-based editor")]),e._v(", allowing you to edit several files at once, remotely.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(447),alt:"GitHub Web-based Editor",title:"GitHub Web-based Editor"}})]),e._v(" "),t("h2",{attrs:{id:"offline"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#offline"}},[e._v("#")]),e._v(" Offline")]),e._v(" "),t("p",[e._v("To edit the contents of this website offline, or "),t("em",[e._v("locally")]),e._v(", you need to download the "),t("a",{attrs:{href:"https://github.com/asterics/asterics-docs.git",target:"_blank",rel:"noopener noreferrer"}},[e._v("source repository"),t("OutboundLink")],1),e._v(".\nAll required steps are described in the "),t("RouterLink",{attrs:{to:"/guide/docs.html"}},[e._v("developer guide")]),e._v(".")],1),e._v(" "),t("p",[e._v("After cloning the source repository and installing all required tools, run following commands.")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" docs init "),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# Initialize git submodules")]),e._v("\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" docs setup "),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# Create folder docs/ containing all files")]),e._v("\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" dev "),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# Build website and host files with the development server")]),e._v("\n")])])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Detailed Instructions")]),e._v(" "),t("p",[e._v("For details, please refer to the "),t("RouterLink",{attrs:{to:"/guide/docs.html"}},[e._v("developer guide")]),e._v(".")],1)]),e._v(" "),t("p",[e._v("With the last command, a development server is started hosting the files locally.\nYou should see a similar output:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("success "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("13")]),e._v(":13:42"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v(" Build 6b0cef finished "),t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("in")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("400")]),e._v(" ms"),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("!")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v(" http://localhost:8080/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),t("p",[e._v("Afterwards you need to perform the desired changes within the files inside "),t("code",[e._v("docs/")]),e._v(".\nWhen saving changes inside those files, a new build is triggered and the content displayed in the browser is updated, automatically.")]),e._v(" "),t("p",[e._v("After finishing editing the files, you need to create a pull request or commit and push your changes to the source repository. Please check the "),t("RouterLink",{attrs:{to:"/guide/docs.html"}},[e._v("developer guide")]),e._v(" for this purpose.")],1),e._v(" "),t("h2",{attrs:{id:"publishing-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#publishing-updates"}},[e._v("#")]),e._v(" Publishing Updates")]),e._v(" "),t("p",[e._v("You can’t publish new builds of the website by yourself.\nThe developers of this website integrate incoming pull request regularly.\nAfter adding the pull request, the website is built and published with the most recent content.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/20.85754a20.js b/assets/js/20.85754a20.js deleted file mode 100644 index d085b8e8e3..0000000000 --- a/assets/js/20.85754a20.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{1e3:function(e,t,i){"use strict";i.r(t);var s=i(2),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"website-editor-guide"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#website-editor-guide"}},[e._v("#")]),e._v(" Website Editor Guide")]),e._v(" "),t("p",[e._v("This guide describes how to edit or update content of the website "),t("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.asterics.eu"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("hr"),e._v(" "),t("p",[e._v("Editors can improve, correct and adapt the contents of this website in two ways:")]),e._v(" "),t("ul",[t("li",[e._v("online, or")]),e._v(" "),t("li",[e._v("offline")])]),e._v(" "),t("h2",{attrs:{id:"online"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#online"}},[e._v("#")]),e._v(" Online")]),e._v(" "),t("p",[e._v("You can edit the contents of this website online, or "),t("em",[e._v("remotely")]),e._v(", via GitHub.")]),e._v(" "),t("p",[e._v("The easiest way to locate the files in their source repository, is by clicking the link "),t("code",[e._v("Edit this page on GitHub")]),e._v(" provided within every page of this website.\nAfter clicking the link, a website at GitHub is opened, displaying the relevant file and allowing to perform the required changes and committing immediately.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(441),alt:"GitHub Editing",title:"GitHub Editing"}})]),e._v(" "),t("p",[e._v("Testing the changes is not possible when editing the files remotely, but GitHub provides a simple preview function, which understands basic markdown syntax.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(442),alt:"GitHub Editing - Preview",title:"GitHub Editing - Preview"}})]),e._v(" "),t("p",[e._v("Note, however, that GitHub supports only a "),t("strong",[e._v("subset")]),e._v(" of the markdown features described in the "),t("RouterLink",{attrs:{to:"/guide/markdown.html"}},[e._v("markdown guide")]),e._v(" of this website.\nThe preview does not show the same "),t("em",[e._v("style")]),e._v(" of the page as shown on "),t("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.asterics.eu"),t("OutboundLink")],1),e._v(".")],1),e._v(" "),t("p",[e._v("After you finish editing a file, you can commit your changes to the repository.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(443),alt:"Github Editing - Commit",title:"GitHub Editing - Commit"}})]),e._v(" "),t("p",[e._v("At the bottom of the page you will find the "),t("strong",[e._v("Commit changes")]),e._v(" section.\nPerform the following steps to save your changes.")]),e._v(" "),t("ol",[t("li",[e._v("Enter your commit message")]),e._v(" "),t("li",[e._v("Optionally, provide a detailed description of the current changes")]),e._v(" "),t("li",[e._v("Define a GitHub profile as the author of the commit")]),e._v(" "),t("li",[e._v("Create a "),t("em",[e._v("new branch")]),e._v(" , if you don’t have write access to the repository, and start a pull request")]),e._v(" "),t("li",[e._v("Propose the changes to the owners of the repository")])]),e._v(" "),t("h3",{attrs:{id:"uploading-files"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uploading-files"}},[e._v("#")]),e._v(" Uploading Files")]),e._v(" "),t("p",[e._v("GitHub allows you to upload files and pictures, by "),t("em",[e._v("dragging & dropping")]),e._v(", "),t("em",[e._v("selecting")]),e._v(", and "),t("em",[e._v("pasting")]),e._v(" them.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(444),alt:"GitHub Editing - Uploading Files",title:"GitHub Editing - Uploading Files"}})]),e._v(" "),t("p",[e._v("The above screenshots shows GitHub’s behavior when adding files ("),t("code",[e._v("editor.md")]),e._v(") and pictures ("),t("code",[e._v("github-edit.png")]),e._v(").\nFiles are stored in the respective repository directly.\nHowever, pictures are stored in user specific locations.\nYou can keep (and reuse) this link, without the need to add the picture to the source repository.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Hint")]),e._v(" "),t("p",[e._v("Pictures uploaded to "),t("code",[e._v("githubusercontent.com")]),e._v(" are added, by the developers of this website, to the source repository at a later point, when merging the changes to the main branch.")])]),e._v(" "),t("p",[e._v("Note, that you "),t("strong",[e._v("can’t")]),e._v(" determine their path or location using this view.")]),e._v(" "),t("p",[e._v("Alternatively, you can open the folder in a repository via GitHub, like in the following screenshot, by clicking the directory.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(445),alt:"GitHub Editing - Upload Location",title:"GitHub Editing - Upload Location"}})]),e._v(" "),t("p",[e._v("Afterwards you can create new files or upload multiple files in the opened directory and thereby define the path or location of the uploaded files in the repository.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(446),alt:"GitHub Editing - Uploading Files",title:"GitHub Editing - Uploading Files"}})]),e._v(" "),t("h3",{attrs:{id:"web-based-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#web-based-editor"}},[e._v("#")]),e._v(" Web-based editor")]),e._v(" "),t("p",[e._v("GitHub provides a "),t("a",{attrs:{href:"https://docs.github.com/en/codespaces/developing-in-codespaces/web-based-editor",target:"_blank",rel:"noopener noreferrer"}},[e._v("web-based editor"),t("OutboundLink")],1),e._v(" that allows editing files remotely, but with a similar experience to working locally.")]),e._v(" "),t("p",[e._v("To edit the files of a GitHub repository online, you can press "),t("code",[e._v(".")]),e._v(" on the main page of the repository.\nGitHub displays the files inside the "),t("em",[e._v("web-based editor")]),e._v(", allowing you to edit several files at once, remotely.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(447),alt:"GitHub Web-based Editor",title:"GitHub Web-based Editor"}})]),e._v(" "),t("h2",{attrs:{id:"offline"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#offline"}},[e._v("#")]),e._v(" Offline")]),e._v(" "),t("p",[e._v("To edit the contents of this website offline, or "),t("em",[e._v("locally")]),e._v(", you need to download the "),t("a",{attrs:{href:"https://github.com/asterics/asterics-docs.git",target:"_blank",rel:"noopener noreferrer"}},[e._v("source repository"),t("OutboundLink")],1),e._v(".\nAll required steps are described in the "),t("RouterLink",{attrs:{to:"/guide/docs.html"}},[e._v("developer guide")]),e._v(".")],1),e._v(" "),t("p",[e._v("After cloning the source repository and installing all required tools, run following commands.")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" docs init "),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# Initialize git submodules")]),e._v("\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" docs setup "),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# Create folder docs/ containing all files")]),e._v("\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" dev "),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# Build website and host files with the development server")]),e._v("\n")])])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Detailed Instructions")]),e._v(" "),t("p",[e._v("For details, please refer to the "),t("RouterLink",{attrs:{to:"/guide/docs.html"}},[e._v("developer guide")]),e._v(".")],1)]),e._v(" "),t("p",[e._v("With the last command, a development server is started hosting the files locally.\nYou should see a similar output:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("success "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("13")]),e._v(":13:42"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v(" Build 6b0cef finished "),t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("in")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("400")]),e._v(" ms"),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("!")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v(" http://localhost:8080/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),t("p",[e._v("Afterwards you need to perform the desired changes within the files inside "),t("code",[e._v("docs/")]),e._v(".\nWhen saving changes inside those files, a new build is triggered and the content displayed in the browser is updated, automatically.")]),e._v(" "),t("p",[e._v("After finishing editing the files, you need to create a pull request or commit and push your changes to the source repository. Please check the "),t("RouterLink",{attrs:{to:"/guide/docs.html"}},[e._v("developer guide")]),e._v(" for this purpose.")],1),e._v(" "),t("h2",{attrs:{id:"publishing-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#publishing-updates"}},[e._v("#")]),e._v(" Publishing Updates")]),e._v(" "),t("p",[e._v("You can’t publish new builds of the website by yourself.\nThe developers of this website integrate incoming pull request regularly.\nAfter adding the pull request, the website is built and published with the most recent content.")])])}),[],!1,null,null,null);t.default=o.exports},441:function(e,t,i){e.exports=i.p+"assets/img/github-edit.407e1611.png"},442:function(e,t,i){e.exports=i.p+"assets/img/github-edit-preview.73262122.png"},443:function(e,t,i){e.exports=i.p+"assets/img/github-edit-commit-explanation.71943c6f.png"},444:function(e,t,i){e.exports=i.p+"assets/img/github-edit-upload.4d561aef.png"},445:function(e,t,i){e.exports=i.p+"assets/img/github-upload-location.98927c88.png"},446:function(e,t,i){e.exports=i.p+"assets/img/github-upload.56f5573f.png"},447:function(e,t,i){e.exports=i.p+"assets/img/github-dev-preview.1b4ac609.png"}}]); \ No newline at end of file diff --git a/assets/js/200.dfdabdf7.js b/assets/js/200.8d85a009.js similarity index 96% rename from assets/js/200.dfdabdf7.js rename to assets/js/200.8d85a009.js index 9f5efdaded..ab49ec665f 100644 --- a/assets/js/200.dfdabdf7.js +++ b/assets/js/200.8d85a009.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[200],{1155:function(t,e,r){"use strict";r.r(e);var n=r(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This plugin passes received events after a defined delay.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(717),alt:"Screenshot: EventDelay plugin",title:"Screenshot: EventDelay plugin"}})]),t._v(" "),e("p",[t._v("EventDelay plugin")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input:")]),t._v(" Input port for the events.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v(":")]),t._v(" Output port for events.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" Delay between input and output event (in milliseconds).")])])])}),[],!1,null,null,null);e.default=s.exports},717:function(t,e,r){t.exports=r.p+"assets/img/eventdelay.6862b2c8.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[200],{1154:function(t,e,r){"use strict";r.r(e);var n=r(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This plugin passes received events after a defined delay.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(717),alt:"Screenshot: EventDelay plugin",title:"Screenshot: EventDelay plugin"}})]),t._v(" "),e("p",[t._v("EventDelay plugin")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input:")]),t._v(" Input port for the events.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v(":")]),t._v(" Output port for events.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" Delay between input and output event (in milliseconds).")])])])}),[],!1,null,null,null);e.default=s.exports},717:function(t,e,r){t.exports=r.p+"assets/img/eventdelay.6862b2c8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/201.ea46c57a.js b/assets/js/201.02f25e09.js similarity index 90% rename from assets/js/201.ea46c57a.js rename to assets/js/201.02f25e09.js index 7e1f88878f..7f4ede2c86 100644 --- a/assets/js/201.ea46c57a.js +++ b/assets/js/201.02f25e09.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[201],{1156:function(t,e,n){"use strict";n.r(e);var r=n(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component translates incoming strings to events. Ten string slots for commands and ten associated Event Trigger Ports are available. This component can be useful to generate an event from a string command (which is generated by OSKA or another string-sending component).")]),t._v(" "),e("p",[e("img",{attrs:{src:n(718),alt:"Screenshot: EventDispatcher plugin",title:"Screenshot: EventDispatcher plugin"}})]),t._v(" "),e("p",[t._v("EventDispatcher plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("cmd [string]:")]),t._v(" The incoming command string.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("recognizedCommand1 - recognizedCommand10:")]),t._v(" the events triggered by the recognized commands")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("command1 - command10 [string]:")]),t._v(" Ten string slots for commands. If an incoming string matches one of these property values, the associated event trigger is raised.")])])])}),[],!1,null,null,null);e.default=s.exports},718:function(t,e,n){t.exports=n.p+"assets/img/eventdispatcher.4aaea330.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[201],{1157:function(t,e,n){"use strict";n.r(e);var r=n(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component translates incoming strings to events. Ten string slots for commands and ten associated Event Trigger Ports are available. This component can be useful to generate an event from a string command (which is generated by OSKA or another string-sending component).")]),t._v(" "),e("p",[e("img",{attrs:{src:n(720),alt:"Screenshot: EventDispatcher plugin",title:"Screenshot: EventDispatcher plugin"}})]),t._v(" "),e("p",[t._v("EventDispatcher plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("cmd [string]:")]),t._v(" The incoming command string.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("recognizedCommand1 - recognizedCommand10:")]),t._v(" the events triggered by the recognized commands")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("command1 - command10 [string]:")]),t._v(" Ten string slots for commands. If an incoming string matches one of these property values, the associated event trigger is raised.")])])])}),[],!1,null,null,null);e.default=s.exports},720:function(t,e,n){t.exports=n.p+"assets/img/eventdispatcher.4aaea330.jpg"}}]); \ No newline at end of file diff --git a/assets/js/202.15621add.js b/assets/js/202.4ab3cb1f.js similarity index 92% rename from assets/js/202.15621add.js rename to assets/js/202.4ab3cb1f.js index 95136599b5..6433e36f6b 100644 --- a/assets/js/202.15621add.js +++ b/assets/js/202.4ab3cb1f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[202],{1157:function(t,e,n){"use strict";n.r(e);var s=n(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component stores the state, driven by an event. When the event-in event is received and the internal status is 1, event-out1 is fired and the internal status set to 2. When the event-in event is received and the internal status is 2, event-out2 is fired and the internal status set to 1.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(719),alt:"Screenshot: Event Flip Flop plugin",title:"Screenshot: Event Flip Flop plugin"}})]),t._v(" "),e("p",[t._v("Event Flip Flop plugin")]),t._v(" "),e("h2",{attrs:{id:"event-listener-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-ports"}},[t._v("#")]),t._v(" Event Listener Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("event-in:")]),t._v(" Event input to change the state of the flip-flop and fire an out-event.")]),t._v(" "),e("li",[e("strong",[t._v("selectOut1:")]),t._v(" selects state 1 (event-out1 trigger port will send the next incoming event)")]),t._v(" "),e("li",[e("strong",[t._v("selectOut2:")]),t._v(" selects state 2 (event-out2 trigger port will send the next incoming event)")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("event-out1:")]),t._v(" Event fired, if event-in received and stored state is 1.")]),t._v(" "),e("li",[e("strong",[t._v("event-out2:")]),t._v(" Event fired, if event-in received and stored state is 2.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("p",[t._v("No Properties.")])])}),[],!1,null,null,null);e.default=r.exports},719:function(t,e,n){t.exports=n.p+"assets/img/eventflipflop.4be67c4a.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[202],{1155:function(t,e,n){"use strict";n.r(e);var s=n(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component stores the state, driven by an event. When the event-in event is received and the internal status is 1, event-out1 is fired and the internal status set to 2. When the event-in event is received and the internal status is 2, event-out2 is fired and the internal status set to 1.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(718),alt:"Screenshot: Event Flip Flop plugin",title:"Screenshot: Event Flip Flop plugin"}})]),t._v(" "),e("p",[t._v("Event Flip Flop plugin")]),t._v(" "),e("h2",{attrs:{id:"event-listener-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-ports"}},[t._v("#")]),t._v(" Event Listener Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("event-in:")]),t._v(" Event input to change the state of the flip-flop and fire an out-event.")]),t._v(" "),e("li",[e("strong",[t._v("selectOut1:")]),t._v(" selects state 1 (event-out1 trigger port will send the next incoming event)")]),t._v(" "),e("li",[e("strong",[t._v("selectOut2:")]),t._v(" selects state 2 (event-out2 trigger port will send the next incoming event)")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("event-out1:")]),t._v(" Event fired, if event-in received and stored state is 1.")]),t._v(" "),e("li",[e("strong",[t._v("event-out2:")]),t._v(" Event fired, if event-in received and stored state is 2.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("p",[t._v("No Properties.")])])}),[],!1,null,null,null);e.default=r.exports},718:function(t,e,n){t.exports=n.p+"assets/img/eventflipflop.4be67c4a.png"}}]); \ No newline at end of file diff --git a/assets/js/203.0513cd4e.js b/assets/js/203.4422e380.js similarity index 94% rename from assets/js/203.0513cd4e.js rename to assets/js/203.4422e380.js index 3d2ddb8495..03ce5d2619 100644 --- a/assets/js/203.0513cd4e.js +++ b/assets/js/203.4422e380.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[203],{1159:function(e,t,r){"use strict";r.r(t);var n=r(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eventrouter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventrouter"}},[e._v("#")]),e._v(" EventRouter")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component allows routing up to 6 incoming events to one of 8 corresponding output (trigger) event ports.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(721),alt:"Screenshot: EventRouter",title:"Screenshot: Event Router plugin"}})]),e._v(" "),t("p",[e._v("Event Router plugin")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventIn1-6:")]),e._v(" The incoming events to be routed.")]),e._v(" "),t("li",[t("strong",[e._v("select1-select8:")]),e._v(" selects one of the 8 corresponding event routes (trigger output ports) events entering the eventIn ports")]),e._v(" "),t("li",[t("strong",[e._v("selectNext:")]),e._v(" selects the next event route")]),e._v(" "),t("li",[t("strong",[e._v("selectPrevious:")]),e._v(" selects the next event route")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut2_1-eventOut2_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn2 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut3_1-eventOut3_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn3 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut4_1-eventOut4_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn4 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut5_1-eventOut5_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn5 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut6_1-eventOut6_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn6 can be routed to.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activeRoutes (integer):")]),e._v(" number of active routes (relevant for the selectNext and selectPrevious functions and the wrapAround feature)")]),e._v(" "),t("li",[t("strong",[e._v("wrapAround (boolean):")]),e._v(" if selected selectNext srats again at the first route when the last active route was reached, and selectPrevious continues at the last active route when triggered at the first route.")])])])}),[],!1,null,null,null);t.default=s.exports},721:function(e,t,r){e.exports=r.p+"assets/img/eventrouter.a4b5b104.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[203],{1156:function(e,t,r){"use strict";r.r(t);var n=r(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eventrouter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventrouter"}},[e._v("#")]),e._v(" EventRouter")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component allows routing up to 6 incoming events to one of 8 corresponding output (trigger) event ports.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(719),alt:"Screenshot: EventRouter",title:"Screenshot: Event Router plugin"}})]),e._v(" "),t("p",[e._v("Event Router plugin")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventIn1-6:")]),e._v(" The incoming events to be routed.")]),e._v(" "),t("li",[t("strong",[e._v("select1-select8:")]),e._v(" selects one of the 8 corresponding event routes (trigger output ports) events entering the eventIn ports")]),e._v(" "),t("li",[t("strong",[e._v("selectNext:")]),e._v(" selects the next event route")]),e._v(" "),t("li",[t("strong",[e._v("selectPrevious:")]),e._v(" selects the next event route")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut2_1-eventOut2_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn2 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut3_1-eventOut3_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn3 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut4_1-eventOut4_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn4 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut5_1-eventOut5_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn5 can be routed to.")]),e._v(" "),t("li",[t("strong",[e._v("eventOut6_1-eventOut6_8:")]),e._v(" 8 event trigger ports where the events entering the listener port eventIn6 can be routed to.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activeRoutes (integer):")]),e._v(" number of active routes (relevant for the selectNext and selectPrevious functions and the wrapAround feature)")]),e._v(" "),t("li",[t("strong",[e._v("wrapAround (boolean):")]),e._v(" if selected selectNext srats again at the first route when the last active route was reached, and selectPrevious continues at the last active route when triggered at the first route.")])])])}),[],!1,null,null,null);t.default=s.exports},719:function(e,t,r){e.exports=r.p+"assets/img/eventrouter.a4b5b104.jpg"}}]); \ No newline at end of file diff --git a/assets/js/204.1a10af4b.js b/assets/js/204.05359b66.js similarity index 96% rename from assets/js/204.1a10af4b.js rename to assets/js/204.05359b66.js index 87c4565cc3..3a1be07a79 100644 --- a/assets/js/204.1a10af4b.js +++ b/assets/js/204.05359b66.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[204],{1158:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eventstatemachine"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventstatemachine"}},[e._v("#")]),e._v(" EventStateMachine")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component allows definition of a sequence of events (up to 9 different incoming events are supported). If the sequence appears at the event listener ports in the given order, an event is fired by the EventStateMachine plugin. Optionally, a timing can be specified for a valid event sequence.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(720),alt:"Screenshot: EventStateMachine",title:"Screenshot: Event State Machine plugin"}})]),e._v(" "),t("p",[e._v("Event State Machine plugin")]),e._v(" "),t("h2",{attrs:{id:"eventstatemachine-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventstatemachine-description"}},[e._v("#")]),e._v(" EventStateMachine Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1-in9:")]),e._v(" Incoming events")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" Resets the current state detection to the first element of the sequence")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("finalStateReached:")]),e._v(" fired if the last element of the sequence is reached.")]),e._v(" "),t("li",[t("strong",[e._v("stateError:")]),e._v(" fired if an incoming event does not fit the sequence.")]),e._v(" "),t("li",[t("strong",[e._v("stateChanged:")]),e._v(" fired if a new state of the sequence is reached.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stateSequence [string]:")]),e._v(" A sequence of digits separated by commas, representing the order of incoming events, for example: “1,5,2,3,1”.")]),e._v(" "),t("li",[t("strong",[e._v("stateTiming [string]:")]),e._v(" An (optional) sequence of timings for the above events, specified in min/max milliseconds for a state transition. One timing information consists of a numeric value for the maximum time or two numeric values separated by a forward slash (/) for minimum and maximum time. For example the timing “1000/2000,500/1000,x,3000” defines that the transition from first to second state my take a minimum of 1000 milliseconds and a maximum of 3000 milliseconds; The transition to the next state may trake 500-1000 milliseconds, the next transition has no timing contraints, the next transition may take up to 3000 milliseconds. If this property is left empty, no timing constraints are active for the event state transitions.")]),e._v(" "),t("li",[t("strong",[e._v("resetOnIncorrectEvent [boolean]:")]),e._v(" if checked, an incoming event which does not fit the current element of the sequence will reset the state detection to the first element of the sequence.")])])])}),[],!1,null,null,null);t.default=s.exports},720:function(e,t,n){e.exports=n.p+"assets/img/eventstatemachine.5875716f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[204],{1158:function(e,t,n){"use strict";n.r(t);var i=n(2),s=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eventstatemachine"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventstatemachine"}},[e._v("#")]),e._v(" EventStateMachine")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component allows definition of a sequence of events (up to 9 different incoming events are supported). If the sequence appears at the event listener ports in the given order, an event is fired by the EventStateMachine plugin. Optionally, a timing can be specified for a valid event sequence.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(721),alt:"Screenshot: EventStateMachine",title:"Screenshot: Event State Machine plugin"}})]),e._v(" "),t("p",[e._v("Event State Machine plugin")]),e._v(" "),t("h2",{attrs:{id:"eventstatemachine-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventstatemachine-description"}},[e._v("#")]),e._v(" EventStateMachine Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1-in9:")]),e._v(" Incoming events")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" Resets the current state detection to the first element of the sequence")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("finalStateReached:")]),e._v(" fired if the last element of the sequence is reached.")]),e._v(" "),t("li",[t("strong",[e._v("stateError:")]),e._v(" fired if an incoming event does not fit the sequence.")]),e._v(" "),t("li",[t("strong",[e._v("stateChanged:")]),e._v(" fired if a new state of the sequence is reached.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stateSequence [string]:")]),e._v(" A sequence of digits separated by commas, representing the order of incoming events, for example: “1,5,2,3,1”.")]),e._v(" "),t("li",[t("strong",[e._v("stateTiming [string]:")]),e._v(" An (optional) sequence of timings for the above events, specified in min/max milliseconds for a state transition. One timing information consists of a numeric value for the maximum time or two numeric values separated by a forward slash (/) for minimum and maximum time. For example the timing “1000/2000,500/1000,x,3000” defines that the transition from first to second state my take a minimum of 1000 milliseconds and a maximum of 3000 milliseconds; The transition to the next state may trake 500-1000 milliseconds, the next transition has no timing contraints, the next transition may take up to 3000 milliseconds. If this property is left empty, no timing constraints are active for the event state transitions.")]),e._v(" "),t("li",[t("strong",[e._v("resetOnIncorrectEvent [boolean]:")]),e._v(" if checked, an incoming event which does not fit the current element of the sequence will reset the state detection to the first element of the sequence.")])])])}),[],!1,null,null,null);t.default=s.exports},721:function(e,t,n){e.exports=n.p+"assets/img/eventstatemachine.5875716f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/205.e4aab451.js b/assets/js/205.d54ea064.js similarity index 99% rename from assets/js/205.e4aab451.js rename to assets/js/205.d54ea064.js index acb710279e..1148697fa3 100644 --- a/assets/js/205.e4aab451.js +++ b/assets/js/205.d54ea064.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[205],{1161:function(e,t,o){"use strict";o.r(t);var s=o(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"fabi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabi"}},[e._v("#")]),e._v(" FABI")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Microcontroller Interface)")]),e._v(" "),t("p",[e._v("This component provides an interface for a FABI controller and enables the programming process. It is possible to configure the buttons which are connected to the FABI controller and store the set to the built in EEPROM.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(723),alt:"Screenshot: FABI plugin",title:"Screenshot: FABI plugin"}})]),e._v(" "),t("p",[e._v("FABI plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Plugin requires a FABI2.0 compatible Version as well as the right COM Port. The Baudrate is predefined at 9600 Baud.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("ButtonMode [integer]:")]),e._v(" Number of the button")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("SlotSaveName [string]:")]),e._v(" Name of the slot to save the set of modes")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("SlotLoadName [string]:")]),e._v(" Name of the slot to load the set of modes")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("MoveMouseX [integer]:")]),e._v(" Number of pixels to move the mouse in X direction (right)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("MoveMouseY [integer]:")]),e._v(" Number of pixels to move the mouse in Y direction (down)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Text [string]:")]),e._v(" Text for the KeyWrite command")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("key [string]:")]),e._v(" Text for the KeyPress command"),t("br"),e._v("\n(e.g. AT KP KEY_UP presses the “Cursor-Up” key, AT KP KEY_CTRL KEY_ALT KEY_DELETE presses all three keys)"),t("br"),e._v("\nsupported key identifiers for key press command (AT KP):")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("\t\t\t\tKEY\\_A KEY\\_B KEY\\_C KEY\\_D KEY\\_E KEY\\_F KEY\\_G KEY\\_H KEY\\_I KEY\\_J KEY\\_K KEY\\_L\n\t\t\t\tKEY\\_M KEY\\_N KEY\\_O KEY\\_P KEY\\_Q KEY\\_R KEY\\_S KEY\\_T KEY\\_U KEY\\_V KEY\\_W KEY\\_X\n\t\t\t\tKEY\\_Y KEY\\_Z KEY\\_1 KEY\\_2 KEY\\_3 KEY\\_4 KEY\\_5 KEY\\_6 KEY\\_7 KEY\\_8 KEY\\_9 KEY\\_0\n\t\t\t\tKEY\\_F1 KEY\\_F2 KEY\\_F3 KEY\\_F4 KEY\\_F5 KEY\\_F6 KEY\\_F7 KEY\\_F8 KEY\\_F9 KEY\\_F10 KEY\\_F11 KEY\\_F12\n\n\t\t\t\tKEY\\_RIGHT KEY\\_LEFT KEY\\_DOWN KEY\\_UP KEY\\_ENTER KEY\\_ESC KEY\\_BACKSPACE KEY\\_TAB\n\t\t\t\tKEY\\_HOME KEY\\_PAGE\\_UP KEY\\_PAGE\\_DOWN KEY\\_DELETE KEY\\_INSERT KEY\\_END\t KEY\\_NUM\\_LOCK KEY\\_SCROLL\\_LOCK\n\t\t\t\tKEY\\_SPACE KEY\\_CAPS\\_LOCK KEY\\_PAUSE KEY\\_SHIFT KEY\\_CTRL KEY\\_ALT KEY\\_RIGHT\\_ALT KEY\\_GUI\n\t\t\t\tKEY\\_RIGHT\\_GUI\n")])])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("List [string]:")]),e._v(" Lists the slots stored in the EEPROM of the FABI controller")]),e._v(" "),t("li",[t("strong",[e._v("ID [string]:")]),e._v(" Shows the ID of the FABI version")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ID :")]),e._v(" identification string will be returned (e.g. “FABI Version 2.0”)"),t("br"),e._v("\nCorresponding FABI command is : “AT ID”")]),e._v(" "),t("li",[t("strong",[e._v("ButtonMode :")]),e._v(" button mode setting for a button (e.g. AT BM 2 -> next command defines the new function for button 2)"),t("br"),e._v("\nCorresponding FABI command is : “AT BM num”")]),e._v(" "),t("li",[t("strong",[e._v("ClickLeft :")]),e._v(" click left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CL”")]),e._v(" "),t("li",[t("strong",[e._v("ClickRight :")]),e._v(" click right mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CR”")]),e._v(" "),t("li",[t("strong",[e._v("ClickDoubleLeft :")]),e._v(" click double with left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CD”")]),e._v(" "),t("li",[t("strong",[e._v("ClickMiddle :")]),e._v(" click middle mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CM”")]),e._v(" "),t("li",[t("strong",[e._v("PressLeft :")]),e._v(" press/hold the left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT PL”")]),e._v(" "),t("li",[t("strong",[e._v("PressRight :")]),e._v(" press/hold the right mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT PR”")]),e._v(" "),t("li",[t("strong",[e._v("PressMiddle :")]),e._v(" press/hold the middle mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT PM”")]),e._v(" "),t("li",[t("strong",[e._v("ReleaseLeft :")]),e._v(" release the left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT RL”")]),e._v(" "),t("li",[t("strong",[e._v("ReleaseRight :")]),e._v(" release the right mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT RR”")]),e._v(" "),t("li",[t("strong",[e._v("ReleaseMiddle :")]),e._v(" release the middle mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT RM”")]),e._v(" "),t("li",[t("strong",[e._v("WheelUp :")]),e._v(" move mouse wheel up"),t("br"),e._v("\nCorresponding FABI command is : “AT WU”")]),e._v(" "),t("li",[t("strong",[e._v("WheelDown :")]),e._v(" move mouse wheel down"),t("br"),e._v("\nCorresponding FABI command is : “AT WD”")]),e._v(" "),t("li",[t("strong",[e._v("MoveMouseX :")]),e._v(" move mouse in x direction (e.g. AT X 4 moves 4 pixels to the right)"),t("br"),e._v("\nCorresponding FABI command is : “AT MX num”")]),e._v(" "),t("li",[t("strong",[e._v("MoveMouseY :")]),e._v(" move mouse in y direction (e.g. AT Y -10 moves 10 pixels up)"),t("br"),e._v("\nCorresponding FABI command is : “AT MY num”")]),e._v(" "),t("li",[t("strong",[e._v("KeyWrite :")]),e._v(" keyboard write text (e.g. AT KW Hello! writes “Hello!”)"),t("br"),e._v("\nCorresponding FABI command is : “AT KW text”")]),e._v(" "),t("li",[t("strong",[e._v("KeyPress :")]),e._v(" key press: press/hold all keys identified in text (e.g. AT KP KEY_UP presses the “Cursor-Up” key, AT KP KEY_CTRL KEY_ALT KEY_DELETE presses all three keys) The possible KeyPress commands are described in detail at the input port “key”!"),t("br"),e._v("\nCorresponding FABI command is : “AT KP text”")]),e._v(" "),t("li",[t("strong",[e._v("KeyRelease :")]),e._v(" key release: releases all keys identified in text"),t("br"),e._v("\nCorresponding FABI command is : “AT KR text”")]),e._v(" "),t("li",[t("strong",[e._v("KeyReleaseAll :")]),e._v(" release all: releases all currently pressed keys and buttons"),t("br"),e._v("\nCorresponding FABI command is : “AT RA”")]),e._v(" "),t("li",[t("strong",[e._v("Save :")]),e._v(" save settings and current button modes to next free eeprom slot under given name (e.g. AT SAVE mouse1)"),t("br"),e._v("\nCorresponding FABI command is : “AT SAVE text”")]),e._v(" "),t("li",[t("strong",[e._v("Load :")]),e._v(" load button modes from eeprom slot (e.g. AT LOAD mouse1 -> loads profile named “mouse1”)"),t("br"),e._v("\nCorresponding FABI command is : “AT LOAD text”")]),e._v(" "),t("li",[t("strong",[e._v("List :")]),e._v(" list all saved mode names"),t("br"),e._v("\nCorresponding FABI command is : “AT LIST”")]),e._v(" "),t("li",[t("strong",[e._v("Next :")]),e._v(" next mode will be loaded (wrap around after last slot)"),t("br"),e._v("\nCorresponding FABI command is : “AT NEXT”")]),e._v(" "),t("li",[t("strong",[e._v("Clear :")]),e._v(" clear EEPROM content (delete all stored slots)"),t("br"),e._v("\nCorresponding FABI command is : “AT CLEAR”")]),e._v(" "),t("li",[t("strong",[e._v("Idle :")]),e._v(" idle command (no operation)"),t("br"),e._v("\nCorresponding FABI command is : “AT IDLE”")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Stepsize [integer]:")]),e._v(" set mouse wheel stepsize (e.g. AT WS 3 sets the wheel stepsize to 3 rows)"),t("br"),e._v("\nThe stepsize is set when the plugin is started")]),e._v(" "),t("li",[t("strong",[e._v("COMPort [integer]:")]),e._v(" COM Port of FABI.")])])])}),[],!1,null,null,null);t.default=r.exports},723:function(e,t,o){e.exports=o.p+"assets/img/fabi.d2820cd0.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[205],{1160:function(e,t,o){"use strict";o.r(t);var s=o(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"fabi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabi"}},[e._v("#")]),e._v(" FABI")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Microcontroller Interface)")]),e._v(" "),t("p",[e._v("This component provides an interface for a FABI controller and enables the programming process. It is possible to configure the buttons which are connected to the FABI controller and store the set to the built in EEPROM.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(723),alt:"Screenshot: FABI plugin",title:"Screenshot: FABI plugin"}})]),e._v(" "),t("p",[e._v("FABI plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Plugin requires a FABI2.0 compatible Version as well as the right COM Port. The Baudrate is predefined at 9600 Baud.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("ButtonMode [integer]:")]),e._v(" Number of the button")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("SlotSaveName [string]:")]),e._v(" Name of the slot to save the set of modes")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("SlotLoadName [string]:")]),e._v(" Name of the slot to load the set of modes")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("MoveMouseX [integer]:")]),e._v(" Number of pixels to move the mouse in X direction (right)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("MoveMouseY [integer]:")]),e._v(" Number of pixels to move the mouse in Y direction (down)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Text [string]:")]),e._v(" Text for the KeyWrite command")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("key [string]:")]),e._v(" Text for the KeyPress command"),t("br"),e._v("\n(e.g. AT KP KEY_UP presses the “Cursor-Up” key, AT KP KEY_CTRL KEY_ALT KEY_DELETE presses all three keys)"),t("br"),e._v("\nsupported key identifiers for key press command (AT KP):")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("\t\t\t\tKEY\\_A KEY\\_B KEY\\_C KEY\\_D KEY\\_E KEY\\_F KEY\\_G KEY\\_H KEY\\_I KEY\\_J KEY\\_K KEY\\_L\n\t\t\t\tKEY\\_M KEY\\_N KEY\\_O KEY\\_P KEY\\_Q KEY\\_R KEY\\_S KEY\\_T KEY\\_U KEY\\_V KEY\\_W KEY\\_X\n\t\t\t\tKEY\\_Y KEY\\_Z KEY\\_1 KEY\\_2 KEY\\_3 KEY\\_4 KEY\\_5 KEY\\_6 KEY\\_7 KEY\\_8 KEY\\_9 KEY\\_0\n\t\t\t\tKEY\\_F1 KEY\\_F2 KEY\\_F3 KEY\\_F4 KEY\\_F5 KEY\\_F6 KEY\\_F7 KEY\\_F8 KEY\\_F9 KEY\\_F10 KEY\\_F11 KEY\\_F12\n\n\t\t\t\tKEY\\_RIGHT KEY\\_LEFT KEY\\_DOWN KEY\\_UP KEY\\_ENTER KEY\\_ESC KEY\\_BACKSPACE KEY\\_TAB\n\t\t\t\tKEY\\_HOME KEY\\_PAGE\\_UP KEY\\_PAGE\\_DOWN KEY\\_DELETE KEY\\_INSERT KEY\\_END\t KEY\\_NUM\\_LOCK KEY\\_SCROLL\\_LOCK\n\t\t\t\tKEY\\_SPACE KEY\\_CAPS\\_LOCK KEY\\_PAUSE KEY\\_SHIFT KEY\\_CTRL KEY\\_ALT KEY\\_RIGHT\\_ALT KEY\\_GUI\n\t\t\t\tKEY\\_RIGHT\\_GUI\n")])])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("List [string]:")]),e._v(" Lists the slots stored in the EEPROM of the FABI controller")]),e._v(" "),t("li",[t("strong",[e._v("ID [string]:")]),e._v(" Shows the ID of the FABI version")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ID :")]),e._v(" identification string will be returned (e.g. “FABI Version 2.0”)"),t("br"),e._v("\nCorresponding FABI command is : “AT ID”")]),e._v(" "),t("li",[t("strong",[e._v("ButtonMode :")]),e._v(" button mode setting for a button (e.g. AT BM 2 -> next command defines the new function for button 2)"),t("br"),e._v("\nCorresponding FABI command is : “AT BM num”")]),e._v(" "),t("li",[t("strong",[e._v("ClickLeft :")]),e._v(" click left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CL”")]),e._v(" "),t("li",[t("strong",[e._v("ClickRight :")]),e._v(" click right mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CR”")]),e._v(" "),t("li",[t("strong",[e._v("ClickDoubleLeft :")]),e._v(" click double with left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CD”")]),e._v(" "),t("li",[t("strong",[e._v("ClickMiddle :")]),e._v(" click middle mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT CM”")]),e._v(" "),t("li",[t("strong",[e._v("PressLeft :")]),e._v(" press/hold the left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT PL”")]),e._v(" "),t("li",[t("strong",[e._v("PressRight :")]),e._v(" press/hold the right mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT PR”")]),e._v(" "),t("li",[t("strong",[e._v("PressMiddle :")]),e._v(" press/hold the middle mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT PM”")]),e._v(" "),t("li",[t("strong",[e._v("ReleaseLeft :")]),e._v(" release the left mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT RL”")]),e._v(" "),t("li",[t("strong",[e._v("ReleaseRight :")]),e._v(" release the right mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT RR”")]),e._v(" "),t("li",[t("strong",[e._v("ReleaseMiddle :")]),e._v(" release the middle mouse button"),t("br"),e._v("\nCorresponding FABI command is : “AT RM”")]),e._v(" "),t("li",[t("strong",[e._v("WheelUp :")]),e._v(" move mouse wheel up"),t("br"),e._v("\nCorresponding FABI command is : “AT WU”")]),e._v(" "),t("li",[t("strong",[e._v("WheelDown :")]),e._v(" move mouse wheel down"),t("br"),e._v("\nCorresponding FABI command is : “AT WD”")]),e._v(" "),t("li",[t("strong",[e._v("MoveMouseX :")]),e._v(" move mouse in x direction (e.g. AT X 4 moves 4 pixels to the right)"),t("br"),e._v("\nCorresponding FABI command is : “AT MX num”")]),e._v(" "),t("li",[t("strong",[e._v("MoveMouseY :")]),e._v(" move mouse in y direction (e.g. AT Y -10 moves 10 pixels up)"),t("br"),e._v("\nCorresponding FABI command is : “AT MY num”")]),e._v(" "),t("li",[t("strong",[e._v("KeyWrite :")]),e._v(" keyboard write text (e.g. AT KW Hello! writes “Hello!”)"),t("br"),e._v("\nCorresponding FABI command is : “AT KW text”")]),e._v(" "),t("li",[t("strong",[e._v("KeyPress :")]),e._v(" key press: press/hold all keys identified in text (e.g. AT KP KEY_UP presses the “Cursor-Up” key, AT KP KEY_CTRL KEY_ALT KEY_DELETE presses all three keys) The possible KeyPress commands are described in detail at the input port “key”!"),t("br"),e._v("\nCorresponding FABI command is : “AT KP text”")]),e._v(" "),t("li",[t("strong",[e._v("KeyRelease :")]),e._v(" key release: releases all keys identified in text"),t("br"),e._v("\nCorresponding FABI command is : “AT KR text”")]),e._v(" "),t("li",[t("strong",[e._v("KeyReleaseAll :")]),e._v(" release all: releases all currently pressed keys and buttons"),t("br"),e._v("\nCorresponding FABI command is : “AT RA”")]),e._v(" "),t("li",[t("strong",[e._v("Save :")]),e._v(" save settings and current button modes to next free eeprom slot under given name (e.g. AT SAVE mouse1)"),t("br"),e._v("\nCorresponding FABI command is : “AT SAVE text”")]),e._v(" "),t("li",[t("strong",[e._v("Load :")]),e._v(" load button modes from eeprom slot (e.g. AT LOAD mouse1 -> loads profile named “mouse1”)"),t("br"),e._v("\nCorresponding FABI command is : “AT LOAD text”")]),e._v(" "),t("li",[t("strong",[e._v("List :")]),e._v(" list all saved mode names"),t("br"),e._v("\nCorresponding FABI command is : “AT LIST”")]),e._v(" "),t("li",[t("strong",[e._v("Next :")]),e._v(" next mode will be loaded (wrap around after last slot)"),t("br"),e._v("\nCorresponding FABI command is : “AT NEXT”")]),e._v(" "),t("li",[t("strong",[e._v("Clear :")]),e._v(" clear EEPROM content (delete all stored slots)"),t("br"),e._v("\nCorresponding FABI command is : “AT CLEAR”")]),e._v(" "),t("li",[t("strong",[e._v("Idle :")]),e._v(" idle command (no operation)"),t("br"),e._v("\nCorresponding FABI command is : “AT IDLE”")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Stepsize [integer]:")]),e._v(" set mouse wheel stepsize (e.g. AT WS 3 sets the wheel stepsize to 3 rows)"),t("br"),e._v("\nThe stepsize is set when the plugin is started")]),e._v(" "),t("li",[t("strong",[e._v("COMPort [integer]:")]),e._v(" COM Port of FABI.")])])])}),[],!1,null,null,null);t.default=r.exports},723:function(e,t,o){e.exports=o.p+"assets/img/fabi.d2820cd0.png"}}]); \ No newline at end of file diff --git a/assets/js/206.7225abf4.js b/assets/js/206.1d09c36d.js similarity index 95% rename from assets/js/206.7225abf4.js rename to assets/js/206.1d09c36d.js index 2aa5021e4c..58ac92785b 100644 --- a/assets/js/206.7225abf4.js +++ b/assets/js/206.1d09c36d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[206],{1160:function(t,e,v){"use strict";v.r(e);var _=v(2),r=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fs20commandinterpreter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fs20commandinterpreter"}},[t._v("#")]),t._v(" FS20CommandInterpreter")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("The FS20CommandInterpreter receives strings containing commands of the home automation system FS20 for ELV Electronics. Depending on the received commands, events will be fired.")]),t._v(" "),e("p",[e("img",{attrs:{src:v(722),alt:"FS20 Command Interpreter Plugin",title:"FS20 Command Interpreter Plugin"}})]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("command [string]:")]),t._v(" The command string containing the FS20 Command. The data must have the following format: housecode_sendaddress_command, e.g. 11111111_3343_17")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("p",[t._v("Each received command triggers an event, being mapped to this command. The following table will describe this events:")]),t._v(" "),e("p",[t._v("Command Mapping")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Event")]),t._v(" "),e("th",[t._v("Command")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Off")]),t._v(" "),e("td",[t._v("0")])]),t._v(" "),e("tr",[e("td",[t._v("Level1")]),t._v(" "),e("td",[t._v("1")])]),t._v(" "),e("tr",[e("td",[t._v("Level2")]),t._v(" "),e("td",[t._v("2")])]),t._v(" "),e("tr",[e("td",[t._v("Level3")]),t._v(" "),e("td",[t._v("3")])]),t._v(" "),e("tr",[e("td",[t._v("Level4")]),t._v(" "),e("td",[t._v("4")])]),t._v(" "),e("tr",[e("td",[t._v("Level5")]),t._v(" "),e("td",[t._v("5")])]),t._v(" "),e("tr",[e("td",[t._v("Level6")]),t._v(" "),e("td",[t._v("6")])]),t._v(" "),e("tr",[e("td",[t._v("Level7")]),t._v(" "),e("td",[t._v("7")])]),t._v(" "),e("tr",[e("td",[t._v("Level8")]),t._v(" "),e("td",[t._v("8")])]),t._v(" "),e("tr",[e("td",[t._v("Level9")]),t._v(" "),e("td",[t._v("9")])]),t._v(" "),e("tr",[e("td",[t._v("Level10")]),t._v(" "),e("td",[t._v("10")])]),t._v(" "),e("tr",[e("td",[t._v("Level11")]),t._v(" "),e("td",[t._v("11")])]),t._v(" "),e("tr",[e("td",[t._v("Level12")]),t._v(" "),e("td",[t._v("12")])]),t._v(" "),e("tr",[e("td",[t._v("Level13")]),t._v(" "),e("td",[t._v("13")])]),t._v(" "),e("tr",[e("td",[t._v("Level14")]),t._v(" "),e("td",[t._v("14")])]),t._v(" "),e("tr",[e("td",[t._v("Level15")]),t._v(" "),e("td",[t._v("15")])]),t._v(" "),e("tr",[e("td",[t._v("Level16")]),t._v(" "),e("td",[t._v("16")])]),t._v(" "),e("tr",[e("td",[t._v("OnOldLevel")]),t._v(" "),e("td",[t._v("17")])]),t._v(" "),e("tr",[e("td",[t._v("Toggle")]),t._v(" "),e("td",[t._v("18")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up")]),t._v(" "),e("td",[t._v("19")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Down")]),t._v(" "),e("td",[t._v("20")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up and Down")]),t._v(" "),e("td",[t._v("21")])]),t._v(" "),e("tr",[e("td",[t._v("Program internal timer")]),t._v(" "),e("td",[t._v("22")])]),t._v(" "),e("tr",[e("td",[t._v("Off for timer then old brightness level")]),t._v(" "),e("td",[t._v("24")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then off")]),t._v(" "),e("td",[t._v("25")])]),t._v(" "),e("tr",[e("td",[t._v("On old brightness level for timer then off")]),t._v(" "),e("td",[t._v("26")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then old brightness level")]),t._v(" "),e("td",[t._v("30")])]),t._v(" "),e("tr",[e("td",[t._v("On for old level then previous state")]),t._v(" "),e("td",[t._v("31")])])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("housecode [integer]")]),t._v(" The housecode, the plugin should react on. The housecode has 8 digits, each from 1 to 4.")]),t._v(" "),e("li",[e("strong",[t._v("sendaddress [integer]")]),t._v(" The sendaddress, the plugin should react on. The sendaddress has 4 digits, each from 1 to 4.")])])])}),[],!1,null,null,null);e.default=r.exports},722:function(t,e,v){t.exports=v.p+"assets/img/fs20command.da8b3973.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[206],{1189:function(t,e,v){"use strict";v.r(e);var _=v(2),r=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"fs20commandinterpreter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fs20commandinterpreter"}},[t._v("#")]),t._v(" FS20CommandInterpreter")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("The FS20CommandInterpreter receives strings containing commands of the home automation system FS20 for ELV Electronics. Depending on the received commands, events will be fired.")]),t._v(" "),e("p",[e("img",{attrs:{src:v(753),alt:"FS20 Command Interpreter Plugin",title:"FS20 Command Interpreter Plugin"}})]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("command [string]:")]),t._v(" The command string containing the FS20 Command. The data must have the following format: housecode_sendaddress_command, e.g. 11111111_3343_17")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("p",[t._v("Each received command triggers an event, being mapped to this command. The following table will describe this events:")]),t._v(" "),e("p",[t._v("Command Mapping")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Event")]),t._v(" "),e("th",[t._v("Command")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Off")]),t._v(" "),e("td",[t._v("0")])]),t._v(" "),e("tr",[e("td",[t._v("Level1")]),t._v(" "),e("td",[t._v("1")])]),t._v(" "),e("tr",[e("td",[t._v("Level2")]),t._v(" "),e("td",[t._v("2")])]),t._v(" "),e("tr",[e("td",[t._v("Level3")]),t._v(" "),e("td",[t._v("3")])]),t._v(" "),e("tr",[e("td",[t._v("Level4")]),t._v(" "),e("td",[t._v("4")])]),t._v(" "),e("tr",[e("td",[t._v("Level5")]),t._v(" "),e("td",[t._v("5")])]),t._v(" "),e("tr",[e("td",[t._v("Level6")]),t._v(" "),e("td",[t._v("6")])]),t._v(" "),e("tr",[e("td",[t._v("Level7")]),t._v(" "),e("td",[t._v("7")])]),t._v(" "),e("tr",[e("td",[t._v("Level8")]),t._v(" "),e("td",[t._v("8")])]),t._v(" "),e("tr",[e("td",[t._v("Level9")]),t._v(" "),e("td",[t._v("9")])]),t._v(" "),e("tr",[e("td",[t._v("Level10")]),t._v(" "),e("td",[t._v("10")])]),t._v(" "),e("tr",[e("td",[t._v("Level11")]),t._v(" "),e("td",[t._v("11")])]),t._v(" "),e("tr",[e("td",[t._v("Level12")]),t._v(" "),e("td",[t._v("12")])]),t._v(" "),e("tr",[e("td",[t._v("Level13")]),t._v(" "),e("td",[t._v("13")])]),t._v(" "),e("tr",[e("td",[t._v("Level14")]),t._v(" "),e("td",[t._v("14")])]),t._v(" "),e("tr",[e("td",[t._v("Level15")]),t._v(" "),e("td",[t._v("15")])]),t._v(" "),e("tr",[e("td",[t._v("Level16")]),t._v(" "),e("td",[t._v("16")])]),t._v(" "),e("tr",[e("td",[t._v("OnOldLevel")]),t._v(" "),e("td",[t._v("17")])]),t._v(" "),e("tr",[e("td",[t._v("Toggle")]),t._v(" "),e("td",[t._v("18")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up")]),t._v(" "),e("td",[t._v("19")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Down")]),t._v(" "),e("td",[t._v("20")])]),t._v(" "),e("tr",[e("td",[t._v("Dim Up and Down")]),t._v(" "),e("td",[t._v("21")])]),t._v(" "),e("tr",[e("td",[t._v("Program internal timer")]),t._v(" "),e("td",[t._v("22")])]),t._v(" "),e("tr",[e("td",[t._v("Off for timer then old brightness level")]),t._v(" "),e("td",[t._v("24")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then off")]),t._v(" "),e("td",[t._v("25")])]),t._v(" "),e("tr",[e("td",[t._v("On old brightness level for timer then off")]),t._v(" "),e("td",[t._v("26")])]),t._v(" "),e("tr",[e("td",[t._v("On for timer then old brightness level")]),t._v(" "),e("td",[t._v("30")])]),t._v(" "),e("tr",[e("td",[t._v("On for old level then previous state")]),t._v(" "),e("td",[t._v("31")])])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("housecode [integer]")]),t._v(" The housecode, the plugin should react on. The housecode has 8 digits, each from 1 to 4.")]),t._v(" "),e("li",[e("strong",[t._v("sendaddress [integer]")]),t._v(" The sendaddress, the plugin should react on. The sendaddress has 4 digits, each from 1 to 4.")])])])}),[],!1,null,null,null);e.default=r.exports},753:function(t,e,v){t.exports=v.p+"assets/img/fs20command.da8b3973.jpg"}}]); \ No newline at end of file diff --git a/assets/js/207.b7692c30.js b/assets/js/207.4a71e790.js similarity index 93% rename from assets/js/207.b7692c30.js rename to assets/js/207.4a71e790.js index e879e47b0f..8a5b06036a 100644 --- a/assets/js/207.b7692c30.js +++ b/assets/js/207.4a71e790.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[207],{1162:function(t,e,r){"use strict";r.r(e);var o=r(2),i=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"filter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#filter"}},[t._v("#")]),t._v(" Filter")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This plugin implements a FIR Filter")]),t._v(" "),e("p",[e("img",{attrs:{src:r(724),alt:"Screenshot: Filter plugin",title:"Screenshot: Filter plugin"}})]),t._v(" "),e("p",[t._v("Filter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Input [double]:")]),t._v(" The signal to be filtered.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Output [double]:")]),t._v(" The filtered signal.")]),t._v(" "),e("li",[e("strong",[t._v("SignalPower [double]:")]),t._v(" Signal Power on the band pass.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("Order [integer]:")]),t._v(" Order of the filter. It is recommended to use orders around the sampling rate.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("CutoffFreq1 [double]:")]),t._v(" Cutoff frequecy for low and high pass filter types. In case of band pass filters it is the low cutoff frequency of the band.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("CutoffFreq2 [double]:")]),t._v(" In case of band pass filters it is the high cutoff frequency of the band.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("SamplingRate [integer]:")]),t._v(" Sampling rate of the input signal.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("Type [integer]:")]),t._v(" Type of filter (low, high or band pass filter).")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("SignalPowerUpdateRate [integer]:")]),t._v(" Update ratio for the SignalPower output port. The SignalPower output port provides a new value every time the Output port has provided N values, where N is the value of this property.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("SignalPowerBufferSize [integer]:")]),t._v(" Length of the buffer that keeps the filtered signal that is used to compute the power of the signal.")])])])])}),[],!1,null,null,null);e.default=i.exports},724:function(t,e,r){t.exports=r.p+"assets/img/filter.9099ebe7.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[207],{1159:function(t,e,r){"use strict";r.r(e);var o=r(2),i=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"filter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#filter"}},[t._v("#")]),t._v(" Filter")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This plugin implements a FIR Filter")]),t._v(" "),e("p",[e("img",{attrs:{src:r(722),alt:"Screenshot: Filter plugin",title:"Screenshot: Filter plugin"}})]),t._v(" "),e("p",[t._v("Filter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Input [double]:")]),t._v(" The signal to be filtered.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Output [double]:")]),t._v(" The filtered signal.")]),t._v(" "),e("li",[e("strong",[t._v("SignalPower [double]:")]),t._v(" Signal Power on the band pass.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("Order [integer]:")]),t._v(" Order of the filter. It is recommended to use orders around the sampling rate.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("CutoffFreq1 [double]:")]),t._v(" Cutoff frequecy for low and high pass filter types. In case of band pass filters it is the low cutoff frequency of the band.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("CutoffFreq2 [double]:")]),t._v(" In case of band pass filters it is the high cutoff frequency of the band.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("SamplingRate [integer]:")]),t._v(" Sampling rate of the input signal.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("Type [integer]:")]),t._v(" Type of filter (low, high or band pass filter).")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("SignalPowerUpdateRate [integer]:")]),t._v(" Update ratio for the SignalPower output port. The SignalPower output port provides a new value every time the Output port has provided N values, where N is the value of this property.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("SignalPowerBufferSize [integer]:")]),t._v(" Length of the buffer that keeps the filtered signal that is used to compute the power of the signal.")])])])])}),[],!1,null,null,null);e.default=i.exports},722:function(t,e,r){t.exports=r.p+"assets/img/filter.9099ebe7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/208.121644ee.js b/assets/js/208.b52ae166.js similarity index 96% rename from assets/js/208.121644ee.js rename to assets/js/208.b52ae166.js index 1ef2f649f6..c9d5247c01 100644 --- a/assets/js/208.121644ee.js +++ b/assets/js/208.b52ae166.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[208],{1163:function(e,t,s){"use strict";s.r(t);var r=s(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"hrvanalysis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hrvanalysis"}},[e._v("#")]),e._v(" HRVAnalysis")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component calculates various Heart Rate Variability (HRV) parameters from an incoming signal of raw ECG-data. For a detailed description of the HRV parameters and a guide how to use optical and electrical heart rate sensors see the work of Andreas Schreiber (in /documentation/DIYGuides/HRVAnalysis_Schreiber.pdf and /documentation/OpticalPulseSensor_Schreiber.pdf)")]),e._v(" "),t("p",[t("img",{attrs:{src:s(725),alt:"Screenshot: HRVAnalysis plugin",title:"Screenshot: HRVAnalysis plugin"}})]),e._v(" "),t("p",[e._v("HRVAnalysis plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("HRVInput [double]:")]),e._v(" Input port for the raw signal")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("runtime [double]:")]),e._v(" the current time, since the first sample, in seconds")]),e._v(" "),t("li",[t("strong",[e._v("pulserate [double]:")]),e._v(" the current calculated pulserate")]),e._v(" "),t("li",[t("strong",[e._v("SDNN [double]:")]),e._v(" the standard deviation of all RR-intervals")]),e._v(" "),t("li",[t("strong",[e._v("rMSSD [double]:")]),e._v(" the square-root of the average sum of the quadratic differences between neighboring RR-intervals")]),e._v(" "),t("li",[t("strong",[e._v("SDSD [double]:")]),e._v(" the current standard deviation of successive differences between neighbouring RR-intervals")]),e._v(" "),t("li",[t("strong",[e._v("pNN50 [double]:")]),e._v(" the numer of successive RR-intervales that differ by more than 50ms (expressed as percentage of all RR-intervals)")]),e._v(" "),t("li",[t("strong",[e._v("pNN20 [double]:")]),e._v(" the numer of successive RR-intervales that differ by more than 20ms (expressed as percentage of all RR-intervals)")]),e._v(" "),t("li",[t("strong",[e._v("DD [double]:")]),e._v(" the deviation of 2 succesive RR-intervals")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" An incoming event starts the HRV analysis")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("samplerate [double]:")]),e._v(" specifies the sample rate of the incoming signal.")]),e._v(" "),t("li",[t("strong",[e._v("outlierRange [double]:")]),e._v(" Defines factor of the mean R-amplitudes which is used as a threshold to detect spikes / signal artefacts.")])])])}),[],!1,null,null,null);t.default=a.exports},725:function(e,t,s){e.exports=s.p+"assets/img/hrvanalysis.4919a786.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[208],{1163:function(e,t,s){"use strict";s.r(t);var r=s(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"hrvanalysis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hrvanalysis"}},[e._v("#")]),e._v(" HRVAnalysis")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component calculates various Heart Rate Variability (HRV) parameters from an incoming signal of raw ECG-data. For a detailed description of the HRV parameters and a guide how to use optical and electrical heart rate sensors see the work of Andreas Schreiber (in /documentation/DIYGuides/HRVAnalysis_Schreiber.pdf and /documentation/OpticalPulseSensor_Schreiber.pdf)")]),e._v(" "),t("p",[t("img",{attrs:{src:s(726),alt:"Screenshot: HRVAnalysis plugin",title:"Screenshot: HRVAnalysis plugin"}})]),e._v(" "),t("p",[e._v("HRVAnalysis plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("HRVInput [double]:")]),e._v(" Input port for the raw signal")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("runtime [double]:")]),e._v(" the current time, since the first sample, in seconds")]),e._v(" "),t("li",[t("strong",[e._v("pulserate [double]:")]),e._v(" the current calculated pulserate")]),e._v(" "),t("li",[t("strong",[e._v("SDNN [double]:")]),e._v(" the standard deviation of all RR-intervals")]),e._v(" "),t("li",[t("strong",[e._v("rMSSD [double]:")]),e._v(" the square-root of the average sum of the quadratic differences between neighboring RR-intervals")]),e._v(" "),t("li",[t("strong",[e._v("SDSD [double]:")]),e._v(" the current standard deviation of successive differences between neighbouring RR-intervals")]),e._v(" "),t("li",[t("strong",[e._v("pNN50 [double]:")]),e._v(" the numer of successive RR-intervales that differ by more than 50ms (expressed as percentage of all RR-intervals)")]),e._v(" "),t("li",[t("strong",[e._v("pNN20 [double]:")]),e._v(" the numer of successive RR-intervales that differ by more than 20ms (expressed as percentage of all RR-intervals)")]),e._v(" "),t("li",[t("strong",[e._v("DD [double]:")]),e._v(" the deviation of 2 succesive RR-intervals")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" An incoming event starts the HRV analysis")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("samplerate [double]:")]),e._v(" specifies the sample rate of the incoming signal.")]),e._v(" "),t("li",[t("strong",[e._v("outlierRange [double]:")]),e._v(" Defines factor of the mean R-amplitudes which is used as a threshold to detect spikes / signal artefacts.")])])])}),[],!1,null,null,null);t.default=a.exports},726:function(e,t,s){e.exports=s.p+"assets/img/hrvanalysis.4919a786.jpg"}}]); \ No newline at end of file diff --git a/assets/js/209.ff035066.js b/assets/js/209.64b3a0a3.js similarity index 93% rename from assets/js/209.ff035066.js rename to assets/js/209.64b3a0a3.js index fc30c3dc9a..bd1a930527 100644 --- a/assets/js/209.ff035066.js +++ b/assets/js/209.64b3a0a3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[209],{1165:function(e,t,r){"use strict";r.r(t);var s=r(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"iirfilter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#iirfilter"}},[e._v("#")]),e._v(" IIRFilter")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This plugin provides adjustable Infinite Impulse Response Filters, based on the Java DSP Library: "),t("a",{attrs:{href:"http://www.source-code.biz/dsp/java/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.source-code.biz/dsp/java"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("img",{attrs:{src:r(726),alt:"Screenshot: IIRFilter plugin",title:"Screenshot: IIRFilter plugin"}})]),e._v(" "),t("p",[e._v("IIRFilter plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" The signal to be filtered")])]),e._v(" "),t("h2",{attrs:{id:"input-port-description-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description-2"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out [double]:")]),e._v(" The filtered signal")]),e._v(" "),t("li",[t("strong",[e._v("magnitude [double]:")]),e._v(" the magnitude of the filtered signal in the selected passband (only calculated if the passType = bandpass !)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("passType [integer] (combobox selection):")]),e._v(" can be lowpass, highpass, bandpass or bandstop")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("characteristicType [integer] (combobox selection):")]),e._v(" can be butterworth, bessel or chebyshev")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("order [integer]:")]),e._v(" the filter order (values from 1 to 12 recommended)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("samplingFrequency [integer]:")]),e._v(" the sampling rate of the input signal")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("fc1 [double]:")]),e._v(" corner frequency (lower corner frequency for bandpass filter)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("fc2 [double]:")]),e._v(" higher corner frequency (ignored in case of highpass or lowpass types)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("ripple [double]:")]),e._v(" the passband ripple supression, must be a negative value (only for chebyshev types, ignored for other types)")])])])])}),[],!1,null,null,null);t.default=i.exports},726:function(e,t,r){e.exports=r.p+"assets/img/iirfilter.4bf8743f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[209],{1164:function(e,t,r){"use strict";r.r(t);var s=r(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"iirfilter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#iirfilter"}},[e._v("#")]),e._v(" IIRFilter")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This plugin provides adjustable Infinite Impulse Response Filters, based on the Java DSP Library: "),t("a",{attrs:{href:"http://www.source-code.biz/dsp/java/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.source-code.biz/dsp/java"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("img",{attrs:{src:r(727),alt:"Screenshot: IIRFilter plugin",title:"Screenshot: IIRFilter plugin"}})]),e._v(" "),t("p",[e._v("IIRFilter plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" The signal to be filtered")])]),e._v(" "),t("h2",{attrs:{id:"input-port-description-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description-2"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out [double]:")]),e._v(" The filtered signal")]),e._v(" "),t("li",[t("strong",[e._v("magnitude [double]:")]),e._v(" the magnitude of the filtered signal in the selected passband (only calculated if the passType = bandpass !)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("passType [integer] (combobox selection):")]),e._v(" can be lowpass, highpass, bandpass or bandstop")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("characteristicType [integer] (combobox selection):")]),e._v(" can be butterworth, bessel or chebyshev")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("order [integer]:")]),e._v(" the filter order (values from 1 to 12 recommended)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("samplingFrequency [integer]:")]),e._v(" the sampling rate of the input signal")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("fc1 [double]:")]),e._v(" corner frequency (lower corner frequency for bandpass filter)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("fc2 [double]:")]),e._v(" higher corner frequency (ignored in case of highpass or lowpass types)")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("ripple [double]:")]),e._v(" the passband ripple supression, must be a negative value (only for chebyshev types, ignored for other types)")])])])])}),[],!1,null,null,null);t.default=i.exports},727:function(e,t,r){e.exports=r.p+"assets/img/iirfilter.4bf8743f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/21.2a9b66bd.js b/assets/js/21.c9029408.js similarity index 94% rename from assets/js/21.2a9b66bd.js rename to assets/js/21.c9029408.js index a809d3379d..4539fc1e76 100644 --- a/assets/js/21.2a9b66bd.js +++ b/assets/js/21.c9029408.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{1052:function(e,s,n){"use strict";n.r(s);var t=n(2),r=Object(t.a)({},(function(){var e=this,s=e._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#users"}},[e._v("#")]),e._v(" Users")]),e._v(" "),s("p",[s("strong",[e._v("Video on YouTube:")]),e._v(" "),s("a",{attrs:{href:"https://www.youtube.com/watch?v=CoRUQJJnYaY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=16&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Offline and online users"),s("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),s("p",[e._v("This chapter is about offline and online users, their differences and how to add or register them.")]),e._v(" "),s("p",[s("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),s("p",[e._v("In AsTeRICS Grid a user in general holds a set of grids which realize a specific solution for this user. A user doesn’t necessarily have to be a real person, it’s also possible to create a “user” for a specific usecase, for instance a specific smart home control interface.")]),e._v(" "),s("h3",{attrs:{id:"internet-connection-requirements"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#internet-connection-requirements"}},[e._v("#")]),e._v(" Internet connection requirements")]),e._v(" "),s("p",[e._v("Despite being a web-application that runs in an internet browser, AsTeRICS Grid is designed to be usable also without internet connection.")]),e._v(" "),s("p",[s("strong",[e._v("Internet connection is required for:")])]),e._v(" "),s("ol",[s("li",[e._v("First usage of AsTeRICS Grid. Initially opening "),s("a",{attrs:{href:"https://grid.asterics.eu/",target:"_blank"}},[e._v("https://grid.asterics.eu/")]),e._v(" automatically downloads the whole application to browser cache and therefore AsTeRICS Grid is usable offline afterwards.")]),e._v(" "),s("li",[e._v("Synchronizing configuration of online users")])]),e._v(" "),s("p",[s("strong",[e._v("Without internet access it is possible to:")])]),e._v(" "),s("ol",[s("li",[e._v("Use AsTeRICS Grid by just re-opening "),s("a",{attrs:{href:"https://grid.asterics.eu/",target:"_blank"}},[e._v("https://grid.asterics.eu/")]),e._v(" in the browser (only initial access needs internet access).")]),e._v(" "),s("li",[e._v("switch between all saved users, which can be both offline and online users")])]),e._v(" "),s("h2",{attrs:{id:"online-users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#online-users"}},[e._v("#")]),e._v(" Online users")]),e._v(" "),s("p",[e._v("Online users are users whose configuration is automatically synchronized with a cloud storage. Therefore it’s possible to this user to log in on different devices while the configuration is always up-to-date on each device.")]),e._v(" "),s("p",[e._v("In view “add online user” it’s possible to register a new online user, Figure 6:")]),e._v(" "),s("p",[s("img",{attrs:{src:n(514),alt:"add online user view"}}),e._v(" "),s("em",[e._v("Fig. 6: Add online user view - register")])]),e._v(" "),s("p",[e._v("The following information is important for registering an online user:")]),e._v(" "),s("ul",[s("li",[e._v("The only data that is needed are a "),s("strong",[e._v("username")]),e._v(" and a "),s("strong",[e._v("password")]),e._v(". The username is needed for uniquely identifying a user and the password for securing his account and encrypting the data.")]),e._v(" "),s("li",[e._v("If you want to "),s("strong",[e._v("use AsTeRICS Grid completely anonymously")]),e._v(" just use a username without any relation to your person.")]),e._v(" "),s("li",[e._v("Since all data is "),s("strong",[e._v("end-to-end encrypted")]),e._v(" only the user itself can ever see his data and configuration, no server admin or anyone else.")]),e._v(" "),s("li",[e._v("End-to-end encryption is great for privacy, however it has the drawback that the "),s("strong",[e._v("data is lost")]),e._v(", if you logout your online account on all devices and forget your password. In this case there is "),s("strong",[e._v("no possibility of password recovery")]),e._v(", so "),s("strong",[e._v("remember your password carefully")]),e._v(". It’s also recommended to "),s("strong",[e._v("do backups")]),e._v(" of your grids (see "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("Manage grids view")]),e._v(").")],1),e._v(" "),s("li",[e._v('Usernames must start lowercase, valid characters are [a-z], [0-9] and ["-", “_”], valid length is 3-50 characters.')])]),e._v(" "),s("h3",{attrs:{id:"synchronization-states"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#synchronization-states"}},[e._v("#")]),e._v(" Synchronization states")]),e._v(" "),s("p",[e._v("Online users can have the following synchronization states which are shown at the bottom of the navigation bar:")]),e._v(" "),s("p",[s("img",{attrs:{src:n(515),alt:"online user - synchronizing symbol"}}),e._v(" "),s("strong",[e._v("Synchronizing")]),e._v(": configuration is currently synchronizing with the cloud")]),e._v(" "),s("p",[s("img",{attrs:{src:n(516),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Synchronized")]),e._v(": configuration is up-to-date with the cloud storage")]),e._v(" "),s("p",[s("img",{attrs:{src:n(517),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Synchronization failed")]),e._v(": synchronization not possible, no internet connection")]),e._v(" "),s("p",[s("img",{attrs:{src:n(518),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Synchronization paused")]),e._v(": synchronization paused for a short time and will be resumed shortly")]),e._v(" "),s("p",[s("img",{attrs:{src:n(519),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Online only")]),e._v(": user is logged in online-only, meaning that configuration is not saved on the current device. Changes still will be saved in the cloud and therefore also be synchronized to other devices where this user is logged in. Users will be logged in online-only if the “remember checkbox” is unchecked when logging in (see "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#change-user---view"}},[e._v("change user view")]),e._v(").")],1),e._v(" "),s("h2",{attrs:{id:"offline-users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#offline-users"}},[e._v("#")]),e._v(" Offline users")]),e._v(" "),s("p",[e._v("Offline users are users whose configuration is only saved offline in the storage of the currently used browser. This type of users are perfectly suited for use cases where AsTeRICS Grid is only used on a single device.")]),e._v(" "),s("p",[e._v("In view “add offline user” it’s possible to add a new offline user (see "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#user"}},[e._v("Terms")]),e._v("), Figure 7:")],1),e._v(" "),s("p",[s("img",{attrs:{src:n(520),alt:"add offline user view"}}),e._v(" "),s("em",[e._v("Fig. 7: Add offline user view")])]),e._v(" "),s("p",[e._v("The following information is important regarding offline users:")]),e._v(" "),s("ul",[s("li",[e._v("All "),s("strong",[e._v("data of an offline user never leaves the device")]),e._v(", it’s stored in a browser-internal database.")]),e._v(" "),s("li",[e._v('Usernames must start lowercase, valid characters are [a-z], [0-9] and ["-", “_”], valid length is 3-50 characters.')])]),e._v(" "),s("h2",{attrs:{id:"backup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#backup"}},[e._v("#")]),e._v(" Backup")]),e._v(" "),s("p",[e._v("Regardless which type of users are used, we "),s("strong",[e._v("highly recommend to do backups")]),e._v(" if you are using AsTeRICS Grid on a regular basis and have put some effort into customizing own grids for your use-case. See "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("manage grids view")]),e._v(" for instructions how to create and restore backups.")],1),e._v(" "),s("p",[e._v("This is why backups are important:")]),e._v(" "),s("ol",[s("li",[s("strong",[e._v("Offline users")]),e._v(": since all data is only stored in an browser-internal storage, any browser crash or failure of your device could cause data loss.")]),e._v(" "),s("li",[s("strong",[e._v("Online users")]),e._v(": Although online users are not susceptible to device or browser errors, data loss is still possible because of the encryption of the user data. If the user forgets his password or decryption fails because of any kind of programming error the data cannot be recovered. Backups as described in "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("manage grids view")]),e._v(" are saved to an unencrypted file and therefore can recover the user data in such a case.")],1)]),e._v(" "),s("p",[s("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[e._v("← Previous Chapter")]),e._v(" "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/07_dictionaries.html"}},[e._v("Next Chapter →")])],1),e._v(" "),s("p",[s("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);s.default=r.exports},514:function(e,s,n){e.exports=n.p+"assets/img/register_online_en.1f0b88fe.jpg"},515:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAeAC8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U65Xxr4yPh1Ut7ZVe8kXdluQi+uO5re1bVINFsZbu5bbGg6Dqx7Ae9eKeKfECatqFzqU4W1hC5O5+EVR1J/DNdeHpe0ldrRHnY3EexhaL95mgvjrXFm837exP90ou38sYrsNM+J9k9gGv0eO6BwUhXIb/aGTx9M18heINK+IvxV16afw34507w34OVB9kvNIVbua6Jzksx4XHtXK6F8cda+Cnj7/AIQz4qa9Y6vaXURl0/XrUYcsDjypYlXIYkj2HHau2cKUtHGy7nkUauIjdxnzPtqz9ENJ1qz1y18+zl8xAcMMYKn0Iq9XkHw38TWemXTyTzOltdRrsbadvqCw6jg+nevXlYOoZSGUjII6GvPrUvZSstj28LiPrFO736nF/FSOVtFtmXPlLN8+PocH/PrXh3j/AMJt468H6noI1GfShfReS11bAF1U9cZ9Rx+NfUF5aQ39tJb3EYlhkGGVu9cRc/CeB5maDUJIoz0R4g5H45FdGHrQjFwmcWMwtWpUVWlqfnb8ILrTP2OdZ8Q6D4t0vVUt7mbzbTXrOOae3u4e25AMK6jqQPb69/4b0HwT+0Z48bxTN4Dv7JNLljltNevE8j7cw/hKdWA9xivsuT4PxTLtk1EOvXDWwI/9Cpy/CJI1Crqe1R0At8D/ANCrWNSkvd5tPQ55UMTJufJ7z63R54OOB0r2bwG8snhWxMpJOGC5/uhiB+lYln8KbaKdWub57iIcmNY9mfxya7iGFLeFIo1CRoAqqvQAdBWeJrQqRUYm+BwlWjNzqaH/2Q=="},516:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAhAC8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6yfEHiS08OWoluCWd+I4k+8x/oPetOWVII2kkZUjUZZmOAB6143421qPW9dklgkMtuihIzggcdevvmuihS9rOz2OLF4j6vT5lv0OhX4sSedltOXyf7olO788f0rsdM8TadqlgLtLhIo87WEzBSreh5rw6vO7b49eE7/AOLh+HNncXF9r8cDzTPbQmS3gZeTHI4PyvjnkYHQkMQK9CeGpNqK0bPFo47EK8pe8l+B9kK6yKGUhlIyGByDTq84+FuqOtxdWMkw8oqHjRm53Z52j6fyr0evNq0/ZS5T3sPWWIpqaVjjPijdyw6JBEhISaXDkdwBkD8/5V5Hqlm+o6Zd2kd1NYyTwvEt1b48yEspAdcgjcM5GQRkV79r2iw+INNktJjtz8yOBkqw6GvMrn4c63DMyRwR3CDpIkqgH8CQa7MNOHI4SdjycfRqyqqpBXR+fN5r3x/+HF5P8HLRZPEN9qrsdG8YTM5eO0z+9ZnOcFdwyWO5M4G7KGvo74C/APRfgX4ZNran+0NdvMSalrEo/e3MnUgE8hAScL+JySTXuf8Awr7Xv+fEf9/k/wDiqP8AhX2vf8+I/wC/yf8AxVdVN04auV3tfy7f59zjqqvUXKqbS3dk9X3/AOB0OdVijBlJVgcgjqK9r8H6lLq3h20uJzumIKs397BIz+leeWfw31m4nVJoktY+8jSK2PwBNepaXpsWkafBZw58uJcAnqe5P4mubFVISikndnZl9GrTm5SVkW6KKK8w98KKKKACiiigD//Z"},517:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAfAC4DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U65Xxd44j8OuLaCNZ7wjcQx+VB2z6n2rd1bVrbRbJ7q6fZGvAA5LH0A9a8U1rUP7W1a6uwGCzSFlDdQOw/KuvD0faSvLZHm47EuhC0H7zOjtvihqsc26aK3miJ5TaVOPY5/nmu0tfHejXFpDNJdrbtJ1ifJZT6HH86+LdP8A2t/BcV34xsvEZuPCWpeGpXWWx1QBZrmIHCSQqPvFsjCjJ+ZTyDmu7+EPxIHxY8CWHidNGvdDhvC5itr4De0YYhZBjqrDBB/mME9vsaNZJw7X07P+vU8pYrFYe/tNemvf+vkfWkM8dzEssUiyxsMq6HIP0NSV598L9Yhjt57Ca5VZGk3QxMcE5HOP04r0GvMq0/ZzcT3sPWVempnnPxYeXzdOT/ljtcj/AHuP6V5/XufiDQbfxFYm2uMqQdySL1RvWuCk+FWorIwju7Vk7MxZSfwwf5134etCMOWTsePjsLVnV9pBXTPz9+JX7NfxC/aM8beJfE+vR6f4RfSgbPw9YvHHP9sWN9yvO4zlG56g43fdwDu+mPg7qnivVvh9pkvjTRItA8QxqYZ7WF1ZDsO0SAKSFDAZ2gnFez/8Kr1X/n5s/wDvt/8A4mj/AIVXqv8Az82f/fb/APxNa0p0aStGW/59/V/d5HPWp4mskpQ228l29PxONVijBlJVgcgjqK930O5kvNGsZ5v9bJCjMfUkDmuH0v4VzLdK2oXURgU5KQZJb2yQMV6JGixoqIoVFGAo6Aelc2Kqwmko6nfl+Hq0nKU1ZM//2Q=="},518:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAeACoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6878eeNLm3vX06wlMAj4lmT7xb0B7YrqPFniZPDNgsmwS3Eh2xRnp7k+wr5w+NGuXtv8N/HGr287W2ox6Te3Mc8J2tHIIXZWX0IIBH0rrowsnVkrpJnmYus7xoU3aUmvlc7W21/UrSbzor64WTOSfMJB+oPX8a7S1+KypaQi4smluekjIwVT7j/AAr8k/2ffiz421LwR8YJbzxdrl7LZ+GnuLaS61CWVoJA4AeMsxKNgnkYP5V61/wTx8eeJfGNx44i1/xBqmuJbpaNCNSvJLjyyxlDbd5OM4GcegruXs68lFx6c34tfoeby18LCc4z+FpffZ/qfqLoutW2vWK3VqxKE7SrDDKfQ1frynwD4qttBeW2ulZY7hwfOB4Q9OR6e9eqghgCORXnVqfspWWx7GFxCxFNNvXqee/Fezlb7DdAEwqGjPoCcEfnz+VeM/ErQbrxR8O/FGjWIQ3uoaXdWkAkbapkkiZVyewyRX1HdWkN9bvBcRrLC4wyMMg1y0nwv0eSRmV7qMH+FZBgfmpNbU60PZOlP+rnJiMLUlXVelvpv5H5ZfA79lH4leF/B/xRs9Y0WHTrrWdCbT7CJ76GQzSlt3VHYKOMZYjqPfHpf7DfwJ8afBxvF1x4v0tNJOoC2S3iF1FMzbPMLE+WzAD5x1OevFfoB/wq3Sf+e95/32v/AMTR/wAKt0n/AJ73n/fa/wDxNbU61GnJSTeit8rt/qY1KGKqxlBpWk7v5WX6I8qr23R7W9j0ixR32usCAq3UHaOKp6X8P9J0u6WcLLcSKcr57AhT64AH610tZV8Qp2UUaYXAyp3dR29Gf//Z"},519:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAgACsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U64vxZ8Qho909nYxJNcJxJJJnap9MDqa6DXvENp4dtRNcsSW4SNOWY+1fO/jvxU/hnw/qutiym1S4hRpI7OAgSXEhPyoCeBknqenJrroU1K857I8zGYiVO1Ok/eZ6Vp/xR1CGYfa4YbiEnnYNrD6Hp+ldvF400WQQ/6fGhlAIVuNuezdgfrX54SfGX4xzfELwnZ/8I5b22i3lpH/AGmUiVlt55wSnJfcRCGj3Y+8RJ6rt9u+EPjnVfHnhGO817RH8Pa7C5gvLEuHQOP44yCco3UZ5HI5xk9vsKdXZWt+mh5qxWIw6vJqSdvxPrtWDqGUhlIyCOhpa474b6xDcaKlk9yrXUTNtiJ+bZ1GPXv0rsa8upB05OLPfo1VWpqa6nlPxQeVvEKK/wDq1hXZ+Zz+teCftF/DmP4ofCjVdHezvNQeMpdx2en3SW807RnIRXdHUEjOAV5OBkda+tvFHhW38TWyq7GG4j/1cwGcexHcVxDfCvU9xxdWhHbLMP8A2Wu6FSnOj7ObseNiMPXjiPbU1f8ArY/LK60vwdqPxs8C3U/h7xRbXt1bWF2ssmqQRxWy2kaxyiVDa7sxG2kDjcMlD93IA+ov2S/h/b+GfDeu+I4tH1fQZPE159s+xaxdJNKEBYq+1Yo9gbe2FbJxg55r6kf4PXklwlw7ae08YKpK24soOMgHbkZwPyFTf8Kr1X/n5s/++3/+JranOlBuTld6/i0/0RjWhiKsVBQaWn4X/wAzkrO6lsrqKeFiksbBlYeor36Ni0akjBIyRXB+H/hmbO8S41GeOYRtuWGLJVj7kgce2K76uXFVI1GlHod2X0KlFSc9Ln//2Q=="},520:function(e,s,n){e.exports=n.p+"assets/img/add_offline_en.3ac438a3.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{1053:function(e,s,n){"use strict";n.r(s);var t=n(2),r=Object(t.a)({},(function(){var e=this,s=e._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#users"}},[e._v("#")]),e._v(" Users")]),e._v(" "),s("p",[s("strong",[e._v("Video on YouTube:")]),e._v(" "),s("a",{attrs:{href:"https://www.youtube.com/watch?v=CoRUQJJnYaY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=16&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Offline and online users"),s("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),s("p",[e._v("This chapter is about offline and online users, their differences and how to add or register them.")]),e._v(" "),s("p",[s("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),s("p",[e._v("In AsTeRICS Grid a user in general holds a set of grids which realize a specific solution for this user. A user doesn’t necessarily have to be a real person, it’s also possible to create a “user” for a specific usecase, for instance a specific smart home control interface.")]),e._v(" "),s("h3",{attrs:{id:"internet-connection-requirements"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#internet-connection-requirements"}},[e._v("#")]),e._v(" Internet connection requirements")]),e._v(" "),s("p",[e._v("Despite being a web-application that runs in an internet browser, AsTeRICS Grid is designed to be usable also without internet connection.")]),e._v(" "),s("p",[s("strong",[e._v("Internet connection is required for:")])]),e._v(" "),s("ol",[s("li",[e._v("First usage of AsTeRICS Grid. Initially opening "),s("a",{attrs:{href:"https://grid.asterics.eu/",target:"_blank"}},[e._v("https://grid.asterics.eu/")]),e._v(" automatically downloads the whole application to browser cache and therefore AsTeRICS Grid is usable offline afterwards.")]),e._v(" "),s("li",[e._v("Synchronizing configuration of online users")])]),e._v(" "),s("p",[s("strong",[e._v("Without internet access it is possible to:")])]),e._v(" "),s("ol",[s("li",[e._v("Use AsTeRICS Grid by just re-opening "),s("a",{attrs:{href:"https://grid.asterics.eu/",target:"_blank"}},[e._v("https://grid.asterics.eu/")]),e._v(" in the browser (only initial access needs internet access).")]),e._v(" "),s("li",[e._v("switch between all saved users, which can be both offline and online users")])]),e._v(" "),s("h2",{attrs:{id:"online-users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#online-users"}},[e._v("#")]),e._v(" Online users")]),e._v(" "),s("p",[e._v("Online users are users whose configuration is automatically synchronized with a cloud storage. Therefore it’s possible to this user to log in on different devices while the configuration is always up-to-date on each device.")]),e._v(" "),s("p",[e._v("In view “add online user” it’s possible to register a new online user, Figure 6:")]),e._v(" "),s("p",[s("img",{attrs:{src:n(546),alt:"add online user view"}}),e._v(" "),s("em",[e._v("Fig. 6: Add online user view - register")])]),e._v(" "),s("p",[e._v("The following information is important for registering an online user:")]),e._v(" "),s("ul",[s("li",[e._v("The only data that is needed are a "),s("strong",[e._v("username")]),e._v(" and a "),s("strong",[e._v("password")]),e._v(". The username is needed for uniquely identifying a user and the password for securing his account and encrypting the data.")]),e._v(" "),s("li",[e._v("If you want to "),s("strong",[e._v("use AsTeRICS Grid completely anonymously")]),e._v(" just use a username without any relation to your person.")]),e._v(" "),s("li",[e._v("Since all data is "),s("strong",[e._v("end-to-end encrypted")]),e._v(" only the user itself can ever see his data and configuration, no server admin or anyone else.")]),e._v(" "),s("li",[e._v("End-to-end encryption is great for privacy, however it has the drawback that the "),s("strong",[e._v("data is lost")]),e._v(", if you logout your online account on all devices and forget your password. In this case there is "),s("strong",[e._v("no possibility of password recovery")]),e._v(", so "),s("strong",[e._v("remember your password carefully")]),e._v(". It’s also recommended to "),s("strong",[e._v("do backups")]),e._v(" of your grids (see "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("Manage grids view")]),e._v(").")],1),e._v(" "),s("li",[e._v('Usernames must start lowercase, valid characters are [a-z], [0-9] and ["-", “_”], valid length is 3-50 characters.')])]),e._v(" "),s("h3",{attrs:{id:"synchronization-states"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#synchronization-states"}},[e._v("#")]),e._v(" Synchronization states")]),e._v(" "),s("p",[e._v("Online users can have the following synchronization states which are shown at the bottom of the navigation bar:")]),e._v(" "),s("p",[s("img",{attrs:{src:n(547),alt:"online user - synchronizing symbol"}}),e._v(" "),s("strong",[e._v("Synchronizing")]),e._v(": configuration is currently synchronizing with the cloud")]),e._v(" "),s("p",[s("img",{attrs:{src:n(548),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Synchronized")]),e._v(": configuration is up-to-date with the cloud storage")]),e._v(" "),s("p",[s("img",{attrs:{src:n(549),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Synchronization failed")]),e._v(": synchronization not possible, no internet connection")]),e._v(" "),s("p",[s("img",{attrs:{src:n(550),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Synchronization paused")]),e._v(": synchronization paused for a short time and will be resumed shortly")]),e._v(" "),s("p",[s("img",{attrs:{src:n(551),alt:"online user - synchronized symbol"}}),e._v(" "),s("strong",[e._v("Online only")]),e._v(": user is logged in online-only, meaning that configuration is not saved on the current device. Changes still will be saved in the cloud and therefore also be synchronized to other devices where this user is logged in. Users will be logged in online-only if the “remember checkbox” is unchecked when logging in (see "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#change-user---view"}},[e._v("change user view")]),e._v(").")],1),e._v(" "),s("h2",{attrs:{id:"offline-users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#offline-users"}},[e._v("#")]),e._v(" Offline users")]),e._v(" "),s("p",[e._v("Offline users are users whose configuration is only saved offline in the storage of the currently used browser. This type of users are perfectly suited for use cases where AsTeRICS Grid is only used on a single device.")]),e._v(" "),s("p",[e._v("In view “add offline user” it’s possible to add a new offline user (see "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#user"}},[e._v("Terms")]),e._v("), Figure 7:")],1),e._v(" "),s("p",[s("img",{attrs:{src:n(552),alt:"add offline user view"}}),e._v(" "),s("em",[e._v("Fig. 7: Add offline user view")])]),e._v(" "),s("p",[e._v("The following information is important regarding offline users:")]),e._v(" "),s("ul",[s("li",[e._v("All "),s("strong",[e._v("data of an offline user never leaves the device")]),e._v(", it’s stored in a browser-internal database.")]),e._v(" "),s("li",[e._v('Usernames must start lowercase, valid characters are [a-z], [0-9] and ["-", “_”], valid length is 3-50 characters.')])]),e._v(" "),s("h2",{attrs:{id:"backup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#backup"}},[e._v("#")]),e._v(" Backup")]),e._v(" "),s("p",[e._v("Regardless which type of users are used, we "),s("strong",[e._v("highly recommend to do backups")]),e._v(" if you are using AsTeRICS Grid on a regular basis and have put some effort into customizing own grids for your use-case. See "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("manage grids view")]),e._v(" for instructions how to create and restore backups.")],1),e._v(" "),s("p",[e._v("This is why backups are important:")]),e._v(" "),s("ol",[s("li",[s("strong",[e._v("Offline users")]),e._v(": since all data is only stored in an browser-internal storage, any browser crash or failure of your device could cause data loss.")]),e._v(" "),s("li",[s("strong",[e._v("Online users")]),e._v(": Although online users are not susceptible to device or browser errors, data loss is still possible because of the encryption of the user data. If the user forgets his password or decryption fails because of any kind of programming error the data cannot be recovered. Backups as described in "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-grids---view"}},[e._v("manage grids view")]),e._v(" are saved to an unencrypted file and therefore can recover the user data in such a case.")],1)]),e._v(" "),s("p",[s("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[e._v("← Previous Chapter")]),e._v(" "),s("RouterLink",{attrs:{to:"/manuals/asterics-grid/07_dictionaries.html"}},[e._v("Next Chapter →")])],1),e._v(" "),s("p",[s("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);s.default=r.exports},546:function(e,s,n){e.exports=n.p+"assets/img/register_online_en.1f0b88fe.jpg"},547:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAeAC8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U65Xxr4yPh1Ut7ZVe8kXdluQi+uO5re1bVINFsZbu5bbGg6Dqx7Ae9eKeKfECatqFzqU4W1hC5O5+EVR1J/DNdeHpe0ldrRHnY3EexhaL95mgvjrXFm837exP90ou38sYrsNM+J9k9gGv0eO6BwUhXIb/aGTx9M18heINK+IvxV16afw34507w34OVB9kvNIVbua6Jzksx4XHtXK6F8cda+Cnj7/AIQz4qa9Y6vaXURl0/XrUYcsDjypYlXIYkj2HHau2cKUtHGy7nkUauIjdxnzPtqz9ENJ1qz1y18+zl8xAcMMYKn0Iq9XkHw38TWemXTyTzOltdRrsbadvqCw6jg+nevXlYOoZSGUjII6GvPrUvZSstj28LiPrFO736nF/FSOVtFtmXPlLN8+PocH/PrXh3j/AMJt468H6noI1GfShfReS11bAF1U9cZ9Rx+NfUF5aQ39tJb3EYlhkGGVu9cRc/CeB5maDUJIoz0R4g5H45FdGHrQjFwmcWMwtWpUVWlqfnb8ILrTP2OdZ8Q6D4t0vVUt7mbzbTXrOOae3u4e25AMK6jqQPb69/4b0HwT+0Z48bxTN4Dv7JNLljltNevE8j7cw/hKdWA9xivsuT4PxTLtk1EOvXDWwI/9Cpy/CJI1Crqe1R0At8D/ANCrWNSkvd5tPQ55UMTJufJ7z63R54OOB0r2bwG8snhWxMpJOGC5/uhiB+lYln8KbaKdWub57iIcmNY9mfxya7iGFLeFIo1CRoAqqvQAdBWeJrQqRUYm+BwlWjNzqaH/2Q=="},548:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAhAC8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6yfEHiS08OWoluCWd+I4k+8x/oPetOWVII2kkZUjUZZmOAB6143421qPW9dklgkMtuihIzggcdevvmuihS9rOz2OLF4j6vT5lv0OhX4sSedltOXyf7olO788f0rsdM8TadqlgLtLhIo87WEzBSreh5rw6vO7b49eE7/AOLh+HNncXF9r8cDzTPbQmS3gZeTHI4PyvjnkYHQkMQK9CeGpNqK0bPFo47EK8pe8l+B9kK6yKGUhlIyGByDTq84+FuqOtxdWMkw8oqHjRm53Z52j6fyr0evNq0/ZS5T3sPWWIpqaVjjPijdyw6JBEhISaXDkdwBkD8/5V5Hqlm+o6Zd2kd1NYyTwvEt1b48yEspAdcgjcM5GQRkV79r2iw+INNktJjtz8yOBkqw6GvMrn4c63DMyRwR3CDpIkqgH8CQa7MNOHI4SdjycfRqyqqpBXR+fN5r3x/+HF5P8HLRZPEN9qrsdG8YTM5eO0z+9ZnOcFdwyWO5M4G7KGvo74C/APRfgX4ZNran+0NdvMSalrEo/e3MnUgE8hAScL+JySTXuf8Awr7Xv+fEf9/k/wDiqP8AhX2vf8+I/wC/yf8AxVdVN04auV3tfy7f59zjqqvUXKqbS3dk9X3/AOB0OdVijBlJVgcgjqK9r8H6lLq3h20uJzumIKs397BIz+leeWfw31m4nVJoktY+8jSK2PwBNepaXpsWkafBZw58uJcAnqe5P4mubFVISikndnZl9GrTm5SVkW6KKK8w98KKKKACiiigD//Z"},549:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAfAC4DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U65Xxd44j8OuLaCNZ7wjcQx+VB2z6n2rd1bVrbRbJ7q6fZGvAA5LH0A9a8U1rUP7W1a6uwGCzSFlDdQOw/KuvD0faSvLZHm47EuhC0H7zOjtvihqsc26aK3miJ5TaVOPY5/nmu0tfHejXFpDNJdrbtJ1ifJZT6HH86+LdP8A2t/BcV34xsvEZuPCWpeGpXWWx1QBZrmIHCSQqPvFsjCjJ+ZTyDmu7+EPxIHxY8CWHidNGvdDhvC5itr4De0YYhZBjqrDBB/mME9vsaNZJw7X07P+vU8pYrFYe/tNemvf+vkfWkM8dzEssUiyxsMq6HIP0NSV598L9Yhjt57Ca5VZGk3QxMcE5HOP04r0GvMq0/ZzcT3sPWVempnnPxYeXzdOT/ljtcj/AHuP6V5/XufiDQbfxFYm2uMqQdySL1RvWuCk+FWorIwju7Vk7MxZSfwwf5134etCMOWTsePjsLVnV9pBXTPz9+JX7NfxC/aM8beJfE+vR6f4RfSgbPw9YvHHP9sWN9yvO4zlG56g43fdwDu+mPg7qnivVvh9pkvjTRItA8QxqYZ7WF1ZDsO0SAKSFDAZ2gnFez/8Kr1X/n5s/wDvt/8A4mj/AIVXqv8Az82f/fb/APxNa0p0aStGW/59/V/d5HPWp4mskpQ228l29PxONVijBlJVgcgjqK930O5kvNGsZ5v9bJCjMfUkDmuH0v4VzLdK2oXURgU5KQZJb2yQMV6JGixoqIoVFGAo6Aelc2Kqwmko6nfl+Hq0nKU1ZM//2Q=="},550:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAeACoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6878eeNLm3vX06wlMAj4lmT7xb0B7YrqPFniZPDNgsmwS3Eh2xRnp7k+wr5w+NGuXtv8N/HGr287W2ox6Te3Mc8J2tHIIXZWX0IIBH0rrowsnVkrpJnmYus7xoU3aUmvlc7W21/UrSbzor64WTOSfMJB+oPX8a7S1+KypaQi4smluekjIwVT7j/AAr8k/2ffiz421LwR8YJbzxdrl7LZ+GnuLaS61CWVoJA4AeMsxKNgnkYP5V61/wTx8eeJfGNx44i1/xBqmuJbpaNCNSvJLjyyxlDbd5OM4GcegruXs68lFx6c34tfoeby18LCc4z+FpffZ/qfqLoutW2vWK3VqxKE7SrDDKfQ1frynwD4qttBeW2ulZY7hwfOB4Q9OR6e9eqghgCORXnVqfspWWx7GFxCxFNNvXqee/Fezlb7DdAEwqGjPoCcEfnz+VeM/ErQbrxR8O/FGjWIQ3uoaXdWkAkbapkkiZVyewyRX1HdWkN9bvBcRrLC4wyMMg1y0nwv0eSRmV7qMH+FZBgfmpNbU60PZOlP+rnJiMLUlXVelvpv5H5ZfA79lH4leF/B/xRs9Y0WHTrrWdCbT7CJ76GQzSlt3VHYKOMZYjqPfHpf7DfwJ8afBxvF1x4v0tNJOoC2S3iF1FMzbPMLE+WzAD5x1OevFfoB/wq3Sf+e95/32v/AMTR/wAKt0n/AJ73n/fa/wDxNbU61GnJSTeit8rt/qY1KGKqxlBpWk7v5WX6I8qr23R7W9j0ixR32usCAq3UHaOKp6X8P9J0u6WcLLcSKcr57AhT64AH610tZV8Qp2UUaYXAyp3dR29Gf//Z"},551:function(e,s){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAgACsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U64vxZ8Qho909nYxJNcJxJJJnap9MDqa6DXvENp4dtRNcsSW4SNOWY+1fO/jvxU/hnw/qutiym1S4hRpI7OAgSXEhPyoCeBknqenJrroU1K857I8zGYiVO1Ok/eZ6Vp/xR1CGYfa4YbiEnnYNrD6Hp+ldvF400WQQ/6fGhlAIVuNuezdgfrX54SfGX4xzfELwnZ/8I5b22i3lpH/AGmUiVlt55wSnJfcRCGj3Y+8RJ6rt9u+EPjnVfHnhGO817RH8Pa7C5gvLEuHQOP44yCco3UZ5HI5xk9vsKdXZWt+mh5qxWIw6vJqSdvxPrtWDqGUhlIyCOhpa474b6xDcaKlk9yrXUTNtiJ+bZ1GPXv0rsa8upB05OLPfo1VWpqa6nlPxQeVvEKK/wDq1hXZ+Zz+teCftF/DmP4ofCjVdHezvNQeMpdx2en3SW807RnIRXdHUEjOAV5OBkda+tvFHhW38TWyq7GG4j/1cwGcexHcVxDfCvU9xxdWhHbLMP8A2Wu6FSnOj7ObseNiMPXjiPbU1f8ArY/LK60vwdqPxs8C3U/h7xRbXt1bWF2ssmqQRxWy2kaxyiVDa7sxG2kDjcMlD93IA+ov2S/h/b+GfDeu+I4tH1fQZPE159s+xaxdJNKEBYq+1Yo9gbe2FbJxg55r6kf4PXklwlw7ae08YKpK24soOMgHbkZwPyFTf8Kr1X/n5s/++3/+JranOlBuTld6/i0/0RjWhiKsVBQaWn4X/wAzkrO6lsrqKeFiksbBlYeor36Ni0akjBIyRXB+H/hmbO8S41GeOYRtuWGLJVj7kgce2K76uXFVI1GlHod2X0KlFSc9Ln//2Q=="},552:function(e,s,n){e.exports=n.p+"assets/img/add_offline_en.3ac438a3.jpg"}}]); \ No newline at end of file diff --git a/assets/js/210.39c88905.js b/assets/js/210.0e08a0ca.js similarity index 89% rename from assets/js/210.39c88905.js rename to assets/js/210.0e08a0ca.js index 301838f809..46249cf04a 100644 --- a/assets/js/210.39c88905.js +++ b/assets/js/210.0e08a0ca.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[210],{1166:function(t,r,e){"use strict";e.r(r);var n=e(2),o=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"int-to-string"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#int-to-string"}},[t._v("#")]),t._v(" Int To String")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),r("p",[t._v("This component converts the incoming integer values to the string values at the output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:e(727),alt:"Screenshot: IntToString plugin",title:"Screenshot: IntToString plugin"}})]),t._v(" "),r("p",[t._v("IntToString plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input [integer]:")]),t._v(" Input port for the integer values to be converted.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [string]:")]),t._v(" Output port for the converted string values.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("hexadecimalOutput [boolean]:")]),t._v(" If this property is set, the integer is converted into a hexadecimal string.")])])])}),[],!1,null,null,null);r.default=o.exports},727:function(t,r,e){t.exports=e.p+"assets/img/inttostring.426a5209.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[210],{1165:function(t,r,e){"use strict";e.r(r);var n=e(2),o=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"int-to-string"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#int-to-string"}},[t._v("#")]),t._v(" Int To String")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),r("p",[t._v("This component converts the incoming integer values to the string values at the output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:e(728),alt:"Screenshot: IntToString plugin",title:"Screenshot: IntToString plugin"}})]),t._v(" "),r("p",[t._v("IntToString plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input [integer]:")]),t._v(" Input port for the integer values to be converted.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [string]:")]),t._v(" Output port for the converted string values.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("hexadecimalOutput [boolean]:")]),t._v(" If this property is set, the integer is converted into a hexadecimal string.")])])])}),[],!1,null,null,null);r.default=o.exports},728:function(t,r,e){t.exports=e.p+"assets/img/inttostring.426a5209.jpg"}}]); \ No newline at end of file diff --git a/assets/js/211.49321fe8.js b/assets/js/211.99a2d336.js similarity index 95% rename from assets/js/211.49321fe8.js rename to assets/js/211.99a2d336.js index 27b891e416..1fa7e7896b 100644 --- a/assets/js/211.49321fe8.js +++ b/assets/js/211.99a2d336.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[211],{1168:function(t,e,i){"use strict";i.r(e);var r=i(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"integrate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#integrate"}},[t._v("#")]),t._v(" Integrate")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The integrate component performs successive addition of incoming signal values. This is useful for transforming relative movement information coming from a sensor into absolute position values.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(728),alt:"Screenshot: Integrate plugin",title:"Screenshot: Integrate plugin"}})]),t._v(" "),e("p",[t._v("Integrate plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" The input port for signal values.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" Output of the integrated values.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("reset:")]),t._v(" An incoming event at this port sets the current accumulator value to the rest value (specified in the rest property field).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("resetValue [double]:")]),t._v(" The initial value of the accumulator, which is set when starting the model or when an event comes in at the elp_rest event listener port.")]),t._v(" "),e("li",[e("strong",[t._v("upperLimit [double]:")]),t._v(" The maximum accumulator value (the integration sum will stay at this value and not get higher even if positive values come in at the input port).")]),t._v(" "),e("li",[e("strong",[t._v("lowerLimit [double]:")]),t._v(" The minimum accumulator value (the integration sum will stay at this value and not get lower even if negative values come in at the input port) Upper and lower limit are useful e.g. to set bounds for mouse movement etc.")]),t._v(" "),e("li",[e("strong",[t._v("wrapAround [boolean]:")]),t._v(" If this property is set to true, the accumulator value is set to the lower_limit if it gets greater than the upper_limit (overflow), and to the upper_limit if it would get lower than the lower_limit (underflow).")])])])}),[],!1,null,null,null);e.default=o.exports},728:function(t,e,i){t.exports=i.p+"assets/img/integrate.dfb8529f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[211],{1168:function(t,e,i){"use strict";i.r(e);var r=i(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"integrate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#integrate"}},[t._v("#")]),t._v(" Integrate")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The integrate component performs successive addition of incoming signal values. This is useful for transforming relative movement information coming from a sensor into absolute position values.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(730),alt:"Screenshot: Integrate plugin",title:"Screenshot: Integrate plugin"}})]),t._v(" "),e("p",[t._v("Integrate plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" The input port for signal values.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" Output of the integrated values.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("reset:")]),t._v(" An incoming event at this port sets the current accumulator value to the rest value (specified in the rest property field).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("resetValue [double]:")]),t._v(" The initial value of the accumulator, which is set when starting the model or when an event comes in at the elp_rest event listener port.")]),t._v(" "),e("li",[e("strong",[t._v("upperLimit [double]:")]),t._v(" The maximum accumulator value (the integration sum will stay at this value and not get higher even if positive values come in at the input port).")]),t._v(" "),e("li",[e("strong",[t._v("lowerLimit [double]:")]),t._v(" The minimum accumulator value (the integration sum will stay at this value and not get lower even if negative values come in at the input port) Upper and lower limit are useful e.g. to set bounds for mouse movement etc.")]),t._v(" "),e("li",[e("strong",[t._v("wrapAround [boolean]:")]),t._v(" If this property is set to true, the accumulator value is set to the lower_limit if it gets greater than the upper_limit (overflow), and to the upper_limit if it would get lower than the lower_limit (underflow).")])])])}),[],!1,null,null,null);e.default=o.exports},730:function(t,e,i){t.exports=i.p+"assets/img/integrate.dfb8529f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/212.b8b6ca9b.js b/assets/js/212.7d23e42a.js similarity index 98% rename from assets/js/212.b8b6ca9b.js rename to assets/js/212.7d23e42a.js index 99d4e66498..a1c1b420b8 100644 --- a/assets/js/212.b8b6ca9b.js +++ b/assets/js/212.7d23e42a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[212],{1169:function(e,r,t){"use strict";t.r(r);var o=t(2),n=Object(o.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"irmicro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#irmicro"}},[e._v("#")]),e._v(" IrMicro")]),e._v(" "),r("h2",{attrs:{id:"component-type-processor-subcategory-home-control"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-home-control"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Home Control)")]),e._v(" "),r("p",[e._v("The IRMicro plugin connects to a Microcontroller via a COM port in order to receive and sent infrared (IR-) remote control commands (raw timing values).\nThe values are stored in (or loded from) .csv file (one file per command, given the command’s name as "),r("code",[e._v("filename.csv")]),e._v(") in the ARE subfolder "),r("code",[e._v("./data/processor.IRMicro")]),e._v(".")]),e._v(" "),r("p",[r("img",{attrs:{src:t(729),alt:"Screenshot: IrMicro plugin",title:"Screenshot: IrMicro plugin"}})]),e._v(" "),r("h2",{attrs:{id:"requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),r("p",[e._v("A connection to a microcontroller running the IrMicro firmware is required.\nThe IrMicro firmware is provided in folder "),r("code",[e._v("/CIMS/IrMicro")]),e._v(".\nThis firmware is an Arduino Sketch for record/replay of infrared commands.\nConnect a TSOP module (e.g. TSOP4838) to pin 11 and an IR led with current-limiting resistor to send pin of a compatible microcontroller (for examle pin 3 for the Arduino Uno).\nFor a list of compatible controllers and default send pins see: "),r("a",{attrs:{href:"https://github.com/z3t0/Arduino-IRremote",target:"_blank",rel:"noopener noreferrer"}},[e._v("IR-Remote Github repository"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),r("ul",[r("li",[r("p",[r("strong",[e._v("sendName[string]:")]),e._v(" A string which contains a known command name. The existing (recorded) commands are stored in .csv files in the folder "),r("code",[e._v("ARE/data/processor.IRMicro")]),e._v(". If the command file is found, the stored timing codes are replayed by the connected microcontroller")])]),e._v(" "),r("li",[r("p",[r("strong",[e._v("recordName[string]:")]),e._v(" A string which contains the name of a command which shall be recorded. The microcontroller is put into recording mode and waits (until a given timeout) for an IR code to be received via the TSOP module. After a command has been recorded, the codes are stored in a .csv file (filename is the command name) in the folder "),r("code",[e._v("ARE/data/processor.IRMicro")]),e._v(".")])])]),e._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("receivedName[string]:")]),e._v(" If a known IR command has been received via the microcontroller’s TSOP module, the command name is put out on this port as a string")]),e._v(" "),r("li",[r("strong",[e._v("receivedHex[string]:")]),e._v(" The timing values of a known or unknown command are sent to this output port as a string")])]),e._v(" "),r("h2",{attrs:{id:"event-listener-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("clearAll:")]),e._v(" all stored IR-commands are cleared.")]),e._v(" "),r("li",[r("strong",[e._v("clearLast:")]),e._v(" the last recorded IR-command is cleared.")])]),e._v(" "),r("h2",{attrs:{id:"event-trigger-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("recordFinished:")]),e._v(" a new command was recorded successfully.")]),e._v(" "),r("li",[r("strong",[e._v("recordTimeout:")]),e._v(" the timeout value was reched when trying to record a new command.")])]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("ComPort[string]:")]),e._v(" The name of the Comunication port which shall be opened in order to communicte with the microcontroller.")]),e._v(" "),r("li",[r("strong",[e._v("Timeout[integer]:")]),e._v(" The timeout for recording a new IR-command (in milliseconds).")])])])}),[],!1,null,null,null);r.default=n.exports},729:function(e,r,t){e.exports=t.p+"assets/img/irmicro.b79a2e80.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[212],{1166:function(e,r,t){"use strict";t.r(r);var o=t(2),n=Object(o.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"irmicro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#irmicro"}},[e._v("#")]),e._v(" IrMicro")]),e._v(" "),r("h2",{attrs:{id:"component-type-processor-subcategory-home-control"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-home-control"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Home Control)")]),e._v(" "),r("p",[e._v("The IRMicro plugin connects to a Microcontroller via a COM port in order to receive and sent infrared (IR-) remote control commands (raw timing values).\nThe values are stored in (or loded from) .csv file (one file per command, given the command’s name as "),r("code",[e._v("filename.csv")]),e._v(") in the ARE subfolder "),r("code",[e._v("./data/processor.IRMicro")]),e._v(".")]),e._v(" "),r("p",[r("img",{attrs:{src:t(729),alt:"Screenshot: IrMicro plugin",title:"Screenshot: IrMicro plugin"}})]),e._v(" "),r("h2",{attrs:{id:"requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),r("p",[e._v("A connection to a microcontroller running the IrMicro firmware is required.\nThe IrMicro firmware is provided in folder "),r("code",[e._v("/CIMS/IrMicro")]),e._v(".\nThis firmware is an Arduino Sketch for record/replay of infrared commands.\nConnect a TSOP module (e.g. TSOP4838) to pin 11 and an IR led with current-limiting resistor to send pin of a compatible microcontroller (for examle pin 3 for the Arduino Uno).\nFor a list of compatible controllers and default send pins see: "),r("a",{attrs:{href:"https://github.com/z3t0/Arduino-IRremote",target:"_blank",rel:"noopener noreferrer"}},[e._v("IR-Remote Github repository"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),r("ul",[r("li",[r("p",[r("strong",[e._v("sendName[string]:")]),e._v(" A string which contains a known command name. The existing (recorded) commands are stored in .csv files in the folder "),r("code",[e._v("ARE/data/processor.IRMicro")]),e._v(". If the command file is found, the stored timing codes are replayed by the connected microcontroller")])]),e._v(" "),r("li",[r("p",[r("strong",[e._v("recordName[string]:")]),e._v(" A string which contains the name of a command which shall be recorded. The microcontroller is put into recording mode and waits (until a given timeout) for an IR code to be received via the TSOP module. After a command has been recorded, the codes are stored in a .csv file (filename is the command name) in the folder "),r("code",[e._v("ARE/data/processor.IRMicro")]),e._v(".")])])]),e._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("receivedName[string]:")]),e._v(" If a known IR command has been received via the microcontroller’s TSOP module, the command name is put out on this port as a string")]),e._v(" "),r("li",[r("strong",[e._v("receivedHex[string]:")]),e._v(" The timing values of a known or unknown command are sent to this output port as a string")])]),e._v(" "),r("h2",{attrs:{id:"event-listener-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("clearAll:")]),e._v(" all stored IR-commands are cleared.")]),e._v(" "),r("li",[r("strong",[e._v("clearLast:")]),e._v(" the last recorded IR-command is cleared.")])]),e._v(" "),r("h2",{attrs:{id:"event-trigger-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("recordFinished:")]),e._v(" a new command was recorded successfully.")]),e._v(" "),r("li",[r("strong",[e._v("recordTimeout:")]),e._v(" the timeout value was reched when trying to record a new command.")])]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("ComPort[string]:")]),e._v(" The name of the Comunication port which shall be opened in order to communicte with the microcontroller.")]),e._v(" "),r("li",[r("strong",[e._v("Timeout[integer]:")]),e._v(" The timeout for recording a new IR-command (in milliseconds).")])])])}),[],!1,null,null,null);r.default=n.exports},729:function(e,r,t){e.exports=t.p+"assets/img/irmicro.b79a2e80.jpg"}}]); \ No newline at end of file diff --git a/assets/js/213.dde8260f.js b/assets/js/213.a02ae857.js similarity index 92% rename from assets/js/213.dde8260f.js rename to assets/js/213.a02ae857.js index ee43306662..8e7680e59a 100644 --- a/assets/js/213.dde8260f.js +++ b/assets/js/213.a02ae857.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[213],{1171:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The math evaluator is a component with four inputs. These inputs can be combined in a mathematical expression which is entered via a property of the component. The expression parser used is "),e("a",{attrs:{href:"http://sourceforge.net/projects/jeplite/",target:"_blank",rel:"noopener noreferrer"}},[t._v("JEPlite2"),e("OutboundLink")],1),t._v(" which supports arithmetic as well as numerous mathematical expressions.")]),t._v(" "),e("p",[t._v("The list of supported mathematical functions is sin(), cos(), tan(), asin(), ,acos(), atan(), sqrt(), log(), ln(), angle(), abs(), mod(), sum(), rand(), umin(), add().")]),t._v(" "),e("p",[e("img",{attrs:{src:r(732),alt:"Screenshot: MathEvaluator plugin",title:"Screenshot: MathEvaluator plugin"}})]),t._v(" "),e("p",[t._v("MathEvaluator plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The component depends on the JEPlite library which is included in the component’s JAR file.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inA to inD [double]:")]),t._v(" The inputs which can be accessed in the mathematical expression via a to d. "),e("strong",[t._v("These 4 input ports support synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" the result of the expression.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("expression [string]:")]),t._v(" Mathematical expression to be evaluated.")])])])}),[],!1,null,null,null);e.default=a.exports},732:function(t,e,r){t.exports=r.p+"assets/img/mathevaluator.adcd03a1.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[213],{1169:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("The math evaluator is a component with four inputs. These inputs can be combined in a mathematical expression which is entered via a property of the component. The expression parser used is "),e("a",{attrs:{href:"http://sourceforge.net/projects/jeplite/",target:"_blank",rel:"noopener noreferrer"}},[t._v("JEPlite2"),e("OutboundLink")],1),t._v(" which supports arithmetic as well as numerous mathematical expressions.")]),t._v(" "),e("p",[t._v("The list of supported mathematical functions is sin(), cos(), tan(), asin(), ,acos(), atan(), sqrt(), log(), ln(), angle(), abs(), mod(), sum(), rand(), umin(), add().")]),t._v(" "),e("p",[e("img",{attrs:{src:r(731),alt:"Screenshot: MathEvaluator plugin",title:"Screenshot: MathEvaluator plugin"}})]),t._v(" "),e("p",[t._v("MathEvaluator plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The component depends on the JEPlite library which is included in the component’s JAR file.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inA to inD [double]:")]),t._v(" The inputs which can be accessed in the mathematical expression via a to d. "),e("strong",[t._v("These 4 input ports support synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" the result of the expression.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("expression [string]:")]),t._v(" Mathematical expression to be evaluated.")])])])}),[],!1,null,null,null);e.default=a.exports},731:function(t,e,r){t.exports=r.p+"assets/img/mathevaluator.adcd03a1.jpg"}}]); \ No newline at end of file diff --git a/assets/js/214.ea45282e.js b/assets/js/214.69ed2088.js similarity index 92% rename from assets/js/214.ea45282e.js rename to assets/js/214.69ed2088.js index c48f89a6b9..cb5abd8671 100644 --- a/assets/js/214.ea45282e.js +++ b/assets/js/214.69ed2088.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[214],{1173:function(t,e,i){"use strict";i.r(e);var n=i(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"minmax"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#minmax"}},[t._v("#")]),t._v(" MinMax")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component stores maximum and minimum of an incoming signal and provides these values at the output ports. Together with the signaltranslation component, the minmax component can be used to auto-scale input values to a desired signal range.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(734),alt:"Screenshot: MinMax plugin",title:"Screenshot: MinMax plugin"}})]),t._v(" "),e("p",[t._v("MinMax plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" Input signal for min/max calculation.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outMax [double]:")]),t._v(" The current maximum value found in the signal.")]),t._v(" "),e("li",[e("strong",[t._v("outMin [double]:")]),t._v(" The current minimum value found in the signal.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("reset:")]),t._v(" An incoming event sets the current minimum and maximum to the values defined in the associated property fields defaultMin and defaultMax.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("defaultMin [double]:")]),t._v(" This is the default minimum value which is set when the model is started or if an event comes in at the rest event listener port.")]),t._v(" "),e("li",[e("strong",[t._v("defaultMax [double]:")]),t._v(" This is the default maximum value which is set when the model is started or if an event comes in at the reset event listener port.")])])])}),[],!1,null,null,null);e.default=s.exports},734:function(t,e,i){t.exports=i.p+"assets/img/minmax.cca23fa8.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[214],{1170:function(t,e,i){"use strict";i.r(e);var n=i(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"minmax"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#minmax"}},[t._v("#")]),t._v(" MinMax")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component stores maximum and minimum of an incoming signal and provides these values at the output ports. Together with the signaltranslation component, the minmax component can be used to auto-scale input values to a desired signal range.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(732),alt:"Screenshot: MinMax plugin",title:"Screenshot: MinMax plugin"}})]),t._v(" "),e("p",[t._v("MinMax plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" Input signal for min/max calculation.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outMax [double]:")]),t._v(" The current maximum value found in the signal.")]),t._v(" "),e("li",[e("strong",[t._v("outMin [double]:")]),t._v(" The current minimum value found in the signal.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("reset:")]),t._v(" An incoming event sets the current minimum and maximum to the values defined in the associated property fields defaultMin and defaultMax.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("defaultMin [double]:")]),t._v(" This is the default minimum value which is set when the model is started or if an event comes in at the rest event listener port.")]),t._v(" "),e("li",[e("strong",[t._v("defaultMax [double]:")]),t._v(" This is the default maximum value which is set when the model is started or if an event comes in at the reset event listener port.")])])])}),[],!1,null,null,null);e.default=s.exports},732:function(t,e,i){t.exports=i.p+"assets/img/minmax.cca23fa8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/215.2beaddf0.js b/assets/js/215.c021b553.js similarity index 87% rename from assets/js/215.2beaddf0.js rename to assets/js/215.c021b553.js index 75ce9d450f..3337b4af6a 100644 --- a/assets/js/215.2beaddf0.js +++ b/assets/js/215.c021b553.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[215],{1174:function(t,r,o){"use strict";o.r(r);var s=o(2),u=Object(s.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"multisource"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#multisource"}},[t._v("#")]),t._v(" MultiSource")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),r("p",[t._v("This plugin passes signals from up to four input ports to one output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:o(735),alt:"Screenshot: MultiSource plugin",title:"Screenshot: MultiSource plugin"}})]),t._v(" "),r("p",[t._v("MultiSource plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input1…input4 [double]:")]),t._v(" Input ports 1 to 4")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [**"),r("strong",[t._v("double*")]),t._v("*]:")]),t._v(" The output port where all input signals are routed.")])])])}),[],!1,null,null,null);r.default=u.exports},735:function(t,r,o){t.exports=o.p+"assets/img/multisource.cf759460.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[215],{1173:function(t,r,o){"use strict";o.r(r);var s=o(2),u=Object(s.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"multisource"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#multisource"}},[t._v("#")]),t._v(" MultiSource")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),r("p",[t._v("This plugin passes signals from up to four input ports to one output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:o(736),alt:"Screenshot: MultiSource plugin",title:"Screenshot: MultiSource plugin"}})]),t._v(" "),r("p",[t._v("MultiSource plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input1…input4 [double]:")]),t._v(" Input ports 1 to 4")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [**"),r("strong",[t._v("double*")]),t._v("*]:")]),t._v(" The output port where all input signals are routed.")])])])}),[],!1,null,null,null);r.default=u.exports},736:function(t,r,o){t.exports=o.p+"assets/img/multisource.cf759460.jpg"}}]); \ No newline at end of file diff --git a/assets/js/216.e919e315.js b/assets/js/216.81eeb2ac.js similarity index 91% rename from assets/js/216.e919e315.js rename to assets/js/216.81eeb2ac.js index a52e433349..59d05449b0 100644 --- a/assets/js/216.e919e315.js +++ b/assets/js/216.81eeb2ac.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[216],{1172:function(t,r,s){"use strict";s.r(r);var i=s(2),o=Object(i.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"multisourcestring"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#multisourcestring"}},[t._v("#")]),t._v(" MultiSourceString")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),r("p",[t._v("This plugin passes string inputs from up to four input ports to one output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:s(733),alt:"Screenshot: MultiSourceString plugin",title:"Screenshot: MultiSourceString plugin"}})]),t._v(" "),r("p",[t._v("MultiSourceString plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input1…input4 [string]:")]),t._v(" Input ports 1 to 4.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [**"),r("strong",[t._v("string*")]),t._v("*]:")]),t._v(" Output port.")])])])}),[],!1,null,null,null);r.default=o.exports},733:function(t,r,s){t.exports=s.p+"assets/img/multisourcestring.ec5057b7.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[216],{1172:function(t,r,s){"use strict";s.r(r);var i=s(2),o=Object(i.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"multisourcestring"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#multisourcestring"}},[t._v("#")]),t._v(" MultiSourceString")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),r("p",[t._v("This plugin passes string inputs from up to four input ports to one output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:s(735),alt:"Screenshot: MultiSourceString plugin",title:"Screenshot: MultiSourceString plugin"}})]),t._v(" "),r("p",[t._v("MultiSourceString plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input1…input4 [string]:")]),t._v(" Input ports 1 to 4.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [**"),r("strong",[t._v("string*")]),t._v("*]:")]),t._v(" Output port.")])])])}),[],!1,null,null,null);r.default=o.exports},735:function(t,r,s){t.exports=s.p+"assets/img/multisourcestring.ec5057b7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/217.b9a9870f.js b/assets/js/217.96a966e9.js similarity index 97% rename from assets/js/217.b9a9870f.js rename to assets/js/217.96a966e9.js index 4215d4a616..de9471419e 100644 --- a/assets/js/217.b9a9870f.js +++ b/assets/js/217.96a966e9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[217],{1176:function(t,e,r){"use strict";r.r(e);var o=r(2),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"neural-network-loader"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#neural-network-loader"}},[t._v("#")]),t._v(" Neural Network Loader")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This plugin uses the "),e("a",{attrs:{href:"http://www.heatonresearch.com/encog",target:"_blank",rel:"noopener noreferrer"}},[t._v("Encog framework"),e("OutboundLink")],1),t._v(" (version: 3.0.1). The plugin can load a neural network configuration stored in the Encog EG file. The neural network‘s output is calculated for the input data.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(737),alt:"Screenshot: NeuralNetworkLoader plugin",title:"Screenshot: NeuralNetworkLoader plugin"}})]),t._v(" "),e("p",[t._v("NeuralNetworkLoader plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1…input32 [double]:")]),t._v(" The Neural network inputs.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output1…output32 [**"),e("strong",[t._v("double*")]),t._v("*]:")]),t._v(" The Neural network outputs.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("filePath [string]:")]),t._v(" The EG file path.")])]),t._v(" "),e("p",[e("a",{attrs:{href:"eg_example.htm"}},[t._v("How to prepare example EG file for the Neural Network Loader plugin.")])])])}),[],!1,null,null,null);e.default=a.exports},737:function(t,e,r){t.exports=r.p+"assets/img/neuralnetworkloader.ce3e707d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[217],{1174:function(t,e,r){"use strict";r.r(e);var o=r(2),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"neural-network-loader"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#neural-network-loader"}},[t._v("#")]),t._v(" Neural Network Loader")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This plugin uses the "),e("a",{attrs:{href:"http://www.heatonresearch.com/encog",target:"_blank",rel:"noopener noreferrer"}},[t._v("Encog framework"),e("OutboundLink")],1),t._v(" (version: 3.0.1). The plugin can load a neural network configuration stored in the Encog EG file. The neural network‘s output is calculated for the input data.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(737),alt:"Screenshot: NeuralNetworkLoader plugin",title:"Screenshot: NeuralNetworkLoader plugin"}})]),t._v(" "),e("p",[t._v("NeuralNetworkLoader plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1…input32 [double]:")]),t._v(" The Neural network inputs.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output1…output32 [**"),e("strong",[t._v("double*")]),t._v("*]:")]),t._v(" The Neural network outputs.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("filePath [string]:")]),t._v(" The EG file path.")])]),t._v(" "),e("p",[e("a",{attrs:{href:"eg_example.htm"}},[t._v("How to prepare example EG file for the Neural Network Loader plugin.")])])])}),[],!1,null,null,null);e.default=a.exports},737:function(t,e,r){t.exports=r.p+"assets/img/neuralnetworkloader.ce3e707d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/218.b4e3a7a1.js b/assets/js/218.64d9c21d.js similarity index 96% rename from assets/js/218.b4e3a7a1.js rename to assets/js/218.64d9c21d.js index 1c9cc1b2bc..201b6faa66 100644 --- a/assets/js/218.b4e3a7a1.js +++ b/assets/js/218.64d9c21d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[218],{1175:function(t,e,n){"use strict";n.r(e);var o=n(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"nexusconnector"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#nexusconnector"}},[t._v("#")]),t._v(" NexusConnector")]),t._v(" "),e("p",[t._v("Component Type: Processors (Subcategory: Web)")]),t._v(" "),e("p",[t._v("The NexusConnector component provides a bidirectional connection to a GPII Nexus instance.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(736),alt:"Screenshot: NexusConnector plugin",title:"Screenshot: NexusConnector plugin"}})]),t._v(" "),e("p",[t._v("NexusConnector plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The NexusConnector component requres a running GPII Nexus instance to connect to and a peer component constructed within the Nexus for the connector to bind to. The Nexus instance is run and managed separately from this component and AsTeRICS. Please see the “Properties” section below for details on specifying the address of the Nexus instance to connect to.")]),t._v(" "),e("p",[t._v("The NexusConnector component expects the peer component within the Nexus to have a model of the following structure:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("\n\t\t{\n\t\t\tconnector: {\n\t\t\t\tinputs: {\n\t\t\t\t\tin1d: ,\n\t\t\t\t\tin2d: ,\n\t\t\t\t\tin3d: ,\n\t\t\t\t\tin4d: ,\n\t\t\t\t\tin5s: ,\n\t\t\t\t\tin6s: ,\n\t\t\t\t\tin7s: ,\n\t\t\t\t\tin8s: \n\t\t\t\t},\n\t\t\t\toutputs: {\n\t\t\t\t\tout1d: ,\n\t\t\t\t\tout2d: ,\n\t\t\t\t\tout3d: ,\n\t\t\t\t\tout4d: ,\n\t\t\t\t\tout5s: ,\n\t\t\t\t\tout6s: ,\n\t\t\t\t\tout7s: ,\n\t\t\t\t\tout8s: \n\t\t\t\t}\n\t\t\t}\n\t\t}\n")])])]),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("p",[t._v("The NexusConnector component has 8 generic input ports. Four each of type double and string. When a value on one of the inputs changes, that change is relayed to the Nexus and the model of the bound component is updated.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in2d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in3d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in4d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in5s [string]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in6s [string]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in7s [string]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in8s [string]:")]),t._v(" Sent to the Nexus")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("p",[t._v("The NexusConnector component has 8 generic output ports. Four each of type double and string. When a value, or values, change within the “outputs” section of the peer component in the Nexus, that change is relayed to the NexusConnector and the value on the NexusConnector output ports are updated accordingly.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out2d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out3d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out4d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out5s [string]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out6s [string]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out7s [string]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out8s [string]:")]),t._v(" Received from the Nexus")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("nexusHostname [string]:")]),t._v(" The address of the machine on which the Nexus is running")]),t._v(" "),e("li",[e("strong",[t._v("nexusPort [integer]:")]),t._v(" The port number on which the Nexus is listening")]),t._v(" "),e("li",[e("strong",[t._v("nexusComponentPath [string]:")]),t._v(" The path of the peer component to bind to within the Nexus")])])])}),[],!1,null,null,null);e.default=s.exports},736:function(t,e,n){t.exports=n.p+"assets/img/nexusconnector.2616bf6b.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[218],{1176:function(t,e,n){"use strict";n.r(e);var o=n(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"nexusconnector"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#nexusconnector"}},[t._v("#")]),t._v(" NexusConnector")]),t._v(" "),e("p",[t._v("Component Type: Processors (Subcategory: Web)")]),t._v(" "),e("p",[t._v("The NexusConnector component provides a bidirectional connection to a GPII Nexus instance.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(740),alt:"Screenshot: NexusConnector plugin",title:"Screenshot: NexusConnector plugin"}})]),t._v(" "),e("p",[t._v("NexusConnector plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The NexusConnector component requres a running GPII Nexus instance to connect to and a peer component constructed within the Nexus for the connector to bind to. The Nexus instance is run and managed separately from this component and AsTeRICS. Please see the “Properties” section below for details on specifying the address of the Nexus instance to connect to.")]),t._v(" "),e("p",[t._v("The NexusConnector component expects the peer component within the Nexus to have a model of the following structure:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("\n\t\t{\n\t\t\tconnector: {\n\t\t\t\tinputs: {\n\t\t\t\t\tin1d: ,\n\t\t\t\t\tin2d: ,\n\t\t\t\t\tin3d: ,\n\t\t\t\t\tin4d: ,\n\t\t\t\t\tin5s: ,\n\t\t\t\t\tin6s: ,\n\t\t\t\t\tin7s: ,\n\t\t\t\t\tin8s: \n\t\t\t\t},\n\t\t\t\toutputs: {\n\t\t\t\t\tout1d: ,\n\t\t\t\t\tout2d: ,\n\t\t\t\t\tout3d: ,\n\t\t\t\t\tout4d: ,\n\t\t\t\t\tout5s: ,\n\t\t\t\t\tout6s: ,\n\t\t\t\t\tout7s: ,\n\t\t\t\t\tout8s: \n\t\t\t\t}\n\t\t\t}\n\t\t}\n")])])]),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("p",[t._v("The NexusConnector component has 8 generic input ports. Four each of type double and string. When a value on one of the inputs changes, that change is relayed to the Nexus and the model of the bound component is updated.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in2d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in3d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in4d [double]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in5s [string]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in6s [string]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in7s [string]:")]),t._v(" Sent to the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("in8s [string]:")]),t._v(" Sent to the Nexus")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("p",[t._v("The NexusConnector component has 8 generic output ports. Four each of type double and string. When a value, or values, change within the “outputs” section of the peer component in the Nexus, that change is relayed to the NexusConnector and the value on the NexusConnector output ports are updated accordingly.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out2d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out3d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out4d [double]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out5s [string]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out6s [string]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out7s [string]:")]),t._v(" Received from the Nexus")]),t._v(" "),e("li",[e("strong",[t._v("out8s [string]:")]),t._v(" Received from the Nexus")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("nexusHostname [string]:")]),t._v(" The address of the machine on which the Nexus is running")]),t._v(" "),e("li",[e("strong",[t._v("nexusPort [integer]:")]),t._v(" The port number on which the Nexus is listening")]),t._v(" "),e("li",[e("strong",[t._v("nexusComponentPath [string]:")]),t._v(" The path of the peer component to bind to within the Nexus")])])])}),[],!1,null,null,null);e.default=s.exports},740:function(t,e,n){t.exports=n.p+"assets/img/nexusconnector.2616bf6b.png"}}]); \ No newline at end of file diff --git a/assets/js/219.3be63792.js b/assets/js/219.4f5fc95d.js similarity index 96% rename from assets/js/219.3be63792.js rename to assets/js/219.4f5fc95d.js index 3e34a1ab48..84c20a25f3 100644 --- a/assets/js/219.3be63792.js +++ b/assets/js/219.4f5fc95d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[219],{1177:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"one-event-many-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-event-many-actions"}},[e._v("#")]),e._v(" One Event Many Actions")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component allows the user to control up to 10 actions using just one or two input events. In the first step, the event actions are scanned so that the user can choose the action, in the next step the selected action event is triggered. The detailed functionality depends upon the selected mode.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(738),alt:"Screenshot: OneEventManyActions plugin",title:"Screenshot: OneEventManyActions plugin"}})]),e._v(" "),t("p",[e._v("OneEventManyActions plugin")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("input:")]),e._v(" The control event.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("inputOff:")]),e._v(" Control event used in mode 2 for selecting the action by scanning.")])])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("action1…action10**")]),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("* The event triggers for the actions selected by user.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("actionShown11…actionShown110**")]),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("* These events are used in the scanning process to highlight the currently selected action via a GUI element (e.g. the CellBoard).")])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("actionsNumber [integer]:")]),e._v(" Number of action used.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("mode [integer]:")]),e._v(" The component’s working mode:")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("mode 1:")]),e._v(" The input event starts the scanning, the inputOff event selects the action.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("mode 2:")]),e._v(" The first input event starts the scanning, the second input event selects the action.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("mode 3:")]),e._v(" The first input event starts the scanning and highlights the first action, the next input events highlight the next actions. If there is no input event for the selected delay time, the currently highlighted action is selected.")])])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("delay [integer]:")]),e._v(" Delay used for the scanning process (in milliseconds).")])])])])}),[],!1,null,null,null);t.default=i.exports},738:function(e,t,n){e.exports=n.p+"assets/img/oneeventmanyactions.132f9730.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[219],{1177:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"one-event-many-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-event-many-actions"}},[e._v("#")]),e._v(" One Event Many Actions")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),e._v(" "),t("p",[e._v("This component allows the user to control up to 10 actions using just one or two input events. In the first step, the event actions are scanned so that the user can choose the action, in the next step the selected action event is triggered. The detailed functionality depends upon the selected mode.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(741),alt:"Screenshot: OneEventManyActions plugin",title:"Screenshot: OneEventManyActions plugin"}})]),e._v(" "),t("p",[e._v("OneEventManyActions plugin")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("input:")]),e._v(" The control event.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("inputOff:")]),e._v(" Control event used in mode 2 for selecting the action by scanning.")])])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("action1…action10**")]),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("* The event triggers for the actions selected by user.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("actionShown11…actionShown110**")]),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("* These events are used in the scanning process to highlight the currently selected action via a GUI element (e.g. the CellBoard).")])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("actionsNumber [integer]:")]),e._v(" Number of action used.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("mode [integer]:")]),e._v(" The component’s working mode:")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("mode 1:")]),e._v(" The input event starts the scanning, the inputOff event selects the action.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("mode 2:")]),e._v(" The first input event starts the scanning, the second input event selects the action.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("mode 3:")]),e._v(" The first input event starts the scanning and highlights the first action, the next input events highlight the next actions. If there is no input event for the selected delay time, the currently highlighted action is selected.")])])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("delay [integer]:")]),e._v(" Delay used for the scanning process (in milliseconds).")])])])])}),[],!1,null,null,null);t.default=i.exports},741:function(e,t,n){e.exports=n.p+"assets/img/oneeventmanyactions.132f9730.jpg"}}]); \ No newline at end of file diff --git a/assets/js/22.00ac2765.js b/assets/js/22.6c53eda0.js similarity index 97% rename from assets/js/22.00ac2765.js rename to assets/js/22.6c53eda0.js index d1366a1a4e..f4c13cffcd 100644 --- a/assets/js/22.00ac2765.js +++ b/assets/js/22.6c53eda0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{400:function(A,t){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAA7CAIAAABOuyC1AAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAC6NJREFUeNrtnX9Mk2cewL/v+7Zvob4I1KGtXnintvOkmbXmDu7imsVRlzB2ATXoJbBEOUzZLdRlI3p2542ZWHcXyBKYCWQJZAloApdNtlN2E7LMulzw/iibgufa22wdBzrbgbwt9Mf7PvfHi8iklR+yzMD3k/ev9n3fPH36fPr9Pj/epxQhBBAE+fmgsQoQBCVEEJQQQRCUEEFQQgRBUEIEQQkRBEEJEQQlRBAEJUQQlBBBEJQQQVBCBEFQQgRZFigSvhqOiV/evjsaiYVjItYRssRQK5l0ldK0eqVaycz32oSP/hFCCCEURVEUNfPdhC/+6ISZNw3HxJ4b329+Im0tl7KAUiLIY044JvpGw94fQvlPZs29hRNCwuHw7du3b926NTY2RgiRJEmSJEIIw0zeRBRFiqJomqZpmqKotLS01atXr1mzRq1WP0TFBBL+a/CHLDWrz1yB3xayhLl2Z2wkEv/tusw5GnjlypXR0VGdTrdq1arU1FRZM4Zhptsl2ySKohwbx8fHA4HA4OBgRkbG008/nczDBOnonXDkV7oM/JKQpQ2frvbdDMzRQDkA7tixg2EYIAQASPIEVQ6MFACrVKanp/M8/9lnn2m12qysrIQeJhiYiUlESVP4JSFLvmc49yGP4eHhTZs20TRNiCQRSSISme2QiCQRQojEMPRTTz01NDSU7OY4Ooogs0fCUCiUkZFBiCwWzPmYdFGj0QiCkGw/J5RwflgsFqyEZUgsFmNoGubj3/SDpihRTBp1FVi/CDIroigyCoU83LKAy2mGicfjmI4+CgH32cb23gBWxLJNR2OxGMPQ8w+CQvCHCAGiVCpisdjjmY5Ghvp73b7I41HV/Y2lBaX17kSlGXa1dXT5otgcl62EoijSNAME5nEIX3/wp5crXnY0XwlRFC3PWyx2OhrxuVpaWl1urz8YZTXZOeaCsqqyvFXzucVAm6PaU9rexOt+Ms2nF5LT6nPyiiqrXjCoEpzKabOztVpOhY0O+TGSJNE0PbkuZo7paOjrD0+caPOEAW78453m37Qcoml6sSUc62+029v82meKDhyt1KkiAV+fKxhlH6/Ke7CQQ0MDfQMCJNGMLz7ZVIwtDkkWDycPMjNOPrhmLfT1hyecpz1hAADI2Lp3lwFgKPmdFyZhpL+lps2vtzXWl90LKhbrCwAA4K4tsntK25v26gAAhtptZW2G2s5qc8Rzvq62xTUwLLCabEtVbY11MvoNNOy1NAAA+4zz/EmLCiDgbm2o73B5g6DRW0rsVWVmOboGXLU1zb1ef1CIAqfNKSgtYHs7e/q8wSinzS11OPYa02YrJFinLAv0NtY2uwbkMP7M0eaTVqH1QHlnXmNHpUHOlF1NtY1dff4oq83Rs8Lj9gOD/DwaTpuojw72/Xtk7a83aei33jp+5MhhtVpN0zSEPGedUwambz345uHn17LwsPi5IAkjfR1dw5p8R4lhzrmbr8N5sldjq2nM00DQJ2jv55/6ktqaIi0AcFoVQMTTaK/uYPOrnHYefF31DdXVQmNjpUEFIPj6+4L6KmeZkQ32t9c31DXoC2x2J88FXI11DTUtxg67cWYhq5MUUvD0XhrW2pzVZg4E0K4CEKZf7G6wO7q4gqqaap4N9J9tGgCUcNn3DGUF5Yw0euP822+9PxBON7105I91dXV3744eO3Ysk73z0dt/PeOdNNBU8ZfqnWuVs+WwC5Iw6BsSIHurfh7dp+BwEDizeavRoAIwTH+H1WbzU33CscvNnf5sW6ujmAcAs9kpeMrami8fOGlRAQCwLG/OMxoAjNqhnkstfH6xxQwAOZWXu+xutw+M/IxC5iQvJMsa8vLMhkR5rKu1K5hjq3cU6wAAzNxA52U3NkMcn5GmuoWeC2cHwgAw+mXLiXcA4Ny587Q4to2d+OhmnKIogHTTH469nr9WKRFCAdAPs3CBo6PzHig0lxzIFTrsZVXOVpdnLOlpfrdX0Jrvu8SbzVrB6/bPOFGj0bDRwJh8J5VGowEhGJ21kJ5WW9GBRs+spfUP+KMao1mHDQ8BAJqmJemBpWq//P1rv9OrAQBg9CoAXLx48e9nL/ztwtV4PE7Iyi3lf34tX6ecvoRNkpIt4F6QhBodz4F/wJtsbiEajSYY9qhrb68tNQQ6a8r32lo9jzgvoVIBRO9rxrHsg9JpdDw7o5BCMChEoz/VLw2yNJGfTpJEicDUEClR6/cdObxv0kOADRs2uC5dunPnzrff/m/TvkOv7lijJPeHUyVJeuB5i0eWUJVbYNEEe5q7Eoz4aLQaGPYOJ3JMpTMX2+ta60s0Ax2dA3JCyIIQnNYZy87Rs8Pu/qn7+tzuYU5vzl5IIbcmL+RsyMVw+7D9ITKMvOSF/Ai1/sU3Du/dqAYAEEVx8+bNn3/++fAtv/q/5yJjY1MPNAEhsWhMqVQuap8QVHm26ny3o67cNlBaZDHoOAj4PH1+bandylvy9U0t9SfbK4sMHAx5BTmeDPWedYPBoGGjQbdPAI7j7jX2jp7mdvNeAwwFOIvVaCkrybY3OZxsZQEPvq76Fr++xJG7oLm7tLyq6vx+uZAl+cZVbFTo98wtuqVZykv0lS3VR8FWbNSxUbdPwLC43CWMRKMpKaoHpgqVG1+sfjVy6oNP4vE4wzAmk+nCp5/u3LlTrVK9VFbGcRxN0wAgv7u4EgKsstQ0N25tau7sbOgZFqIsp83OySuNAgBf4nxz2NnUUtMjRFlOo80x52ggEvT0tLQ1yGfqLa/XHDAAAKRZ7Ucv1zQ0VduBy861Ga1G3lhZX8vV1rc4uoKg0VsO1FaVGVSPXMi6nia5NNm5eWbNHH5lDJX19ZqG+o46R5P86bZaeBwfXb4oFAoxHgPCzpioAOX65+VIKIqiQqHIzc09d+5cYWGhilXt21fCcRwAHRfjCkVSCRM8Wf/B9aHdm3BMIjEWi8XlcmE9LA3m2NRFUbx+/Toh5Ek+WxRFIkkEAO6JEwqFfpHNj4yMpKSkqFSTAaO7u3vPnj0nnc5du4rT0tL8N29OTERMJlPCeIgLuBFkFmiaXrdu3bVr1+LxOE0zNMNM7iIjHxQtixqPx6celbBaradPn3a88cYnn/xzbGzs6tX+NWvWyKnp4qWjCLJsoChqxYoVPM9/eqFbq9VmZT2RkZ5B0zTN0AxNEwrkXp9CoZAzUvmqwsLC9957r6KioqK/orCwcPXq1fPYYwZ5CJiLLtuBGbPZvGHDhq+++uratf9EIpFwOByJRAghkUhkKhIyDMMwzJSHJSUlExMThw4devbZZ2VLE++JiH1CBPuEc0Te4HByWGZanzAzM/PmzZuqeyiVSpPJ9M0338gnjI+PZ2Zmfvzxx7m5uVN+YiREkAV2Dme+KE8AymEwEAh88cUX+/fvr6ioaGpqeuWVV9LT0xmGYVk2NTVVDoZzklBBU7jhGrLkCcdEtWLR9rYWRXFwcHDPnj0jIyNFRUUHDx48fvy4QqF47rnnVqxYQVGUUqlk2cSzXAnMzlKrvNNXsSDIUsQ3Gk5PUS7W3b777ruioiKTybR58+Z3331XpVLZ7fYzZ84QQtLS0lauXCnvF5zw2sTb4Hff+N6g4fiVqbgNPrIkY6Dv7rgnKFjnsw1+MkKhEMdxWq12+/btNpttfHx8//79Xq+Xpmme51tbW61Wa2pq6kPukCAdVSsZ65NZX96+6xsJh+P4hzDIUkOtYNJTlIti4GQooyir1VpeXr5lyxaWZbdt23bq1CmHw2E2my9durR9+/aUlJSH/BdF4oEZtZKZ4x79CLLMoWm6pqamoKBg48aN8gbBDodj165dFy9evHr16u7duxfyr0wIgswdURRDoRDDMFO9vomJie7u7u7ubqPRaLFY1q9fP7WcDSVEkMVn5kZPhJBoNBoKheSlNkql8uHBECVEkJ87ocUqQBCUEEFQQgRBUEIEQQkRBEEJEQQlRBAEJUQQlBBBEJQQQZYV/wfmEwXGgsPPngAAAABJRU5ErkJggg=="},401:function(A,t){A.exports="data:image/png;base64,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"},402:function(A,t,e){A.exports=e.p+"assets/img/grid-create-add-cells-02.33f7733b.png"},403:function(A,t,e){A.exports=e.p+"assets/img/grid-create-add-cells-03.848222d7.png"},404:function(A,t){A.exports="data:image/png;base64,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"},405:function(A,t){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbQAAAEHCAIAAABJCCTKAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAIABJREFUeNrt3X1MU9neL/CfM+0GbOuclstbgXaeIqGxihBrhIxIHGFyaW4Gog+YHEiewTNRTMQ5MsfHoxM9jmZefJzRe4Rk0MwZnEQmGXqPAf6gN2dgOIo3QIIpiBgaYD+hMKWUQzux7QC7Ve4fBeQdLL7A5vuJf0jbvbv3WqvfrrX2SzeMj48TAADM9AaKAAAA4QgAgHAEAEA4AgAgHAEAEI4AAAhHAACEIwDAKiVY/kt7HO6h3zgn53VyXhTcmiNhBBJGELKRiZGK/FgctQ/rrfFvWM4VMm7Pk8Z++2N8KnhhEyN4Jzo4SLDcQQNqH9Zn4186HN2eJ//s/dfYk6coWd4IFLyRqvgfIuGby0lG1D6sz8a/RIKOep/e6xvGZ4NnfNXKLVWtqH1Yt41/6XC0ukfdnicoUP5xe54MuMZQ+4DG72c4/uIcRVHylcU1itoHNH4/w/HXUQ/Kka/sIxxqH9D4/QnHcSIO8038xT15Oo7aBzR+P8JxAxFuhMtj40QbUPuAxu/fsBoAYH1COAIAIBwBABCOAAAIRwAAhCMAAMIRAADhCACAcAQAQDgCACAcAQAQjgAACEcAAIQjAADCEQAAEI4AAAhHAACEIwAAwhEAAOEIAIBwBAB4fQRrdLs7r/zPv9W6Jv9S7C3+QRfz7Nne6/9eUmWd/EusvfB/D2pf8AZMvUXcKcOHqRK0JAD0HFchcy87PO3PYUunFVULAAhHsrR3eab+4Dp6+l/BezICISMQigVoRAAYVq9ao51GGyVF+v7o67C4X/o7Ko/88MURtB8AhONqJVVtHmG7RwcfWVwUKSYiesw+GiIi0Wa5qNtim/7agYZj2dUsEW3OuH7z3eiJR3uK3y812IkYzVnDB8kBvgc9g8am8lstnV32QReJw2VRsduzDiUnK4NosaWIG+6p/a7hToet3+zgZNKo2DjdoffSY4PQ0AAQjq+aSqPs6zZ5utjOsZ3aAKIxS3sXEQlUGrmj2+LXKj2d35ScKrdMDdQdZovDbGmvu5d0/ti5NNlCi3FdDWcLq9unDhNZh0zWIVND290/FVzMCkVbA1hT1vyco0CUKI8mIpeF9R2EsVpYFxGFqjWBfq5yuKVMb/EQESPfk7v/1Pmcw9kqKRGRs+mrmpaxhRb7pfwvE8ko3aLNPr7/cObEUvev/b1mAE0NAD3HV4uJUMXJ6lm7rb1jJEcZ5Opi+4hILN+mFDb6t8auHpYjIhLuSi86upUhorSEMNflkmYvkYM1kzZ2vqWMTbVmIiLavPdCsS4mgIi0auZykd5BHPtTg12XI0NzA0A4vsp0lMfHCgzNXtZoIV0Ma7R4iIQalYoZ8nOFAUKGyE3kaSg/XJiQum/7npSY5E/OJC+6UF+H2eEb5qdpYyamIIXqnP2HGdZBJFWgqQEgHF+1IFViKDVbHF29fSRlu5xEFLZZKSZ/w3FLUpqiVW/2Enltxha9sUX/lUC6OWZHWlJ25tboBc73dgw4fQUaGi599miEOuuoGq0MYA3iw3mOwmiNXEpEZpYdsDzoJqJAdaKU8Xt9Acr8shNnC7Tbwqe+OryOblNt6ffH8v/e4lxgKW7y+A2DVgWAcFwlNqtUDBFnuV9nYjkikm+LFS72em6Um/r/2IjbNTcfQ5PzDl76P19UlP3hRK52m2Li2I7H2lRusM+7SpHM16X02qzT4nPs8WCvra/XNjjsQVsDQDi+chLlNgUROe9XdNiISKFUBc/3MkYwEZlWy9TlhvaGlnZu+os8LZevHv79fx3+fXFZh0ccq04/evDSD+euZIfMHD7PFp0oFxEREVvZ0Dl5RLtP/7f83MtHci9fNDjQ1gDWFJ5cIROqjpVQt9NhdxKRKFYVPe+rgkNVMjLZiThTSeG3nbvkZO9pqjM7Zg3SldRfNURE+r98z2Vp1IogzmppbPa9ShAWK5133UxiSlp4W5WVyHzvbOFotk7F9LZVVlmIiBiVbh/OcwRAOL4OqkS50GDyTP5/gXm/mKw8Re01s4fIYzYZzCYiEobLo+yW/mmdx7DM/dk1pfpuL1lNVaWmqunBuTklf9+m+dcdoMz/dG/7x/Wsi9yPWm4+apnq1iadydVFoKkBIBxfB7FGFU0mlogoRK3ZtNDLonMKroirb1aYOs1OJlwel6jNOSR/cP72XScRSUVTMXf9dHJdfUUly1rtDruXZJKw8NBtut05GeqwgAW3gdHorpSpKr9rut9lYc1OkkmjYuOyDr2XissHAdaeDePj44s8fduESzv4bH9cBGof0PjnhTuBAwAgHAEAEI4AAAhHAACEIwAAwhEAAOEIAIBwBABAOAIAIBwBABCOAAAIRwAAhCMAAMIRAAAQjgAACEcAAIQjAADCEQAA4QgAgHAEAEA4AgCspXAMeBPpyVuoXAD/w/F3gUKUEV+hcgH8D8dISSDKiK9QuQD+h+Pbb20UMwIUE/+8FSB4+62NKAcAP8ORiN6JkgUKMDnFK4GCN5IiZSgHgBWFo0j45l5lyCb0H/liEyPYqwwRCd9EUQAsYlmRFyR4I+3fQnoc7qHfOCfndXJeFNyaI2EEEkYQspGJkYpQGgAvJhx9YqQifK4AAMNqAACEIwAAIBwBABCOAAAIRwAAhCMAAMIRAADhCACAcAQAWG2e4woZXD64puHyQYAXH45uz5PGfvtjZOJa5vtWs7hG//vX396JDg7CnZYAVjisdnue/LP3X0hG3njMeet7h9yeJygKAP/DcdT79F7f8NiTpygpPvFVK4dqBfA7HK3uUXQxeMnteTLgGkM5APgZjr84R1FGfGVxoXIB/A3HX0c9KCO+so9wKAQAf8JxnAjTUjzGPXk6jlIA8CMcNxDhw8Nj40QbUAoA/g2rAQAQjgAAgHAEAEA4AgAgHAEAEI4AAAhHAACEIwAAwhEAAOEIAIBwBABAOAIA8IIARQCw+vT+fCzXwM54KDCt+GJRIooG4QiwLCN3Pj53qfkFrCg0+483P4pEgQKG1QAACEcAAAyrAVannm/+q7B8aMZDsqQvqw/Eo2jQcwQAQM8R4LU1a+lmeSjzfMuEKYWraA9kMdnH33fM3ClVOGoW4QiwItK0TwrzY9fyHkiUqTlKVCSG1QAA6Dm+AJ6+u02VdSa2y8JaR8QyaWiEXJ2Rkq1TylCh8JKM2TsbOu4097Bdln77iMs16uEEQnGQWCyJUoZEJcYlp2zVKoNe8Ua5jA3ltbYZPz/OKHQf7YzxPTvQ01jZWNtsGbQ7HXYviYOk4XJ1oiYtS6td/hyC09ZS11hbx7ID9kG7l5FJw5TKPZm7dXsixURENHi3pqJ5ZMYERcrenCQefBbXXDgOd14/XV71aHTqAYd1yGEdMhnbar7bfqw4Lz0Cn2N4sR4/uHX7yncdM0OIiLwel9PhcjqslvbmNkNphXRL0gcndemxsyPS1dvD2omI+q2js9fNOVhjj++/onBFTMRkZhn/nlvYNHPOMSS77D9nzRW4u1qrqswzHmKc2o92xtDjlr9+f0lvds/YDqet22TrNt3V16gyDpz9U0JYwBK9kJ6a21evtbCuaQ9Zh1jrENvcot+8+9TXmdpgcjS3GKqc0xcLZZJyktBzfNXsNee/r3rkJSISh+zYFRMq9rqtlvvNFjeRx9pWclquvvlu9CvcoAefXfizwUkkSPr8wrk9QgQJ3zh7Kz7+9uaj0eW81vGo6eqRnvbPC4qSNk2PmPvXvr3U7F2g72e6UWjy/Tcq9483jr6IS3TGbDVnikuaF9nmUdZQfsw6cqU4eeEPy+PGz0q+NDg8Czzt7r53Lt9x4npuNG/rfm2FY1dTpdFLRBSuvVB2UCuZ/PbtbTh7pLrdRZ7uppqud4/E4jMNL+bL+Kfzy03GybY4VHvme1V5YdZrG8GMNH51s7Z56W12G6sv3VKU5M0bxyMPLpcukoyTxdNRcromn7cftzUVjlyvZZCIiIQaTbxk2khCmZKb0XjR4CTyOgY8FCuk4dYrp+tZjoTK3UUFktprhtpmm4sJitZszyx4b/bAx2m7U1V/p9nCdtkcjCRaKVdtScjMS4iZeoux1gsZ5U0ckSzpS3066W/fqOgRHTp5KWvTQuORQWNT+a2Wzi77oIvE4bKo2O1Zh5KTX/mcFKyEq7b6RvPo8zdTc3npQ92nW5nX8yFhaw3LfKmXvVXfmJmXLJmz403Vl6qGPMtYhaf73o1uhONq2lxPc1OlUZ6VKJtqf/Ef/af+o+lNxMk+srBE5GopKWTbrZMPNt+7ajR1fl1YmDiZUwOtXxb+eNc6NepxsHYHa+yorXt4qjgvdfb3v7eztLRcP+QhihttO7u7+v7k401nzuiY7Rd+ztOSp/ObklPllqm25TBbHGZLe929pPPHzqXhoNEr4Kj9rLhTsvzGHZR6/APd7B6Qvbaiwz2nBYYmarMy4qIiJGLG6xq2t9fdq6mzzHqZu7n1wdhWbcDrLYTA0C1KlTIkWuwdNFvajWYHNzf+O34yepJnTQeN9ZZ/1eKYb4WqlIQ9iXIx5+hsbr1jdHh43orWVDgymhgVdZiIyGW6WfhFuUwevytuR6JCFStXx8rm/6K2su0UGLUrYYfCyza0tlu9xA0ZPqtJLT8QH0BE9prPJ5NRpsrI2RpNtsbKpnYrkbXtyl9i1DeSw2Y0ptZyvZdkIarwoGixwCUWCF3eiSbCCIRiIRHRcEuZ3uIhIka+JzspOVbg6GjR61kHOZu+qmlJyXvdn5n1wOvoNjue4/WSKNecxwZMdx7N/rSoco9dORo5raXFaPfsTNN8c+waOyMpXJZ2K2knzlMUpn79RSoRvcLLB0WbtfmfvK+bNkLiBh6WfFxea5419ek1NVtoz4wTKl0N9bXWOWuUxR3+IjdLM7FCXZ7uA2PNxdP1JhfCcZWISDpS8PBiKetr9x675b7Bct83iBBLt+1Kyi5I0UbMPiqiyi2YaNCHtMX5pQYrkbW1slkXvyeIuhoqfJOYYs2psg9Sg4mIsjJiLuSWN7nI86i+sit5xgwm5w3L/MOXJ9UT3b//lfzsgMz5yQMyXT0sR0Qk3JVedHQrQ0RpCWGuyyXNXiIHayYtpkTXxhxOT/+sh8RxuXmRc7+DozO08dfY+zMeG3XZiV7XSdzhSWeLD8TPHCwzEVuLPk3pzK+ftVMuu4Mj5bSdeny3yjSnvxyS8emzZJxIy0TdxS9Gigqb+nnbBNbYSeBCdd7R62W52RlxKtnMXHc52usM53JLyjpmdvaZuMypBi2JyclR+NquqdlGRINGs42IiEIz9vqSkYgoOCEnQ+obnXUa7bOSNrtAvcTAOEDoeztPQ/nhwh/LKjt7hin5kzPl1efKqwtzkIxrhMs+ysgk0un/NHEqyQJJOmcuzjP22vo7Ow6lx8+7nbHaZMWcDXWNzOj8DXfcMc4+sC5K0eUnzjNdLk7UHc6QoOe4iohjE/I/Scgncg38wnZZOpvb7jb0sHYvERFnqfyuNfPrnc/yK1w+vUGHxcqlZHZMfmE6BnznZwmiNaHT3yJKEyrUOzxEjgEn0bQwlMnClmwMW5LSFK16s5fIazO26I0t+q8E0s0xO9KSsjO3RksQO2uDTPdhuW5Zrxysa+lcRRsuT05c6DihVBUhoFkj6zHv9N4E12Gasy+S5Mw48fwrDNLmaKMM9TztPK6xcPRwY0RETICQiMQRkfERkfF7duacHOm59W1RqdlD5Oky99NO2TL3nJv/OebZ+z1/eQUo88tOqPX1lZWt7RPHebyOblNtt+lOZdLZsgNa5CMPjI0Mmi1sV++DhrbaBssqOjTBSKQLtn4hs9QR9L4O2+x9YRTJiQufwBu7fUd4fb8V4fi6Pfjswp8No0SkKjhZkje9rxcUsy9BVWo2zV3Gaul30tRJOYNdFt98pVgmYYikyiAiB5G3r8NGac+miNjJJiJV+pVkAaHJeQeT8w66ujoba9tqGx62m0eJyGNtKjfs1ebggPXLNs/FJCv/YrZ39dxvNrV3WNguC2sdXb17v4Ijfg7rnONYCkXUYisMjY8VVFm9CMfXLEojFxpYDxFbUfPTvtz0Z8dePH0ND319e6FSHjVjNqhHf+uXZN8BGWdPRYXvWqvAbbvkRBSmUYWSxUZkM9TfyZs4IEPDrRUGXxORbtM8b5B5Wi6X3DB6iIKSPynI16jTY9XpR/d3/vVqkX6I5o7TYdXjeh/WVDTVTk3d8NmIwzVnHyUS6WKLCKXhEiIHH0tjTYWjbF9K8nfsXTuRveNq9hdVu1RxCgnDjQ52me4/cnqIiAJ3ZM7KMy9bXlpkTtihILah5b6v/x+uzdolJCLSpGRtabrxyEuujitHvn2QpYkhy53KpnYXEZFwS0qWZslRzMS72IzmQY1cGhwUraT+qiEi0v/ley5Lo1YEcVZLY7Ov9QjCYqWImzUUFp23yi+WmhzrZX89c+aRSCgWLj4WFwUHIRxXAcnWY19kOE7/1G73EjnZ5jZ2xs/OBcblflCUNnM2WhYSxQ2xDU3PfuWSkWd/+p56YqQgy/r04IPC8iYreawmQ+mzcbkwfHvRpylhS21RWGyIkJweIlZfml+1/cLPedrM/dk1pfpuL1lNVaWmquntbHNK/r5NiJy1khQ9t749VWpedD5RIFUodqTI2PIWlq+lwBE3bRZ+np61k68ng6+1o9VizbuX9NoHhvrKOnP/gMNhHyGxRBoujYpNyMrTxs85yZFk2qJPJD+VNrV3WRwUqkqM0x1KT51+v6aIhHNlIXdu3as1WvrMNgdJomNDVVu0My4fXCQcMw4Udf29rM5sc3knTgIPUOZfP51cV19RybJWu8PuJZkkLDx0m253ToY6DGeArxW9DVfnTUZGotKotu2Ki9fIVZsjwyREY60X9C0sx4N9FooYAdHMkbXT6SYSL7yM2+5EOK4aAZviszLjs5b7clHszsKvdy7aIY1MPXowdbF3TDj3c8ICT4WmnjyaenL2Fqp1med0CJg1rLPi3pzOYGBc9sGigq3Rs77hOI+b48dOB4lkc8LRbOkjWngIZWd7R3naBHAncIB52B50zO4QiVIOnP1oTjISkXnifig8EB0752ihq+d+18ILDPc08vbGEwhHgHk7RObZD6l2qeY9z6DPyNr4stthsfI5RwwdjZW9C/WM+wz32jm+tgGEI8BcY6Nzri8mjpvvVJ6xnspKi/9vxI2srmzZrJl7NYzNUF3TO9+LextLbln42wj4+uuDESkl91LwGV+vnveWZRPUhz7Mn7gaRCCa8yxb09SZqVPPGFbb75z/0bCS60NcFrZ36v49q4AkTpciaTLMnFLgzDc+viUtPpg67YCnq6vxyunb7bgrD8Ca8ry3LJv4MDDDXiLfKQfSMBnRzNTzdNefPWLPztGqlUGM08F29zTWtNw3P8eZ4eLgubdvGLpZWNy5Sy5lvOJd6fl7XvsFAkJt1vZQw73ZEwXWtku55pp9CcmaEIZz9hjb7jZY3DxvRQhHgHlE7tgl0VfNPibj7m67+XnbsobL8z04dd+TGezmJoOZiKLEu/P3rIJd17x3ZF/bxbo5J+hwjnZDfbth/bQBzDkCzCc+Z7dqeT90IAwPCZ39Sq/bNd+p0Vu0exSrf9eDko/v3xO+7K4mw9cmgHAEmJcy5cQhxZK/Jynasvvi9QM7Zh/E8HYaWuc5vydAmf/p+9vEq37fg7f+uXg5Pz0tUGX+RxFvb+mIcARYoEsUk/fhpeNxoQv1jBhpUsEfSooz44ND1MrZ81Pu5tsXb/0yd3DNxKZc0h87lavdkSiPCpeIGCJGIBJLpOHSsIjV9NO+ETvPlRUcTglZcJvE8rQzx748uTWMtw1gw/j4+CJP3zYN4EPCY/vjIlD7S+CGe+5UtNzvtvX3OvrsI4xYIg2X70jTpu3bGjN593iuo/F6zZyTWpQJ+Tkx4jW++/auh001rXeM5n6r0+UiRhYkDVdsS0vQZUxcX9t5+ULRzMnZ0Ow/3vwoco03fsIBGYAlMMEx6Udj0hd/jSa5UMPP3ZfFbtV9tHWRS2F5ew44htUAsAIet31k9oA7WMiLXUPPEQCmjNl7umffg0wUrowOXuj15saOWWd6CkLD+XHTUoQjAEwxN1w8MvsMcFHKf5R9sXXeydNBwz/uzPqBTpLHa/jRc8SwGgCmKOLi56Sgu+H2lRr73AF1X82PZ6+xs7qZwkRtcgQ/ygI9RwCYEqDWZYTU6odmPups+vzq4Ybk7Mw4VYSEcTn7ey0thnqDce5tbkOyjmv5cnIPwhEAplEXHMw2luq7Z80kjvY31F9tqF900cC4gtzcWCFfSgLDagCY0XlU5n/9YfaWwOdcTLLj+IcX8yJ5dDEheo4AMEtwTP6Nk8mVP13/rsW09A/SBkbt0uYe1834aSaEIwDw1CZ11oGrWe8PGjsa75oedNv6BxwO1wjn8noYgUgcJBJLo2Pl2xLjdqTExQQL+VgCCEcAWJAwLDEhKzEhaz3u+xJzjgFvYlKSt1C5AP6H4+8ChSgjvkLlAvgfjpGSQJQRX6FyAfwPx7ff2ihmMC/JQ28FCN5+ayPKAcDPcCSid6JkgQJMTvFKoOCNpEgZygFgReEoEr65VxmyCf1HvtjECPYqQ0TCN1EUAItYVuQFCd5I+7eQHod76DfOyXmdnBcFt+ZIGIGEEYRsZGKkIpQGwIsJR58YqQifKwDAsBoAAOEIAAAIRwAAhCMAAMIRAADhCACAcAQAQDgCACAcAQBWm+e4QgaXD65puHwQ4MWHo9vzpLHf/hiZuJb5vtUsrtH//vW3d6KDg3CnJYAVDqvdnif/7P0XkpE3HnPe+t4ht+cJigLA/3Ac9T691zc89uQpSopPfNXKoVoB/A5Hq3sUXQxecnueDLjGUA4AfobjL85RlBFfWVyoXAB/w/HXUQ/KiK/sIxwKAcCfcHw6Po5pKR7jnjwdRykA+BGOb2zYgA8Pj40TbUApAPg3rAYAQDgCAADCEQAA4QgAgHAEAEA4AgAgHAEAEI4AAAhHAACEIwAAwhEAAOEIAIBwBABAOAIAIBwBABCOAACAcAQAQDgCACAcAQAQjgAACEcAgFdLsNo2aOSnj89dbZ69lSKxJCxWsS0jJVunlC29kt7r/15SZSWiuFOGD1Mly37z4cYTmbdNRKTYe/0HXfSLXTkAoOf4onndLgdrbKv6vORIYUPPGKoNANZdz/EZ6WbNjtggIuJcdrbD3G/3EpHbWH2pVFHykZJZfGFGIGSImJezey915QCAcFxcaNb+oqxNk389brn8t4tVFg9Rf1VNbd5RXfAiiyqP/PDFkZe1XS915QCAcHw+m7Qnc3M7Lt/sJuLYn+rsuhwZjbVeyChv4ohkSV/q00l/+0ZFj+jQyUtZQ8XvlxrsRIzmrOGD5ACisZ7rhdXtHFGw9sR5FVtarW8wD7oEUoUyOe/9/LTQBfuhY7+UHSnRd3uJAuOOF1zKiWSoZyUr5wY6K7+712jsZV3C6F17Dx/f7ij9Xt/lJUZ1uDgzPgAtEgDh+PxdyVSd/OY1CxGxzWZXjkz87ClvZ2lpuX7IQxQ3/7LOwW4LyxFZW28U1rR3e31L2bpNVeevdtpPXM0JnW+px42ff6/v9hJRaEbuxZxIZoUr7228eOT2fZfvj1G2rvpsV88OMrNmIkbqRmsEWEXW1Kk8YQq5iIiIPAOWwelPuFrL9UMkC1FtUUSLF12Fy9zeHaRKScrM1m4L930zeE23Gjrne21fZfmVOgcRiRL3X/yTWrzk9i2xcnvlZ9W+ZBSGq9Kyd2fsCmHMHU1mtEIA9BxXSBIoInITkcs5o5/FecMy//DlSfXkWT5Di6wi6fwfz6VtIiLKU53KrmjniOw2dpjUMycxHcaqkmusm0ioSDr7eXL0sga8i668q6HykZeISKYpuv5BajAReXTflBSVWzxohwDoOb6cUFdlF6hly1lOrEpPmTzIEyxXh0+MyjluVh/wYcnpe/0cEYXoPjkQv8yTGRdd+aCRtflmB/alp04EsTAmL32HGK0QAOG4Qs7RiQ6jOEg0/XGZLGyZ+cUEiZ71AYWihQ7E2If6J2YGh+7X9nL0AlY+2Ov0xboqcdr8pkQer0ArBEA4rsyg2eYLR2GEPOxlzw4wAiEREfVXVdcMvIgVcvOOngUMGiEAwnFlbI01EwcvVLsUL3kwKkk6c+JippSIiDOXX3voWvEaRTJf59bbb3Y8e3TM0mlFKwRAOPrvcctfy8u6fX06Vfo+2ct9N4U2Py00/tDebQwRkbuhprxjpUdNohMnDrX3V9a3+EbY5Omrqr9jRysEWIVW8dFqW031lQ4hEXEue3+XmbX6zh+kqExdWvAr2YJgbX5mfZHeQTRU89emrBspYSsZpicm75G1GexE1paLR5xpKXIym+424FA1AHqOz8nxqK3W0FJraLnbwE4loyjx/VMFylc1TydUTx5N9jz6x/W7IytaWUBM/hmt73IZj9lkKK83NFjcYmkojlYDIBz97t8KxdKoxO2ZZ45dL06JeZXX2AXv/CAzhIiIRptK/9G5shsCiZMOlhTvz0hRRMkChbKQuJS9Z8s+zMHRaoDVaMP4+PgiT982DaCMXqpfyn7/v/VmImb7hZ/ztK/63ffHRaD2YX1avPHTWrtCZi3jmn7M/VOLm4hk208UH0hXBhE9fnCr2ncEXpgYp0IZAaymASuK4BVhktKP7eu5VOcge9vV3LYScSDDjbp955fL4o4d3ylDGQEgHNclWeqnJ6L2NVZVtXX22gftXhJLo8JDt6XtzspUR+NmZQAIx3UsKGbPu0V73kVBAKx6+PVBAACEIwAAwhEAAOEIAIBwBABAOAIAIBwBABCOAAAIRwAAhCMAAMIRAADhCACAcAQAQDgCAADCEQAA4QgAgHAEAHjZ4RjwJtKTt5asXNQ+rNvGv3Q4/i5QiHLkqyUrF7UP67bxLx2OkZJAlCMJdKOqAAAAsklEQVRfLVm5qH1Yt41/6XB8+62NYgY/wsVDbwUI3n5rI2of0Pj9DEcieidKFijA3BOvBAreSIpc1u9ko/Zh3Tb+DePj40u+aMT79P/1DT/mvChZHtjECN6JDg5aduSh9mF9Nv5lhaNPj8M99Bvn5LxOfE7WIAkjkDCCkI1MjFTkx+KofVhvjf85whEAYP3AdBIAAMIRAADhCACAcAQAQDgCACAcAQAQjgAACEcAgNXq/wNnDEjMsyTy2AAAAABJRU5ErkJggg=="},927:function(A,t,e){"use strict";e.r(t);var i=e(2),o=Object(i.a)({},(function(){var A=this,t=A._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[t("h1",{attrs:{id:"grid-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-creation"}},[A._v("#")]),A._v(" Grid Creation")]),A._v(" "),t("p",[A._v("In this tutorial you will learn how to create a simple grid.")]),A._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[A._v("Note")]),A._v(" "),t("p",[A._v("In case you need more detailed information, please check the "),t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[A._v("AsTeRICS Grid user manual")])],1),A._v(".")])]),A._v(" "),t("h2",{attrs:{id:"asterics-grid-web-application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid-web-application"}},[A._v("#")]),A._v(" AsTeRICS Grid web application")]),A._v(" "),t("p",[A._v("AsTeRICS Grid is the web application to run and manage grids for AAC.")]),A._v(" "),t("p",[A._v("If you open the link "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[A._v("https://grid.asterics.eu"),t("OutboundLink")],1),A._v(", the default grid is opened in your browser and saved locally on your device in the browser cache. All modifications are also saved to your local version of the grid from now on.")]),A._v(" "),t("h2",{attrs:{id:"create-new-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-new-grid"}},[A._v("#")]),A._v(" Create New grid")]),A._v(" "),t("p",[A._v("To create a new grid do the following steps")]),A._v(" "),t("ol",[t("li",[A._v("Click on "),t("code",[A._v("Manage grids")])]),A._v(" "),t("li",[A._v("Click on "),t("code",[A._v("New Grid")])]),A._v(" "),t("li",[A._v("Enter the name of the new grid at the bottom of the page and click on the check mark button.\n"),t("img",{attrs:{src:e(400),alt:"Screenshot with textfield for new grid name"}})])]),A._v(" "),t("p",[A._v("The new grid is added to the bottom of the list of "),t("code",[A._v("Saved Grids")]),A._v(".")]),A._v(" "),t("h2",{attrs:{id:"add-cells"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-cells"}},[A._v("#")]),A._v(" Add cells")]),A._v(" "),t("p",[A._v("Now you must add cells to the newly created grid. You can do this by the following steps:")]),A._v(" "),t("ol",[t("li",[A._v("Clicking on the "),t("code",[A._v("Edit")]),A._v(" button of the new grid.")]),A._v(" "),t("li",[A._v("Click on the "),t("code",[A._v("Create new elements")]),A._v(" link.\n"),t("img",{attrs:{src:e(401),alt:"Screenshot with link to create new elements"}})]),A._v(" "),t("li",[A._v("Enter the labels of multiple cells in the textfield\n"),t("img",{attrs:{src:e(402),alt:"Screenshot with button Edit highlighted"}})]),A._v(" "),t("li",[A._v("Click on "),t("code",[A._v("Insert elements")])])]),A._v(" "),t("p",[A._v("Finally the grid should look like in the picture below.\n"),t("img",{attrs:{src:e(403),alt:"Screenshot with grid"}})]),A._v(" "),t("h2",{attrs:{id:"adapt-layout"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adapt-layout"}},[A._v("#")]),A._v(" Adapt layout")]),A._v(" "),t("p",[A._v("Now you can change the size and layout of the cells.")]),A._v(" "),t("h3",{attrs:{id:"change-size"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-size"}},[A._v("#")]),A._v(" Change size")]),A._v(" "),t("p",[A._v("To change the size of the cell, click on the right bottom corner and drag it until the target size is reached.\n"),t("img",{attrs:{src:e(404),alt:"Screenshot with grid and resizing a cell"}})]),A._v(" "),t("h3",{attrs:{id:"change-position"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-position"}},[A._v("#")]),A._v(" Change position")]),A._v(" "),t("p",[A._v("To change the position of a cell, click on it and drag it to the new target position.")]),A._v(" "),t("h3",{attrs:{id:"more-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#more-options"}},[A._v("#")]),A._v(" More options")]),A._v(" "),t("p",[A._v("There are many more options to add or delete cells or to do automatic layout. The options can be found by clicking on the "),t("code",[A._v("More")]),A._v(" button.")]),A._v(" "),t("h3",{attrs:{id:"close-edit-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#close-edit-mode"}},[A._v("#")]),A._v(" Close Edit mode")]),A._v(" "),t("p",[A._v("After you have finished all changes, you must close the edit mode for being able to use the grid. You can do this by clicking on the button "),t("code",[A._v("Back")]),A._v(" in the top menu.")]),A._v(" "),t("h2",{attrs:{id:"conclusion"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[A._v("#")]),A._v(" Conclusion")]),A._v(" "),t("p",[A._v("Now you know how to create a new grid it should look like in the picture below.")]),A._v(" "),t("p",[t("img",{attrs:{src:e(405),alt:"Screenshot with final grid having 4 cells"}})])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{399:function(A,t){A.exports="data:image/png;base64,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"},400:function(A,t){A.exports="data:image/png;base64,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"},401:function(A,t,e){A.exports=e.p+"assets/img/grid-create-add-cells-02.33f7733b.png"},402:function(A,t,e){A.exports=e.p+"assets/img/grid-create-add-cells-03.848222d7.png"},403:function(A,t){A.exports="data:image/png;base64,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"},404:function(A,t){A.exports="data:image/png;base64,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"},926:function(A,t,e){"use strict";e.r(t);var i=e(2),o=Object(i.a)({},(function(){var A=this,t=A._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[t("h1",{attrs:{id:"grid-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-creation"}},[A._v("#")]),A._v(" Grid Creation")]),A._v(" "),t("p",[A._v("In this tutorial you will learn how to create a simple grid.")]),A._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[A._v("Note")]),A._v(" "),t("p",[A._v("In case you need more detailed information, please check the "),t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[A._v("AsTeRICS Grid user manual")])],1),A._v(".")])]),A._v(" "),t("h2",{attrs:{id:"asterics-grid-web-application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid-web-application"}},[A._v("#")]),A._v(" AsTeRICS Grid web application")]),A._v(" "),t("p",[A._v("AsTeRICS Grid is the web application to run and manage grids for AAC.")]),A._v(" "),t("p",[A._v("If you open the link "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[A._v("https://grid.asterics.eu"),t("OutboundLink")],1),A._v(", the default grid is opened in your browser and saved locally on your device in the browser cache. All modifications are also saved to your local version of the grid from now on.")]),A._v(" "),t("h2",{attrs:{id:"create-new-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-new-grid"}},[A._v("#")]),A._v(" Create New grid")]),A._v(" "),t("p",[A._v("To create a new grid do the following steps")]),A._v(" "),t("ol",[t("li",[A._v("Click on "),t("code",[A._v("Manage grids")])]),A._v(" "),t("li",[A._v("Click on "),t("code",[A._v("New Grid")])]),A._v(" "),t("li",[A._v("Enter the name of the new grid at the bottom of the page and click on the check mark button.\n"),t("img",{attrs:{src:e(399),alt:"Screenshot with textfield for new grid name"}})])]),A._v(" "),t("p",[A._v("The new grid is added to the bottom of the list of "),t("code",[A._v("Saved Grids")]),A._v(".")]),A._v(" "),t("h2",{attrs:{id:"add-cells"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-cells"}},[A._v("#")]),A._v(" Add cells")]),A._v(" "),t("p",[A._v("Now you must add cells to the newly created grid. You can do this by the following steps:")]),A._v(" "),t("ol",[t("li",[A._v("Clicking on the "),t("code",[A._v("Edit")]),A._v(" button of the new grid.")]),A._v(" "),t("li",[A._v("Click on the "),t("code",[A._v("Create new elements")]),A._v(" link.\n"),t("img",{attrs:{src:e(400),alt:"Screenshot with link to create new elements"}})]),A._v(" "),t("li",[A._v("Enter the labels of multiple cells in the textfield\n"),t("img",{attrs:{src:e(401),alt:"Screenshot with button Edit highlighted"}})]),A._v(" "),t("li",[A._v("Click on "),t("code",[A._v("Insert elements")])])]),A._v(" "),t("p",[A._v("Finally the grid should look like in the picture below.\n"),t("img",{attrs:{src:e(402),alt:"Screenshot with grid"}})]),A._v(" "),t("h2",{attrs:{id:"adapt-layout"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adapt-layout"}},[A._v("#")]),A._v(" Adapt layout")]),A._v(" "),t("p",[A._v("Now you can change the size and layout of the cells.")]),A._v(" "),t("h3",{attrs:{id:"change-size"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-size"}},[A._v("#")]),A._v(" Change size")]),A._v(" "),t("p",[A._v("To change the size of the cell, click on the right bottom corner and drag it until the target size is reached.\n"),t("img",{attrs:{src:e(403),alt:"Screenshot with grid and resizing a cell"}})]),A._v(" "),t("h3",{attrs:{id:"change-position"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-position"}},[A._v("#")]),A._v(" Change position")]),A._v(" "),t("p",[A._v("To change the position of a cell, click on it and drag it to the new target position.")]),A._v(" "),t("h3",{attrs:{id:"more-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#more-options"}},[A._v("#")]),A._v(" More options")]),A._v(" "),t("p",[A._v("There are many more options to add or delete cells or to do automatic layout. The options can be found by clicking on the "),t("code",[A._v("More")]),A._v(" button.")]),A._v(" "),t("h3",{attrs:{id:"close-edit-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#close-edit-mode"}},[A._v("#")]),A._v(" Close Edit mode")]),A._v(" "),t("p",[A._v("After you have finished all changes, you must close the edit mode for being able to use the grid. You can do this by clicking on the button "),t("code",[A._v("Back")]),A._v(" in the top menu.")]),A._v(" "),t("h2",{attrs:{id:"conclusion"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[A._v("#")]),A._v(" Conclusion")]),A._v(" "),t("p",[A._v("Now you know how to create a new grid it should look like in the picture below.")]),A._v(" "),t("p",[t("img",{attrs:{src:e(404),alt:"Screenshot with final grid having 4 cells"}})])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/220.3d1b800c.js b/assets/js/220.0fb6f473.js similarity index 97% rename from assets/js/220.3d1b800c.js rename to assets/js/220.0fb6f473.js index 032514bf14..f2f322a0f1 100644 --- a/assets/js/220.3d1b800c.js +++ b/assets/js/220.0fb6f473.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[220],{1179:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"osc-gesture-follower"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#osc-gesture-follower"}},[e._v("#")]),e._v(" Osc Gesture Follower")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("The OscGestureFollower component copules the ARE with the external gesture recognition software GestureFollower. The program is copyrighted by IRCAM. GestureFollower is stored in the ARE subfolder tools/GestureFollower. Gesture data can be stored and loaded from files in this subdirectory, these files have the extension “.mubu”. The communication between GestureFollower and the ARE is based on the OpenSoundControl (OSC) protocol. This plugin utilizes the NetUtil java library (http://www.sciss.de/netutil/) for the OSC implementation, it is ©opyrighted 2004-2011 by Hanns Holger Rutz and released under the GNU Lesser General Public License.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(741),alt:"OscGestureFollower howto",title:"OscGestureFollower howto"}})]),e._v(" "),t("p",[e._v("OscGestureFollower howto")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("The plugin requires the gfOSC_v1.exe in subfolder tools/GestureFollower, which implements the actual gesture follower algorithms.")]),e._v(" "),t("li",[e._v("Check your firewall configuration and network settings to ensure that OSC messages are not blocked.")])]),e._v(" "),t("h2",{attrs:{id:"functional-principle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-principle"}},[e._v("#")]),e._v(" Functional Principle")]),e._v(" "),t("p",[e._v("Input data is received through CH1 to CH4 e.g. from sensors like the acceleration measurement unit. Not all inputs must be connected, but the synchronized checkboxes have to be checked correct. The events must be connected like illustrated in the picture. First the gestures must be teached in. To teach in the first gesture, send an event into the ‘learn1’ eventListener. After finishing the first gesture, send an event to ‘learn2’ to teach in the second gesture, and so on. After all gestures are teached in, send the ‘stoplearn’ event. To clear all gestures send the ‘clear’ event. To start the gesture recognition process, send the ‘follow’ event. To stop the gesture following process, send the ‘stop’ event. The ‘load’ and ‘save’ events can be used to load or store the learned gesture data into the given filename.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CH1 - CH4 [double]:")]),e._v(" The input port which receive data values. "),t("strong",[e._v("These 4 input ports support synchronization")])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("likeliest [double]:")]),e._v(" While the gesturefollower is in ‘follwing mode’ the most likeliest gesture is indicated on the likeliest output port. Before it can sample the input data and recognize a gesture, some data must be teached in.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("InPort [integer]:")]),e._v(" This value specifies the Port where OscMessages form the gesture follower are received.")]),e._v(" "),t("li",[t("strong",[e._v("OutPort [integer]:")]),e._v(" This value specifies the Port where OscMessages are send to.")]),e._v(" "),t("li",[t("strong",[e._v("filename [string]:")]),e._v(" Filename for the gesture data (load or save, .mubu file stored in the ARE subfoler tools/GestureFollower/). "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")]),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-ports"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-ports"}},[e._v("#")]),e._v(" Event Listener Ports")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stop:")]),e._v(" this event stops the gesture following")]),e._v(" "),t("li",[t("strong",[e._v("stoplearn:")]),e._v(" this event stops the gesture learning process")]),e._v(" "),t("li",[t("strong",[e._v("learn1 - learn5:")]),e._v(" these events select gestures 1 - 5 for learning")]),e._v(" "),t("li",[t("strong",[e._v("learn1 - learn5:")]),e._v(" these events select gestures 1 - 5 for learning")]),e._v(" "),t("li",[t("strong",[e._v("clear:")]),e._v(" this event clears learned gestures")]),e._v(" "),t("li",[t("strong",[e._v("follow:")]),e._v(" this event starts the gesture recognition phase")]),e._v(" "),t("li",[t("strong",[e._v("load:")]),e._v(" this event loads gesture data from file")]),e._v(" "),t("li",[t("strong",[e._v("save:")]),e._v(" this event saves gesture data to file")])]),e._v(" "),t("h2",{attrs:{id:"referred-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#referred-plugins"}},[e._v("#")]),e._v(" Referred Plugins")]),e._v(" "),t("ul",[t("li",[e._v("OscOutClient")]),e._v(" "),t("li",[e._v("OpenVibe")]),e._v(" "),t("li",[e._v("OscServer")])])])}),[],!1,null,null,null);t.default=o.exports},741:function(e,t,s){e.exports=s.p+"assets/img/oscgesturefollower.2b835bc5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[220],{1179:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"osc-gesture-follower"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#osc-gesture-follower"}},[e._v("#")]),e._v(" Osc Gesture Follower")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("The OscGestureFollower component copules the ARE with the external gesture recognition software GestureFollower. The program is copyrighted by IRCAM. GestureFollower is stored in the ARE subfolder tools/GestureFollower. Gesture data can be stored and loaded from files in this subdirectory, these files have the extension “.mubu”. The communication between GestureFollower and the ARE is based on the OpenSoundControl (OSC) protocol. This plugin utilizes the NetUtil java library (http://www.sciss.de/netutil/) for the OSC implementation, it is ©opyrighted 2004-2011 by Hanns Holger Rutz and released under the GNU Lesser General Public License.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(743),alt:"OscGestureFollower howto",title:"OscGestureFollower howto"}})]),e._v(" "),t("p",[e._v("OscGestureFollower howto")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("The plugin requires the gfOSC_v1.exe in subfolder tools/GestureFollower, which implements the actual gesture follower algorithms.")]),e._v(" "),t("li",[e._v("Check your firewall configuration and network settings to ensure that OSC messages are not blocked.")])]),e._v(" "),t("h2",{attrs:{id:"functional-principle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-principle"}},[e._v("#")]),e._v(" Functional Principle")]),e._v(" "),t("p",[e._v("Input data is received through CH1 to CH4 e.g. from sensors like the acceleration measurement unit. Not all inputs must be connected, but the synchronized checkboxes have to be checked correct. The events must be connected like illustrated in the picture. First the gestures must be teached in. To teach in the first gesture, send an event into the ‘learn1’ eventListener. After finishing the first gesture, send an event to ‘learn2’ to teach in the second gesture, and so on. After all gestures are teached in, send the ‘stoplearn’ event. To clear all gestures send the ‘clear’ event. To start the gesture recognition process, send the ‘follow’ event. To stop the gesture following process, send the ‘stop’ event. The ‘load’ and ‘save’ events can be used to load or store the learned gesture data into the given filename.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CH1 - CH4 [double]:")]),e._v(" The input port which receive data values. "),t("strong",[e._v("These 4 input ports support synchronization")])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("likeliest [double]:")]),e._v(" While the gesturefollower is in ‘follwing mode’ the most likeliest gesture is indicated on the likeliest output port. Before it can sample the input data and recognize a gesture, some data must be teached in.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("InPort [integer]:")]),e._v(" This value specifies the Port where OscMessages form the gesture follower are received.")]),e._v(" "),t("li",[t("strong",[e._v("OutPort [integer]:")]),e._v(" This value specifies the Port where OscMessages are send to.")]),e._v(" "),t("li",[t("strong",[e._v("filename [string]:")]),e._v(" Filename for the gesture data (load or save, .mubu file stored in the ARE subfoler tools/GestureFollower/). "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")]),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-ports"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-ports"}},[e._v("#")]),e._v(" Event Listener Ports")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stop:")]),e._v(" this event stops the gesture following")]),e._v(" "),t("li",[t("strong",[e._v("stoplearn:")]),e._v(" this event stops the gesture learning process")]),e._v(" "),t("li",[t("strong",[e._v("learn1 - learn5:")]),e._v(" these events select gestures 1 - 5 for learning")]),e._v(" "),t("li",[t("strong",[e._v("learn1 - learn5:")]),e._v(" these events select gestures 1 - 5 for learning")]),e._v(" "),t("li",[t("strong",[e._v("clear:")]),e._v(" this event clears learned gestures")]),e._v(" "),t("li",[t("strong",[e._v("follow:")]),e._v(" this event starts the gesture recognition phase")]),e._v(" "),t("li",[t("strong",[e._v("load:")]),e._v(" this event loads gesture data from file")]),e._v(" "),t("li",[t("strong",[e._v("save:")]),e._v(" this event saves gesture data to file")])]),e._v(" "),t("h2",{attrs:{id:"referred-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#referred-plugins"}},[e._v("#")]),e._v(" Referred Plugins")]),e._v(" "),t("ul",[t("li",[e._v("OscOutClient")]),e._v(" "),t("li",[e._v("OpenVibe")]),e._v(" "),t("li",[e._v("OscServer")])])])}),[],!1,null,null,null);t.default=o.exports},743:function(e,t,s){e.exports=s.p+"assets/img/oscgesturefollower.2b835bc5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/221.7447d547.js b/assets/js/221.d0835a1c.js similarity index 97% rename from assets/js/221.7447d547.js rename to assets/js/221.d0835a1c.js index 33a6c3beb7..04bb4c1cc6 100644 --- a/assets/js/221.7447d547.js +++ b/assets/js/221.d0835a1c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[221],{1182:function(e,t,n){"use strict";n.r(t);var i=n(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"oskaexternalscanning1d"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oskaexternalscanning1d"}},[e._v("#")]),e._v(" OskaExternalScanning1D")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: OSKA)")]),e._v(" "),t("p",[e._v("This component interacts with the On Screen Keyboard Application (OSKA) and forwards key selections and command (action-) strings to other ARE plugins. The scanning function of OSKA can be controlled via this plugin, allowing 1-dimensional input values to be used for direct scanning position selection. This is done in a two-step fashion where first the columns are highlighted and then keys of a column are highlighted. Selection of columns and cells is performed upon incoming events. The event input ports allow switching from row- to column scanning, moving the cell highlighter and selecting a cell.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(744),alt:"Screenshot: OskaExternalScanning1D plugin",title:"Screenshot: OskaExternalScanning1D plugin"}})]),e._v(" "),t("p",[e._v("OskaExternalScanning1D plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v('This component requires Sensory Software’s OSKA keyboard. OSKA is automatically started by the plugin if it is located in the expected path ("…/OSKA/Start Keyboard.exe").')]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("posKey [double]:")]),e._v(" This port takes values for the selection of keys (respectively columns). Depending on the value of the property “inputRange”, the incoming values are expected to be in a range from 0 to 1 (where 0 represents the first selection and 1 the last) or they identifiy the absolute key/column position as integer values. The input moves either the highlighted column or the highlighted key in the selected column to the corresponding position. A selection of the currently highlighted item can be triggered by incoming events.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" This output sends the action strings (which have been added to a key in the OSKA editor) when this key is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("keycodes [string]:")]),e._v(" If a key is selected which contains the “@KDB: …” action string, the key codes are extracted from the action string and sent via this port, e.g. to the remoteKeyboard plugin’s corresponding input port for keyboard input emulation.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("switch:")]),e._v(" Incoming events will trigger a state change in the scanning state machine. On the first press highlighting will switch from column highlighting to cell highlighting. On the second press, the currently highlighted OSKA cell will be selected.")]),e._v(" "),t("li",[t("strong",[e._v("highlightNext:")]),e._v(" Incoming events highlight the next column (or cell in a column).")]),e._v(" "),t("li",[t("strong",[e._v("highlightPrev:")]),e._v(" Incoming events highlight the previous column (or cell in a column).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut10:")]),e._v(" These events can be triggered by selecting a cell which contains an @OSKA,event … action string, (for example @OSKA,event 3).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This property defines the TCP port that the component listens on for connections of the OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("title [string]:")]),e._v(" This property defines the caption to be displayed in OSKA?s title bar.")]),e._v(" "),t("li",[t("strong",[e._v("oskaPath [string]:")]),e._v(" The absolute path to the OSKA player as well as the program name is needed in order for the component to start OSKA by itself.")]),e._v(" "),t("li",[t("strong",[e._v("keyboardPath [string]:")]),e._v(" If this property does not hold an empty string, the component will ask OSKA to load the keyboard referred to by this property. When the ACS is synchronized with the ARE (connected and model deployed) available keyboards can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("highlightStyle [integer]:")]),e._v(" This property selects the style of highlighting used in OSKA, the value range is from 0 to 2.")]),e._v(" "),t("li",[t("strong",[e._v("settingsFile [string]:")]),e._v(" if this property is not empty OSKA will be started with this settings file as a command line parameter. When the ACS is synchronized with the ARE (connected and model deployed) available settings files can be selected from a drop-down listbox "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("windowDecorated [boolean]:")]),e._v(" if true, Oska will display a decorated window frame, otherwise only a lightweight frame.")]),e._v(" "),t("li",[t("strong",[e._v("eventScanningEnabled [boolean]:")]),e._v(" if true, incoming events can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("valueScanningEnabled [boolean]:")]),e._v(" if true, incoming values can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("inputRange [boolean] (combobox):")]),e._v(" the range of the incoming input port values: either float values between 0 and 1, or integer values or integer values from 0 to the maximum element (number of cells in a respective row or column of the grid).")]),e._v(" "),t("li",[t("strong",[e._v("resizeEnabled [boolean]:")]),e._v(" if true, the Oska will be resized to the dimensions specified in the GUI designer (slower).")])])])}),[],!1,null,null,null);t.default=o.exports},744:function(e,t,n){e.exports=n.p+"assets/img/oskaexternalscanning1d.cfe422d9.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[221],{1178:function(e,t,n){"use strict";n.r(t);var i=n(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"oskaexternalscanning1d"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oskaexternalscanning1d"}},[e._v("#")]),e._v(" OskaExternalScanning1D")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: OSKA)")]),e._v(" "),t("p",[e._v("This component interacts with the On Screen Keyboard Application (OSKA) and forwards key selections and command (action-) strings to other ARE plugins. The scanning function of OSKA can be controlled via this plugin, allowing 1-dimensional input values to be used for direct scanning position selection. This is done in a two-step fashion where first the columns are highlighted and then keys of a column are highlighted. Selection of columns and cells is performed upon incoming events. The event input ports allow switching from row- to column scanning, moving the cell highlighter and selecting a cell.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(742),alt:"Screenshot: OskaExternalScanning1D plugin",title:"Screenshot: OskaExternalScanning1D plugin"}})]),e._v(" "),t("p",[e._v("OskaExternalScanning1D plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v('This component requires Sensory Software’s OSKA keyboard. OSKA is automatically started by the plugin if it is located in the expected path ("…/OSKA/Start Keyboard.exe").')]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("posKey [double]:")]),e._v(" This port takes values for the selection of keys (respectively columns). Depending on the value of the property “inputRange”, the incoming values are expected to be in a range from 0 to 1 (where 0 represents the first selection and 1 the last) or they identifiy the absolute key/column position as integer values. The input moves either the highlighted column or the highlighted key in the selected column to the corresponding position. A selection of the currently highlighted item can be triggered by incoming events.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" This output sends the action strings (which have been added to a key in the OSKA editor) when this key is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("keycodes [string]:")]),e._v(" If a key is selected which contains the “@KDB: …” action string, the key codes are extracted from the action string and sent via this port, e.g. to the remoteKeyboard plugin’s corresponding input port for keyboard input emulation.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("switch:")]),e._v(" Incoming events will trigger a state change in the scanning state machine. On the first press highlighting will switch from column highlighting to cell highlighting. On the second press, the currently highlighted OSKA cell will be selected.")]),e._v(" "),t("li",[t("strong",[e._v("highlightNext:")]),e._v(" Incoming events highlight the next column (or cell in a column).")]),e._v(" "),t("li",[t("strong",[e._v("highlightPrev:")]),e._v(" Incoming events highlight the previous column (or cell in a column).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut10:")]),e._v(" These events can be triggered by selecting a cell which contains an @OSKA,event … action string, (for example @OSKA,event 3).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This property defines the TCP port that the component listens on for connections of the OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("title [string]:")]),e._v(" This property defines the caption to be displayed in OSKA?s title bar.")]),e._v(" "),t("li",[t("strong",[e._v("oskaPath [string]:")]),e._v(" The absolute path to the OSKA player as well as the program name is needed in order for the component to start OSKA by itself.")]),e._v(" "),t("li",[t("strong",[e._v("keyboardPath [string]:")]),e._v(" If this property does not hold an empty string, the component will ask OSKA to load the keyboard referred to by this property. When the ACS is synchronized with the ARE (connected and model deployed) available keyboards can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("highlightStyle [integer]:")]),e._v(" This property selects the style of highlighting used in OSKA, the value range is from 0 to 2.")]),e._v(" "),t("li",[t("strong",[e._v("settingsFile [string]:")]),e._v(" if this property is not empty OSKA will be started with this settings file as a command line parameter. When the ACS is synchronized with the ARE (connected and model deployed) available settings files can be selected from a drop-down listbox "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("windowDecorated [boolean]:")]),e._v(" if true, Oska will display a decorated window frame, otherwise only a lightweight frame.")]),e._v(" "),t("li",[t("strong",[e._v("eventScanningEnabled [boolean]:")]),e._v(" if true, incoming events can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("valueScanningEnabled [boolean]:")]),e._v(" if true, incoming values can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("inputRange [boolean] (combobox):")]),e._v(" the range of the incoming input port values: either float values between 0 and 1, or integer values or integer values from 0 to the maximum element (number of cells in a respective row or column of the grid).")]),e._v(" "),t("li",[t("strong",[e._v("resizeEnabled [boolean]:")]),e._v(" if true, the Oska will be resized to the dimensions specified in the GUI designer (slower).")])])])}),[],!1,null,null,null);t.default=o.exports},742:function(e,t,n){e.exports=n.p+"assets/img/oskaexternalscanning1d.cfe422d9.jpg"}}]); \ No newline at end of file diff --git a/assets/js/222.6ec8c9f3.js b/assets/js/222.e1c8e948.js similarity index 98% rename from assets/js/222.6ec8c9f3.js rename to assets/js/222.e1c8e948.js index 7b48406b6d..9d521e19ae 100644 --- a/assets/js/222.6ec8c9f3.js +++ b/assets/js/222.e1c8e948.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[222],{1181:function(e,t,n){"use strict";n.r(t);var i=n(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"oska-external-scanning2d"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oska-external-scanning2d"}},[e._v("#")]),e._v(" Oska External Scanning2D")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: OSKA)")]),e._v(" "),t("p",[e._v("This component interacts with the On Screen Keyboard Application (OSKA) and forwards key selections and command (action-) strings to other ARE plugins. The scanning function of OSKA can be controlled via this plugin, allowing 1-dimensional input values to be used for direct scanning position selection. Scanning is operated using two float inputs which take inputs in a range defined by the according property (between 0.0 and 1.0. or integer values). The two inputs control the position of the highlighted cell in a grid with values being mapped to a corresponding position in the grid. An event input allows pressing selected cells in the grid.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(743),alt:"Screenshot: OskaExternalScanning2D plugin",title:"Screenshot: OskaExternalScanning2D plugin"}})]),e._v(" "),t("p",[e._v("OskaExternalScanning2D plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v('This component requires Sensory Software’s OSKA keyboard. OSKA is automatically started by the plugin if it is located in the expected path ("…/OSKA/Start Keyboard.exe").')]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("posColumn [double]:")]),e._v(" This port takes values for the selection of the X-position (column selection). Depending on the value of the property “inputRange”, the incoming values are expected to be in a range from 0 to 1 (where 0 represents the first column and 1 the last) or they identifiy the absolute column position as integer values. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("posRow [double]:")]),e._v(" This port takes values for the selection of the Y-position (row selection). Depending on the value of the property “inputRange”, the incoming values are expected to be in a range from 0 to 1 (where 0 represents the first row and 1 the last) or they identifiy the absolute row position as integer values. "),t("strong",[e._v("This input port supports synchronization")])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" This output sends the action strings (which have been added to a key in the OSKA editor) when this key is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("keycodes [string]:")]),e._v(" If a key is selected which contains the “@KDB: …” action string, the key codes are extracted from the action string and sent via this port, e.g. to the remoteKeyboard plugin’s corresponding input port for keyboard input emulation.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("press:")]),e._v(" Incoming events will trigger a press action on the selected key in OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("highlightNextX:")]),e._v(" Incoming events will highlight the next cell in the selected row.")]),e._v(" "),t("li",[t("strong",[e._v("highlightPrevX:")]),e._v(" Incoming events will highlight the previous cell in the selected row.")]),e._v(" "),t("li",[t("strong",[e._v("highlightNextY:")]),e._v(" Incoming events will highlight the next cell in the selected column.")]),e._v(" "),t("li",[t("strong",[e._v("highlightPrevY:")]),e._v(" Incoming events will highlight the previous cell in the selected column.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut10:")]),e._v(" These events can be triggered by selecting a cell which contains an @OSKA,event … action string, (for example @OSKA,event 3).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This property defines the TCP port that the component listens on for connections of the OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("title [string]:")]),e._v(" This property defines the caption to be displayed in OSKA?s title bar.")]),e._v(" "),t("li",[t("strong",[e._v("oskaPath [string]:")]),e._v(" The absolute path to the OSKA player as well as the program name is needed in order for the component to start OSKA by itself.")]),e._v(" "),t("li",[t("strong",[e._v("keyboardPath [string]:")]),e._v(" If this property does not hold an empty string, the component will ask OSKA to load the keyboard referred to by this property. When the ACS is synchronized with the ARE (connected and model deployed) available keyboards can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("highlightStyle [integer]:")]),e._v(" This property selects the style of highlighting used in OSKA, the value range is from 0 to 2.")]),e._v(" "),t("li",[t("strong",[e._v("highlightResetPosition [integer]:")]),e._v(" This property selects the behaviour of the highlighter after a key has been pressed (do nothing / got to top left / got to center / got to bottom right).")]),e._v(" "),t("li",[t("strong",[e._v("settingsFile [string]:")]),e._v(" if this property is not empty OSKA will be started with this settings file as a command line parameter. When the ACS is synchronized with the ARE (connected and model deployed) available settings files can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("windowDecorated [boolean]:")]),e._v(" if true Oska will display a decorated window frame, otherwise only a lightweight frame.")]),e._v(" "),t("li",[t("strong",[e._v("eventScanningEnabled [boolean]:")]),e._v(" if true, incoming events can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("valueScanningEnabled [boolean]:")]),e._v(" if true, incoming values can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("inputRange [boolean] (combobox):")]),e._v(" the range of the incoming input port values: either float values between 0 and 1, or integer values or integer values from 0 to the maximum element (number of cells in a respective row or column of the grid).")]),e._v(" "),t("li",[t("strong",[e._v("resizeEnabled [boolean]:")]),e._v(" if true, the Oska will be resized to the dimensions specified in the GUI designer (slower).")])])])}),[],!1,null,null,null);t.default=o.exports},743:function(e,t,n){e.exports=n.p+"assets/img/oskaexternalscanning2d.ffabad8e.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[222],{1181:function(e,t,n){"use strict";n.r(t);var i=n(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"oska-external-scanning2d"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oska-external-scanning2d"}},[e._v("#")]),e._v(" Oska External Scanning2D")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: OSKA)")]),e._v(" "),t("p",[e._v("This component interacts with the On Screen Keyboard Application (OSKA) and forwards key selections and command (action-) strings to other ARE plugins. The scanning function of OSKA can be controlled via this plugin, allowing 1-dimensional input values to be used for direct scanning position selection. Scanning is operated using two float inputs which take inputs in a range defined by the according property (between 0.0 and 1.0. or integer values). The two inputs control the position of the highlighted cell in a grid with values being mapped to a corresponding position in the grid. An event input allows pressing selected cells in the grid.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(745),alt:"Screenshot: OskaExternalScanning2D plugin",title:"Screenshot: OskaExternalScanning2D plugin"}})]),e._v(" "),t("p",[e._v("OskaExternalScanning2D plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v('This component requires Sensory Software’s OSKA keyboard. OSKA is automatically started by the plugin if it is located in the expected path ("…/OSKA/Start Keyboard.exe").')]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("posColumn [double]:")]),e._v(" This port takes values for the selection of the X-position (column selection). Depending on the value of the property “inputRange”, the incoming values are expected to be in a range from 0 to 1 (where 0 represents the first column and 1 the last) or they identifiy the absolute column position as integer values. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("posRow [double]:")]),e._v(" This port takes values for the selection of the Y-position (row selection). Depending on the value of the property “inputRange”, the incoming values are expected to be in a range from 0 to 1 (where 0 represents the first row and 1 the last) or they identifiy the absolute row position as integer values. "),t("strong",[e._v("This input port supports synchronization")])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" This output sends the action strings (which have been added to a key in the OSKA editor) when this key is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("keycodes [string]:")]),e._v(" If a key is selected which contains the “@KDB: …” action string, the key codes are extracted from the action string and sent via this port, e.g. to the remoteKeyboard plugin’s corresponding input port for keyboard input emulation.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("press:")]),e._v(" Incoming events will trigger a press action on the selected key in OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("highlightNextX:")]),e._v(" Incoming events will highlight the next cell in the selected row.")]),e._v(" "),t("li",[t("strong",[e._v("highlightPrevX:")]),e._v(" Incoming events will highlight the previous cell in the selected row.")]),e._v(" "),t("li",[t("strong",[e._v("highlightNextY:")]),e._v(" Incoming events will highlight the next cell in the selected column.")]),e._v(" "),t("li",[t("strong",[e._v("highlightPrevY:")]),e._v(" Incoming events will highlight the previous cell in the selected column.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut10:")]),e._v(" These events can be triggered by selecting a cell which contains an @OSKA,event … action string, (for example @OSKA,event 3).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This property defines the TCP port that the component listens on for connections of the OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("title [string]:")]),e._v(" This property defines the caption to be displayed in OSKA?s title bar.")]),e._v(" "),t("li",[t("strong",[e._v("oskaPath [string]:")]),e._v(" The absolute path to the OSKA player as well as the program name is needed in order for the component to start OSKA by itself.")]),e._v(" "),t("li",[t("strong",[e._v("keyboardPath [string]:")]),e._v(" If this property does not hold an empty string, the component will ask OSKA to load the keyboard referred to by this property. When the ACS is synchronized with the ARE (connected and model deployed) available keyboards can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("highlightStyle [integer]:")]),e._v(" This property selects the style of highlighting used in OSKA, the value range is from 0 to 2.")]),e._v(" "),t("li",[t("strong",[e._v("highlightResetPosition [integer]:")]),e._v(" This property selects the behaviour of the highlighter after a key has been pressed (do nothing / got to top left / got to center / got to bottom right).")]),e._v(" "),t("li",[t("strong",[e._v("settingsFile [string]:")]),e._v(" if this property is not empty OSKA will be started with this settings file as a command line parameter. When the ACS is synchronized with the ARE (connected and model deployed) available settings files can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("windowDecorated [boolean]:")]),e._v(" if true Oska will display a decorated window frame, otherwise only a lightweight frame.")]),e._v(" "),t("li",[t("strong",[e._v("eventScanningEnabled [boolean]:")]),e._v(" if true, incoming events can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("valueScanningEnabled [boolean]:")]),e._v(" if true, incoming values can move the highlighter.")]),e._v(" "),t("li",[t("strong",[e._v("inputRange [boolean] (combobox):")]),e._v(" the range of the incoming input port values: either float values between 0 and 1, or integer values or integer values from 0 to the maximum element (number of cells in a respective row or column of the grid).")]),e._v(" "),t("li",[t("strong",[e._v("resizeEnabled [boolean]:")]),e._v(" if true, the Oska will be resized to the dimensions specified in the GUI designer (slower).")])])])}),[],!1,null,null,null);t.default=o.exports},745:function(e,t,n){e.exports=n.p+"assets/img/oskaexternalscanning2d.ffabad8e.jpg"}}]); \ No newline at end of file diff --git a/assets/js/223.5855d9a5.js b/assets/js/223.dd3744c7.js similarity index 96% rename from assets/js/223.5855d9a5.js rename to assets/js/223.dd3744c7.js index 4ffe3f714d..d1bf4b4207 100644 --- a/assets/js/223.5855d9a5.js +++ b/assets/js/223.dd3744c7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[223],{1180:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"oska-internal-scanning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oska-internal-scanning"}},[e._v("#")]),e._v(" Oska Internal Scanning")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: OSKA)")]),e._v(" "),t("p",[e._v("This component interacts with the On Screen Keyboard Application (OSKA) and forwards key selections and command (action-) strings to other ARE plugins. OSKA is set to use its internal scanning methods and the component exposes the two button input events that Oska can work with.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(742),alt:"Screenshot: OskaInternalScanning plugin",title:"Screenshot: OskaInternalScanning plugin"}})]),e._v(" "),t("p",[e._v("OskaInternalScanning plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v('This component requires Sensory Software’s OSKA keyboard. OSKA is automatically started by the plugin if it is located in the expected path ("…/OSKA/Start Keyboard.exe").')]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" This output sends the action string which is attached to a specific key on the keyboard to connected components.")]),e._v(" "),t("li",[t("strong",[e._v("keycodes [string]:")]),e._v(" This output sends the key codes which are attached to a key via the @KDB command.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("increaseScanspeed:")]),e._v(" Incoming events will increase the internal scanning speed of OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("decreaseScanspeed:")]),e._v(" Incoming events will decrease the internal scanning speed of OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("pressSwitch1:")]),e._v(" Incoming events start the automatic scanning or switch to the next selection (to speed up the scanning).")]),e._v(" "),t("li",[t("strong",[e._v("pressSwitch2:")]),e._v(" Incoming events switch from column- to row scanning (or in the next step select the cell). If the scanning is stopped, it will be started.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut10:")]),e._v(" These events can be triggered by selecting a cell which contains an @OSKA,event … action string, (for example @OSKA,event 3).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This property defines the TCP port that the component listens on for connections of the OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("title [string]:")]),e._v(" This property defines the caption to be displayed in OSKA?s title bar.")]),e._v(" "),t("li",[t("strong",[e._v("oskaPath [string]:")]),e._v(" The absolute path to the OSKA player as well as the program name is needed in order for the component to start OSKA by itself.")]),e._v(" "),t("li",[t("strong",[e._v("keyboardPath [string]:")]),e._v(" If this property does not hold an empty string, the component will ask OSKA to load the keyboard referred to by this property. When the ACS is synchronized with the ARE (connected and model deployed) available keyboards can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("scanSpeed [integer]:")]),e._v(" This property relates to the internal row column scanning method of OSKA and sets the speed of scanning, the value range is between 1 and 10.")]),e._v(" "),t("li",[t("strong",[e._v("highlightStyle [integer]:")]),e._v(" This property selects the style of highlighting used in OSKA, the value range is from 0 to 2.")]),e._v(" "),t("li",[t("strong",[e._v("settingsFile [string]:")]),e._v(" if this property is not empty OSKA will be started with this settings file as a command line parameter. When the ACS is synchronized with the ARE (connected and model deployed) available settings files can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("windowDecorated [boolean]:")]),e._v(" if true, Oska will display a decorated window frame, otherwise only a lightweight frame.")]),e._v(" "),t("li",[t("strong",[e._v("resizeEnabled [boolean]:")]),e._v(" if true, the Oska will be resized to the dimensions specified in the GUI designer (slower).")])])])}),[],!1,null,null,null);t.default=i.exports},742:function(e,t,n){e.exports=n.p+"assets/img/oskainternalscanning.bfba2e29.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[223],{1182:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"oska-internal-scanning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oska-internal-scanning"}},[e._v("#")]),e._v(" Oska Internal Scanning")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: OSKA)")]),e._v(" "),t("p",[e._v("This component interacts with the On Screen Keyboard Application (OSKA) and forwards key selections and command (action-) strings to other ARE plugins. OSKA is set to use its internal scanning methods and the component exposes the two button input events that Oska can work with.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(746),alt:"Screenshot: OskaInternalScanning plugin",title:"Screenshot: OskaInternalScanning plugin"}})]),e._v(" "),t("p",[e._v("OskaInternalScanning plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v('This component requires Sensory Software’s OSKA keyboard. OSKA is automatically started by the plugin if it is located in the expected path ("…/OSKA/Start Keyboard.exe").')]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" This output sends the action string which is attached to a specific key on the keyboard to connected components.")]),e._v(" "),t("li",[t("strong",[e._v("keycodes [string]:")]),e._v(" This output sends the key codes which are attached to a key via the @KDB command.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("increaseScanspeed:")]),e._v(" Incoming events will increase the internal scanning speed of OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("decreaseScanspeed:")]),e._v(" Incoming events will decrease the internal scanning speed of OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("pressSwitch1:")]),e._v(" Incoming events start the automatic scanning or switch to the next selection (to speed up the scanning).")]),e._v(" "),t("li",[t("strong",[e._v("pressSwitch2:")]),e._v(" Incoming events switch from column- to row scanning (or in the next step select the cell). If the scanning is stopped, it will be started.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventOut1-eventOut10:")]),e._v(" These events can be triggered by selecting a cell which contains an @OSKA,event … action string, (for example @OSKA,event 3).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("port [integer]:")]),e._v(" This property defines the TCP port that the component listens on for connections of the OSKA.")]),e._v(" "),t("li",[t("strong",[e._v("title [string]:")]),e._v(" This property defines the caption to be displayed in OSKA?s title bar.")]),e._v(" "),t("li",[t("strong",[e._v("oskaPath [string]:")]),e._v(" The absolute path to the OSKA player as well as the program name is needed in order for the component to start OSKA by itself.")]),e._v(" "),t("li",[t("strong",[e._v("keyboardPath [string]:")]),e._v(" If this property does not hold an empty string, the component will ask OSKA to load the keyboard referred to by this property. When the ACS is synchronized with the ARE (connected and model deployed) available keyboards can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("scanSpeed [integer]:")]),e._v(" This property relates to the internal row column scanning method of OSKA and sets the speed of scanning, the value range is between 1 and 10.")]),e._v(" "),t("li",[t("strong",[e._v("highlightStyle [integer]:")]),e._v(" This property selects the style of highlighting used in OSKA, the value range is from 0 to 2.")]),e._v(" "),t("li",[t("strong",[e._v("settingsFile [string]:")]),e._v(" if this property is not empty OSKA will be started with this settings file as a command line parameter. When the ACS is synchronized with the ARE (connected and model deployed) available settings files can be selected from a drop-down listbox. (dynamic property)")]),e._v(" "),t("li",[t("strong",[e._v("windowDecorated [boolean]:")]),e._v(" if true, Oska will display a decorated window frame, otherwise only a lightweight frame.")]),e._v(" "),t("li",[t("strong",[e._v("resizeEnabled [boolean]:")]),e._v(" if true, the Oska will be resized to the dimensions specified in the GUI designer (slower).")])])])}),[],!1,null,null,null);t.default=i.exports},746:function(e,t,n){e.exports=n.p+"assets/img/oskainternalscanning.bfba2e29.jpg"}}]); \ No newline at end of file diff --git a/assets/js/224.4fe90256.js b/assets/js/224.6e13107c.js similarity index 93% rename from assets/js/224.4fe90256.js rename to assets/js/224.6e13107c.js index a623d15587..0e28ae57cd 100644 --- a/assets/js/224.4fe90256.js +++ b/assets/js/224.6e13107c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[224],{1183:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"path-multiplexer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#path-multiplexer"}},[t._v("#")]),t._v(" Path Multiplexer")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The Path Multiplexer component forwards signal from the selected input port to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(745),alt:"Screenshot: PathMultiplexer plugin",title:"Screenshot: PathMultiplexer plugin"}})]),t._v(" "),e("p",[t._v("PathMultiplexer plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1 to input4 [double]:")]),t._v(" The input ports for signals to be multiplexed 1…4.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v("[double]**")]),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("* The output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("passPort1 to passPort4:")]),t._v(" The event send to this port sets the forwarding signal from the appropriate input port:1…4 to the output port.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passNextPort:")]),t._v(" The event send to this port sets the forwarding signal from the next input port. If the current used is the port defined by the number property, the signal will be forward from the input port 1.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passPreviousPort:")]),t._v(" The event send to this port sets the forwarding signal from the previous input port. If the current used is the port 1, the signal will be forward from the input port defined by the number property.")])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("number [integer]:")]),t._v(" The maximum port number in use (can be 1 to 4).")])])])}),[],!1,null,null,null);e.default=o.exports},745:function(t,e,r){t.exports=r.p+"assets/img/pathmultiplexer.22710744.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[224],{1180:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"path-multiplexer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#path-multiplexer"}},[t._v("#")]),t._v(" Path Multiplexer")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The Path Multiplexer component forwards signal from the selected input port to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(744),alt:"Screenshot: PathMultiplexer plugin",title:"Screenshot: PathMultiplexer plugin"}})]),t._v(" "),e("p",[t._v("PathMultiplexer plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1 to input4 [double]:")]),t._v(" The input ports for signals to be multiplexed 1…4.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v("[double]**")]),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("* The output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("passPort1 to passPort4:")]),t._v(" The event send to this port sets the forwarding signal from the appropriate input port:1…4 to the output port.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passNextPort:")]),t._v(" The event send to this port sets the forwarding signal from the next input port. If the current used is the port defined by the number property, the signal will be forward from the input port 1.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passPreviousPort:")]),t._v(" The event send to this port sets the forwarding signal from the previous input port. If the current used is the port 1, the signal will be forward from the input port defined by the number property.")])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("number [integer]:")]),t._v(" The maximum port number in use (can be 1 to 4).")])])])}),[],!1,null,null,null);e.default=o.exports},744:function(t,e,r){t.exports=r.p+"assets/img/pathmultiplexer.22710744.jpg"}}]); \ No newline at end of file diff --git a/assets/js/225.98fdc58a.js b/assets/js/225.8b3109c6.js similarity index 93% rename from assets/js/225.98fdc58a.js rename to assets/js/225.8b3109c6.js index b0f0b61bf0..a44a9ddf4f 100644 --- a/assets/js/225.98fdc58a.js +++ b/assets/js/225.8b3109c6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[225],{1187:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"pathselector"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#pathselector"}},[t._v("#")]),t._v(" Pathselector")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The pathselector component allows routing of an incoming numerical signal between up to 4 output ports. The desired output port can be directly selected by a dedicated event listener port, or the signal can be switched to the next or previous output port. This component can be used to utilize one particular signal for different purposes, e.g. controlling different actuators within a single model by sequentially switching between them.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(749),alt:"Screenshot: PathSelector plugin",title:"Screenshot: PathSelector plugin"}})]),t._v(" "),e("p",[t._v("PathSelector plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" The incoming signal to be routed.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 to out4:")]),t._v(" Four output ports where the incoming signal can be routed to.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("select1 to select4:")]),t._v(" An incoming event at these ports directly activates the associated output path (e.g. as an event comes in at select 3, the input signal will be routed to out3.")]),t._v(" "),e("li",[e("strong",[t._v("selectNext:")]),t._v(" The next output port is selected for signal output. The maximum number of active ports is set via the active ports property. If the current number of active ports is already the maximum one, the select next event will wrap around the active port number and one port will be selected.")]),t._v(" "),e("li",[e("strong",[t._v("selectPrevious:")]),t._v(" The previous output port is selected for signal output. If the current port is out1, the select previous event will switch to the port with the maximum number given by the active ports property.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("activePorts [integer]:")]),t._v(" The maximum port number in use (can be 2 to 4).")])])])}),[],!1,null,null,null);e.default=s.exports},749:function(t,e,r){t.exports=r.p+"assets/img/pathselector.972367d5.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[225],{1183:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"pathselector"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#pathselector"}},[t._v("#")]),t._v(" Pathselector")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The pathselector component allows routing of an incoming numerical signal between up to 4 output ports. The desired output port can be directly selected by a dedicated event listener port, or the signal can be switched to the next or previous output port. This component can be used to utilize one particular signal for different purposes, e.g. controlling different actuators within a single model by sequentially switching between them.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(747),alt:"Screenshot: PathSelector plugin",title:"Screenshot: PathSelector plugin"}})]),t._v(" "),e("p",[t._v("PathSelector plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" The incoming signal to be routed.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 to out4:")]),t._v(" Four output ports where the incoming signal can be routed to.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("select1 to select4:")]),t._v(" An incoming event at these ports directly activates the associated output path (e.g. as an event comes in at select 3, the input signal will be routed to out3.")]),t._v(" "),e("li",[e("strong",[t._v("selectNext:")]),t._v(" The next output port is selected for signal output. The maximum number of active ports is set via the active ports property. If the current number of active ports is already the maximum one, the select next event will wrap around the active port number and one port will be selected.")]),t._v(" "),e("li",[e("strong",[t._v("selectPrevious:")]),t._v(" The previous output port is selected for signal output. If the current port is out1, the select previous event will switch to the port with the maximum number given by the active ports property.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("activePorts [integer]:")]),t._v(" The maximum port number in use (can be 2 to 4).")])])])}),[],!1,null,null,null);e.default=s.exports},747:function(t,e,r){t.exports=r.p+"assets/img/pathselector.972367d5.jpg"}}]); \ No newline at end of file diff --git a/assets/js/226.07a2e84c.js b/assets/js/226.881faffc.js similarity index 94% rename from assets/js/226.07a2e84c.js rename to assets/js/226.881faffc.js index 54ff1d29e7..e2c3c88db5 100644 --- a/assets/js/226.07a2e84c.js +++ b/assets/js/226.881faffc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[226],{1184:function(e,t,a){"use strict";a.r(t);var o=a(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"peakdetector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#peakdetector"}},[e._v("#")]),e._v(" PeakDetector")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Basic Math)")]),e._v(" "),t("p",[e._v("The Peakdetector component can be used to detect peaks (top values of the signal) and valleys (bottom values) in a signal. Additionally it can calculate the time between two peaks or two valleys or between a peak and a valley. Optionally, top and bottom values can be compared with an average of the most recent top / bottom values - this allows to detect only peaks which are for example greater than 150% of the last 5 averaged peak values.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(746),alt:"Screenshot: PeakDetector plugin",title:"Screenshot: PeakDetector plugin"}})]),e._v(" "),t("p",[e._v("PeakDetector plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" The incoming signal.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("top:")]),e._v(" The peak value of the signal.")]),e._v(" "),t("li",[t("strong",[e._v("bottom:")]),e._v(" The bottom value of the signal.")]),e._v(" "),t("li",[t("strong",[e._v("time:")]),e._v(" The time in ms or beats per minute (BPM) (depending on the property timeMode) between two peaks (Mode=detect tops), two valleys (Mode=detect bottoms) or a valley and a peak (Mode=detect both) depending on the selected mode in the properties.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("topDetected:")]),e._v(" The event gets fired if a new top value was detected in the input signal.")]),e._v(" "),t("li",[t("strong",[e._v("bottomDetected:")]),e._v(" The event gets fired if a new bottom value was detected in the input signal.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mode:")]),e._v(" Determines which time frame will be used for the time output signal (see description of the output port time).")]),e._v(" "),t("li",[e._v("**comparePeaks:**the number of top / bottom values which are taken into account for averaging (0 = disable)")]),e._v(" "),t("li",[e._v("**validTopPercentage:**the percentage of the recent averaged top values which constitutes a valid top value (0 = all top values are valid)")]),e._v(" "),t("li",[e._v("**validBottomPercentage:**the percentage of the recent averaged bottom values which constitutes a valid bottom value (0 = all bottom values are valid)")]),e._v(" "),t("li",[t("strong",[e._v("timeMode:")]),e._v(" Determines the unit for the measured time frame between top/bottom values. Options are beats per minute (BPM) or milliseconds.")])])])}),[],!1,null,null,null);t.default=r.exports},746:function(e,t,a){e.exports=a.p+"assets/img/peakdetector.696ec72f.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[226],{1185:function(e,t,a){"use strict";a.r(t);var o=a(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"peakdetector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#peakdetector"}},[e._v("#")]),e._v(" PeakDetector")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Basic Math)")]),e._v(" "),t("p",[e._v("The Peakdetector component can be used to detect peaks (top values of the signal) and valleys (bottom values) in a signal. Additionally it can calculate the time between two peaks or two valleys or between a peak and a valley. Optionally, top and bottom values can be compared with an average of the most recent top / bottom values - this allows to detect only peaks which are for example greater than 150% of the last 5 averaged peak values.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(749),alt:"Screenshot: PeakDetector plugin",title:"Screenshot: PeakDetector plugin"}})]),e._v(" "),t("p",[e._v("PeakDetector plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" The incoming signal.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("top:")]),e._v(" The peak value of the signal.")]),e._v(" "),t("li",[t("strong",[e._v("bottom:")]),e._v(" The bottom value of the signal.")]),e._v(" "),t("li",[t("strong",[e._v("time:")]),e._v(" The time in ms or beats per minute (BPM) (depending on the property timeMode) between two peaks (Mode=detect tops), two valleys (Mode=detect bottoms) or a valley and a peak (Mode=detect both) depending on the selected mode in the properties.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("topDetected:")]),e._v(" The event gets fired if a new top value was detected in the input signal.")]),e._v(" "),t("li",[t("strong",[e._v("bottomDetected:")]),e._v(" The event gets fired if a new bottom value was detected in the input signal.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mode:")]),e._v(" Determines which time frame will be used for the time output signal (see description of the output port time).")]),e._v(" "),t("li",[e._v("**comparePeaks:**the number of top / bottom values which are taken into account for averaging (0 = disable)")]),e._v(" "),t("li",[e._v("**validTopPercentage:**the percentage of the recent averaged top values which constitutes a valid top value (0 = all top values are valid)")]),e._v(" "),t("li",[e._v("**validBottomPercentage:**the percentage of the recent averaged bottom values which constitutes a valid bottom value (0 = all bottom values are valid)")]),e._v(" "),t("li",[t("strong",[e._v("timeMode:")]),e._v(" Determines the unit for the measured time frame between top/bottom values. Options are beats per minute (BPM) or milliseconds.")])])])}),[],!1,null,null,null);t.default=r.exports},749:function(e,t,a){e.exports=a.p+"assets/img/peakdetector.696ec72f.png"}}]); \ No newline at end of file diff --git a/assets/js/227.cacddbb5.js b/assets/js/227.c18ac690.js similarity index 96% rename from assets/js/227.cacddbb5.js rename to assets/js/227.c18ac690.js index e3f25089cd..85b0caa604 100644 --- a/assets/js/227.cacddbb5.js +++ b/assets/js/227.c18ac690.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[227],{1185:function(t,e,r){"use strict";r.r(e);var n=r(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"protocol-ssvep-train"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#protocol-ssvep-train"}},[t._v("#")]),t._v(" Protocol SSVEP Train")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feauture-extraction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feauture-extraction"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feauture extraction)")]),t._v(" "),e("p",[t._v("This component is in charge of managing and configuring the SSVEP training recording protocol. It sends out the corresponding SSVEP stimulation frequencies.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(747),alt:"Screenshot: ProtocolSSVEPTrain plugin",title:"Screenshot: ProtocolSSVEPTrain plugin"}})]),t._v(" "),e("p",[t._v("ProtocolSSVEPTrain plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This plugins must be connected to the FlickeringLightStimulator plugin (which triggers the external SSVEP stimulation panels) or to the SSVEPStiumlator plugin.")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StimFrequency [integer]:")]),t._v(" Current stimulation frequency in Hz under test.")]),t._v(" "),e("li",[e("strong",[t._v("Freq2 [integer]:")]),t._v(" Background stimulation frequency in Hz for panel 2.")]),t._v(" "),e("li",[e("strong",[t._v("Freq3 [integer]:")]),t._v(" Background Stimulation frequency in Hz for panel 3.")]),t._v(" "),e("li",[e("strong",[t._v("Freq4 [integer]:")]),t._v(" Background Stimulation frequency in Hz for panel 4.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartProt:")]),t._v(" Start protocol request.")]),t._v(" "),e("li",[e("strong",[t._v("StopProt:")]),t._v(" Stop protocol request.")]),t._v(" "),e("li",[e("strong",[t._v("Continue:")]),t._v(" Next Stimulation trial request")]),t._v(" "),e("li",[e("strong",[t._v("Repeat:")]),t._v(" Repeat last stimulation trial request.")]),t._v(" "),e("li",[e("strong",[t._v("Stop:")]),t._v(" Abort current stimulation trial request.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartTrial:")]),t._v(" Event sent when a stimulation trial starts.")]),t._v(" "),e("li",[e("strong",[t._v("StopTrial:")]),t._v(" Event sent when a stimulation trial ends.")]),t._v(" "),e("li",[e("strong",[t._v("StartStim:")]),t._v(" Event sent when a stimulation period starts.")]),t._v(" "),e("li",[e("strong",[t._v("StopStim:")]),t._v(" Event sent when a stimulation period ends.")]),t._v(" "),e("li",[e("strong",[t._v("ReadyStim:")]),t._v(" EEvent sent 1 second befor the stimulation periods starts.")]),t._v(" "),e("li",[e("strong",[t._v("UpdatePanelConfig:")]),t._v(" Event sent requesting a stimulation panels re-configuration.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("NumRepetitions [integer]:")]),t._v(" Number of stimulation periods per trial.")]),t._v(" "),e("li",[e("strong",[t._v("RepStimDuration [integer]:")]),t._v(" Stimulation period duration in seconds.")]),t._v(" "),e("li",[e("strong",[t._v("RepNonStimDuration [integer]:")]),t._v(" Non-Stimulation period duration in seconds.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim1 [integer]:")]),t._v(" Stimulation frequency number 1 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim2 [integer]:")]),t._v(" Stimulation frequency number 2 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim3 [integer]:")]),t._v(" Stimulation frequency number 3 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim4 [integer]:")]),t._v(" Stimulation frequency number 4 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim5 [integer]:")]),t._v(" Stimulation frequency number 5 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim6 [integer]:")]),t._v(" Stimulation frequency number 6 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim7 [integer]:")]),t._v(" Stimulation frequency number 7 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim8 [integer]:")]),t._v(" Stimulation frequency number 8 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim9 [integer]:")]),t._v(" Stimulation frequency number 9 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim10 [integer]:")]),t._v(" Stimulation frequency number 10 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("RandomizeFreq [boolean]:")]),t._v(" Randomize stimulation frequencies order.")])])])}),[],!1,null,null,null);e.default=i.exports},747:function(t,e,r){t.exports=r.p+"assets/img/protocolssveptrain.0fb67610.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[227],{1184:function(t,e,r){"use strict";r.r(e);var n=r(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"protocol-ssvep-train"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#protocol-ssvep-train"}},[t._v("#")]),t._v(" Protocol SSVEP Train")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feauture-extraction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feauture-extraction"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feauture extraction)")]),t._v(" "),e("p",[t._v("This component is in charge of managing and configuring the SSVEP training recording protocol. It sends out the corresponding SSVEP stimulation frequencies.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(748),alt:"Screenshot: ProtocolSSVEPTrain plugin",title:"Screenshot: ProtocolSSVEPTrain plugin"}})]),t._v(" "),e("p",[t._v("ProtocolSSVEPTrain plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This plugins must be connected to the FlickeringLightStimulator plugin (which triggers the external SSVEP stimulation panels) or to the SSVEPStiumlator plugin.")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StimFrequency [integer]:")]),t._v(" Current stimulation frequency in Hz under test.")]),t._v(" "),e("li",[e("strong",[t._v("Freq2 [integer]:")]),t._v(" Background stimulation frequency in Hz for panel 2.")]),t._v(" "),e("li",[e("strong",[t._v("Freq3 [integer]:")]),t._v(" Background Stimulation frequency in Hz for panel 3.")]),t._v(" "),e("li",[e("strong",[t._v("Freq4 [integer]:")]),t._v(" Background Stimulation frequency in Hz for panel 4.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartProt:")]),t._v(" Start protocol request.")]),t._v(" "),e("li",[e("strong",[t._v("StopProt:")]),t._v(" Stop protocol request.")]),t._v(" "),e("li",[e("strong",[t._v("Continue:")]),t._v(" Next Stimulation trial request")]),t._v(" "),e("li",[e("strong",[t._v("Repeat:")]),t._v(" Repeat last stimulation trial request.")]),t._v(" "),e("li",[e("strong",[t._v("Stop:")]),t._v(" Abort current stimulation trial request.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartTrial:")]),t._v(" Event sent when a stimulation trial starts.")]),t._v(" "),e("li",[e("strong",[t._v("StopTrial:")]),t._v(" Event sent when a stimulation trial ends.")]),t._v(" "),e("li",[e("strong",[t._v("StartStim:")]),t._v(" Event sent when a stimulation period starts.")]),t._v(" "),e("li",[e("strong",[t._v("StopStim:")]),t._v(" Event sent when a stimulation period ends.")]),t._v(" "),e("li",[e("strong",[t._v("ReadyStim:")]),t._v(" EEvent sent 1 second befor the stimulation periods starts.")]),t._v(" "),e("li",[e("strong",[t._v("UpdatePanelConfig:")]),t._v(" Event sent requesting a stimulation panels re-configuration.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("NumRepetitions [integer]:")]),t._v(" Number of stimulation periods per trial.")]),t._v(" "),e("li",[e("strong",[t._v("RepStimDuration [integer]:")]),t._v(" Stimulation period duration in seconds.")]),t._v(" "),e("li",[e("strong",[t._v("RepNonStimDuration [integer]:")]),t._v(" Non-Stimulation period duration in seconds.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim1 [integer]:")]),t._v(" Stimulation frequency number 1 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim2 [integer]:")]),t._v(" Stimulation frequency number 2 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim3 [integer]:")]),t._v(" Stimulation frequency number 3 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim4 [integer]:")]),t._v(" Stimulation frequency number 4 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim5 [integer]:")]),t._v(" Stimulation frequency number 5 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim6 [integer]:")]),t._v(" Stimulation frequency number 6 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim7 [integer]:")]),t._v(" Stimulation frequency number 7 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim8 [integer]:")]),t._v(" Stimulation frequency number 8 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim9 [integer]:")]),t._v(" Stimulation frequency number 9 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("freqStim10 [integer]:")]),t._v(" Stimulation frequency number 10 in Hz.")]),t._v(" "),e("li",[e("strong",[t._v("RandomizeFreq [boolean]:")]),t._v(" Randomize stimulation frequencies order.")])])])}),[],!1,null,null,null);e.default=i.exports},748:function(t,e,r){t.exports=r.p+"assets/img/protocolssveptrain.0fb67610.jpg"}}]); \ No newline at end of file diff --git a/assets/js/228.c581577a.js b/assets/js/228.0ced96e1.js similarity index 92% rename from assets/js/228.c581577a.js rename to assets/js/228.0ced96e1.js index 5bf7645153..1014725b17 100644 --- a/assets/js/228.c581577a.js +++ b/assets/js/228.0ced96e1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[228],{1188:function(t,e,r){"use strict";r.r(e);var i=r(2),a=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"quantizer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#quantizer"}},[t._v("#")]),t._v(" Quantizer")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin performs a quantization of the input signal. The value of the output signal is the input value rounded to the nearest multiple of the quantizationStep property value.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(750),alt:"Screenshot: Quantizer plugin",title:"Screenshot: Quantizer plugin"}})]),t._v(" "),e("p",[t._v("Quantizer plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the values to be quantized.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port for the quantized values.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("quantizationStep [double]:")]),t._v(" The quantization step.")])])])}),[],!1,null,null,null);e.default=a.exports},750:function(t,e,r){t.exports=r.p+"assets/img/quantizer.e59f2f05.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[228],{1188:function(t,e,r){"use strict";r.r(e);var i=r(2),a=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"quantizer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#quantizer"}},[t._v("#")]),t._v(" Quantizer")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin performs a quantization of the input signal. The value of the output signal is the input value rounded to the nearest multiple of the quantizationStep property value.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(752),alt:"Screenshot: Quantizer plugin",title:"Screenshot: Quantizer plugin"}})]),t._v(" "),e("p",[t._v("Quantizer plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the values to be quantized.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [double]:")]),t._v(" Output port for the quantized values.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("quantizationStep [double]:")]),t._v(" The quantization step.")])])])}),[],!1,null,null,null);e.default=a.exports},752:function(t,e,r){t.exports=r.p+"assets/img/quantizer.e59f2f05.jpg"}}]); \ No newline at end of file diff --git a/assets/js/229.3021f0f1.js b/assets/js/229.a64faa7f.js similarity index 96% rename from assets/js/229.3021f0f1.js rename to assets/js/229.a64faa7f.js index a6e321e694..17939053a2 100644 --- a/assets/js/229.3021f0f1.js +++ b/assets/js/229.a64faa7f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[229],{1186:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component processes strings with regular expressions. It can work in two modes: match strings with the pattern or replace string parts with another string. The regular expression syntax is defined in the "),e("a",{attrs:{href:"https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java class Pattern"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:r(748),alt:"Screenshot: RegularExpression plugin",title:"Screenshot: RegularExpression plugin"}})]),t._v(" "),e("p",[t._v("RegularExpression plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" String to match against the regular expression.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" If property replace=false, sends out input string in case of a match. if property replace=true, sends out replaced string.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("match")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if the string matches the pattern.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("notMatch")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if the string doesn’t match the pattern.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("replace")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if parts of the string where replaced by the replaceString.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("notReplace")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if no replacement occurred.")])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pattern [string]:")]),t._v(" Regular expression pattern, see "),e("a",{attrs:{href:"https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java class Pattern"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("li",[e("strong",[t._v("replace [boolean]:")]),t._v(" If the property is set to true, the component will search parts of the string which match the pattern and replace these parts with the replaceString, otherwise the component will match the whole string with the pattern.")]),t._v(" "),e("li",[e("strong",[t._v("replaceString [string]:")]),t._v(" The string which replaces expressions which matching the pattern.")])])])}),[],!1,null,null,null);e.default=n.exports},748:function(t,e,r){t.exports=r.p+"assets/img/regularexpression.6f50f3a3.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[229],{1186:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component processes strings with regular expressions. It can work in two modes: match strings with the pattern or replace string parts with another string. The regular expression syntax is defined in the "),e("a",{attrs:{href:"https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java class Pattern"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:r(750),alt:"Screenshot: RegularExpression plugin",title:"Screenshot: RegularExpression plugin"}})]),t._v(" "),e("p",[t._v("RegularExpression plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" String to match against the regular expression.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" If property replace=false, sends out input string in case of a match. if property replace=true, sends out replaced string.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("match")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if the string matches the pattern.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("notMatch")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if the string doesn’t match the pattern.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("replace")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if parts of the string where replaced by the replaceString.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("notReplace")]),t._v(" "),e("strong",[t._v(":")]),t._v(" This event is sent if no replacement occurred.")])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pattern [string]:")]),t._v(" Regular expression pattern, see "),e("a",{attrs:{href:"https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java class Pattern"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("li",[e("strong",[t._v("replace [boolean]:")]),t._v(" If the property is set to true, the component will search parts of the string which match the pattern and replace these parts with the replaceString, otherwise the component will match the whole string with the pattern.")]),t._v(" "),e("li",[e("strong",[t._v("replaceString [string]:")]),t._v(" The string which replaces expressions which matching the pattern.")])])])}),[],!1,null,null,null);e.default=n.exports},750:function(t,e,r){t.exports=r.p+"assets/img/regularexpression.6f50f3a3.jpg"}}]); \ No newline at end of file diff --git a/assets/js/23.2fdaca85.js b/assets/js/23.bc682a1b.js similarity index 97% rename from assets/js/23.2fdaca85.js rename to assets/js/23.bc682a1b.js index 8f5cfd9de6..c1ff294fab 100644 --- a/assets/js/23.2fdaca85.js +++ b/assets/js/23.bc682a1b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{406:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-01.c458bb02.png"},407:function(A,t){A.exports="data:image/png;base64,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"},408:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-edit-cell-01.91cf0c1f.png"},409:function(A,t){A.exports="data:image/png;base64,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"},410:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-edit-cell-02b.953a85e4.png"},411:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-edit-cell-03.ac0a8311.png"},929:function(A,t,e){"use strict";e.r(t);var r=e(2),i=Object(r.a)({},(function(){var A=this,t=A._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[t("h1",{attrs:{id:"grid-customization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-customization"}},[A._v("#")]),A._v(" Grid Customization")]),A._v(" "),t("p",[A._v("In this tutorial you will learn how to do simple modifications to a grid like changing the cell text or image.")]),A._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[A._v("Note")]),A._v(" "),t("p",[A._v("In case you need more detailed information, please check the "),t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[A._v("AsTeRICS Grid user manual")])],1),A._v(".")])]),A._v(" "),t("h2",{attrs:{id:"asterics-grid-web-application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid-web-application"}},[A._v("#")]),A._v(" AsTeRICS Grid web application")]),A._v(" "),t("p",[A._v("AsTeRICS Grid is the web application to run and manage grids for AAC.")]),A._v(" "),t("p",[A._v("If you open the link "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[A._v("https://grid.asterics.eu"),t("OutboundLink")],1),A._v(", the default grid is opened in your browser and saved locally on your device in the browser cache. All modifications are also saved to your local version of the grid from now on.")]),A._v(" "),t("h2",{attrs:{id:"open-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-grid"}},[A._v("#")]),A._v(" Open grid")]),A._v(" "),t("p",[A._v("First you have to open the grid you want to change.")]),A._v(" "),t("h3",{attrs:{id:"saved-grids"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#saved-grids"}},[A._v("#")]),A._v(" Saved Grids")]),A._v(" "),t("p",[A._v("If you click the button "),t("code",[A._v("Manage Grids")]),A._v(", you can open other grids from the list of "),t("code",[A._v("Saved Grids")]),A._v(" by clicking on the "),t("code",[A._v("Edit")]),A._v(" button.")]),A._v(" "),t("ol",[t("li",[t("img",{attrs:{src:e(406),alt:"Screenshot with button Manage Grids highlighted"}})]),A._v(" "),t("li",[t("img",{attrs:{src:e(407),alt:"Screenshot with button Edit highlighted"}})])]),A._v(" "),t("h3",{attrs:{id:"import-grid-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#import-grid-file"}},[A._v("#")]),A._v(" Import Grid file")]),A._v(" "),t("p",[A._v("You can also import and open a grid from a file. To do so, click on "),t("code",[A._v("More/Import grid(s) from file")]),A._v(".")]),A._v(" "),t("h2",{attrs:{id:"change-cell"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-cell"}},[A._v("#")]),A._v(" Change cell")]),A._v(" "),t("p",[A._v("You can change the cell text, image and spoken text of a cell. In order for that you must change to the edit mode of the grid by clicking on "),t("code",[A._v("Edit grid")]),A._v(".")]),A._v(" "),t("h3",{attrs:{id:"cell-text-and-image"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cell-text-and-image"}},[A._v("#")]),A._v(" Cell text and image")]),A._v(" "),t("ol",[t("li",[A._v("Move the mouse cursor to the cell you want to edit and click the right mouse button.")]),A._v(" "),t("li",[A._v("Select the menu entry "),t("code",[A._v("Edit")])]),A._v(" "),t("li",[A._v("Now you can change the label in the text field and select a new image by clicking on "),t("code",[A._v("Choose file")]),A._v(". To clear the image click on "),t("code",[A._v("Clear image")]),A._v(".")])]),A._v(" "),t("p",[t("img",{attrs:{src:e(408),alt:"Screenshot of edit cell dialog"}})]),A._v(" "),t("h3",{attrs:{id:"spoken-text"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#spoken-text"}},[A._v("#")]),A._v(" Spoken text")]),A._v(" "),t("p",[A._v("You can also change the spoken text of a grid by the following steps")]),A._v(" "),t("ol",[t("li",[A._v("Move the mouse cursor to the cell you want to edit and click the right mouse button.")]),A._v(" "),t("li",[A._v("Select the menu entry "),t("code",[A._v("Actions")])]),A._v(" "),t("li",[A._v("Delete "),t("code",[A._v("Speak label")]),A._v(" action\n"),t("img",{attrs:{src:e(409),alt:"Screenshot of edit actions dialog"}})]),A._v(" "),t("li",[A._v("Add "),t("code",[A._v("Speak custom text")]),A._v(" action")]),A._v(" "),t("li",[A._v("Enter text and click on "),t("code",[A._v("Test")])]),A._v(" "),t("li",[A._v("Finally, save the custom text by clicking on "),t("code",[A._v("OK")])])]),A._v(" "),t("p",[t("img",{attrs:{src:e(410),alt:"Screenshot of edit actions dialog"}}),A._v(" "),t("img",{attrs:{src:e(411),alt:"Screenshot of edit actions dialog"}})]),A._v(" "),t("h3",{attrs:{id:"close-edit-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#close-edit-mode"}},[A._v("#")]),A._v(" Close Edit mode")]),A._v(" "),t("p",[A._v("After you have finished all changes, you must close the edit mode for being able to use the grid. You can do this by clicking on the button "),t("code",[A._v("Back")]),A._v(" in the top menu.")]),A._v(" "),t("h2",{attrs:{id:"conclusion"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[A._v("#")]),A._v(" Conclusion")]),A._v(" "),t("p",[A._v("Now you know how to change a cell text, image or spoken text, to learn how to create a new grid, try the "),t("a",{attrs:{href:"./Grid-Creation"}},[A._v("grid creation tutorial")]),A._v(".")])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{405:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-01.c458bb02.png"},406:function(A,t){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABtIAAAA2CAIAAADVm5rCAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAIABJREFUeNrt3X18U9X9B/DvTXJTuQGSQlMgAdPOpkAKfdC2G61reSg4wFGcwBQYIFgmilIU+Kk8PxR8mKOogDKe5WGT7SfwEnDFSXG2bBRtRVu00V+DkqoN2FRItLltzu+PtGnaJm0CFWvzeb9e+rLJTdJ7/PScc0/OOZdjjBEAAAAAAAAAAABAx5GgCAAAAAAAAAAAAKBjyVAEAAAAAOBJufcjFAJ0KjUzhqIQAAAAfnYw2xEAAAAAAAAAAAA6GIYdAQAAAAAAAAAAoINhkTUAAAAAeIeVrfDTwnp/AACAnzUMOwIAAHRSjDGvD3p9HMAfHMdxHOf1cQQSkEZAIBFIQCABOjaQGHYEAADodBhjdru9qqrqm2++uXr1KmPM6XQ6nU7GmFQqRfnAjaivr+c4TiKRSCQSjuN69OgRHh7ep08fQRB89R0RSEAaAYFEIAGBBAQyoEC6cBjwBgAA6FQYYx999FFNTU2/fv169+4tCIKrdZdKpf58owjQbsBcfUfXxAe73X7lyhWz2axSqYYOHerKmHtla82MoQgk/IRp9IwiqkfoDNUj2mtAIAGB9CeQbpjtCAAA0LladNd31CNGjJBJpazx0Ybn8GUhdBCpREJExHFKpVKlVOp0ulOnTvXt21etVnt2HBFI+GnTiOoRUD0CAolAws8ukJ4w7AgAANC5fP311wMHDpRKpU70EeHHxhgRMSKpVBodHf3VV1+1GOhBIAFpBAQSgQQEEiDQQLph2BEAAKBTNeLMZrNFRkYSMSL0GuHm6dWrl9l8iTHWYvYEAgk/YRpRPQKqRwAEEn52gfSEYUcAAIDOpa6uTiqVMkb4rhpuJolEUldXj0AC0giAQAICCXCDgXTDsGMA2rgP/Y3cTRwAAKBFr1Emk+HLarjJpFJpXV0dAglIIwACCQgkwA0G0g3Djn7x5z701303cQAAAM8WRxRFqUSCTiPcZLxMJopi62WtCCQgjYBAIpCAQAL4H0hPGHb06wrQfR/6gQMHduvWzet96FvcTfz777+/cuXK+++/3+7dxAEAADxbk/r6eolUipsOwk3GSSSubgwCCUgjAAIJCCTAdQfSE4Yd27/8c9+HXiqVuu/X4362xfGuyY8ckZznlf7dTRwAAMDN6XRKJBJXG4O9eeDmdhs5iUTSom+DQALSCIBAAgIJEFAgPWHYsX2u+9BLJBLGnH5+c8BcZU9MKpW0ezdxAAAAr00J+oxwUzuNCCQgjQAIJCCQAB0XSMKwY/tXfY33oXctnQ7wpcRx1KtXr0uX2rqbOAAAgI9OI/qNcJNTh0AGyGFzyBVylAPS+KOGrNrm8PmsXBGKBCKQNyuLVRXlZqtIRESCOnpgfwWSgUDepOh9WlxhbV73hQ+J4Kvk/SORws4dSCIMO/qjcWfWwOcqO2yOkO4Sjquvr0cxAgBAYM03BnkAVzGd+yqo4p/Prt1WYhUi7n582eyEUJQI0vgjpOzjnYvWvWkW2zhEFT//meUjwpEZBPJHr/L2PfnUG6amMKpSl7z4xC8x5oNA3gTFr614rqB5Ragev/oPlnWvCQufefSXaIA7byCJ6DqHHcUfioo+3flB9SfW769SiCase9Ltt81L7h3m12sr5+UUfzdmxP4Uwevzn/wzf8q/pQsW/HpOi0XJVy/OfvbjiqRfncrs3d5n2Pe9cuq5brHvzRzQsyPKsL6+XiqTBTjbsaknOi776YFt3k0cAADAW6eRMQzzBMxWfuqNs/yI6XdqURYdfRUTZIF0VF8yWewOsdUsM14ero0O5yvezFmxqzx8+KwRlsNvPLuCLdswe8h1XH47Kt57/ZSYOntEJBKINHphLi4288kPLBkf4XVGo8NasGvjqf/+Hw33Yzun6uJ9u99TT3n0LlSPCOT1ZPGfr75pCh+/etlELU9E1rMbV27b9dqYhD8O6bDZtogoAumT6ONkLfkbn6SFGx5Nxshj5wykS+DDjmJ17qv/2fm1JEKvyby9e1id/RPjN0eO/ufIBwP3zYkaxHe5EnTdh14qafbXG1BP9PnV5rvHpWNXVwAACLQND5qmw2EuPpWXX1BaXmG22EXiBVW4NkKfPPyu4cnRoQFd0NjK3zx8Sp8wPRUXLQjkDV1gv7li0S6jt8scPmL8siX8fzev2F1qF2LGTLn7LlWMsPLp/bvyxvzpnv4Bf5Ct/M3DeeExs4cTUcW+RSvfi1j4wvwEBTmqK0rN8ughWswkCtY02qrKy83VZrONFGp9wpBo70dVVx2mU36Whr2iuKA0Zjy+z0IgA1G+77F1b1pEIlEUiShv3WN5jcMCItHJlTPyeSJSJC/ctPCGJz76E1HUjaghm58piZb8jU/Rwg3zO+fIIxJLdB3Djuaisp1fS1J/9+uttzdOV0yLmXf2zJSjxueK++9MvqWrJdl1H3qJ1Flf3/jXG0BP9DehQ7qvfOq1d89/OWNcBGpAAADwv/0Jkuk8topTu7bsyjfZeUETEZ2QrC4vKLPYrWZjidlYkv+6KmZM1iPTksNbjT06zAW7dr1eVF5ptfOCShsZP27u/BHahv1QMFH0+vvvwR7IBpc+Non6aTnzk1tcJ/C8wNsKclfsNoYPH6cuPb5t5Z+FuTHlFpGPUApN2/HY3luXlVvSrK/Ipz59cGGCjzJ3lS2v0Wq1WkFGjFHFG8/lFI/JffEeAWkMyjSa31i5eH/DclY1+d7piTVFyLN+rCrOO3Q4r6TCYrWToNZGx4+f+sAIOaF6RCADFhY/Jua93UV86tQxem/fApoLXj9pjkxN0fLuEDqKX37kuXyr6KoyVdrI6PjREyfe2f4WfMyPiKJuDM5AeqkDRQeLuDvrkWTXTzKbg6l8fk/tf6Pc4YIksR28t6N43vgd3dJn2tBmpaZNjh7xzn/eMlprk/uGUE1u7nv7+t1x7vd9G5+/tuPl01tD7yiY1jek4ZHaokLjzg+unLc6e4epRqYZ5hmEkAB/lVpLZW5eRcGX31XW8ZoBfaaPHDRlQKvJlmLlgpwP6Xcj5vxg3HrW0vBxI4dkR/s7PNpwH3rGPBZZX/rYJOqn+uiJFjbriSrmDimvEqU9FQJmOwIAQEDNdzB8WV1V8HLO5nyLKmZ01pTJY2JCicj8RkX2/koiIhIMo1Op6Njzi8on/s/SaTGera7t7OaVuWeFlCmzpkWoeJvFVGpRCMz//g8EehUTjHs7ypVqrabF5AlHxbGclbuN4eOWrn4gRlEVvXFVbm5OIa8ZveThEaEtyidi3JKsVJX7R5WWWJvFS9oR2etHeP6PCOb9NIM9jeZys6iflbsk4tjTq0raOl/WqrgcFW+sWrXfpIgfPnFuvEZBVrOxzGgT5Uwe7KFCIK9HaMzwpPDdJULK+LuTPQZ1HLZqGx8aKqfyqmMnbfr0ZC3vLgTRZrWJrgpQtFmrKovzj21enHdy6tKl90TL/Slq1hHHIJBdnTV/2zZrhKphBCgiPClB2/bSW/8b5R+pVx+cgSSiwIcdJSEyoh9sn1rpzmY7iPRevmDMEhnv59ChqbB43g/8yIRb58m+L/jo0s4D/z4/IXVncnf/f4/aLz+ZvuPziu7qzJRBkXSt4OyldTuufDozdXlk66w5P333P/PqQheMS1jQrfZc4Se5e9/79HcpTbM1A7j6a2rYeZVao1W16omuX7XbGD7u6VUPxCiq9BtXbdqYU8hr7xo7Mgp7DQAAQMc34z9rtpJXc3Lz7XFzc7KTTIeOWWpjQuVU9XGJpfEAu0lM2rZp+KF1OYfX5QjrV02MdF+vmEtKrULqw9n3NHxRHX+nR7fOVrTtsSKLxUoKjWH4rKzpCe57LdjK83bvOlxksogKjSF1WpZrGmXp5qyVpanrt8yKJiIyv7F4YZ5h3dYHoomIKvY/tiQ/ZtVf/hjTtZPGIZA+zpS16Omt3G1UjV68+gGDojFvvGb0klVZCaGthr0FjT5aH+rlbauK9+/Zn19isvLqiAiVlUjteqrqzcXzD+tXbp8b4zqy8kD2pANERPpZL28YHzy3DEEaG85OLgihgsD7dbJNB1Qcyt1vUo1fmvNA43c1CcnDXfVm88tf7/Uhka141/P7i8xV1hq7yKta1qLW0mO79+WVmix2hTZ+/NSsexJUCGRwVI+MqPpUTvbr6sVb58aYj61ccDx6/V+yor2cfvMKMCY+eUT6iP2rVh7I3RW98Y8xct9BYs0j6vOYVnVjUMUyOAPp7XTEytKiSnfVFDNrYozCUWW2h2tV3l/urVG2FecuWG+MX/Xc/BgFkfXsxsUbK8evf35iZGNNaLbWiCSotTGpU2dOSXCvvfFZf5a+sWVffrnJUiOSUj956YZ7unxr7lcgAx12lMYOVfe48M2mze8UJEROT+6T2q9hlmJIN97/6YpXr4UseORXc9RSIpqepln76n8O5ZW/k3D7yIYxw9qCs5+FhEo9X1J71VLZ9NO1fUc+/1QVse+RmFieiGj6sP7Pbi7cf+Ti9Oyo1jtyV14OWftEXGYPIqJBv+8pv3Z6XZ7xvaFxd/IBBd012bGpG9r8DjMO07ENq/YYVaMXrZxlEBqnRvKa0U+u/eO37/8Ll84AABBYq9PGsrquwHZ22+aTVkNWzuLRWnlFQdHhvxSURITbzEZL0yIYe5XVLsRPW/q0+PTqQ5tfj8+Z1nhXBaVOw58szS+4ZEjVyluVnTp+yuQkFW8rP77nwPOb1BtzxoQTEVUcXrXykD1+ctZSvaKq8NDu55dWL3p+YbIqKjGazzeWf0P6cCKrsdhMFt74DYsOJ6o2GS1CTHwUdfFFC1w71yhBEEhfnb+mnl7FsfWr9hhVoxevyooXGLGqgo2rNxXxoxevyopXtSocn6v9HeW71+ecpJSpC2ZFKGym/EOHGo70fFVDkEcvWjpOS0S8KjyICh9pbH6m1Lhmso1rcY+kleadqhTiF002KFq/hHkEzFd9SGQzl5ZVqadmP6yXi9byY7s9alFHxf6cdSflo2dlz9KIpuO7dz//vNBYwSKQXTiIrotgxhw2m92mFBkjRmLDjUtYs3T5qAAV+knTkvLWF+SVzTLEy30HySOivo9pWTcGWSwRyDZO/FrRtsW7+aycJcPDvdaVrRtlIT7r4fQl6zcfGP5clqb0L9uKwic/NzGCEWuoCTOzH45XiNby/EOH1i+taqgk26o/KwqKTKrM7KwkFdlFlYYxUxdvzdsLpEvAezuGxSbs+OHjte9UnisqO1dURrd0GxqpHjm0f+bg0DC/R/F66G+brG4cVezWe15aryP/+23BJRrZMGRYe+7Mp+e8vbDhJtbVlne+pqETbot1fyIfOidFtf/oNwXVUZGhrT8u8jc9mqKVOUz93AHLqa/pzgF+h5i5Bh1Zw7/J9Z/u4nWYjj+zeo9RlfHEygfjBMZYVeGmNS8W8RmLV2UlqAiDjgAAcN3Xm130BMuLSmpUqQuGa3kiptKqebHMZKxpfowyXK0kYoroSVMMJ3OLii3TdA13igkf/cgCU+6WTdlzD8Wnjh49Lj25Ya9uRkSKiMTUeAMRxUTYyuZuLSirHhOuIkfR4cMX1eOeXTIxgohiYqLk1vm5h05NSZ6ojUmM4beXGK+ND1c4yktMvCCYSoy2ceEKh7HIRPqZMfIg2ps9WAPZ9lk7Khq/XV6VFRdKjKoKNq529fQeTFAx7yVZtn3ulO2Njxiytq0coyKynT18sjJi8p8XjtcSEcVorIWndzdbFNe0FotXa7RaTfAVO9LYuhCYf0ElsppNNaQ16BTE2nq3NupD10RLbVRCjIGIYvSOkqZatOTQyUr91JcfGK4iouiImca5G/KLvhkTFFNxgzmQrNVpev5H63P3llu5LiaCCs1mK8WF+wySZ0R9HdOqbgzSWKKG9HriDhJriras3sivWJga7lejTELCrAeHL9mweYtDW16invrsPdqm0pNr45JdNWG8QWWbv8VVSbZXfyq0cckxes/fLAha8w7e25GIpIOS4/YnD7n81ZUCo6XA+O35ryyHKi5tOt572cw7pvST+vMWmgHde3r8GNYvVEPfVlaL1LBEuueCBb+eo27+mqsXZz/7cUVDg3qtkujK0X/FHm3xxorLP3j5uN5h3TxnYoaEdteQpbK6ngZI/S5Gxpzu7R2Z+xFXT9R0/Jk1r32mGvXEijlxSidjlsJNa146Jx+1aMWD8UpG2NURAACua7iDdeVOoyEjXZP/9p7XM9ZNi5CrEjNTlGWnm4868rpx4wzEGFlL9uz/kDc8mKLx+JpanZSV8+pk04eF+SdPbl546PWMhxdnJYU3fsnf0PYKWrVA5dU2xlRkNprsypi4iMZmWWGIi6A9ZRXXJmoU8Yl6OlBUVpsSZywqVaRMjv/w0NlyR4rBeLZc1E+OF7r6LRg4/65iunQgvZ91Q1pshbv3lCnSn1r1YLyKEasqyHV9u7wyK17pvaPHiEg39umHhzeu9RLUriOrLppFZUyUtsUUIfcMx2bz2oKyF4k0eklgm/eUIc8pPH4czxi1WR+2rEW1HrWo2S5Wbv/j5O1N76euqmEsHIHsyoH0CFXTXduaB6/FhFx3GlsPRjJGzGeQBM+I+jimVd0YZLFEIBu6iHEPPvdwiso9C000Hlg190GrvYaIyFK4aQ3Pr3skSdV+o0xEQvzMB9OzN5wu0WRuHOfROjcLtio+SUd7jBW1pKn0u/6krt+atx9IIgp42PH7K/vyKil20PRIPqxfeGa/8Mw01xP213ecXvc3Y2z2oEHeXne1rt23lpBM4u+vISMiSeKY5OzIFi+R9A7z6w0cREROovaHHSUSidPpdDKne9zRVaiMORlzunqie167IKQtWT5nqJI5meXMi2tfPsePemLZ7DilkzHOyZxOp5PjOAIAAAisp9+F96Dmo6c+NtW45sDqDYqnn5ioj8t6eo79T3uLGpdYC7qMhxdlRhCrKtq6ftNpR+Jj2aPVLUtDroxIGjsraezEgj8tfnHLHsNLi1NbXuDwchJ9zshwH6mMT9LtOVxU5lCWlJFhXlqKeDi30OhQFJbZdZlxStyCIQgC6fU6u/F8LWYrKePT41TEqKqwYczxqUzbgS35k+YND/fxcoUmIkKn8vKe5Gg5G4i1mivk9XEInjS2nlbm38iQEKYRqMhocpBa3tZ7tlEftlWLiiQkzVs7tWkej5xXoYYMkurR672uWBvJafago6LMREJ8P1VbQbJ4FqaPYy62/h0QyyAIZMtz4RVhWpXnvTp4stXU2N0/WoylVZSk9KNRJiKHucRo5wXeUpJvvHeaXu7jo+VEYoD1J6E1dwl0tmNtUfEX537oMzkyvPlOjkJs3xCqqD5/lQa5ljPXUS1RwzGivfKaa7fsBpVffvcdNU14vPxldSWFpIb6Pfewe08NOWtl3WIHNEWttrrm02vSHt4Weld+bfuOlJ4fd5n41FC/1oRzHCeRSJz1zoYl1u5F1u69HS1mKynjfh2rZIxZzry0bvM5fuTj/3P3tYOv5E96aHgfzul0SqVSDDsCAEAg3SvGXBt8dOHJTrwu86kn2QsvHFj2+NmM+2dNSlv00jBzWZnRIio0+ji9miwlx3L3HjpjUQx7aOW8YUrfZaGMS9TSuSpLNXPdqrVp/2WPJrtfVIRwtLSkghkiiIjI9nGJidQZOoExRurEdN2Bv+cfl5kccTOjhCiHQdyaf4wvs+ozk9QsSGactTGnMygC2fyMm3X2qq1W4quN+Xmmi0Un3i7jRy1aMSeucusDpysnT/JaJO78tXqyX5RGOGosKq816OXuC5LGzXw8XiTjeRItNhasi2aCPo3uBBKRzXy24Gy11ysX0VpmJRLIXRb84PQU5enTR45VxE6MkLd+T4fYbn3IfNaiYTodbzeZbGHpza7LgyGlQR3Ipg3GGDULB6PWefFeAdqMBw4W2cPSMwbzjDHfQWqKqM9jWtWNQRnL4Atky5OxF21/erXnlyvqpHnLV4jn9rxw4iKRetijT82M8igB340yka1sz6a3KWPFM/ojy7duOZj0zAy9nJq3yERkKy8xkTpDwzMWQP1JQdKasw5eZN2t18hIyamPPl47NGWd4Zamx69W7bvwPan6DOpBRNIeMnJUX6skcm3VePkj0zvN1z5fNX5+6Ks+c1wrsr+/svXdbx2qW8f29fvXCO09si9tKjS+lxB3ZzdXm1uzdc97O2UDj8yP6tnqcIfx851f9cl2f1zht47u/Uf4/XFSqbSurk4i4Txr26a/5OqaGuKtn50+efGL99965wI/cuHSB2K/2pb178p772XEmOgQeZ4nAACAgBpw1tZtBLoIQZ+5/BnD8b3b//HKsrd3qHWDo3RqhYKo9MzxrUZjZQ0po9If2jAjXStv0eU0Hd90osYQF6VVKchmKXn772UUNnawmrGaxp3vm0qy4Uc+acIE3fJ/vPC8csY4vdxy5u97zvGJj45tWLgdljg6au/Wg+8q054YzBM/OD1OfObg23zcQ4lKFjTfULOgD6S3syYi0uj1wrvnDu4oUypVmownHpsRpyRmariU8V4mjMhWWV5apnA/wit1eq2Cj5s0Qbf8ry9soPsnJGoUVGm0ewztNH2oJkonHCn6++HYTL3cauUNKQZVsNWBSCMxYv0SE3VvHz360oc+D+LVw+6Laqqm5Ib75qWXvXBwzVPGjLHpBo2CbFbzhQ/FxDmZGkHga8pOn72kSdK2VR/6rEWFxMwMzZoTL/6JnzQ2TiMXrRaL3JARp0Ygu3Ygm9Y187Km8+XJ27JrjwrQVF5apiDRZjF9ePrt0xfs+vuenDFY3maQFB4R9XVM67oxKGOJGlK8/FnZZc8Hhj1qMPAWFU/WuIdWPJaibtF589UoO8oObHmXz1h+f5RaPmdO4ZMvbTk4zDXwyIhqSo7sz7cZ1PKac0cOnKO4hzJ0jBgfSP0ZJK15By+yplsyJwx569XzRw+cOhfZJ7GvECmrr7R+V2T81lSnmDw1OpaIqFvSgG5UZFzwN5ozWKj98tLO4tqBYfSpx7touotbdxR+mtA/tse1grOXCqzdfjNVHxvA0Fz36eMj3tpjyt5cm5ncZ+At358/e/GoVTFtpi7S29HyW+z7dhRWJvWP7WYv+OCLgsshqb/T+38ba6lUWutw3HJLSMu9HV1p6ndblPDv9/+2+4JSqew3IvuR6bFKxi42fClERHV1dVKplAAAAAJuw4NhUYZSP+7RZzPuKztzpvDDMtPFsosi8bxKHTXs/vvSUuIiVHIv3RkHr1TZz5zYe6KyRiReUOvi7n/yvrF63vfKREZEEZnLVvA795x4ZcNrIq8ZnP7o8vtT3OuwlIljY4ULnyWlD5ITI/mg0YnKM+eiMhKxfjDYAtn6lInUo57a8WsHyeVe+tfMZwf84okX1p7wGB2647HtT6TI+YjMZWsVf9174uALJ2pEXlCqo+IMPVstrOaT7n8oY+veI39eaxfCojIeTTQo5chg0KWRkTxq6jPbJzkcLa+4P3vtybVliWvW3K9TyFtUkorYeWtWx/3jH8cLD7541C7yglKtM6TdYSdlyqR7z2w9uv1oYty8ON/1YRu1KK+fseypsNcOnNj7wlG7yCs1gyfoMmLVyGMXD6Q7CcrRa3enk5yIaccueyWdVzWduOe5y3iVwJ//1wtr/0XEC2GaCP2weRsmpEQoGg/zFaRmEfVxTOu6UY9Yor1uOGvFrSn3zp8xNkVNzM9GWXdi72lx2BP3RsmJkSpx5qSox/fufXvUmnFaRkS8XPzs6CsnKkU+TJc0Z9mM9LD2+pOtl1SjNSe6nlvKhA7Y+kToO2fK953/rqD4m7fq+DBVt8ihQ5aP7J/UwzW4Jo0dl7yWPtpxwbjWGDJwgHr2nIRIY/FOCgkhIgoZGKlOTBsy8MtPdn7w+dZrpOnXZ8nvh04fENh8wJDImH2P9Hzu+BdFhWVH6nhNP82yOYOm+HiTyLTk5bd8kVv4+VYr9e6rnj1jSHb0LQGUkUxWXycSkzfsK9ow9Mga9nYMG774lVQH8Y3pcTatkiFGxOrq62QyDDsCAEBAXSfmFhQnzIcNTvvt4LTfti4JrwXAa4bNeHyYt2PDxm7YP7bpZVEzXtzv8S5C1Nj5a8d6f3sh8fEdB9yP8YMf2nLQ9y/Qha8sEUjXGfNEVUUnjtmUPg+5aBJJ7qNIhGFP7h7m7W0ZIyJBN2r28lGzWz3RPL1hd8xZfsecdv4UkMZgTWDlRRsRLwg8760YBN2wPzw+7A8t00eDf7v8xd82xslXfdh2Laoc7LsWRSC76snLSKw8c+KYxet2Zp/ZiKhZDvnEh7bsfajt5tx7kIRmEfURNi91Y9DFMvgC6ce5MMaYLm2Cztv/fp+NMk1Yv3eCR/U3atneUeQe8xEG/275HIO3XPlZf1KQtObtnpHset6V7z4y7faRaW0dkJk5LDPT45F+yUkNT/XOntmbiCjy9ju9vcOgu4afv8vbe/bQ7Vyn83wgRD1g+cwB3g4Vpj80fnrzXyg2OW5n8nUWYlhY2OUr33bv3p2Ic82XlRN98X7eW230RL/4QiSeiCPiLl++3K2bgEtoAAAIqAFv3JkHU+3g5uDa6jcGXSAHjRp1W9m7b/31fFsd4rBfPZAYhr9RpPEnSSAfdsfv0/ohfgjkj08YmjHq1h3v/u9fzyGKCORPRdmvn8B/JfqsEJX9wrp17Bkz8thhF64/kER0ncOOwUQikWi12pMnT/bXaqRSGeM4xgyjRt524d95r3/UTk/0l32k9fX1paVlKSkpEokEhQkAAADwc6Aw/GH11j+gHAAJBFAlzl6fOBvlAD+hqPs3bLsfxfCzFdiwY+yyYz/Ls8w7HZvn5eHz68a3+1KO4xQKhU6nyzv5dt++fdXqMJVS9YvJT+XeJ5FKJJxEIpVIOY4Yo3pnPXM6651OZ72TMVZttX5R/MF/v/q6f//+ffr0wZ2sAQDAf8xjmQxKA24QD48hAAADk0lEQVQGjrU5eQKBBKQREEgEEhDIIBH2m/Wv/QazHW84kC6BDTv6M07XuYiVC3KKK0emH0rrft3vIZVKExISfvGLX5w/f/7ChU9qa2vtdnttba1nBDmOk0gkEomE4ziZTMZxXK9eoQMG3DpkyNCePXviljIAABCgps15UBZwUzqNjPm3WxTKCpBGQCARSEAgAfwIJFHXX2TNazat0txoOXKcTCYLDQ1NS0tz/fW2+zfsmtvIcZxrOBJZBACAwDBy7c1D6DXCTYpcO1cxCCQgjYBAIpCAQAIEEEgiwt6O/sPoIQAA3Jzmxul0OpmTNayUAbgpnUYiJ2NOp7PFtjAIJCCNgEAikIBAAgQUSE8YdgQAAOhEXNPknfVO3MkabmqvkZHTWS+VSlv0GhFIQBoBgUQgAYEECCiQnjDsCAAA0LlIpdK6ujqOI6yRgZuGI1YnijKZDIEEpBEAgQQEEuAGA+mGYUcAAIDORSqVOkRHiFzOONxBD25Ch5HjOGIc1Yl1MpkUgQSkEQCBBAQS4AYD6YZhRwAAgM5FJpPV1dWHyF0b83BE6DvCj9hjJEaMOCKurr5eKpUhkIA0AiCQgEAC3GAgm5KJ8gIAAOhUwsLCvr1ypYfiVsY5nUTEGBGHzcHhR+k0EhHHSTiScNyVy1cEQUAgAWkEQCABgQS4wUC6YdgRAACgE5FIJFqt9uTJk1qtRiqTck5n47bgjf8A3Hhv0d1r5IjjOE4iqa+vLy0rS0lJkUgkCCQgjYBAIpCAQAJcdyA9YdgRAACgMzXnHKdQKHQ63cm3/9W3bx91mFqpUkokEqmkkVTCEYeCguvDiDnrnS71TidjzGq1Vn1T9dXXX/fv379Pnz6t74yJQALSCAgkAgkIJCCQ/geyWTix2h8AAKBzteuM1dfX19TUnD9/3mq11tbW2u322tpaNNlw4ziOc119cBwnk8k4jusVGjrg1ltvvfXWnj17SqVSV69Rufcj1/E1M4YikPATptEziqgeoTNUj2ivAYEEBNKfQDa9FhEEAADohJwNq2MYYUdw+DE7ka5/u3qT7sdbjPUgkPBTpbF1FJFG+GmrR7TXgEAC+B9IwiJrAACAzqndJhzgJnAP+gCgegRAIAGBBAg4kygCAAAAAAAAAAAA6FgYdgQAAAAAAAAAAIAOhr0dAQAAAAAAAAAAoINhtiMAAAAAAAAAAAB0MAw7AgAAAAAAAAAAQAf7f4VZwZTGHz/iAAAAAElFTkSuQmCC"},407:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-edit-cell-01.91cf0c1f.png"},408:function(A,t){A.exports="data:image/png;base64,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"},409:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-edit-cell-02b.953a85e4.png"},410:function(A,t,e){A.exports=e.p+"assets/img/grid-customize-edit-cell-03.ac0a8311.png"},928:function(A,t,e){"use strict";e.r(t);var r=e(2),i=Object(r.a)({},(function(){var A=this,t=A._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[t("h1",{attrs:{id:"grid-customization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-customization"}},[A._v("#")]),A._v(" Grid Customization")]),A._v(" "),t("p",[A._v("In this tutorial you will learn how to do simple modifications to a grid like changing the cell text or image.")]),A._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[A._v("Note")]),A._v(" "),t("p",[A._v("In case you need more detailed information, please check the "),t("strong",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[A._v("AsTeRICS Grid user manual")])],1),A._v(".")])]),A._v(" "),t("h2",{attrs:{id:"asterics-grid-web-application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid-web-application"}},[A._v("#")]),A._v(" AsTeRICS Grid web application")]),A._v(" "),t("p",[A._v("AsTeRICS Grid is the web application to run and manage grids for AAC.")]),A._v(" "),t("p",[A._v("If you open the link "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[A._v("https://grid.asterics.eu"),t("OutboundLink")],1),A._v(", the default grid is opened in your browser and saved locally on your device in the browser cache. All modifications are also saved to your local version of the grid from now on.")]),A._v(" "),t("h2",{attrs:{id:"open-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-grid"}},[A._v("#")]),A._v(" Open grid")]),A._v(" "),t("p",[A._v("First you have to open the grid you want to change.")]),A._v(" "),t("h3",{attrs:{id:"saved-grids"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#saved-grids"}},[A._v("#")]),A._v(" Saved Grids")]),A._v(" "),t("p",[A._v("If you click the button "),t("code",[A._v("Manage Grids")]),A._v(", you can open other grids from the list of "),t("code",[A._v("Saved Grids")]),A._v(" by clicking on the "),t("code",[A._v("Edit")]),A._v(" button.")]),A._v(" "),t("ol",[t("li",[t("img",{attrs:{src:e(405),alt:"Screenshot with button Manage Grids highlighted"}})]),A._v(" "),t("li",[t("img",{attrs:{src:e(406),alt:"Screenshot with button Edit highlighted"}})])]),A._v(" "),t("h3",{attrs:{id:"import-grid-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#import-grid-file"}},[A._v("#")]),A._v(" Import Grid file")]),A._v(" "),t("p",[A._v("You can also import and open a grid from a file. To do so, click on "),t("code",[A._v("More/Import grid(s) from file")]),A._v(".")]),A._v(" "),t("h2",{attrs:{id:"change-cell"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-cell"}},[A._v("#")]),A._v(" Change cell")]),A._v(" "),t("p",[A._v("You can change the cell text, image and spoken text of a cell. In order for that you must change to the edit mode of the grid by clicking on "),t("code",[A._v("Edit grid")]),A._v(".")]),A._v(" "),t("h3",{attrs:{id:"cell-text-and-image"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cell-text-and-image"}},[A._v("#")]),A._v(" Cell text and image")]),A._v(" "),t("ol",[t("li",[A._v("Move the mouse cursor to the cell you want to edit and click the right mouse button.")]),A._v(" "),t("li",[A._v("Select the menu entry "),t("code",[A._v("Edit")])]),A._v(" "),t("li",[A._v("Now you can change the label in the text field and select a new image by clicking on "),t("code",[A._v("Choose file")]),A._v(". To clear the image click on "),t("code",[A._v("Clear image")]),A._v(".")])]),A._v(" "),t("p",[t("img",{attrs:{src:e(407),alt:"Screenshot of edit cell dialog"}})]),A._v(" "),t("h3",{attrs:{id:"spoken-text"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#spoken-text"}},[A._v("#")]),A._v(" Spoken text")]),A._v(" "),t("p",[A._v("You can also change the spoken text of a grid by the following steps")]),A._v(" "),t("ol",[t("li",[A._v("Move the mouse cursor to the cell you want to edit and click the right mouse button.")]),A._v(" "),t("li",[A._v("Select the menu entry "),t("code",[A._v("Actions")])]),A._v(" "),t("li",[A._v("Delete "),t("code",[A._v("Speak label")]),A._v(" action\n"),t("img",{attrs:{src:e(408),alt:"Screenshot of edit actions dialog"}})]),A._v(" "),t("li",[A._v("Add "),t("code",[A._v("Speak custom text")]),A._v(" action")]),A._v(" "),t("li",[A._v("Enter text and click on "),t("code",[A._v("Test")])]),A._v(" "),t("li",[A._v("Finally, save the custom text by clicking on "),t("code",[A._v("OK")])])]),A._v(" "),t("p",[t("img",{attrs:{src:e(409),alt:"Screenshot of edit actions dialog"}}),A._v(" "),t("img",{attrs:{src:e(410),alt:"Screenshot of edit actions dialog"}})]),A._v(" "),t("h3",{attrs:{id:"close-edit-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#close-edit-mode"}},[A._v("#")]),A._v(" Close Edit mode")]),A._v(" "),t("p",[A._v("After you have finished all changes, you must close the edit mode for being able to use the grid. You can do this by clicking on the button "),t("code",[A._v("Back")]),A._v(" in the top menu.")]),A._v(" "),t("h2",{attrs:{id:"conclusion"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[A._v("#")]),A._v(" Conclusion")]),A._v(" "),t("p",[A._v("Now you know how to change a cell text, image or spoken text, to learn how to create a new grid, try the "),t("a",{attrs:{href:"./Grid-Creation"}},[A._v("grid creation tutorial")]),A._v(".")])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/230.c717e5f8.js b/assets/js/230.c9490c1e.js similarity index 92% rename from assets/js/230.c717e5f8.js rename to assets/js/230.c9490c1e.js index f1f8e17035..657341ebc5 100644 --- a/assets/js/230.c717e5f8.js +++ b/assets/js/230.c9490c1e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[230],{1189:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"relative-move-sampler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#relative-move-sampler"}},[t._v("#")]),t._v(" Relative Move Sampler")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin was developed for models where a constant rate of value updates is needed. The plugin sums incoming relative position packages for three coordinates. The sums are sent to the output ports according to sampling rate. When the sums are sent, the accumulation values are reset to zero.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(751),alt:"Screenshot: Relative Move Sampler",title:"Screenshot: Relative Move Sampler"}})]),t._v(" "),e("p",[t._v("Relative Move Sampler")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputX [integer]:")]),t._v(" Input X position.")]),t._v(" "),e("li",[e("strong",[t._v("inputY [integer]:")]),t._v(" Input Y position.")]),t._v(" "),e("li",[e("strong",[t._v("inputZ [integer]:")]),t._v(" Input Z position.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputX [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output X position.")]),t._v(" "),e("li",[e("strong",[t._v("outputY [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output Y position.")]),t._v(" "),e("li",[e("strong",[t._v("outputZ [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output Z position.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("samplingRate [integer]:")]),t._v(" Defines the rate of the sampling (in Hz).")])])])}),[],!1,null,null,null);e.default=o.exports},751:function(t,e,r){t.exports=r.p+"assets/img/relativemovesampler.314a4078.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[230],{1209:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"relative-move-sampler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#relative-move-sampler"}},[t._v("#")]),t._v(" Relative Move Sampler")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin was developed for models where a constant rate of value updates is needed. The plugin sums incoming relative position packages for three coordinates. The sums are sent to the output ports according to sampling rate. When the sums are sent, the accumulation values are reset to zero.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(770),alt:"Screenshot: Relative Move Sampler",title:"Screenshot: Relative Move Sampler"}})]),t._v(" "),e("p",[t._v("Relative Move Sampler")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inputX [integer]:")]),t._v(" Input X position.")]),t._v(" "),e("li",[e("strong",[t._v("inputY [integer]:")]),t._v(" Input Y position.")]),t._v(" "),e("li",[e("strong",[t._v("inputZ [integer]:")]),t._v(" Input Z position.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("outputX [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output X position.")]),t._v(" "),e("li",[e("strong",[t._v("outputY [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output Y position.")]),t._v(" "),e("li",[e("strong",[t._v("outputZ [**"),e("strong",[t._v("integer*")]),t._v("*]:")]),t._v(" Output Z position.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("samplingRate [integer]:")]),t._v(" Defines the rate of the sampling (in Hz).")])])])}),[],!1,null,null,null);e.default=o.exports},770:function(t,e,r){t.exports=r.p+"assets/img/relativemovesampler.314a4078.jpg"}}]); \ No newline at end of file diff --git a/assets/js/231.4fd00865.js b/assets/js/231.56a02a53.js similarity index 97% rename from assets/js/231.4fd00865.js rename to assets/js/231.56a02a53.js index 00f222017a..62fda0ee98 100644 --- a/assets/js/231.4fd00865.js +++ b/assets/js/231.56a02a53.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[231],{1191:function(t,e,i){"use strict";i.r(e);var n=i(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ssvep-detect"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ssvep-detect"}},[t._v("#")]),t._v(" SSVEP Detect")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This component is in charge of evaluating the SSVEP response (up to 4 different frequencies) among the frequencies defined by the user. It also calculates the config file based on previously recorded training files that will be used to evaluate the detection, and is also in charge of updating its parameters according to the config file Component Type: Processor (Subcategory: DSP and Feauture extraction)")]),t._v(" "),e("p",[e("img",{attrs:{src:i(753),alt:"Screenshot: SSVEPDetect plugin",title:"Screenshot: SSVEPDetect plugin"}})]),t._v(" "),e("p",[t._v("SSVEPDetect plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("SSVEPTrainFunction.exe and Matlab 2008B runtime engine")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("O1 [double]:")]),t._v(" Input port for the EEG channel O1. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("Oz [double]:")]),t._v(" Input port for the EEG channel Oz. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("O2 [double]:")]),t._v(" Input port for the EEG channel O2. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("UserName [string]:")]),t._v(" Name Identifying current the user.")]),t._v(" "),e("li",[e("strong",[t._v("NumberOfPanels [string]:")]),t._v(" Number of stimulation panels.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP1 [string]:")]),t._v(" Stimulation frequency of panel 1.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP2 [string]:")]),t._v(" Stimulation frequency of panel 2.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP3 [string]:")]),t._v(" Stimulation frequency of panel 3.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP4 [string]:")]),t._v(" Stimulation frequency of panel 4.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FreqP1 [integer]:")]),t._v(" Stimulation frequency of panel 1.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP2 [integer]:")]),t._v(" Stimulation frequency of panel 2.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP3 [integer]:")]),t._v(" Stimulation frequency of panel 3.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP4 [integer]:")]),t._v(" Stimulation frequency of panel 4.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartStim:")]),t._v(" Event Informing that the stimulation period has started.")]),t._v(" "),e("li",[e("strong",[t._v("StopStim:")]),t._v(" Event Informing that the stimulation period has finished.")]),t._v(" "),e("li",[e("strong",[t._v("CalculateConfigFile:")]),t._v(" Event requesting the calculation of the configuration file")]),t._v(" "),e("li",[e("strong",[t._v("UpdateFromConfigFile:")]),t._v(" Event requested an update of the properties according to the configuration file.")]),t._v(" "),e("li",[e("strong",[t._v("UpdatePanelsConfig:")]),t._v(" Event reporting the stimulation panels plugin to update the stimulation frequencies.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("UpdatePanelsConfig:")]),t._v(" Event reporting the stimulation panels plugin to update the stimulation frequencies.")]),t._v(" "),e("li",[e("strong",[t._v("NonStimFreqD:")]),t._v(" Event reporting that none stimulation frequency could be detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq1D:")]),t._v(" Event reporting that stimulation frequency number 1 was detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq2D:")]),t._v(" Event reporting that stimulation frequency number 2 was detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq3D:")]),t._v(" Event reporting that stimulation frequency number 3 was detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq4D:")]),t._v(" Event reporting that stimulation frequency number 4 was detected.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("SF1GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 1 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF1GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 1 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF1GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 1 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("SF2GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 2 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF2GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 2 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF2GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 2 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("SF3GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 3 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF3GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 3 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF3GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 3 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("SF4GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 4 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF4GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 4 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF4GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 4 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq1 [integer]:")]),t._v(" Stimulation frequency number 2 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection…")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq2 [integer]:")]),t._v(" Stimulation frequency number 2 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq3 [integer]:")]),t._v(" Stimulation frequency number 3 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq4 [integer]:")]),t._v(" Stimulation frequency number 4 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm1 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 1.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm2 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 2.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm3 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 3.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm4 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 4.")])])])}),[],!1,null,null,null);e.default=r.exports},753:function(t,e,i){t.exports=i.p+"assets/img/ssvepdetect.a71b1d1d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[231],{1187:function(t,e,i){"use strict";i.r(e);var n=i(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ssvep-detect"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ssvep-detect"}},[t._v("#")]),t._v(" SSVEP Detect")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),t._v(" "),e("p",[t._v("This component is in charge of evaluating the SSVEP response (up to 4 different frequencies) among the frequencies defined by the user. It also calculates the config file based on previously recorded training files that will be used to evaluate the detection, and is also in charge of updating its parameters according to the config file Component Type: Processor (Subcategory: DSP and Feauture extraction)")]),t._v(" "),e("p",[e("img",{attrs:{src:i(751),alt:"Screenshot: SSVEPDetect plugin",title:"Screenshot: SSVEPDetect plugin"}})]),t._v(" "),e("p",[t._v("SSVEPDetect plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("SSVEPTrainFunction.exe and Matlab 2008B runtime engine")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("O1 [double]:")]),t._v(" Input port for the EEG channel O1. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("Oz [double]:")]),t._v(" Input port for the EEG channel Oz. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("O2 [double]:")]),t._v(" Input port for the EEG channel O2. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("UserName [string]:")]),t._v(" Name Identifying current the user.")]),t._v(" "),e("li",[e("strong",[t._v("NumberOfPanels [string]:")]),t._v(" Number of stimulation panels.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP1 [string]:")]),t._v(" Stimulation frequency of panel 1.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP2 [string]:")]),t._v(" Stimulation frequency of panel 2.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP3 [string]:")]),t._v(" Stimulation frequency of panel 3.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP4 [string]:")]),t._v(" Stimulation frequency of panel 4.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FreqP1 [integer]:")]),t._v(" Stimulation frequency of panel 1.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP2 [integer]:")]),t._v(" Stimulation frequency of panel 2.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP3 [integer]:")]),t._v(" Stimulation frequency of panel 3.")]),t._v(" "),e("li",[e("strong",[t._v("FreqP4 [integer]:")]),t._v(" Stimulation frequency of panel 4.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("StartStim:")]),t._v(" Event Informing that the stimulation period has started.")]),t._v(" "),e("li",[e("strong",[t._v("StopStim:")]),t._v(" Event Informing that the stimulation period has finished.")]),t._v(" "),e("li",[e("strong",[t._v("CalculateConfigFile:")]),t._v(" Event requesting the calculation of the configuration file")]),t._v(" "),e("li",[e("strong",[t._v("UpdateFromConfigFile:")]),t._v(" Event requested an update of the properties according to the configuration file.")]),t._v(" "),e("li",[e("strong",[t._v("UpdatePanelsConfig:")]),t._v(" Event reporting the stimulation panels plugin to update the stimulation frequencies.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("UpdatePanelsConfig:")]),t._v(" Event reporting the stimulation panels plugin to update the stimulation frequencies.")]),t._v(" "),e("li",[e("strong",[t._v("NonStimFreqD:")]),t._v(" Event reporting that none stimulation frequency could be detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq1D:")]),t._v(" Event reporting that stimulation frequency number 1 was detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq2D:")]),t._v(" Event reporting that stimulation frequency number 2 was detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq3D:")]),t._v(" Event reporting that stimulation frequency number 3 was detected.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq4D:")]),t._v(" Event reporting that stimulation frequency number 4 was detected.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("SF1GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 1 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF1GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 1 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF1GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 1 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("SF2GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 2 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF2GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 2 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF2GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 2 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("SF3GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 3 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF3GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 3 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF3GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 3 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("SF4GO1 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 4 and electrode O1.")]),t._v(" "),e("li",[e("strong",[t._v("SF4GOz [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 4 and electrode Oz.")]),t._v(" "),e("li",[e("strong",[t._v("SF4GO2 [double]:")]),t._v(" Spatial filter coefficient for stimulation frequency 4 and electrode O2.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq1 [integer]:")]),t._v(" Stimulation frequency number 2 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection…")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq2 [integer]:")]),t._v(" Stimulation frequency number 2 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq3 [integer]:")]),t._v(" Stimulation frequency number 3 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection.")]),t._v(" "),e("li",[e("strong",[t._v("StimFreq4 [integer]:")]),t._v(" Stimulation frequency number 4 in Hz. If its value is 0 it will not be evaluated in the SSVEP detection.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm1 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 1.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm2 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 2.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm3 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 3.")]),t._v(" "),e("li",[e("strong",[t._v("BestHarm4 [integer]:")]),t._v(" Best harmonic to detect stimulation frequency 4.")])])])}),[],!1,null,null,null);e.default=r.exports},751:function(t,e,i){t.exports=i.p+"assets/img/ssvepdetect.a71b1d1d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/232.662c71bf.js b/assets/js/232.38813191.js similarity index 93% rename from assets/js/232.662c71bf.js rename to assets/js/232.38813191.js index f399c217ed..36d2d44c6f 100644 --- a/assets/js/232.662c71bf.js +++ b/assets/js/232.38813191.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[232],{1190:function(t,e,s){"use strict";s.r(e);var o=s(2),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sample-and-hold"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sample-and-hold"}},[t._v("#")]),t._v(" Sample and Hold")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component provides a sample-and-hold function for up to 4 input signals. This can be useful for storing a particular sensor values (e.g. for sensor calibration purpose).")]),t._v(" "),e("p",[e("img",{attrs:{src:s(752),alt:"Screenshot: SampleAndHold plugin",title:"Screenshot: SampleAndHold plugin"}})]),t._v(" "),e("p",[t._v("SampleAndHold plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1 - in4 [double]:")]),t._v(" four input ports for double values to be captured on demand.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 - out4 [double]:")]),t._v(" last captured values.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sampleNow:")]),t._v(" When an event comes in, the signal values of the input ports are captured and sent to the output ports.")])])])}),[],!1,null,null,null);e.default=n.exports},752:function(t,e,s){t.exports=s.p+"assets/img/sampleandhold.5e355178.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[232],{1190:function(t,e,s){"use strict";s.r(e);var o=s(2),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sample-and-hold"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sample-and-hold"}},[t._v("#")]),t._v(" Sample and Hold")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This component provides a sample-and-hold function for up to 4 input signals. This can be useful for storing a particular sensor values (e.g. for sensor calibration purpose).")]),t._v(" "),e("p",[e("img",{attrs:{src:s(754),alt:"Screenshot: SampleAndHold plugin",title:"Screenshot: SampleAndHold plugin"}})]),t._v(" "),e("p",[t._v("SampleAndHold plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1 - in4 [double]:")]),t._v(" four input ports for double values to be captured on demand.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 - out4 [double]:")]),t._v(" last captured values.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sampleNow:")]),t._v(" When an event comes in, the signal values of the input ports are captured and sent to the output ports.")])])])}),[],!1,null,null,null);e.default=n.exports},754:function(t,e,s){t.exports=s.p+"assets/img/sampleandhold.5e355178.jpg"}}]); \ No newline at end of file diff --git a/assets/js/233.0f1d6f5b.js b/assets/js/233.41b293f1.js similarity index 94% rename from assets/js/233.0f1d6f5b.js rename to assets/js/233.41b293f1.js index 9be151506c..77b74da592 100644 --- a/assets/js/233.0f1d6f5b.js +++ b/assets/js/233.41b293f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[233],{1192:function(t,e,s){"use strict";s.r(e);var r=s(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sampler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sampler"}},[t._v("#")]),t._v(" Sampler")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin generates a constant rate of sampling for the input port signal.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(754),alt:"Screenshot: Sampler plugin",title:"Screenshot: Sampler plugin"}})]),t._v(" "),e("p",[t._v("Sampler plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [**"),e("strong",[t._v("double*")]),t._v("*]:")]),t._v(" Output port for signal with constant rate of the sampling.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("samplingRate [double]:")]),t._v(" The rate of sampling, which defines the data generation frequency at the output port.")]),t._v(" "),e("li",[e("strong",[t._v("responseTime [integer]:")]),t._v(" Response time in milliseconds. If the time from arrival of the last input data exceeds the response time, the plugin stops sending the output data. If the responseTime is set to 0, it is not used.")]),t._v(" "),e("li",[e("strong",[t._v("sendNullSamples [boolean]:")]),t._v(" If this property is set to true and there is no input data or the response time is exceeded the plugin sends samples equal to zero.")])])])}),[],!1,null,null,null);e.default=o.exports},754:function(t,e,s){t.exports=s.p+"assets/img/sampler.03599c8c.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[233],{1192:function(t,e,s){"use strict";s.r(e);var r=s(2),o=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sampler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sampler"}},[t._v("#")]),t._v(" Sampler")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Basic Math)")]),t._v(" "),e("p",[t._v("This plugin generates a constant rate of sampling for the input port signal.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(755),alt:"Screenshot: Sampler plugin",title:"Screenshot: Sampler plugin"}})]),t._v(" "),e("p",[t._v("Sampler plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [double]:")]),t._v(" Input port for the signal.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [**"),e("strong",[t._v("double*")]),t._v("*]:")]),t._v(" Output port for signal with constant rate of the sampling.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("samplingRate [double]:")]),t._v(" The rate of sampling, which defines the data generation frequency at the output port.")]),t._v(" "),e("li",[e("strong",[t._v("responseTime [integer]:")]),t._v(" Response time in milliseconds. If the time from arrival of the last input data exceeds the response time, the plugin stops sending the output data. If the responseTime is set to 0, it is not used.")]),t._v(" "),e("li",[e("strong",[t._v("sendNullSamples [boolean]:")]),t._v(" If this property is set to true and there is no input data or the response time is exceeded the plugin sends samples equal to zero.")])])])}),[],!1,null,null,null);e.default=o.exports},755:function(t,e,s){t.exports=s.p+"assets/img/sampler.03599c8c.jpg"}}]); \ No newline at end of file diff --git a/assets/js/234.d49ccd9f.js b/assets/js/234.62628e62.js similarity index 95% rename from assets/js/234.d49ccd9f.js rename to assets/js/234.62628e62.js index f77ef3aeeb..f258578001 100644 --- a/assets/js/234.d49ccd9f.js +++ b/assets/js/234.62628e62.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[234],{1193:function(e,t,s){"use strict";s.r(t);var a=s(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"serialsender"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#serialsender"}},[e._v("#")]),e._v(" SerialSender")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Serial Communication)")]),e._v(" "),t("p",[e._v("The Serialsender can be used to send structured data to Serial devices. It has 16 data slots. Whenever a send event occurs the plugin sends every slot which is active to the device, beginning with slot0")]),e._v(" "),t("p",[t("img",{attrs:{src:s(755),alt:"Screenshot: SerialSender plugin",title:"Screenshot: SerialSender plugin"}})]),e._v(" "),t("p",[e._v("SerialSender plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("slot0 - slot15 [int]:")]),e._v(" Input data for each slot. The lower 8 Bit of the input will be sent when the slot is set Active and a send event occurs")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [string]:")]),e._v(" Defines the COM Port of the target serial device. e.g. COM0")]),e._v(" "),t("li",[t("strong",[e._v("BaudRate [integer]:")]),e._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),e._v(" "),t("li",[e._v("**Slot[0-15] [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the default value of a slot. This value will be overridden if there is data available at the corresponding input slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Active [boolean]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Activate a Slot. Whenever a send event occurs the SerialSender will iterate over all Slots beginning with slot 0 and send the data of every Active Slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Delay [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the delay the plugin should wait before sending data to a slot.")])])])}),[],!1,null,null,null);t.default=i.exports},755:function(e,t,s){e.exports=s.p+"assets/img/serialsender.58f95c8a.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[234],{1193:function(e,t,s){"use strict";s.r(t);var a=s(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"serialsender"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#serialsender"}},[e._v("#")]),e._v(" SerialSender")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Serial Communication)")]),e._v(" "),t("p",[e._v("The Serialsender can be used to send structured data to Serial devices. It has 16 data slots. Whenever a send event occurs the plugin sends every slot which is active to the device, beginning with slot0")]),e._v(" "),t("p",[t("img",{attrs:{src:s(756),alt:"Screenshot: SerialSender plugin",title:"Screenshot: SerialSender plugin"}})]),e._v(" "),t("p",[e._v("SerialSender plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("slot0 - slot15 [int]:")]),e._v(" Input data for each slot. The lower 8 Bit of the input will be sent when the slot is set Active and a send event occurs")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [string]:")]),e._v(" Defines the COM Port of the target serial device. e.g. COM0")]),e._v(" "),t("li",[t("strong",[e._v("BaudRate [integer]:")]),e._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),e._v(" "),t("li",[e._v("**Slot[0-15] [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the default value of a slot. This value will be overridden if there is data available at the corresponding input slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Active [boolean]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Activate a Slot. Whenever a send event occurs the SerialSender will iterate over all Slots beginning with slot 0 and send the data of every Active Slot")]),e._v(" "),t("li",[e._v("**Slot[0-15]Delay [int]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Defines the delay the plugin should wait before sending data to a slot.")])])])}),[],!1,null,null,null);t.default=i.exports},756:function(e,t,s){e.exports=s.p+"assets/img/serialsender.58f95c8a.png"}}]); \ No newline at end of file diff --git a/assets/js/235.e762fc65.js b/assets/js/235.d6a23dcd.js similarity index 95% rename from assets/js/235.e762fc65.js rename to assets/js/235.d6a23dcd.js index ad1d219c2f..cfaaf414a7 100644 --- a/assets/js/235.e762fc65.js +++ b/assets/js/235.d6a23dcd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[235],{1196:function(t,e,n){"use strict";n.r(e);var i=n(2),a=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"signal-translation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#signal-translation"}},[t._v("#")]),t._v(" Signal Translation")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Shaping)")]),t._v(" "),e("p",[t._v("The signal translation component is used to translate an input value which resides in a certain value range to a given output range. Interpolation of the position in the output range is done linearly. The component provides two inputs which allow other components to set the minimum and maximum value of the input range.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(757),alt:"Screenshot: SignalTranslation plugin",title:"Screenshot: SignalTranslation plugin"}})]),t._v(" "),e("p",[t._v("SignalTranslation plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" This port receives the input values which will be translated to the new range.")]),t._v(" "),e("li",[e("strong",[t._v("setMax [double]:")]),t._v(" This port sets the value of the input maximum property (inMax) in the component.")]),t._v(" "),e("li",[e("strong",[t._v("setMin [double]:")]),t._v(" This port sets the value of the input minimum property (inMin) in the component.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" This port sends the translated values corresponding to the output range.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("enterRange:")]),t._v(" This event is generated if the defined input range was entered by the last input value and now inMin < value < inMax holds. It is also fired if inMin or inMax is changed using the corresponding input ports and after this change now inMin < value < inMax newly holds.")]),t._v(" "),e("li",[e("strong",[t._v("exitRangeBelow:")]),t._v(" This event is generated if value < inMin holds and value >= inMin was true for the last value. It is also fired if inMin is changed using the corresponding input port and after this change value < inMin newly holds.")]),t._v(" "),e("li",[e("strong",[t._v("exitRangeAbove:")]),t._v(" This event is generated if value > inMax holds and value <= inMax was true for the last value. It is also fired if inMax is changed using the corresponding input port and after this change value > inMax newly holds.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inMin [double]:")]),t._v(" Sets the minimum value of the input range, input values below this value will be clipped to the minimum.")]),t._v(" "),e("li",[e("strong",[t._v("inMax [double]:")]),t._v(" Sets the maximum value of the input range, input values above this value will be clipped to the maximum.")]),t._v(" "),e("li",[e("strong",[t._v("outMin [double]:")]),t._v(" Sets the minimum value of the output range.")]),t._v(" "),e("li",[e("strong",[t._v("outMax [double]:")]),t._v(" Sets the maximum value of the output range.")])])])}),[],!1,null,null,null);e.default=a.exports},757:function(t,e,n){t.exports=n.p+"assets/img/signaltranslation.77320c23.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[235],{1195:function(t,e,n){"use strict";n.r(e);var i=n(2),a=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"signal-translation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#signal-translation"}},[t._v("#")]),t._v(" Signal Translation")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Shaping)")]),t._v(" "),e("p",[t._v("The signal translation component is used to translate an input value which resides in a certain value range to a given output range. Interpolation of the position in the output range is done linearly. The component provides two inputs which allow other components to set the minimum and maximum value of the input range.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(758),alt:"Screenshot: SignalTranslation plugin",title:"Screenshot: SignalTranslation plugin"}})]),t._v(" "),e("p",[t._v("SignalTranslation plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [double]:")]),t._v(" This port receives the input values which will be translated to the new range.")]),t._v(" "),e("li",[e("strong",[t._v("setMax [double]:")]),t._v(" This port sets the value of the input maximum property (inMax) in the component.")]),t._v(" "),e("li",[e("strong",[t._v("setMin [double]:")]),t._v(" This port sets the value of the input minimum property (inMin) in the component.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [double]:")]),t._v(" This port sends the translated values corresponding to the output range.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("enterRange:")]),t._v(" This event is generated if the defined input range was entered by the last input value and now inMin < value < inMax holds. It is also fired if inMin or inMax is changed using the corresponding input ports and after this change now inMin < value < inMax newly holds.")]),t._v(" "),e("li",[e("strong",[t._v("exitRangeBelow:")]),t._v(" This event is generated if value < inMin holds and value >= inMin was true for the last value. It is also fired if inMin is changed using the corresponding input port and after this change value < inMin newly holds.")]),t._v(" "),e("li",[e("strong",[t._v("exitRangeAbove:")]),t._v(" This event is generated if value > inMax holds and value <= inMax was true for the last value. It is also fired if inMax is changed using the corresponding input port and after this change value > inMax newly holds.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inMin [double]:")]),t._v(" Sets the minimum value of the input range, input values below this value will be clipped to the minimum.")]),t._v(" "),e("li",[e("strong",[t._v("inMax [double]:")]),t._v(" Sets the maximum value of the input range, input values above this value will be clipped to the maximum.")]),t._v(" "),e("li",[e("strong",[t._v("outMin [double]:")]),t._v(" Sets the minimum value of the output range.")]),t._v(" "),e("li",[e("strong",[t._v("outMax [double]:")]),t._v(" Sets the maximum value of the output range.")])])])}),[],!1,null,null,null);e.default=a.exports},758:function(t,e,n){t.exports=n.p+"assets/img/signaltranslation.77320c23.jpg"}}]); \ No newline at end of file diff --git a/assets/js/236.ace2b5b5.js b/assets/js/236.7cd1ccc9.js similarity index 98% rename from assets/js/236.ace2b5b5.js rename to assets/js/236.7cd1ccc9.js index c1ee0de703..2e04277f62 100644 --- a/assets/js/236.ace2b5b5.js +++ b/assets/js/236.7cd1ccc9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[236],{1194:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"speech-processor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#speech-processor"}},[e._v("#")]),e._v(" Speech Processor")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The SpeechProcessor component provides methods to use a speech recognition engine and a speech synthesizer, provided via the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v4.1.0/SpeechPlatformRuntime11_including_ge-en-es-Language-Packs.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("Microsoft Speech Platform Runtime 11"),t("OutboundLink")],1),e._v(".\nOriginally the download was available through "),t("a",{attrs:{href:"http://www.microsoft.com/en-us/download/details.aspx?id=27225",target:"_blank",rel:"noopener noreferrer"}},[e._v("Microsoft Download"),t("OutboundLink")],1),e._v(" but is now provided with the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v4.1.0/SpeechPlatformRuntime11_including_ge-en-es-Language-Packs.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS 4.1 release"),t("OutboundLink")],1),e._v(", as the official download was closed. The Microsoft Speech Platform provides recognition of spoken words and generation of synthesized speech (text-to-speech, TTS). Engines and language packs for 26 languages can be downloaded for free (see above link). The language (culture) of speech recognition and synthesis can be adjusted as a plugin property (currently English, German, Spanish and Polish are supported by the plugin, if the language packs are installed.) The supported voice commands can be set by the plugin properties. Recognized commands trigger events and are put to an output port as stings. Moreover, the component can receive strings which are spoken via the selected speech synthesizer. The component features special commands for activation, deactivation and speaking all supported commands")]),e._v(" "),t("p",[t("img",{attrs:{src:n(756),alt:"Screenshot: SpeechProcessor plugin",title:"Screenshot: SpeechProcessor plugin"}})]),e._v(" "),t("p",[e._v("SpeechProcessor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("This component requires Microsoft’s Speech Platform version 11 Runtime and the desired language packs to be installed on the platform running the plugin.")])]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("speak [string]:")]),e._v(" This port receives strings containing sentences or words that should be spoken via a speech synthesizer which fits the selected language (text-to-speech).")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("command [string]:")]),e._v(" This output sends strings which have been recognized by the speech recognition engine (matching one of the commands defined by property values).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("help:")]),e._v(" and incoming event starts the help mode where all supported voice commands will be spoken.")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activated:")]),e._v(" triggered when the recognition is activated via the defined activation command.")]),e._v(" "),t("li",[t("strong",[e._v("deActivated:")]),e._v(" triggered when the recognition is deactivated via the defined command.")]),e._v(" "),t("li",[t("strong",[e._v("recognizedCommand1 - recognizedCommand10:")]),e._v(" If an incoming word matches a command defined in the plugin properties, the corresponding event will fire.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("language [integer] (combobox selection):")]),e._v(" A combobox which defines which speech pack is to be used (currently: English, German, Spanish, Polish) - these language packs need to be installed !")]),e._v(" "),t("li",[t("strong",[e._v("recognitionConfidence [double]:")]),e._v(" This value defines the needed confidence for a valid recognition. The value can range from 0 to 1. A higher value results in a more precise pronunciation needed to detect a command, a lower level could lead to more false-positive recognition results.")]),e._v(" "),t("li",[t("strong",[e._v("speechLoopDelay [integer]:")]),e._v(" This value defines the minimal time between two speech commands. It is used to avoid recognition-loops")]),e._v(" "),t("li",[t("strong",[e._v("activationCommand [string]:")]),e._v(" a speech command to start the recognition of the other commands.")]),e._v(" "),t("li",[t("strong",[e._v("deactivationCommand [string]:")]),e._v(" a speech command to stop the recognition of the other commands.")]),e._v(" "),t("li",[t("strong",[e._v("helpCommand [string]:")]),e._v(" a speech command to speak out all supported voice commands.")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer] (combobox selection):")]),e._v(" This property selects one out of three operating modes for the speech recognition:\n"),t("ul",[t("li",[e._v("“always active”: the command recognition is always running")]),e._v(" "),t("li",[e._v("“voice-triggered activation and deactivation”: the command recognition is started by the recognition of the activation command and stopped by the deactivation command (these commands are defined in the according properties).")]),e._v(" "),t("li",[e._v("“automatic deactivation after command recognition”: after a recognized command, the speech recognition will be bypassed until another activation command has been recognized.")]),e._v(" "),t("li",[e._v("“speech recognition disabled (TTS only)”: In this mode, the speech recognition engine is not used whichs saved CPU power in text-to-speech-only applications.")])])]),e._v(" "),t("li",[t("strong",[e._v("command1 to command10:")]),e._v(" The command strings which are checked by the speech recognition engines (these build the recognition grammar).")])])])}),[],!1,null,null,null);t.default=i.exports},756:function(e,t,n){e.exports=n.p+"assets/img/speechprocessor.69f52c9f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[236],{1194:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"speech-processor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#speech-processor"}},[e._v("#")]),e._v(" Speech Processor")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The SpeechProcessor component provides methods to use a speech recognition engine and a speech synthesizer, provided via the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v4.1.0/SpeechPlatformRuntime11_including_ge-en-es-Language-Packs.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("Microsoft Speech Platform Runtime 11"),t("OutboundLink")],1),e._v(".\nOriginally the download was available through "),t("a",{attrs:{href:"http://www.microsoft.com/en-us/download/details.aspx?id=27225",target:"_blank",rel:"noopener noreferrer"}},[e._v("Microsoft Download"),t("OutboundLink")],1),e._v(" but is now provided with the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v4.1.0/SpeechPlatformRuntime11_including_ge-en-es-Language-Packs.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS 4.1 release"),t("OutboundLink")],1),e._v(", as the official download was closed. The Microsoft Speech Platform provides recognition of spoken words and generation of synthesized speech (text-to-speech, TTS). Engines and language packs for 26 languages can be downloaded for free (see above link). The language (culture) of speech recognition and synthesis can be adjusted as a plugin property (currently English, German, Spanish and Polish are supported by the plugin, if the language packs are installed.) The supported voice commands can be set by the plugin properties. Recognized commands trigger events and are put to an output port as stings. Moreover, the component can receive strings which are spoken via the selected speech synthesizer. The component features special commands for activation, deactivation and speaking all supported commands")]),e._v(" "),t("p",[t("img",{attrs:{src:n(757),alt:"Screenshot: SpeechProcessor plugin",title:"Screenshot: SpeechProcessor plugin"}})]),e._v(" "),t("p",[e._v("SpeechProcessor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("This component requires Microsoft’s Speech Platform version 11 Runtime and the desired language packs to be installed on the platform running the plugin.")])]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("speak [string]:")]),e._v(" This port receives strings containing sentences or words that should be spoken via a speech synthesizer which fits the selected language (text-to-speech).")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("command [string]:")]),e._v(" This output sends strings which have been recognized by the speech recognition engine (matching one of the commands defined by property values).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("help:")]),e._v(" and incoming event starts the help mode where all supported voice commands will be spoken.")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activated:")]),e._v(" triggered when the recognition is activated via the defined activation command.")]),e._v(" "),t("li",[t("strong",[e._v("deActivated:")]),e._v(" triggered when the recognition is deactivated via the defined command.")]),e._v(" "),t("li",[t("strong",[e._v("recognizedCommand1 - recognizedCommand10:")]),e._v(" If an incoming word matches a command defined in the plugin properties, the corresponding event will fire.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("language [integer] (combobox selection):")]),e._v(" A combobox which defines which speech pack is to be used (currently: English, German, Spanish, Polish) - these language packs need to be installed !")]),e._v(" "),t("li",[t("strong",[e._v("recognitionConfidence [double]:")]),e._v(" This value defines the needed confidence for a valid recognition. The value can range from 0 to 1. A higher value results in a more precise pronunciation needed to detect a command, a lower level could lead to more false-positive recognition results.")]),e._v(" "),t("li",[t("strong",[e._v("speechLoopDelay [integer]:")]),e._v(" This value defines the minimal time between two speech commands. It is used to avoid recognition-loops")]),e._v(" "),t("li",[t("strong",[e._v("activationCommand [string]:")]),e._v(" a speech command to start the recognition of the other commands.")]),e._v(" "),t("li",[t("strong",[e._v("deactivationCommand [string]:")]),e._v(" a speech command to stop the recognition of the other commands.")]),e._v(" "),t("li",[t("strong",[e._v("helpCommand [string]:")]),e._v(" a speech command to speak out all supported voice commands.")]),e._v(" "),t("li",[t("strong",[e._v("mode [integer] (combobox selection):")]),e._v(" This property selects one out of three operating modes for the speech recognition:\n"),t("ul",[t("li",[e._v("“always active”: the command recognition is always running")]),e._v(" "),t("li",[e._v("“voice-triggered activation and deactivation”: the command recognition is started by the recognition of the activation command and stopped by the deactivation command (these commands are defined in the according properties).")]),e._v(" "),t("li",[e._v("“automatic deactivation after command recognition”: after a recognized command, the speech recognition will be bypassed until another activation command has been recognized.")]),e._v(" "),t("li",[e._v("“speech recognition disabled (TTS only)”: In this mode, the speech recognition engine is not used whichs saved CPU power in text-to-speech-only applications.")])])]),e._v(" "),t("li",[t("strong",[e._v("command1 to command10:")]),e._v(" The command strings which are checked by the speech recognition engines (these build the recognition grammar).")])])])}),[],!1,null,null,null);t.default=i.exports},757:function(e,t,n){e.exports=n.p+"assets/img/speechprocessor.69f52c9f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/237.dadaacd1.js b/assets/js/237.da7a51b8.js similarity index 94% rename from assets/js/237.dadaacd1.js rename to assets/js/237.da7a51b8.js index a4f128653d..72be53fc3f 100644 --- a/assets/js/237.dadaacd1.js +++ b/assets/js/237.da7a51b8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[237],{1197:function(t,e,r){"use strict";r.r(e);var n=r(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"string-append"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#string-append"}},[t._v("#")]),t._v(" String Append")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("Appends an incoming string or ASCII character to a stringbuffer, the updated stringbuffer is sent to an output port. Incoming events are available to send the final string to a dedicated output port and to clear the stringbuffer (or set it to a default value respectively).")]),t._v(" "),e("p",[e("img",{attrs:{src:r(758),alt:"Screenshot: StringAppend plugin",title:"Screenshot: StringAppend plugin"}})]),t._v(" "),e("p",[t._v("StringAppend plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inStr [string]:")]),t._v(" String input port.")]),t._v(" "),e("li",[e("strong",[t._v("inChar [integer]:")]),t._v(" ASCII code input port.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("actResult [string]:")]),t._v(" String output port for current stringbuffer content.")]),t._v(" "),e("li",[e("strong",[t._v("finalResult [string]:")]),t._v(" String output port for final stringbuffer content (triggered by event or enter).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-ports"}},[t._v("#")]),t._v(" Event Listener Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendNow:")]),t._v(" sends the current content of the stringbuffer to the “finalResult” output port.")]),t._v(" "),e("li",[e("strong",[t._v("sendNowAndClear:")]),t._v(" sends the current content of the stringbuffer to the “finalResult” output port and sets the stringbuffer to the default value.")]),t._v(" "),e("li",[e("strong",[t._v("deleteCharacter:")]),t._v(" deletes the last character of the stringbuffer.")]),t._v(" "),e("li",[e("strong",[t._v("clear:")]),t._v(" sets the stringbuffer to the default value.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("autoSendAtEnter [boolean]:")]),t._v(" If true, the stringbuffer is sent and cleared when the ASCII value for Enter/Return is received by the inChar input port.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("defaultValue [string]:")]),t._v(" An optional string text which is used a initial value for the stringbuffer.")])])])])}),[],!1,null,null,null);e.default=s.exports},758:function(t,e,r){t.exports=r.p+"assets/img/stringappend.ffa6ba12.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[237],{1196:function(t,e,r){"use strict";r.r(e);var n=r(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"string-append"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#string-append"}},[t._v("#")]),t._v(" String Append")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("Appends an incoming string or ASCII character to a stringbuffer, the updated stringbuffer is sent to an output port. Incoming events are available to send the final string to a dedicated output port and to clear the stringbuffer (or set it to a default value respectively).")]),t._v(" "),e("p",[e("img",{attrs:{src:r(759),alt:"Screenshot: StringAppend plugin",title:"Screenshot: StringAppend plugin"}})]),t._v(" "),e("p",[t._v("StringAppend plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inStr [string]:")]),t._v(" String input port.")]),t._v(" "),e("li",[e("strong",[t._v("inChar [integer]:")]),t._v(" ASCII code input port.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("actResult [string]:")]),t._v(" String output port for current stringbuffer content.")]),t._v(" "),e("li",[e("strong",[t._v("finalResult [string]:")]),t._v(" String output port for final stringbuffer content (triggered by event or enter).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-ports"}},[t._v("#")]),t._v(" Event Listener Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendNow:")]),t._v(" sends the current content of the stringbuffer to the “finalResult” output port.")]),t._v(" "),e("li",[e("strong",[t._v("sendNowAndClear:")]),t._v(" sends the current content of the stringbuffer to the “finalResult” output port and sets the stringbuffer to the default value.")]),t._v(" "),e("li",[e("strong",[t._v("deleteCharacter:")]),t._v(" deletes the last character of the stringbuffer.")]),t._v(" "),e("li",[e("strong",[t._v("clear:")]),t._v(" sets the stringbuffer to the default value.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("autoSendAtEnter [boolean]:")]),t._v(" If true, the stringbuffer is sent and cleared when the ASCII value for Enter/Return is received by the inChar input port.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("defaultValue [string]:")]),t._v(" An optional string text which is used a initial value for the stringbuffer.")])])])])}),[],!1,null,null,null);e.default=s.exports},759:function(t,e,r){t.exports=r.p+"assets/img/stringappend.ffa6ba12.jpg"}}]); \ No newline at end of file diff --git a/assets/js/238.38f832aa.js b/assets/js/238.8c1e90b5.js similarity index 96% rename from assets/js/238.38f832aa.js rename to assets/js/238.8c1e90b5.js index c05d7ddd55..b72b595641 100644 --- a/assets/js/238.38f832aa.js +++ b/assets/js/238.8c1e90b5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[238],{1199:function(t,r,e){"use strict";e.r(r);var s=e(2),n=Object(s.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"stringdelay"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stringdelay"}},[t._v("#")]),t._v(" StringDelay")]),t._v(" "),r("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),r("p",[t._v("This plugin passes received string values after a defined delay.")]),t._v(" "),r("p",[r("img",{attrs:{src:e(760),alt:"Screenshot: StringDelay plugin",title:"Screenshot: StringDelay plugin"}})]),t._v(" "),r("p",[t._v("StringDelay plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("in (string):")]),t._v(" Input port for the incoming string.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("out (string):")]),t._v(" Output port for the delayed string.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("delay [integer]:")]),t._v(" Delay between input and output of the string (in milliseconds).")])])])}),[],!1,null,null,null);r.default=n.exports},760:function(t,r,e){t.exports=e.p+"assets/img/stringdelay.f660f62d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[238],{1197:function(t,r,e){"use strict";e.r(r);var s=e(2),n=Object(s.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"stringdelay"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stringdelay"}},[t._v("#")]),t._v(" StringDelay")]),t._v(" "),r("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),r("p",[t._v("This plugin passes received string values after a defined delay.")]),t._v(" "),r("p",[r("img",{attrs:{src:e(760),alt:"Screenshot: StringDelay plugin",title:"Screenshot: StringDelay plugin"}})]),t._v(" "),r("p",[t._v("StringDelay plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("in (string):")]),t._v(" Input port for the incoming string.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("out (string):")]),t._v(" Output port for the delayed string.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("delay [integer]:")]),t._v(" Delay between input and output of the string (in milliseconds).")])])])}),[],!1,null,null,null);r.default=n.exports},760:function(t,r,e){t.exports=e.p+"assets/img/stringdelay.f660f62d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/239.f9137a1d.js b/assets/js/239.8d0a5254.js similarity index 94% rename from assets/js/239.f9137a1d.js rename to assets/js/239.8d0a5254.js index 9a0368c530..5c9b6c8072 100644 --- a/assets/js/239.f9137a1d.js +++ b/assets/js/239.8d0a5254.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[239],{1198:function(t,e,s){"use strict";s.r(e);var r=s(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component has twenty slots for text strings. These strings can be sent to the output port via incoming events or by directly addressing a slot number using the input port.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(759),alt:"Screenshot: StringDispatcher plugin",title:"Screenshot: StringDispatcher plugin"}})]),t._v(" "),e("p",[t._v("StringDispatcher plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("slotDispatch [integer]:")]),t._v(" Sends the string from the slot defined by number.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dispatchSlot1…dispatchSlot20:")]),t._v(" These events cause text from the slot: 1…20 to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchNextSlot:")]),t._v(" This event causes text from the next (not empty) slot to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchCurrentSlot:")]),t._v(" This event causes text from the current slot to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchPreviousSlot:")]),t._v(" This event causes text from the previous (not empty) slot to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("resetToFirstSlot:")]),t._v(" This event resets the internal slot counter (for next/previous) to the first slot.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchSlotSeries:")]),t._v(" This event causes text in sequence from all not empty slots to be sent, with a delay defined by the delay property.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" The interval (in milliseconds) which will be used for sending strings sequentially from all slots.")]),t._v(" "),e("li",[e("strong",[t._v("slot1…slot20 [string]:")]),t._v(" 20 slots which contains the text to be sent")])])])}),[],!1,null,null,null);e.default=n.exports},759:function(t,e,s){t.exports=s.p+"assets/img/stringdispatcher.9540c871.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[239],{1200:function(t,e,s){"use strict";s.r(e);var r=s(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component has twenty slots for text strings. These strings can be sent to the output port via incoming events or by directly addressing a slot number using the input port.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(763),alt:"Screenshot: StringDispatcher plugin",title:"Screenshot: StringDispatcher plugin"}})]),t._v(" "),e("p",[t._v("StringDispatcher plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("slotDispatch [integer]:")]),t._v(" Sends the string from the slot defined by number.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dispatchSlot1…dispatchSlot20:")]),t._v(" These events cause text from the slot: 1…20 to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchNextSlot:")]),t._v(" This event causes text from the next (not empty) slot to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchCurrentSlot:")]),t._v(" This event causes text from the current slot to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchPreviousSlot:")]),t._v(" This event causes text from the previous (not empty) slot to be sent.")]),t._v(" "),e("li",[e("strong",[t._v("resetToFirstSlot:")]),t._v(" This event resets the internal slot counter (for next/previous) to the first slot.")]),t._v(" "),e("li",[e("strong",[t._v("dispatchSlotSeries:")]),t._v(" This event causes text in sequence from all not empty slots to be sent, with a delay defined by the delay property.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("delay [integer]:")]),t._v(" The interval (in milliseconds) which will be used for sending strings sequentially from all slots.")]),t._v(" "),e("li",[e("strong",[t._v("slot1…slot20 [string]:")]),t._v(" 20 slots which contains the text to be sent")])])])}),[],!1,null,null,null);e.default=n.exports},763:function(t,e,s){t.exports=s.p+"assets/img/stringdispatcher.9540c871.jpg"}}]); \ No newline at end of file diff --git a/assets/js/24.2712d002.js b/assets/js/24.cfb5a2f6.js similarity index 99% rename from assets/js/24.2712d002.js rename to assets/js/24.cfb5a2f6.js index 973a9b920b..bc21a25bbf 100644 --- a/assets/js/24.2712d002.js +++ b/assets/js/24.cfb5a2f6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{290:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_c0991ef32ae9b458.424ba3f3.png"},291:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_4dfe72317ab9f571.6b0975c3.jpg"},292:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_b6693a1cbcd9178a.03fc763d.png"},293:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_f1a0b4f36dd370ba.c1a39a2a.jpg"},294:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_fb7627584ba9d5d7.45a2067d.png"},295:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_3e993efbc73f2910.c6357005.png"},942:function(t,e,a){"use strict";a.r(e);var s=a(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"are-development-manual"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-development-manual"}},[t._v("#")]),t._v(" ARE Development Manual")]),t._v(" "),e("p",[t._v("The AsTeRICS source code repository is hosted at github and located at")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[e("strong",[t._v("https://github.com/asterics/AsTeRICS")]),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("The source code contains open source software modules in JAVA, C++ and C, and proprietary modules by AsTeRICS partners which are available in binary from (.dll or .exe).")]),t._v(" "),e("p",[t._v("The licenses of the utilized software packages and 3rd party products can be viewed in the file "),e("em",[t._v("/documentation/licenses.doc")])]),t._v(" "),e("p",[t._v("Currently, the editor for OSKA (the on-screen keyboard application) is the only commercial software package within the AsTeRICS framework – and not included in the free downloads. The OSKA editor is only needed if you want to design custom on-screen keyboard layouts for OSKA (see AsTeRICS User Manual).")]),t._v(" "),e("h2",{attrs:{id:"understanding-the-component-build-scripts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#understanding-the-component-build-scripts"}},[t._v("#")]),t._v(" Understanding the component build-scripts")]),t._v(" "),e("p",[t._v("A typical ANT build script for an ARE component looks like the following:")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("project")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("default")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("component.id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("processor.MyComponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- set global properties for this build --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("build"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../out/production/${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src.java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("dist"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("runtime"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../../examples/ARE"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("path")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bin"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${osgi}/org.eclipse.osgi_3.6.0.v20100517.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${middleware}/asterics.ARE.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the time stamp --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tstamp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the build directory structure used by compile --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mkdir")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile the source "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("javac")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("srcdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${src.java}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("destdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("verbose")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("true"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("debug")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${debug}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("classpath")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${classpath}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("classpath")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("refid")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("generate the OSGi bundle"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("jar")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("jarfile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("manifest")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}/META-INF/MANIFEST.MF"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("fileset")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("copy")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("file")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("tofile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${runtime}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[t._v("In the first section of the build script, folder locations for the build intermediates, the final build products (.jar file) and the classpath are defined. The classpath usually points to the “bin” folder, the middleware “asterics.ARE.jar” and the osgi distribution. If a component needs additional resources, their location has to be defined here.")]),t._v(" "),e("p",[t._v("Subsequently the build script defines two build targets: the compilation of the Java source code and the creation of the .jar file. If the .jar file shall contain additional .dlls with native code, they have to be specified in the Manifest file as shows in section 5.14.1.")]),t._v(" "),e("p",[t._v("After the .jar file has been created in the distribution folder, it is copied to the runtime folder (/bin/ARE).")]),t._v(" "),e("h2",{attrs:{id:"starting-the-are-middleware-and-component-deployments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#starting-the-are-middleware-and-component-deployments"}},[t._v("#")]),t._v(" Starting the ARE middleware and component deployments")]),t._v(" "),e("p",[t._v("To test the ARE and component bundles, open the folder “/bin/ARE”, and use ARE.exe, start.bat or start_debug.bat.")]),t._v(" "),e("h2",{attrs:{id:"structure-of-the-runtime-folder-bin-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-the-runtime-folder-bin-are"}},[t._v("#")]),t._v(" Structure of the runtime folder “./bin/ARE”:")]),t._v(" "),e("p",[t._v("This folder contains dependencies for running the ARE middleware and the .jars resulting from ANT builds, it has the following structure:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("/\n+- bin/\n +- ARE/\n +- data/ folder for plugin working data\n +- models/ stored models (configurations)\n +- profile/\n +- config.ini system bundles to be started\n +- services.ini general service bundles to be started\n +- services-windows.ini windows-specific service bundles\n +- services-linux.ini linux-specific service bundles\n +- services-macosx.ini macosx-specific service bundles\n +- org.eclipse.osgi/ osgi bundle cache folder\n +- 1238790741.log system log messages, stack trace\n +- tools/ plugin helper apps and dlls\n +- .logger stores console logging settings\n +- ARE.exe starts the ARE without console output\n +- areProperties stores recent window/GUI properties\n +- component bundle(s)\n +- asterics.ARE.jar ARE middleware\n +- asterics.mw.services.cimcommunication.jar CIM port manager\n +- grizzly-httpservice-bundle-2.3.23.jar http service for webservice feature\n +- javacv-*-linux|windows|macosx.jar platform specific javacv service\n +- tmp/*.log application log files\n +- jtester.exe helper app for checking Java version\n +- logging.properties configuration of loglevel etc.\n +- org.eclipse.osgi.*.jar osgi distribution\n +- sleeper.exe helper app for launcher timing\n +- start.bat starts ARE with console output\n +- findjava.bat searches for the newest 32bit JRE\n +- start_debug.bat starts ARE with Eclipse debug support\n +- start.sh starts ARE without console on Linux\n +- start_debug.sh starts ARE with debugging on Linux\n +- VCChecker.jar helper jar for checking VC redist dependency\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Important Note: The osgi configuration folder “org.eclipse.osgi” in the “profile” subdirectory has to be deleted if .dlls in .jar bundles are updated or changed. (This folder is automatically created when starting the ARE and holds working data for the OSGI-bundles.) The One-Click build.xml script described in chapter 2.4.2 deletes the folder automatically.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-services"}},[t._v("#")]),t._v(" AsteRICS services")]),t._v(" "),e("p",[t._v("An AsteRICS service is a bundle that provides ARE-wide functionality usable by other services or plugins. The service can be optionally disabled which means that the service bundle is not installed and not activated. The file services.ini contains a list of general services to be loaded. Whereas the services-windows.ini, services-linux.ini and services-macosx.ini files contain platform dependent service names. You can also create your own use-case specific services ini file and edit the start script to load it.")]),t._v(" "),e("h2",{attrs:{id:"running-a-deployment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#running-a-deployment"}},[t._v("#")]),t._v(" Running a deployment")]),t._v(" "),e("p",[t._v("The “ARE.exe” starter application launches the ARE without console output and without debugging instrumentation.")]),t._v(" "),e("p",[t._v("Alternatively, the commandline batch script “start_debug.bat” which is provided in the folder “.bin/ARE” runs Java with additional configuration parameters including:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the location of the OSGi distribution")])]),t._v(" "),e("li",[e("p",[t._v("the profile subfolder which contains the config.ini file: “./bin/ARE/profile”")])]),t._v(" "),e("li",[e("p",[t._v("debugging instrumentation for the remote debugging server connection")])])]),t._v(" "),e("p",[t._v("After starting the ARE middleware, bundles are loaded and started on-demand if they are needed for the deployment of a model. If everything is properly configured, the ARE window comes up with a GUI and provides ASAPI server functionalities for connection of the ACS or other client applications.")]),t._v(" "),e("h2",{attrs:{id:"are-webserver-including-rest-api-websocket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver-including-rest-api-websocket"}},[t._v("#")]),t._v(" ARE webserver (including REST API, websocket)")]),t._v(" "),e("p",[t._v("The ARE contains a service that creates several web-based services. These include")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a webserver with document root "),e("em",[t._v("ARE/web")]),t._v(" and URL: "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a websocket at URL "),e("a",{attrs:{href:"http://localhost:8082/ws/astericsData",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/ws/astericsData"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a REST API at URL "),e("a",{attrs:{href:"http://localhost:8081/rest",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/rest"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a javascript REST API client implementation example at "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])])]),t._v(" "),e("h2",{attrs:{id:"define-autostart-model-per-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#define-autostart-model-per-command-line"}},[t._v("#")]),t._v(" Define autostart model per command line")]),t._v(" "),e("p",[t._v("By starting the ARE with the name of a model as first command line parameter a model that should be started automatically can be defined. The model must exist in the sub-folder “models”.")]),t._v(" "),e("p",[t._v("‘ARE.exe CameraMouse.acs’")]),t._v(" "),e("p",[t._v("or")]),t._v(" "),e("p",[t._v("‘start_debug.bat CameraMouse.acs’")]),t._v(" "),e("h2",{attrs:{id:"change-model-task-submit-timeout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-model-task-submit-timeout"}},[t._v("#")]),t._v(" Change model task submit timeout")]),t._v(" "),e("p",[t._v("The file “areProperties” contains properties to configure ARE features and to configure the internal model execution behaviour. The following internal model execution properties exist:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("ThreadPoolTasks.submitTimeout=20000")]),t._v(" "),e("ul",[e("li",[t._v("When submitting a task to be executed in the ModelExecutor thread a submit timeout can be configured. After the time elapsed a TimeoutException is thrown. The timeout value must be specified in milliseconds."),e("br"),t._v("\nThe submit timeout is used for starting, stopping, pausing and resuming a model.")])])])]),t._v(" "),e("h2",{attrs:{id:"debugging-the-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#debugging-the-are"}},[t._v("#")]),t._v(" Debugging the ARE")]),t._v(" "),e("p",[t._v("If the ARE is started using the “start_debug.bat” script and source-level debug information was added during the compilation (see section 2.3), debugging with Eclipse is supported via a remote debugging connection. This is a convenient way for dimagesebugging an OSGI-based java framework with a lot of plugins. To enable the debugging support in Eclipse, a Debug Configuration is created via the dedicated menu entry:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(290),alt:""}})]),t._v(" "),e("p",[t._v("Create a “Remote Java Application” Debug Configuration and assign a name for it, e.g. “ARE”. Then, specify the connection properties of the Debug Configuration to use the Host “localhost” and the Socket/Port “1044” (this port is given in the ARE build scripts for the remote debug server to listen for incoming client connections):")]),t._v(" "),e("p",[e("img",{attrs:{src:a(291),alt:""}})]),t._v(" "),e("p",[t._v("Now launch the ARE using “start_debug.bat”. The messages in the console window should indicate the establishment of the listening socket 1044 for the debugging connection:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(292),alt:""}})]),t._v(" "),e("p",[t._v("Now, the usual debugging support of Eclipse can be used, including breakpoints in middleware or components, variable and context watch windows, single stepping etc. All these operations are performed in the Eclipse “Debug” perspective.")]),t._v(" "),e("p",[t._v("The following screenshot shows a program execution of the ARE which ran into a breakpoint (here: the OSKA plugin was halted as a command was selected in the OSKA-application and transferred to the ARE plugin’s command handler:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(293),alt:""}})]),t._v(" "),e("p",[e("img",{attrs:{src:a(294),alt:""}})]),t._v(" "),e("p",[t._v("If the source-level debug information is missing (due to compilation without debugging support) an error message indicates a problem, e.g. the missing line number for breakpoint installation:")]),t._v(" "),e("h2",{attrs:{id:"services-and-utils-infrastructure-for-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#services-and-utils-infrastructure-for-plugins"}},[t._v("#")]),t._v(" Services and Utils: Infrastructure for plugins")]),t._v(" "),e("p",[t._v("The ARE Services are a set of classes that enable the direct interaction between AsTeRICS plugins and other software to directly interact with the runtime environment. The most significant ARE Services are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIM Communication Service: the ARE CIM Communication service layer is a unified approach to allow plugins of the ARE to communicate with their associated hardware modules attached to the AsTeRICS platform via a COM port. A range of hardware modules are provided which implement the dedicated Communication Interface Module (CIM) protocol. Further details on this communication protocol and implementation details for the ARE CIM Communication Service can be found in chapter 5.15.")])]),t._v(" "),e("li",[e("p",[t._v("Remote Connection Service: the remote connection services allows external software that cannot be integrated into the standard plugin inter communication system used by the ARE, for example because of programming language incompatibilities, to work with the AsTeRICS system. For example, the interconnection of OSKA (the On-Screen Keyboard Application developed by AsTeRICS partner SENSORY) and the ARE uses the Remote Connection Service to send key selection information to the ARE. On the other hand, the ARE can reply with cell selection commands or other information. The actual communication is done via a protocol that can be understood by the Java ServerSocket implementation. The port number that the external software component connects to identifies the connecting component.")])]),t._v(" "),e("li",[e("p",[t._v("Local Storage Service: The Local Storage Service will allow plugins to store individual working data “per model” and “per plugin-instance”. This is necessary when plugins need to store own calibration data, pattern recognition samples or similar data. In course of the architectural refinements for the final prototype, a service class will be provided which generates an according folder and respective file read- and write methods.")])]),t._v(" "),e("li",[e("p",[t._v("Native Hook Services for systemwide keyboard and mouse capturing")])]),t._v(" "),e("li",[e("p",[t._v("Computer Vision services to support a unified way for frame grabbing, computer vision processing and video frame rendering.")])]),t._v(" "),e("li",[e("p",[t._v("Logging service")])]),t._v(" "),e("li",[e("p",[t._v("ConversionUtils: Helper class to convert port data streams into Java data types and vice versa.")])]),t._v(" "),e("li",[e("p",[t._v("Class "),e("strong",[t._v("ResourceRegistry")]),t._v(" to fetch resource URIs. If a plugin needs access to a config, data or a multimedia file, the class ResourceRegistry must be used.")])])]),t._v(" "),e("h2",{attrs:{id:"communicating-with-peripherals-cim-communication-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communicating-with-peripherals-cim-communication-service"}},[t._v("#")]),t._v(" Communicating with peripherals: CIM Communication service")]),t._v(" "),e("p",[t._v("Communication between actuator and sensor components in the ARE and peripheral devices is currently defined to use a serial communication i.e. a COM port or a virtual COM port. Messaging via this interface can either adhere to the CIM protocol (see section 5.15) or use any other protocol using the raw port implementation of the CIM communication services.")]),t._v(" "),e("p",[t._v("All the communication with peripheral devices is done through a service in the ARE service layer called CIM Communication. The service is provided as a separate OSGi bundle which places its classes in the package "),e("code",[t._v("$1")]),t._v(". Access to the classes is done by exporting the entire package in the bundle.")]),t._v(" "),e("p",[t._v("Four classes of the CIM Communication service are important to the component programmer:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMPortManager")])]),t._v(" "),e("li",[e("p",[t._v("CIMController")])]),t._v(" "),e("li",[e("p",[t._v("CIMProtocolPacket")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventHandler")])])]),t._v(" "),e("h2",{attrs:{id:"cimportcontroller"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportcontroller"}},[t._v("#")]),t._v(" CIMPortController")]),t._v(" "),e("p",[t._v("CIMPortController is an abstract class which hides the actual implementation of the port controller. The port controller provides the same methods for sending packets using the CIM protocol, for raw port implementations and for future uses such as a port controller handling Zigbee connections.")]),t._v(" "),e("h2",{attrs:{id:"cimportmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportmanager"}},[t._v("#")]),t._v(" CIMPortManager")]),t._v(" "),e("p",[t._v("All CIM ports and other COM ports are access through the main class of the package CIMPortManager. This is implemented as a singleton with a public access method getInstance(). Thus all calls to the CIM communication service have to be done through:")]),t._v(" "),e("p",[e("code",[t._v("CIMPortManager.getInstance()")])]),t._v(" "),e("p",[t._v("Upon creation the CIMPortManager detects all the connected CIMs and registers them in a HashMap. CIMs are identified and stored by the combination of their CIM Id and their unique number. Therefore multiple CIMs of the same CIM Id can be used on the AsTeRICS platform.")]),t._v(" "),e("p",[t._v("On some computers there exist certain serial ports which do not work correctly and behave strangely. An example of such a port is a loopback port which echoes everything written to it or ports created by Bluetooth dongles. Since the CIMPortManager iterates through all serial ports, these ports can cause problems in the auto detection of attached CIMs and even lock up the runtime. Therefore a file "),e("em",[t._v("ignore_ports.txt")]),t._v(" in the directory "),e("em",[t._v("data/cimcommunication")]),t._v(" is parsed upon start of the auto detection. This file should be filled with the name of the COM ports behaving erratically one name per line.")]),t._v(" "),e("p",[t._v("To be able to communicate with a CIM, the CIM port manager provides several methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("long")]),t._v(" uniqueNumber"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("These methods return a CIMPortController (read on for details) instance of the requested CIM. The method using two parameters will return the instance to the port controller which works with the CIM of the exact CIM ID and unique number. If the CIM cannot be found, null will be returned.")]),t._v(" "),e("p",[t._v("Requesting a connection without naming a unique number will return the first port controller connected to a CIM of the correct ID found in the HashMap holding all the port controllers.")]),t._v(" "),e("p",[t._v("Sending data to the connected peripheral can be done in several ways using the following methods of CIMPortManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMUniqueIdentifier")]),t._v(" cuid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" ctrl"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Basically these three methods do the same thing, however they do it at different speeds as the first two methods will look up the port controller that the packet should be sent to. Again the method taking only the CIM ID as a parameter will look up the first correct port controller. The third method which is passed the CIMPortController instance returned on getConnection() is the fastest method and should be used whenever possible.")]),t._v(" "),e("p",[t._v("Sending a CIM packet is done by providing the feature address and request code for a certain packet. The feature addresses and request codes can be found in the CIM protocol specification and the basic addresses and requests are also provided as static fields in the CIMProtocolPacket class. If data has to be attached to a CIM protocol packet a byte array holding said data has to be passed to the method, otherwise the data parameter of the method has to be set to null. The caller can also decide whether a CRC checksum should be added to the packet although this is currently unimplemented.")]),t._v(" "),e("h2",{attrs:{id:"cimeventhandler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimeventhandler"}},[t._v("#")]),t._v(" CIMEventHandler")]),t._v(" "),e("p",[t._v("Receiving a packet is done through use of the CIMEventHandler interface. This interface should be implemented by plugins that wish to communicate with CIMs (or raw ports). The interface contains two methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("These methods are called upon correct reception of a packet or upon discovery of an error (timeout of a reply, packet transmission errors, incorrect order of incoming packets …) respectively by the port controller.")]),t._v(" "),e("p",[t._v("Upon correct reception of a CIM protocol based packet the method handlePacketReceived() is called with an instance of CIMEventPacketReceived as parameter. After conversion of the CIMEvent to this class, the packet can be extracted from the event and processed further.")]),t._v(" "),e("p",[t._v("All detected errors lead to a call of handlePacketError() with an appropriate CIMEvent implementation. The possible implemenations are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMEventErrorPacketFault: holds information to error in packet and the broken packet itself")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventErrorPacketLost: holds information on serial number of lost packet")])])]),t._v(" "),e("p",[t._v("To register the event handler with a specific CIM port controller, the CIMPortController class exposes the following methods:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("addEventHandler(CIMEventHandler hdlr)")])]),t._v(" "),e("li",[e("p",[t._v("removeEventHandler(CIMEventHandler hdlr)")])])]),t._v(" "),e("p",[t._v("A port controller can handle multiple attached event handlers and remove each one separately.")]),t._v(" "),e("h2",{attrs:{id:"cimprotocolpacket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimprotocolpacket"}},[t._v("#")]),t._v(" CIMProtocolPacket")]),t._v(" "),e("p",[t._v("This class holds all the information given in a packet transferred to or from a CIM. There are two ways the developer has to use this class. Upon sending packets the sending component has to set the feature address and the request code. The CIMProtocolPacket class provides the constants as static field to facilitate setting commands.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x00")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x01")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_EVENT_REPLY")]),t._v(" \t\t\t "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x20")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Furthermore the class contains constants for the global features that every CIM has to provide.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("FEATURE_UNIQUE_SERIAL_NUMBER")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Upon reception of an incoming packet the component associated with the CIM sending the packet is notified and a reference to the packet is passed as an instance of CIMProtocolPacket wrapped in a CIMEvent instance. The developer can access all the fields of the packet via the getter methods the class provides:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAreCimID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSerialNumber")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFeatureAddress")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRequestReplyCode")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getCrc")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h2",{attrs:{id:"serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[t._v("#")]),t._v(" Serial ports not adhering to CIM Protocol (Raw Ports)")]),t._v(" "),e("p",[t._v("Some peripherals use a proprietary protocol to transfer their data. If this is the case the user can open a raw port through the CIMPortManager method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will open the port with the name specified in the parameter portName and set the communication to the specified Baud rate.")]),t._v(" "),e("p",[t._v("Data can be sent to peripheral using the sendPacket() method for the returned CIMPortController. The packet will simply transfer the byte array passed in the data parameter and ignore the values giving the in the other parameter fields.")]),t._v(" "),e("p",[t._v("Received data will be forwarded to the event handler through calls to handlePacketReceived() with a CIMEventRawPacket as parameter. This class holds a public member variable b which holds the value of the received byte. The event handler has to handle the reconstruction of the proprietary packet itself.")]),t._v(" "),e("p",[e("strong",[t._v("HighSpeed Raw Ports:")])]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" highSpeed"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("A second variant opf the getRawConnection method allows specification of a “highSpeed” parameter. If highSpeed is true, the CIMPortController does not apply any connection handling or callbacks for received data to avoid performance problems in higher bandwidth streaming use cases. In this case, the CIMPortController can return the JAVA InputStream for the openend COM port connection and the plug developer can use it as desired:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("portController "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COM12")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nin "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" portController"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputStream")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("available")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" myHandlePacket "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("read")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"communication-through-a-socket-interface-remote-connection-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communication-through-a-socket-interface-remote-connection-manager"}},[t._v("#")]),t._v(" Communication through a socket interface: Remote Connection Manager")]),t._v(" "),e("p",[t._v("When using third party software that runs on the same platform (as for example the prominently used On Screen Keyboard Application OSKA), it becomes necessary to establish a communication between ARE and the third party application. This is managed by the RemoteConnectionManager found in the package eu.asterics.mw.services. The main interface to this manager are the classes RemoteConnectionManager and IRemoteConnectionListener.")]),t._v(" "),e("h2",{attrs:{id:"iremoteconnectionlistener"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#iremoteconnectionlistener"}},[t._v("#")]),t._v(" IRemoteConnectionListener")]),t._v(" "),e("p",[t._v("This interface is implemented by plugins that need to communicate via a socket communication. The interface contains the following methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionEstablished")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("dataReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionLost")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionClosed")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("connectionEstablished() is called whenever a plugin requests a connection and the connection has been established. This can either happen if a connection has already been established before or if the new connection has finished its setup and connection process.")]),t._v(" "),e("p",[t._v("dataReceived() is called whenever new data arrives from the other end of the connection. Data is transferred in a byte array and has to be processed by the event listener.")]),t._v(" "),e("p",[t._v("connectionLost() is called when the connection management cannot read from or write to the socket.")]),t._v(" "),e("p",[t._v("connectionClosed() is called after the connection has been closed.")]),t._v(" "),e("h2",{attrs:{id:"remoteconnectionmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#remoteconnectionmanager"}},[t._v("#")]),t._v(" RemoteConnectionManager")]),t._v(" "),e("p",[t._v("The RemoteConnectionManager is implemented as a singleton and can be accessed via a public static member of the class. Thus access is always achieved through:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RemoteConnectionManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance\n")])])]),e("p",[t._v("A connection is opened by calling the RemoteConnectionManager’s method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" requestConnection "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRemoteConnectionListener")]),t._v(" l"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This call will try to access a connection on the specified port. Although the port is actually an integer it is passed as a String here. The method will return true if a connection on this port has already been established and attach the remote connection listener passed in the second argument to the connection. If there is no active connection on the specified port, the requestConnection method will initiate the setup of the connection and return false. With this return value the user can decide whether he needs to perform setup actions or will be able to do this in the connectionEstablished() callback.")]),t._v(" "),e("p",[t._v("The socket connection handling is implemented using two threads, one for sending, one for receiving data. The receiver thread will continuously read data from the socket and forward it to the registered listener calling the dataReceived() method. Since incoming data is handled in another thread than the plugin which will use the socket connection, access to the methods handling this data or the way of passing data should be done in a synchronised code block.")]),t._v(" "),e("p",[t._v("Sending data is done calling the method sendData of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is called using a String holding the port number of the connection socket and an array of bytes to be sent. The call to this method will place the data in an outgoing queue and return true if this was successful. Thus it is not guaranteed that the data has already been sent when the method returns. The sender thread will grab data from the outgoing queue and transfer it via the socket or call the connectionLost() method of the registered listener if there are problems while sending.")]),t._v(" "),e("p",[t._v("Once the connection to a socket is not needed anymore, the user has to close the connection, calling the following method of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("closeConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will close the socket connection, end all threads and return.")]),t._v(" "),e("h2",{attrs:{id:"local-storage-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#local-storage-service"}},[t._v("#")]),t._v(" Local Storage Service")]),t._v(" "),e("p",[t._v("If a model needs to save its own calibration data, training data or other private data that can be different in every model and every instance, the local storage service provides a method to save different data to the same file name on a per plugin instance per model basis.")]),t._v(" "),e("p",[t._v("The service uses a directory tree structure that is placed in the directory the OSGi is run from. Data is saved in a directory called “storage”. In this directory, directories for every model name of a model that uses at least one plugin that accesses local storage can be found. In the third directory layer, directories with the plugin instance name of every plugin that accesses local storage can be found. Thus if a model named “timertest” uses a plugin instance named “timer1” that saves local data this data can be found at the path location “storage/timertest/timer1”.")]),t._v(" "),e("p",[t._v("The service practically consists of only one method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLocalStorageFile")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" fileName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Calling this method located in the AREServices class will return a File object pointing to the requested file name or null if the file could not be opened or the model name could not be retrieved. After opening the file the standard JAVA ways to manipulate files apply.")]),t._v(" "),e("h2",{attrs:{id:"keyboard-mouse-native-hook-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-mouse-native-hook-services"}},[t._v("#")]),t._v(" Keyboard/Mouse Native Hook Services")]),t._v(" "),e("p",[t._v("The AsTeRICS service jnativehook (if enabled) provides access to the library "),e("a",{attrs:{href:"https://github.com/kwhat/jnativehook",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/kwhat/jnativehook"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("Additionally, the service contains the singleton NativeHookServices that initializes the library to be usable in plugins. A plugin that wants to be a keaboard/mouse listener only has to add the listener to the GlobalScreen instance of the library.")]),t._v(" "),e("h2",{attrs:{id:"computer-vision-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#computer-vision-services"}},[t._v("#")]),t._v(" Computer Vision Services")]),t._v(" "),e("p",[t._v("The AsTeRICS services javacv and computervision (if enabled) provide access to the library "),e("a",{attrs:{href:"https://github.com/bytedeco/javacv",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/bytedeco/javacv"),e("OutboundLink")],1),t._v(", which again provides access to numerous libs in the field of computer vision (e.g. OpenCV), frame grabbing and frame rendering. Additionally, some helper classes are provided for face detection.")]),t._v(" "),e("h2",{attrs:{id:"data-conversion-utilities"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-conversion-utilities"}},[t._v("#")]),t._v(" Data Conversion Utilities")]),t._v(" "),e("p",[t._v("The middleware provides the class “ConversionUtils” that provide static helper methods to convert model data types to byte arrays and vice versa. The conversion is needed to convert incoming data of input ports or outgoing data to output ports. There are methods for each type of conversion. If two connected ports (output to input) have different data types the data is automatically converted to the data type of the input port.")]),t._v(" "),e("p",[t._v("Check the class ConversionUtils for a full list of supported methods: "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"fetching-resource-uris-with-resourceregistry-class"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fetching-resource-uris-with-resourceregistry-class"}},[t._v("#")]),t._v(" Fetching resource URIs with ResourceRegistry class")]),t._v(" "),e("p",[t._v("If a plugin needs resources like data files (images, keyboard files, haarcascade definitions,…), the class "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("ResourceRegistry"),e("OutboundLink")],1),t._v(" must be used to fetch the resource URI.")]),t._v(" "),e("p",[t._v("This can be done by using the method:")]),t._v(" "),e("p",[e("code",[t._v("public URI getResource(String resourcePath, RES_TYPE type) throws URISyntaxException")])]),t._v(" "),e("p",[t._v("Returns the URI according to the given resourcePath string and the given resource type RES_TYPE.")]),t._v(" "),e("p",[t._v("Please refer to the Javadoc of the class and to the "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Fetching-resources-with-class-ResourceRegistry",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki page"),e("OutboundLink")],1),t._v(" for further examples.")]),t._v(" "),e("h2",{attrs:{id:"error-reporting-astericserrorhandling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-astericserrorhandling"}},[t._v("#")]),t._v(" Error Reporting (AstericsErrorHandling)")]),t._v(" "),e("p",[t._v("The "),e("code",[t._v("AstericsErrorHandling")]),t._v(" provides a unified logging and error reporting mechanism. It contains methods for reporting an error of a component or even the ARE.")]),t._v(" "),e("h3",{attrs:{id:"logging"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging"}},[t._v("#")]),t._v(" Logging")]),t._v(" "),e("p",[t._v("The Logging support provides a uniform way of error reporting in the runtime environment so we have utilized the Java logging libraries and the various severity levels supported. The AsTeRICS error handling mechanism is used extensively from the runtime core classes but also utilized by the AsTeRICS components via the AstericsErrorHandling interface.")]),t._v(" "),e("p",[t._v("Each component is allowed to report an error message, a debug information or a simple information to be displayed on the screen. The ARE maintains four separate log files and updates them whenever a new error occurs. In particular there are different loggers for reporting severe errors, warnings, fine errors and one logger that contains them all.")]),t._v(" "),e("p",[t._v("ARE also maintains a status object for the current status of the runtime environment. Whenever a fatal error occurs (either internally or caused by one of the deployed components) the status changes to fatal error. Other possible statuses are unknown, OK, deployed, running and paused.")]),t._v(" "),e("p",[t._v("The ACS can request the current status of the runtime environment and update its own state accordingly. For example the ACS user can be informed about the current ARE status while the ACS will terminate a connection (or refuse to establish a new one) with a non-working ARE.")]),t._v(" "),e("p",[t._v("Using a Logger is the recommended way to report notifications or error descriptions to the user. In the ARE framework, using the Java logging service is recommended. The Java logger can be configured using the file “logging.properties” (see section 2.3.3.1) and used as follows:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("…"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h3",{attrs:{id:"error-reporting-of-components"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-of-components"}},[t._v("#")]),t._v(" Error Reporting of components")]),t._v(" "),e("p",[t._v("If a component wants to notify an error it should use the following method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_warning.log” file. Additionally the status of the component is set to error with the given error message and an error dialog is shown in the ARE gui, if enabled.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportInfo")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" info"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_fine.log” file.")]),t._v(" "),e("h3",{attrs:{id:"status-checking"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#status-checking"}},[t._v("#")]),t._v(" Status checking")]),t._v(" "),e("p",[t._v("The status checking mechanism is responsible for recording the current status of the ARE or the error state of a component. The status is recorded by creating and storing objects called "),e("em",[t._v("statusObjects")]),t._v(". A statusObject stores the status of its creator as a string, its creator (the ARE or the specific component) and the error message.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setStatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" status"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The status of the ARE can be one of the following strings:")]),t._v(" "),e("p",[t._v("UNKNOWN: initial state for the ARE")]),t._v(" "),e("p",[t._v("OK: ARE is running and ready to deploy a model")]),t._v(" "),e("p",[t._v("DEPLOYED: A model has been deployed and the ARE is now ready to run the model")]),t._v(" "),e("p",[t._v("RUNNING: A model is running on the ARE")]),t._v(" "),e("p",[t._v("PAUSED: A model has been deployed and the ARE is in paused mode")]),t._v(" "),e("p",[t._v("ERROR: An error occurred")]),t._v(" "),e("p",[t._v("FATAL_ERROR: A fatal error occurred, model or deployment aborted")]),t._v(" "),e("p",[t._v("The status of a component can only be the ERROR state because this is the only state of a component that we are interested in recording for later use. An ERROR statusObject is automatically created when a component calls the reportError method as described above.")]),t._v(" "),e("p",[t._v("For retrieving the statusObjects, the following method is used:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("StatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("queryStatus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" fullList"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is particularly useful for the ACS to determine the current status of the runtime environment and of the deployed components. If the ARE or one of the components are in a problematic state it can be reflected in the ACS.")]),t._v(" "),e("p",[t._v("The boolean "),e("em",[t._v("fullList")]),t._v(" argument specifies whether the error list to be returned will include all statusObjects generated since the ARE startup or just those that have not been requested by the ACS before.")]),t._v(" "),e("h2",{attrs:{id:"the-are-thread-pool"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-thread-pool"}},[t._v("#")]),t._v(" The ARE Thread Pool")]),t._v(" "),e("p",[t._v("In order to avoid resource greedy threads and to achieve best thread handling, ARE uses one of the Thread Pool implementations provided by Java since JRE 1.5. In particular, we have utilized the java.util.concurrent.Executors library for creating a CachedThreadPool.")]),t._v(" "),e("p",[t._v("A cached thread pool will create threads as needed but will reuse previously instantiated threads when they are available and inactive. A cached thread pool is particularly useful for many short-lived asynchronous tasks and improves the performance of the runtime environment.")]),t._v(" "),e("p",[t._v("Developers are expected to use the ARE thread pool for executing their tasks that require a new Thread. You will need to import the middleware services package in order to get access to the "),e("strong",[t._v("AstericsThreadPool")]),t._v(" class.")]),t._v(" "),e("h2",{attrs:{id:"the-are-gui-support"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-gui-support"}},[t._v("#")]),t._v(" The ARE GUI support")]),t._v(" "),e("p",[t._v("The ARE provides a panel area (“ARE Desktop”) where plugins can display their graphical elements using the ARE GUI support classes. The ACS provides a dedicated canvas editor that allows end users positioning and resizing graphical elements of the plugins. Based on this information, the ARE displays plugins on the local device, maintaining the correct screen position and aspect ratio of graphical elements with respect to the screen resolution of the deployment device. (For more information about the usage of the ACS GUI editor and the ARE GUI control panel refer to the User Manual.)")]),t._v(" "),e("p",[e("img",{attrs:{src:a(295),alt:""}})]),t._v(" "),e("p",[e("strong",[t._v("GUI composition using the ACS GUI designer (right), resulting ARE GUI (left)")])]),t._v(" "),e("p",[t._v("In order to be recognized as GUI-plugin by ACS and ARE, the bundle descriptor of the plugin has to be extended with a dedicated "),e("code",[t._v("")]),t._v(" entry, which specifies the default size in a virtual coordinate system of 10000/10000 pixels. In the deployment model, the ACS will create position and size information according to the area defined in the ACS GUI designer.")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("gui")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("width")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("5000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("height")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("3000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[e("strong",[t._v("The gui element addition to the bundle descriptor")])]),t._v(" "),e("p",[t._v("The AsTeRICS middleware provides some services to the plugin developers in order to allow them displaying their GUI element onto the ARE Desktop. The middleware services encapsulate the complexity of dealing with positioning and allow displaying all GUI elements onto the same container: the ARE Desktop.")]),t._v(" "),e("p",[t._v("All GUI services are defined in eu.asterics.mw.services.AREServices so developers need to import this class in order to get access to the following methods:")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void displayPanel (JPanel panel, IRuntimeComponentInstance componentInstance, boolean display)")])])]),t._v(" "),e("p",[t._v("This method is used for displaying (or hiding) a plugin’s panel at/from the ARE desktop. Developers need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the panel they want to be displayed (or removed)")])]),t._v(" "),e("li",[e("p",[t._v("the plugin object, in order to help the middleware finding the desired position and dimensions from the deployment model")])]),t._v(" "),e("li",[e("p",[t._v("a boolean argument specifying if they wish to hide or show the given panel.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("Dimension getAvailableSpace(IRuntimeComponentInstance componentInstance)")])])])]),t._v(" "),e("p",[t._v("The space that each plugin will occupy on the ARE desktop is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the available space for their graphical elements by calling the getAvailableSpace method which will return the space occupied for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Point getComponentPosition (IRuntimeComponentInstance componentInstance)")])])]),t._v(" "),e("p",[t._v("The positioning of plugin’s GUI elements is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the position of their graphical elements by calling the getComponentPosition which will return the position on screen for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void adjustFonts(JPanel panel, int maxFontSize, int minFontSize, int offset)")])])]),t._v(" "),e("p",[t._v("This service can be used by plugin developers interested in auto-adjusting the fonts of their GUI components depending on the space occupied for their plugins on the ARE desktop. They need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a panel to which all the internal fonts will be auto-adjusted")])]),t._v(" "),e("li",[e("p",[t._v("the maximum font size (in case there is more space available than needed)")])]),t._v(" "),e("li",[e("p",[t._v("the minimum font size, in case there is too little space which causes the text to become non-readable. Finally, the offset argument is used in case we want to occupy a percentage of the available space.")])])]),t._v(" "),e("p",[t._v("A good approach to GUI plugin development is to analyse existing plugins which provide GUI elements, e.g. the BarDisplay or Oscilloscope actuators, or the Slider or Cellboard sensor components.")]),t._v(" "),e("p",[t._v("If the plugin uses "),e("strong",[t._v("Swing to implement a GUI-widget")]),t._v(" (e.g. Slider,…), please check the following guidelines as well 4.2.8")]),t._v(" "),e("h2",{attrs:{id:"are-core-events-notification-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-core-events-notification-services"}},[t._v("#")]),t._v(" ARE core events notification services")]),t._v(" "),e("p",[t._v("The ARE core events notification service allows plugins to register/unregister to the ARE middleware in order to receive notifications of ARE core events.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void registerAREEventListener(IAREEventListener clazz)")])])]),t._v(" "),e("p",[t._v("It is sometimes necessary that plugins can be notified of various ARE events so they can react as needed. This method can be called by component instances that wish to be notified of such ARE events. Currently, the core events supported are:")]),t._v(" "),e("ul",[e("li",[e("p",[e("em",[t._v("preDeployModel:")]),t._v(" registered ARE event listeners will be notified just before the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postDeployModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStartModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStartModel:")]),t._v(" registered ARE event listeners will be notified immediately after the currently deployed model has been started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStopModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStopModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("prePauseModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postPauseModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preResumeModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postResumeModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified just before the bundles are is installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified immediately after the bundles have been installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("void unregisterAREEventListener(IAREEventListener clazz)")])])])]),t._v(" "),e("p",[t._v("Plugins already registered for receiving ARE core events can un-register using this method.")]),t._v(" "),e("h2",{attrs:{id:"dynamic-properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-properties"}},[t._v("#")]),t._v(" Dynamic Properties")]),t._v(" "),e("p",[t._v("In some applications, the ACS should be able to provide several options for property values which are not known in advance but depend on the current state of the ARE (see AsTeRUCS User Manual, section “Dynamic Properties”)… A typical example is the selection of a file which is available in the ARE file system (e.g. a .wav-file for the wave player plugin). This feature is particularly useful for plugins that are hardware dependent (selecting e.g. a soundcard or a midi player), or depend on the file system.")]),t._v(" "),e("p",[t._v("If a plugin is implementing a dynamic property, the values will be requested from the ARE, as soon as the ACS is synchronized with the ARE, via the ASAPI function:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),e("span",{pre:!0,attrs:{class:"token generics"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("\n")])])]),e("p",[t._v("The ARE middleware will forward the request for valid property values to the component instance with the given ID. The "),e("code",[t._v("List getRuntimePropertyList(String key)")]),t._v(" method has to be implemented in the "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" class which every AsTeRICS component extends.\nThe method implementation creates the list of valid properties and returns it to the middleware and the latter forwards the string list to the ACS via ASAPI. The ACS will dynamically update the property list in the properties window.")]),t._v(" "),e("p",[t._v("For an example of the dynamic property implementation, see the WaveFilePlayer plugin.")]),t._v(" "),e("h2",{attrs:{id:"data-synchronization"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-synchronization"}},[t._v("#")]),t._v(" Data Synchronization")]),t._v(" "),e("p",[t._v("Some plugins need data of multiple input ports to be able to start processing. Without data synchronization it is possible that one input port of a plugin receives multiple values before another port gets one value, although both signal channels deliver values at the same sampling rate.")]),t._v(" "),e("p",[t._v("The synchronization service provides a buffering mechanism at the middleware level that can be utilized by plugin developers in order to make sure that incoming data of selected input ports arrives synchronized.")]),t._v(" "),e("p",[t._v("To use the synchronization service in the plugin code, plugin developers are expected to extend the "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" instead of implementing the "),e("em",[t._v("IRuntimeInputPort.")]),t._v(" Basically, "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" provides a default implementation for the necessary buffering methods, as shown in the table below.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("abstract")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" startBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" stopBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" isBuffered "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The designer can define that a plugin’s input port should be synchronized with some other input ports via the ACS. This will cause an argument change of the inputPort element on the deployment model file (e.g.,"),e("code",[t._v('')]),t._v(").")]),t._v(" "),e("p",[t._v("As soon as a model is deployed on the ARE, the middleware collects per component every port noted as synchronized port. When the model is successfully deployed and started, the ARE will buffer data which enters synchronized input ports until data on all synchronized ports has arrived. At that point, the ARE will call a new "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" callback method.")]),t._v(" "),e("p",[t._v("Developers that wish to support data synchronization need to implement the following method at their component instances.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("syncedValuesReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Where dataRow is a HashMap between Input Port ID and byte[]. For synchronized input ports, instead of implementing the regular "),e("em",[t._v("void receiveData(byte[] data)")]),t._v(" method which delivers incoming data of a single port, developers need to implement the "),e("em",[t._v("syncedValuesReceived")]),t._v(" method which will be called from the ARE with synchronized data from all the input ports that have been selected.")]),t._v(" "),e("h2",{attrs:{id:"interfacing-native-c-c-code-via-jni"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#interfacing-native-c-c-code-via-jni"}},[t._v("#")]),t._v(" Interfacing Native C/C++ Code via JNI")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("## Specifying native libraries in the Manifest\n")])])]),e("p",[t._v("The Manifest file of a bundle which includes native libraries has to specify these .dlls as shown in the following example:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-sensors.mycomponent\nBundle-SymbolicName: org.asterics.mycomponent\nBundle-Version: 0.1.0\nBundle-NativeCode: lib/native/mylib1.dll;\n lib/native/mylib2.dll;\n lib/native/mylib3.dll;\n osname=win32;processor=x86;\n osname=win;processor=x86-64;\n osname=win8;processor=x86;\n osname=win8;processor=x86-64;\n osname=windows 8;processor=x86;\n osname=windows 8;processor=x86-64;\n osname=windows8;processor=x86;\n osname=windows8;processor=x86-64;\n osname=Windows 8.1;processor=x86;\n osname=Windows 8.1;processor=x86-64\nDynamicImport-Package: *\n")])])]),e("p",[t._v("Components which interface native code via JNI and their respective manifest files can be found in the SVN, e.g. the “webcamera” component or the signal processing plugins by Starlab.")]),t._v(" "),e("p",[t._v("Note that the .jar containing the .dlls can be built manually using the command:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("jar "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-cvfm")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("/mybundle.jar META-INF/MANIFEST.MF "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\n")])])]),e("h2",{attrs:{id:"java-implementation-jni-bridge"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java-implementation-jni-bridge"}},[t._v("#")]),t._v(" Java-Implementation: JNI-Bridge")]),t._v(" "),e("p",[t._v("The recommended way to interface Java code of an ARE component with native code in a .dll is a bridge class which encapsulates the JNI functions and callbacks and maps the functions of the ARE component’s lifecycle-, port- and property-management to the corresponding functions in the native code. Here is a simple example which comprises one component property and receives data callbacks from a thread implemented in C. The received values are transferred to the component’s output port:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("jni")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mycomponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* Statically load the native library */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib1.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib2"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib2.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib3.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAnonymousLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("my_outport "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Activates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("activate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Deactivates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("deactivate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Gets the value of the named property.\n *\n * @param key the name of the property to be accessed\n * @return the value of the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Sets the named property to the defined value.\n *\n * @param key the name of the property to be accessed\n * @param value the value to be assigned to the named property\n * @return the value previously assigned to the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code on demand to signify \n * an internal error. The first argument corresponds to an error code \n * and the second argument corresponds to a textual description \n * of the error.\n * @param errorCode an error code\n * @param message a textual description of the error\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("errorReport_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" errorCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n logger"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("severe")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorCode "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('": "')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code to send data\n * to the component’s output port.\n *\n * @param data1 (range is [0, Short.MAX_VALUE])\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("newData_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h2",{attrs:{id:"c-implementation-callbacks-and-jni-code"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#c-implementation-callbacks-and-jni-code"}},[t._v("#")]),t._v(" C-Implementation: Callbacks and JNI code")]),t._v(" "),e("p",[t._v("The native C-code needs to be compiled into a .dll and include the JNI header files and libraries. An example for the Microsoft Visual Studio compiler looks as follows:")]),t._v(" "),e("p",[t._v("The following C-example shows how to implement a JNI-callback from a C-thread and an ARE-compliant exchange of a component property:")]),t._v(" "),e("div",{staticClass:"language-c extra-class"},[e("pre",{pre:!0,attrs:{class:"language-c"}},[e("code",[e("span",{pre:!0,attrs:{class:"token macro property"}},[e("span",{pre:!0,attrs:{class:"token directive-hash"}},[t._v("#")]),e("span",{pre:!0,attrs:{class:"token directive keyword"}},[t._v("include")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("")])]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" JavaVM "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" jobject g_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myProperty"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"20"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_activate")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\terror_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetJavaVM")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\tjclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newData_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* method not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// explicitly ask for a global reference")]),t._v("\n\tg_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_init")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_deactivate")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_exit")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tenv"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("DeleteGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_getProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\t\t\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_setProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n\t strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown */")]),t._v("\n\t strValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\tpollingIntervalValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// prepare JNI callback")]),t._v("\n JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n g_jvm"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("AttachCurrentThread")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newCoordinates_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// perform JNI callback")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("CallVoidMethod")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("jint"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("my_new_data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("This native C-code needs to be compiled into a .dll, the JNI header files and libraries have to be specified to the compiler and linker respectively. An example for the Microsoft Visual Studio build tools looks as follows:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v('cl -c -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include" -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include\\win32" -I ".\\3rdparylib" my_c_file.cpp /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_WARNINGS" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /errorReport:queue \nlink my_c_file.obj /DLL /OUT:".\\my_c_file.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"libmsvc" /LIBPATH:"3rdparylib" "odbc32.lib" "odbccp32.lib" "comctl32.lib" "winmm.lib" "opengl32.lib" "ole32.lib" "strmiids.lib" "uuid.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "oleaut32.lib" /NODEFAULTLIB:"libcd.lib" /NODEFAULTLIB:"atlthunk" /NODEFAULTLIB:"LIBCMT" /MANIFESTUAC:"level=\'asInvoker\' uiAccess=\'false\'" /DEBUG /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:QUEUE\n')])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The compiler and linker switches may differ depending on the nature of your dependency libraries and setup.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-packaging-environment-ape"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-packaging-environment-ape"}},[t._v("#")]),t._v(" AsTeRICS Packaging Environment (APE)")]),t._v(" "),e("p",[t._v("The APE let’s you select a set of AsTeRICS model files and create a downstripped (minimum size) version of the ARE including plugins, configuration files and data files to execute the models. Optionally, the APE allows the creation of native installers for Windows, Linux incl. Raspberry Pi and Mac OSX using "),e("a",{attrs:{href:"http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGIBBCI",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaFX packaging technology"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("See "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-Packaging-Environment-(APE)",target:"_blank",rel:"noopener noreferrer"}},[t._v("APE documentation"),e("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{289:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_c0991ef32ae9b458.424ba3f3.png"},290:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_4dfe72317ab9f571.6b0975c3.jpg"},291:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_b6693a1cbcd9178a.03fc763d.png"},292:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_f1a0b4f36dd370ba.c1a39a2a.jpg"},293:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_fb7627584ba9d5d7.45a2067d.png"},294:function(t,e,a){t.exports=a.p+"assets/img/DeveloperManual_html_3e993efbc73f2910.c6357005.png"},939:function(t,e,a){"use strict";a.r(e);var s=a(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"are-development-manual"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-development-manual"}},[t._v("#")]),t._v(" ARE Development Manual")]),t._v(" "),e("p",[t._v("The AsTeRICS source code repository is hosted at github and located at")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[e("strong",[t._v("https://github.com/asterics/AsTeRICS")]),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("The source code contains open source software modules in JAVA, C++ and C, and proprietary modules by AsTeRICS partners which are available in binary from (.dll or .exe).")]),t._v(" "),e("p",[t._v("The licenses of the utilized software packages and 3rd party products can be viewed in the file "),e("em",[t._v("/documentation/licenses.doc")])]),t._v(" "),e("p",[t._v("Currently, the editor for OSKA (the on-screen keyboard application) is the only commercial software package within the AsTeRICS framework – and not included in the free downloads. The OSKA editor is only needed if you want to design custom on-screen keyboard layouts for OSKA (see AsTeRICS User Manual).")]),t._v(" "),e("h2",{attrs:{id:"understanding-the-component-build-scripts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#understanding-the-component-build-scripts"}},[t._v("#")]),t._v(" Understanding the component build-scripts")]),t._v(" "),e("p",[t._v("A typical ANT build script for an ARE component looks like the following:")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("project")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("default")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("component.id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("processor.MyComponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- set global properties for this build --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("build"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../out/production/${component.id}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src.java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("dist"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("runtime"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../../examples/ARE"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../osgi"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../middleware"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../../services"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v(".."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("path")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bin"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${osgi}/org.eclipse.osgi_3.6.0.v20100517.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("pathelement")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${middleware}/asterics.ARE.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("property")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("location")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("src/main/resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the time stamp --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tstamp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Create the build directory structure used by compile --\x3e")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("mkdir")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile the source "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("javac")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("srcdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${src.java}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("destdir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("verbose")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("true"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("debug")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${debug}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("classpath")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${classpath}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("classpath")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("refid")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("asterics.classpath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("target")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("depends")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("compile"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("generate the OSGi bundle"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("jar")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("jarfile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("basedir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${build}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("manifest")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}/META-INF/MANIFEST.MF"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("fileset")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dir")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${resources}"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("copy")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("file")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${dist}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("tofile")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("${runtime}/asterics.${component.id}.jar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[t._v("In the first section of the build script, folder locations for the build intermediates, the final build products (.jar file) and the classpath are defined. The classpath usually points to the “bin” folder, the middleware “asterics.ARE.jar” and the osgi distribution. If a component needs additional resources, their location has to be defined here.")]),t._v(" "),e("p",[t._v("Subsequently the build script defines two build targets: the compilation of the Java source code and the creation of the .jar file. If the .jar file shall contain additional .dlls with native code, they have to be specified in the Manifest file as shows in section 5.14.1.")]),t._v(" "),e("p",[t._v("After the .jar file has been created in the distribution folder, it is copied to the runtime folder (/bin/ARE).")]),t._v(" "),e("h2",{attrs:{id:"starting-the-are-middleware-and-component-deployments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#starting-the-are-middleware-and-component-deployments"}},[t._v("#")]),t._v(" Starting the ARE middleware and component deployments")]),t._v(" "),e("p",[t._v("To test the ARE and component bundles, open the folder “/bin/ARE”, and use ARE.exe, start.bat or start_debug.bat.")]),t._v(" "),e("h2",{attrs:{id:"structure-of-the-runtime-folder-bin-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#structure-of-the-runtime-folder-bin-are"}},[t._v("#")]),t._v(" Structure of the runtime folder “./bin/ARE”:")]),t._v(" "),e("p",[t._v("This folder contains dependencies for running the ARE middleware and the .jars resulting from ANT builds, it has the following structure:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("/\n+- bin/\n +- ARE/\n +- data/ folder for plugin working data\n +- models/ stored models (configurations)\n +- profile/\n +- config.ini system bundles to be started\n +- services.ini general service bundles to be started\n +- services-windows.ini windows-specific service bundles\n +- services-linux.ini linux-specific service bundles\n +- services-macosx.ini macosx-specific service bundles\n +- org.eclipse.osgi/ osgi bundle cache folder\n +- 1238790741.log system log messages, stack trace\n +- tools/ plugin helper apps and dlls\n +- .logger stores console logging settings\n +- ARE.exe starts the ARE without console output\n +- areProperties stores recent window/GUI properties\n +- component bundle(s)\n +- asterics.ARE.jar ARE middleware\n +- asterics.mw.services.cimcommunication.jar CIM port manager\n +- grizzly-httpservice-bundle-2.3.23.jar http service for webservice feature\n +- javacv-*-linux|windows|macosx.jar platform specific javacv service\n +- tmp/*.log application log files\n +- jtester.exe helper app for checking Java version\n +- logging.properties configuration of loglevel etc.\n +- org.eclipse.osgi.*.jar osgi distribution\n +- sleeper.exe helper app for launcher timing\n +- start.bat starts ARE with console output\n +- findjava.bat searches for the newest 32bit JRE\n +- start_debug.bat starts ARE with Eclipse debug support\n +- start.sh starts ARE without console on Linux\n +- start_debug.sh starts ARE with debugging on Linux\n +- VCChecker.jar helper jar for checking VC redist dependency\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Important Note: The osgi configuration folder “org.eclipse.osgi” in the “profile” subdirectory has to be deleted if .dlls in .jar bundles are updated or changed. (This folder is automatically created when starting the ARE and holds working data for the OSGI-bundles.) The One-Click build.xml script described in chapter 2.4.2 deletes the folder automatically.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-services"}},[t._v("#")]),t._v(" AsteRICS services")]),t._v(" "),e("p",[t._v("An AsteRICS service is a bundle that provides ARE-wide functionality usable by other services or plugins. The service can be optionally disabled which means that the service bundle is not installed and not activated. The file services.ini contains a list of general services to be loaded. Whereas the services-windows.ini, services-linux.ini and services-macosx.ini files contain platform dependent service names. You can also create your own use-case specific services ini file and edit the start script to load it.")]),t._v(" "),e("h2",{attrs:{id:"running-a-deployment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#running-a-deployment"}},[t._v("#")]),t._v(" Running a deployment")]),t._v(" "),e("p",[t._v("The “ARE.exe” starter application launches the ARE without console output and without debugging instrumentation.")]),t._v(" "),e("p",[t._v("Alternatively, the commandline batch script “start_debug.bat” which is provided in the folder “.bin/ARE” runs Java with additional configuration parameters including:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the location of the OSGi distribution")])]),t._v(" "),e("li",[e("p",[t._v("the profile subfolder which contains the config.ini file: “./bin/ARE/profile”")])]),t._v(" "),e("li",[e("p",[t._v("debugging instrumentation for the remote debugging server connection")])])]),t._v(" "),e("p",[t._v("After starting the ARE middleware, bundles are loaded and started on-demand if they are needed for the deployment of a model. If everything is properly configured, the ARE window comes up with a GUI and provides ASAPI server functionalities for connection of the ACS or other client applications.")]),t._v(" "),e("h2",{attrs:{id:"are-webserver-including-rest-api-websocket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver-including-rest-api-websocket"}},[t._v("#")]),t._v(" ARE webserver (including REST API, websocket)")]),t._v(" "),e("p",[t._v("The ARE contains a service that creates several web-based services. These include")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a webserver with document root "),e("em",[t._v("ARE/web")]),t._v(" and URL: "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a websocket at URL "),e("a",{attrs:{href:"http://localhost:8082/ws/astericsData",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/ws/astericsData"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a REST API at URL "),e("a",{attrs:{href:"http://localhost:8081/rest",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/rest"),e("OutboundLink")],1)])]),t._v(" "),e("li",[e("p",[t._v("a javascript REST API client implementation example at "),e("a",{attrs:{href:"http://localhost:8081/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8081/"),e("OutboundLink")],1)])])]),t._v(" "),e("h2",{attrs:{id:"define-autostart-model-per-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#define-autostart-model-per-command-line"}},[t._v("#")]),t._v(" Define autostart model per command line")]),t._v(" "),e("p",[t._v("By starting the ARE with the name of a model as first command line parameter a model that should be started automatically can be defined. The model must exist in the sub-folder “models”.")]),t._v(" "),e("p",[t._v("‘ARE.exe CameraMouse.acs’")]),t._v(" "),e("p",[t._v("or")]),t._v(" "),e("p",[t._v("‘start_debug.bat CameraMouse.acs’")]),t._v(" "),e("h2",{attrs:{id:"change-model-task-submit-timeout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-model-task-submit-timeout"}},[t._v("#")]),t._v(" Change model task submit timeout")]),t._v(" "),e("p",[t._v("The file “areProperties” contains properties to configure ARE features and to configure the internal model execution behaviour. The following internal model execution properties exist:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("ThreadPoolTasks.submitTimeout=20000")]),t._v(" "),e("ul",[e("li",[t._v("When submitting a task to be executed in the ModelExecutor thread a submit timeout can be configured. After the time elapsed a TimeoutException is thrown. The timeout value must be specified in milliseconds."),e("br"),t._v("\nThe submit timeout is used for starting, stopping, pausing and resuming a model.")])])])]),t._v(" "),e("h2",{attrs:{id:"debugging-the-are"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#debugging-the-are"}},[t._v("#")]),t._v(" Debugging the ARE")]),t._v(" "),e("p",[t._v("If the ARE is started using the “start_debug.bat” script and source-level debug information was added during the compilation (see section 2.3), debugging with Eclipse is supported via a remote debugging connection. This is a convenient way for dimagesebugging an OSGI-based java framework with a lot of plugins. To enable the debugging support in Eclipse, a Debug Configuration is created via the dedicated menu entry:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(289),alt:""}})]),t._v(" "),e("p",[t._v("Create a “Remote Java Application” Debug Configuration and assign a name for it, e.g. “ARE”. Then, specify the connection properties of the Debug Configuration to use the Host “localhost” and the Socket/Port “1044” (this port is given in the ARE build scripts for the remote debug server to listen for incoming client connections):")]),t._v(" "),e("p",[e("img",{attrs:{src:a(290),alt:""}})]),t._v(" "),e("p",[t._v("Now launch the ARE using “start_debug.bat”. The messages in the console window should indicate the establishment of the listening socket 1044 for the debugging connection:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(291),alt:""}})]),t._v(" "),e("p",[t._v("Now, the usual debugging support of Eclipse can be used, including breakpoints in middleware or components, variable and context watch windows, single stepping etc. All these operations are performed in the Eclipse “Debug” perspective.")]),t._v(" "),e("p",[t._v("The following screenshot shows a program execution of the ARE which ran into a breakpoint (here: the OSKA plugin was halted as a command was selected in the OSKA-application and transferred to the ARE plugin’s command handler:")]),t._v(" "),e("p",[e("img",{attrs:{src:a(292),alt:""}})]),t._v(" "),e("p",[e("img",{attrs:{src:a(293),alt:""}})]),t._v(" "),e("p",[t._v("If the source-level debug information is missing (due to compilation without debugging support) an error message indicates a problem, e.g. the missing line number for breakpoint installation:")]),t._v(" "),e("h2",{attrs:{id:"services-and-utils-infrastructure-for-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#services-and-utils-infrastructure-for-plugins"}},[t._v("#")]),t._v(" Services and Utils: Infrastructure for plugins")]),t._v(" "),e("p",[t._v("The ARE Services are a set of classes that enable the direct interaction between AsTeRICS plugins and other software to directly interact with the runtime environment. The most significant ARE Services are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIM Communication Service: the ARE CIM Communication service layer is a unified approach to allow plugins of the ARE to communicate with their associated hardware modules attached to the AsTeRICS platform via a COM port. A range of hardware modules are provided which implement the dedicated Communication Interface Module (CIM) protocol. Further details on this communication protocol and implementation details for the ARE CIM Communication Service can be found in chapter 5.15.")])]),t._v(" "),e("li",[e("p",[t._v("Remote Connection Service: the remote connection services allows external software that cannot be integrated into the standard plugin inter communication system used by the ARE, for example because of programming language incompatibilities, to work with the AsTeRICS system. For example, the interconnection of OSKA (the On-Screen Keyboard Application developed by AsTeRICS partner SENSORY) and the ARE uses the Remote Connection Service to send key selection information to the ARE. On the other hand, the ARE can reply with cell selection commands or other information. The actual communication is done via a protocol that can be understood by the Java ServerSocket implementation. The port number that the external software component connects to identifies the connecting component.")])]),t._v(" "),e("li",[e("p",[t._v("Local Storage Service: The Local Storage Service will allow plugins to store individual working data “per model” and “per plugin-instance”. This is necessary when plugins need to store own calibration data, pattern recognition samples or similar data. In course of the architectural refinements for the final prototype, a service class will be provided which generates an according folder and respective file read- and write methods.")])]),t._v(" "),e("li",[e("p",[t._v("Native Hook Services for systemwide keyboard and mouse capturing")])]),t._v(" "),e("li",[e("p",[t._v("Computer Vision services to support a unified way for frame grabbing, computer vision processing and video frame rendering.")])]),t._v(" "),e("li",[e("p",[t._v("Logging service")])]),t._v(" "),e("li",[e("p",[t._v("ConversionUtils: Helper class to convert port data streams into Java data types and vice versa.")])]),t._v(" "),e("li",[e("p",[t._v("Class "),e("strong",[t._v("ResourceRegistry")]),t._v(" to fetch resource URIs. If a plugin needs access to a config, data or a multimedia file, the class ResourceRegistry must be used.")])])]),t._v(" "),e("h2",{attrs:{id:"communicating-with-peripherals-cim-communication-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communicating-with-peripherals-cim-communication-service"}},[t._v("#")]),t._v(" Communicating with peripherals: CIM Communication service")]),t._v(" "),e("p",[t._v("Communication between actuator and sensor components in the ARE and peripheral devices is currently defined to use a serial communication i.e. a COM port or a virtual COM port. Messaging via this interface can either adhere to the CIM protocol (see section 5.15) or use any other protocol using the raw port implementation of the CIM communication services.")]),t._v(" "),e("p",[t._v("All the communication with peripheral devices is done through a service in the ARE service layer called CIM Communication. The service is provided as a separate OSGi bundle which places its classes in the package "),e("code",[t._v("$1")]),t._v(". Access to the classes is done by exporting the entire package in the bundle.")]),t._v(" "),e("p",[t._v("Four classes of the CIM Communication service are important to the component programmer:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMPortManager")])]),t._v(" "),e("li",[e("p",[t._v("CIMController")])]),t._v(" "),e("li",[e("p",[t._v("CIMProtocolPacket")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventHandler")])])]),t._v(" "),e("h2",{attrs:{id:"cimportcontroller"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportcontroller"}},[t._v("#")]),t._v(" CIMPortController")]),t._v(" "),e("p",[t._v("CIMPortController is an abstract class which hides the actual implementation of the port controller. The port controller provides the same methods for sending packets using the CIM protocol, for raw port implementations and for future uses such as a port controller handling Zigbee connections.")]),t._v(" "),e("h2",{attrs:{id:"cimportmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimportmanager"}},[t._v("#")]),t._v(" CIMPortManager")]),t._v(" "),e("p",[t._v("All CIM ports and other COM ports are access through the main class of the package CIMPortManager. This is implemented as a singleton with a public access method getInstance(). Thus all calls to the CIM communication service have to be done through:")]),t._v(" "),e("p",[e("code",[t._v("CIMPortManager.getInstance()")])]),t._v(" "),e("p",[t._v("Upon creation the CIMPortManager detects all the connected CIMs and registers them in a HashMap. CIMs are identified and stored by the combination of their CIM Id and their unique number. Therefore multiple CIMs of the same CIM Id can be used on the AsTeRICS platform.")]),t._v(" "),e("p",[t._v("On some computers there exist certain serial ports which do not work correctly and behave strangely. An example of such a port is a loopback port which echoes everything written to it or ports created by Bluetooth dongles. Since the CIMPortManager iterates through all serial ports, these ports can cause problems in the auto detection of attached CIMs and even lock up the runtime. Therefore a file "),e("em",[t._v("ignore_ports.txt")]),t._v(" in the directory "),e("em",[t._v("data/cimcommunication")]),t._v(" is parsed upon start of the auto detection. This file should be filled with the name of the COM ports behaving erratically one name per line.")]),t._v(" "),e("p",[t._v("To be able to communicate with a CIM, the CIM port manager provides several methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("long")]),t._v(" uniqueNumber"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("These methods return a CIMPortController (read on for details) instance of the requested CIM. The method using two parameters will return the instance to the port controller which works with the CIM of the exact CIM ID and unique number. If the CIM cannot be found, null will be returned.")]),t._v(" "),e("p",[t._v("Requesting a connection without naming a unique number will return the first port controller connected to a CIM of the correct ID found in the HashMap holding all the port controllers.")]),t._v(" "),e("p",[t._v("Sending data to the connected peripheral can be done in several ways using the following methods of CIMPortManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" cimId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMUniqueIdentifier")]),t._v(" cuid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendPacket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" ctrl"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" featureAddress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" requestCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" crc"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Basically these three methods do the same thing, however they do it at different speeds as the first two methods will look up the port controller that the packet should be sent to. Again the method taking only the CIM ID as a parameter will look up the first correct port controller. The third method which is passed the CIMPortController instance returned on getConnection() is the fastest method and should be used whenever possible.")]),t._v(" "),e("p",[t._v("Sending a CIM packet is done by providing the feature address and request code for a certain packet. The feature addresses and request codes can be found in the CIM protocol specification and the basic addresses and requests are also provided as static fields in the CIMProtocolPacket class. If data has to be attached to a CIM protocol packet a byte array holding said data has to be passed to the method, otherwise the data parameter of the method has to be set to null. The caller can also decide whether a CRC checksum should be added to the packet although this is currently unimplemented.")]),t._v(" "),e("h2",{attrs:{id:"cimeventhandler"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimeventhandler"}},[t._v("#")]),t._v(" CIMEventHandler")]),t._v(" "),e("p",[t._v("Receiving a packet is done through use of the CIMEventHandler interface. This interface should be implemented by plugins that wish to communicate with CIMs (or raw ports). The interface contains two methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("handlePacketError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMEvent")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("These methods are called upon correct reception of a packet or upon discovery of an error (timeout of a reply, packet transmission errors, incorrect order of incoming packets …) respectively by the port controller.")]),t._v(" "),e("p",[t._v("Upon correct reception of a CIM protocol based packet the method handlePacketReceived() is called with an instance of CIMEventPacketReceived as parameter. After conversion of the CIMEvent to this class, the packet can be extracted from the event and processed further.")]),t._v(" "),e("p",[t._v("All detected errors lead to a call of handlePacketError() with an appropriate CIMEvent implementation. The possible implemenations are:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("CIMEventErrorPacketFault: holds information to error in packet and the broken packet itself")])]),t._v(" "),e("li",[e("p",[t._v("CIMEventErrorPacketLost: holds information on serial number of lost packet")])])]),t._v(" "),e("p",[t._v("To register the event handler with a specific CIM port controller, the CIMPortController class exposes the following methods:")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("addEventHandler(CIMEventHandler hdlr)")])]),t._v(" "),e("li",[e("p",[t._v("removeEventHandler(CIMEventHandler hdlr)")])])]),t._v(" "),e("p",[t._v("A port controller can handle multiple attached event handlers and remove each one separately.")]),t._v(" "),e("h2",{attrs:{id:"cimprotocolpacket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cimprotocolpacket"}},[t._v("#")]),t._v(" CIMProtocolPacket")]),t._v(" "),e("p",[t._v("This class holds all the information given in a packet transferred to or from a CIM. There are two ways the developer has to use this class. Upon sending packets the sending component has to set the feature address and the request code. The CIMProtocolPacket class provides the constants as static field to facilitate setting commands.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x00")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_FEATURE_LIST")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x01")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_WRITE_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_READ_FEATURE")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x11")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_EVENT_REPLY")]),t._v(" \t\t\t "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x20")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_RESET_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x80")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_START_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x81")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REQUEST_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COMMAND_REPLY_STOP_CIM")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0x82")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Furthermore the class contains constants for the global features that every CIM has to provide.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("FEATURE_UNIQUE_SERIAL_NUMBER")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Upon reception of an incoming packet the component associated with the CIM sending the packet is notified and a reference to the packet is passed as an instance of CIMProtocolPacket wrapped in a CIMEvent instance. The developer can access all the fields of the packet via the getter methods the class provides:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAreCimID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSerialNumber")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFeatureAddress")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("short")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRequestReplyCode")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getCrc")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h2",{attrs:{id:"serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#serial-ports-not-adhering-to-cim-protocol-raw-ports"}},[t._v("#")]),t._v(" Serial ports not adhering to CIM Protocol (Raw Ports)")]),t._v(" "),e("p",[t._v("Some peripherals use a proprietary protocol to transfer their data. If this is the case the user can open a raw port through the CIMPortManager method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will open the port with the name specified in the parameter portName and set the communication to the specified Baud rate.")]),t._v(" "),e("p",[t._v("Data can be sent to peripheral using the sendPacket() method for the returned CIMPortController. The packet will simply transfer the byte array passed in the data parameter and ignore the values giving the in the other parameter fields.")]),t._v(" "),e("p",[t._v("Received data will be forwarded to the event handler through calls to handlePacketReceived() with a CIMEventRawPacket as parameter. This class holds a public member variable b which holds the value of the received byte. The event handler has to handle the reconstruction of the proprietary packet itself.")]),t._v(" "),e("p",[e("strong",[t._v("HighSpeed Raw Ports:")])]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortController")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" baudRate"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" highSpeed"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("A second variant opf the getRawConnection method allows specification of a “highSpeed” parameter. If highSpeed is true, the CIMPortController does not apply any connection handling or callbacks for received data to avoid performance problems in higher bandwidth streaming use cases. In this case, the CIMPortController can return the JAVA InputStream for the openend COM port connection and the plug developer can use it as desired:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("portController "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CIMPortManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRawConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COM12")]),t._v("”"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nin "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" portController"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInputStream")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("available")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" myHandlePacket "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" in"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("read")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"communication-through-a-socket-interface-remote-connection-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#communication-through-a-socket-interface-remote-connection-manager"}},[t._v("#")]),t._v(" Communication through a socket interface: Remote Connection Manager")]),t._v(" "),e("p",[t._v("When using third party software that runs on the same platform (as for example the prominently used On Screen Keyboard Application OSKA), it becomes necessary to establish a communication between ARE and the third party application. This is managed by the RemoteConnectionManager found in the package eu.asterics.mw.services. The main interface to this manager are the classes RemoteConnectionManager and IRemoteConnectionListener.")]),t._v(" "),e("h2",{attrs:{id:"iremoteconnectionlistener"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#iremoteconnectionlistener"}},[t._v("#")]),t._v(" IRemoteConnectionListener")]),t._v(" "),e("p",[t._v("This interface is implemented by plugins that need to communicate via a socket communication. The interface contains the following methods:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[t._v("\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionEstablished")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("dataReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionLost")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("connectionClosed")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("connectionEstablished() is called whenever a plugin requests a connection and the connection has been established. This can either happen if a connection has already been established before or if the new connection has finished its setup and connection process.")]),t._v(" "),e("p",[t._v("dataReceived() is called whenever new data arrives from the other end of the connection. Data is transferred in a byte array and has to be processed by the event listener.")]),t._v(" "),e("p",[t._v("connectionLost() is called when the connection management cannot read from or write to the socket.")]),t._v(" "),e("p",[t._v("connectionClosed() is called after the connection has been closed.")]),t._v(" "),e("h2",{attrs:{id:"remoteconnectionmanager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#remoteconnectionmanager"}},[t._v("#")]),t._v(" RemoteConnectionManager")]),t._v(" "),e("p",[t._v("The RemoteConnectionManager is implemented as a singleton and can be accessed via a public static member of the class. Thus access is always achieved through:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RemoteConnectionManager")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance\n")])])]),e("p",[t._v("A connection is opened by calling the RemoteConnectionManager’s method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" requestConnection "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRemoteConnectionListener")]),t._v(" l"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This call will try to access a connection on the specified port. Although the port is actually an integer it is passed as a String here. The method will return true if a connection on this port has already been established and attach the remote connection listener passed in the second argument to the connection. If there is no active connection on the specified port, the requestConnection method will initiate the setup of the connection and return false. With this return value the user can decide whether he needs to perform setup actions or will be able to do this in the connectionEstablished() callback.")]),t._v(" "),e("p",[t._v("The socket connection handling is implemented using two threads, one for sending, one for receiving data. The receiver thread will continuously read data from the socket and forward it to the registered listener calling the dataReceived() method. Since incoming data is handled in another thread than the plugin which will use the socket connection, access to the methods handling this data or the way of passing data should be done in a synchronised code block.")]),t._v(" "),e("p",[t._v("Sending data is done calling the method sendData of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("writeData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is called using a String holding the port number of the connection socket and an array of bytes to be sent. The call to this method will place the data in an outgoing queue and return true if this was successful. Thus it is not guaranteed that the data has already been sent when the method returns. The sender thread will grab data from the outgoing queue and transfer it via the socket or call the connectionLost() method of the registered listener if there are problems while sending.")]),t._v(" "),e("p",[t._v("Once the connection to a socket is not needed anymore, the user has to close the connection, calling the following method of RemoteConnectionManager:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("closeConnection")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" port"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This will close the socket connection, end all threads and return.")]),t._v(" "),e("h2",{attrs:{id:"local-storage-service"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#local-storage-service"}},[t._v("#")]),t._v(" Local Storage Service")]),t._v(" "),e("p",[t._v("If a model needs to save its own calibration data, training data or other private data that can be different in every model and every instance, the local storage service provides a method to save different data to the same file name on a per plugin instance per model basis.")]),t._v(" "),e("p",[t._v("The service uses a directory tree structure that is placed in the directory the OSGi is run from. Data is saved in a directory called “storage”. In this directory, directories for every model name of a model that uses at least one plugin that accesses local storage can be found. In the third directory layer, directories with the plugin instance name of every plugin that accesses local storage can be found. Thus if a model named “timertest” uses a plugin instance named “timer1” that saves local data this data can be found at the path location “storage/timertest/timer1”.")]),t._v(" "),e("p",[t._v("The service practically consists of only one method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLocalStorageFile")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" fileName"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Calling this method located in the AREServices class will return a File object pointing to the requested file name or null if the file could not be opened or the model name could not be retrieved. After opening the file the standard JAVA ways to manipulate files apply.")]),t._v(" "),e("h2",{attrs:{id:"keyboard-mouse-native-hook-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-mouse-native-hook-services"}},[t._v("#")]),t._v(" Keyboard/Mouse Native Hook Services")]),t._v(" "),e("p",[t._v("The AsTeRICS service jnativehook (if enabled) provides access to the library "),e("a",{attrs:{href:"https://github.com/kwhat/jnativehook",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/kwhat/jnativehook"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("Additionally, the service contains the singleton NativeHookServices that initializes the library to be usable in plugins. A plugin that wants to be a keaboard/mouse listener only has to add the listener to the GlobalScreen instance of the library.")]),t._v(" "),e("h2",{attrs:{id:"computer-vision-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#computer-vision-services"}},[t._v("#")]),t._v(" Computer Vision Services")]),t._v(" "),e("p",[t._v("The AsTeRICS services javacv and computervision (if enabled) provide access to the library "),e("a",{attrs:{href:"https://github.com/bytedeco/javacv",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/bytedeco/javacv"),e("OutboundLink")],1),t._v(", which again provides access to numerous libs in the field of computer vision (e.g. OpenCV), frame grabbing and frame rendering. Additionally, some helper classes are provided for face detection.")]),t._v(" "),e("h2",{attrs:{id:"data-conversion-utilities"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-conversion-utilities"}},[t._v("#")]),t._v(" Data Conversion Utilities")]),t._v(" "),e("p",[t._v("The middleware provides the class “ConversionUtils” that provide static helper methods to convert model data types to byte arrays and vice versa. The conversion is needed to convert incoming data of input ports or outgoing data to output ports. There are methods for each type of conversion. If two connected ports (output to input) have different data types the data is automatically converted to the data type of the input port.")]),t._v(" "),e("p",[t._v("Check the class ConversionUtils for a full list of supported methods: "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/data/ConversionUtils.java"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"fetching-resource-uris-with-resourceregistry-class"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fetching-resource-uris-with-resourceregistry-class"}},[t._v("#")]),t._v(" Fetching resource URIs with ResourceRegistry class")]),t._v(" "),e("p",[t._v("If a plugin needs resources like data files (images, keyboard files, haarcascade definitions,…), the class "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("ResourceRegistry"),e("OutboundLink")],1),t._v(" must be used to fetch the resource URI.")]),t._v(" "),e("p",[t._v("This can be done by using the method:")]),t._v(" "),e("p",[e("code",[t._v("public URI getResource(String resourcePath, RES_TYPE type) throws URISyntaxException")])]),t._v(" "),e("p",[t._v("Returns the URI according to the given resourcePath string and the given resource type RES_TYPE.")]),t._v(" "),e("p",[t._v("Please refer to the Javadoc of the class and to the "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Fetching-resources-with-class-ResourceRegistry",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki page"),e("OutboundLink")],1),t._v(" for further examples.")]),t._v(" "),e("h2",{attrs:{id:"error-reporting-astericserrorhandling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-astericserrorhandling"}},[t._v("#")]),t._v(" Error Reporting (AstericsErrorHandling)")]),t._v(" "),e("p",[t._v("The "),e("code",[t._v("AstericsErrorHandling")]),t._v(" provides a unified logging and error reporting mechanism. It contains methods for reporting an error of a component or even the ARE.")]),t._v(" "),e("h3",{attrs:{id:"logging"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging"}},[t._v("#")]),t._v(" Logging")]),t._v(" "),e("p",[t._v("The Logging support provides a uniform way of error reporting in the runtime environment so we have utilized the Java logging libraries and the various severity levels supported. The AsTeRICS error handling mechanism is used extensively from the runtime core classes but also utilized by the AsTeRICS components via the AstericsErrorHandling interface.")]),t._v(" "),e("p",[t._v("Each component is allowed to report an error message, a debug information or a simple information to be displayed on the screen. The ARE maintains four separate log files and updates them whenever a new error occurs. In particular there are different loggers for reporting severe errors, warnings, fine errors and one logger that contains them all.")]),t._v(" "),e("p",[t._v("ARE also maintains a status object for the current status of the runtime environment. Whenever a fatal error occurs (either internally or caused by one of the deployed components) the status changes to fatal error. Other possible statuses are unknown, OK, deployed, running and paused.")]),t._v(" "),e("p",[t._v("The ACS can request the current status of the runtime environment and update its own state accordingly. For example the ACS user can be informed about the current ARE status while the ACS will terminate a connection (or refuse to establish a new one) with a non-working ARE.")]),t._v(" "),e("p",[t._v("Using a Logger is the recommended way to report notifications or error descriptions to the user. In the ARE framework, using the Java logging service is recommended. The Java logger can be configured using the file “logging.properties” (see section 2.3.3.1) and used as follows:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("…"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h3",{attrs:{id:"error-reporting-of-components"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#error-reporting-of-components"}},[t._v("#")]),t._v(" Error Reporting of components")]),t._v(" "),e("p",[t._v("If a component wants to notify an error it should use the following method:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_warning.log” file. Additionally the status of the component is set to error with the given error message and an error dialog is shown in the ARE gui, if enabled.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportInfo")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeComponentInstance")]),t._v(" component"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" info"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The messages will be written in the “asterics_logger_fine.log” file.")]),t._v(" "),e("h3",{attrs:{id:"status-checking"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#status-checking"}},[t._v("#")]),t._v(" Status checking")]),t._v(" "),e("p",[t._v("The status checking mechanism is responsible for recording the current status of the ARE or the error state of a component. The status is recorded by creating and storing objects called "),e("em",[t._v("statusObjects")]),t._v(". A statusObject stores the status of its creator as a string, its creator (the ARE or the specific component) and the error message.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setStatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" status"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" errorMsg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The status of the ARE can be one of the following strings:")]),t._v(" "),e("p",[t._v("UNKNOWN: initial state for the ARE")]),t._v(" "),e("p",[t._v("OK: ARE is running and ready to deploy a model")]),t._v(" "),e("p",[t._v("DEPLOYED: A model has been deployed and the ARE is now ready to run the model")]),t._v(" "),e("p",[t._v("RUNNING: A model is running on the ARE")]),t._v(" "),e("p",[t._v("PAUSED: A model has been deployed and the ARE is in paused mode")]),t._v(" "),e("p",[t._v("ERROR: An error occurred")]),t._v(" "),e("p",[t._v("FATAL_ERROR: A fatal error occurred, model or deployment aborted")]),t._v(" "),e("p",[t._v("The status of a component can only be the ERROR state because this is the only state of a component that we are interested in recording for later use. An ERROR statusObject is automatically created when a component calls the reportError method as described above.")]),t._v(" "),e("p",[t._v("For retrieving the statusObjects, the following method is used:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("StatusObject")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("queryStatus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" fullList"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This method is particularly useful for the ACS to determine the current status of the runtime environment and of the deployed components. If the ARE or one of the components are in a problematic state it can be reflected in the ACS.")]),t._v(" "),e("p",[t._v("The boolean "),e("em",[t._v("fullList")]),t._v(" argument specifies whether the error list to be returned will include all statusObjects generated since the ARE startup or just those that have not been requested by the ACS before.")]),t._v(" "),e("h2",{attrs:{id:"the-are-thread-pool"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-thread-pool"}},[t._v("#")]),t._v(" The ARE Thread Pool")]),t._v(" "),e("p",[t._v("In order to avoid resource greedy threads and to achieve best thread handling, ARE uses one of the Thread Pool implementations provided by Java since JRE 1.5. In particular, we have utilized the java.util.concurrent.Executors library for creating a CachedThreadPool.")]),t._v(" "),e("p",[t._v("A cached thread pool will create threads as needed but will reuse previously instantiated threads when they are available and inactive. A cached thread pool is particularly useful for many short-lived asynchronous tasks and improves the performance of the runtime environment.")]),t._v(" "),e("p",[t._v("Developers are expected to use the ARE thread pool for executing their tasks that require a new Thread. You will need to import the middleware services package in order to get access to the "),e("strong",[t._v("AstericsThreadPool")]),t._v(" class.")]),t._v(" "),e("h2",{attrs:{id:"the-are-gui-support"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-are-gui-support"}},[t._v("#")]),t._v(" The ARE GUI support")]),t._v(" "),e("p",[t._v("The ARE provides a panel area (“ARE Desktop”) where plugins can display their graphical elements using the ARE GUI support classes. The ACS provides a dedicated canvas editor that allows end users positioning and resizing graphical elements of the plugins. Based on this information, the ARE displays plugins on the local device, maintaining the correct screen position and aspect ratio of graphical elements with respect to the screen resolution of the deployment device. (For more information about the usage of the ACS GUI editor and the ARE GUI control panel refer to the User Manual.)")]),t._v(" "),e("p",[e("img",{attrs:{src:a(294),alt:""}})]),t._v(" "),e("p",[e("strong",[t._v("GUI composition using the ACS GUI designer (right), resulting ARE GUI (left)")])]),t._v(" "),e("p",[t._v("In order to be recognized as GUI-plugin by ACS and ARE, the bundle descriptor of the plugin has to be extended with a dedicated "),e("code",[t._v("")]),t._v(" entry, which specifies the default size in a virtual coordinate system of 10000/10000 pixels. In the deployment model, the ACS will create position and size information according to the area defined in the ACS GUI designer.")]),t._v(" "),e("div",{staticClass:"language-xml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-xml"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("gui")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("width")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("5000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("height")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("3000"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[e("strong",[t._v("The gui element addition to the bundle descriptor")])]),t._v(" "),e("p",[t._v("The AsTeRICS middleware provides some services to the plugin developers in order to allow them displaying their GUI element onto the ARE Desktop. The middleware services encapsulate the complexity of dealing with positioning and allow displaying all GUI elements onto the same container: the ARE Desktop.")]),t._v(" "),e("p",[t._v("All GUI services are defined in eu.asterics.mw.services.AREServices so developers need to import this class in order to get access to the following methods:")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void displayPanel (JPanel panel, IRuntimeComponentInstance componentInstance, boolean display)")])])]),t._v(" "),e("p",[t._v("This method is used for displaying (or hiding) a plugin’s panel at/from the ARE desktop. Developers need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("the panel they want to be displayed (or removed)")])]),t._v(" "),e("li",[e("p",[t._v("the plugin object, in order to help the middleware finding the desired position and dimensions from the deployment model")])]),t._v(" "),e("li",[e("p",[t._v("a boolean argument specifying if they wish to hide or show the given panel.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("Dimension getAvailableSpace(IRuntimeComponentInstance componentInstance)")])])])]),t._v(" "),e("p",[t._v("The space that each plugin will occupy on the ARE desktop is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the available space for their graphical elements by calling the getAvailableSpace method which will return the space occupied for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Point getComponentPosition (IRuntimeComponentInstance componentInstance)")])])]),t._v(" "),e("p",[t._v("The positioning of plugin’s GUI elements is defined by the designer on the ACS and passed to the ARE via ASAPI. Plugin developers can get the position of their graphical elements by calling the getComponentPosition which will return the position on screen for the plugin object passed as argument.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void adjustFonts(JPanel panel, int maxFontSize, int minFontSize, int offset)")])])]),t._v(" "),e("p",[t._v("This service can be used by plugin developers interested in auto-adjusting the fonts of their GUI components depending on the space occupied for their plugins on the ARE desktop. They need to pass")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("a panel to which all the internal fonts will be auto-adjusted")])]),t._v(" "),e("li",[e("p",[t._v("the maximum font size (in case there is more space available than needed)")])]),t._v(" "),e("li",[e("p",[t._v("the minimum font size, in case there is too little space which causes the text to become non-readable. Finally, the offset argument is used in case we want to occupy a percentage of the available space.")])])]),t._v(" "),e("p",[t._v("A good approach to GUI plugin development is to analyse existing plugins which provide GUI elements, e.g. the BarDisplay or Oscilloscope actuators, or the Slider or Cellboard sensor components.")]),t._v(" "),e("p",[t._v("If the plugin uses "),e("strong",[t._v("Swing to implement a GUI-widget")]),t._v(" (e.g. Slider,…), please check the following guidelines as well 4.2.8")]),t._v(" "),e("h2",{attrs:{id:"are-core-events-notification-services"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-core-events-notification-services"}},[t._v("#")]),t._v(" ARE core events notification services")]),t._v(" "),e("p",[t._v("The ARE core events notification service allows plugins to register/unregister to the ARE middleware in order to receive notifications of ARE core events.")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("void registerAREEventListener(IAREEventListener clazz)")])])]),t._v(" "),e("p",[t._v("It is sometimes necessary that plugins can be notified of various ARE events so they can react as needed. This method can be called by component instances that wish to be notified of such ARE events. Currently, the core events supported are:")]),t._v(" "),e("ul",[e("li",[e("p",[e("em",[t._v("preDeployModel:")]),t._v(" registered ARE event listeners will be notified just before the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postDeployModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployment of a model.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStartModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStartModel:")]),t._v(" registered ARE event listeners will be notified immediately after the currently deployed model has been started.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preStopModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postStopModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been stopped.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("prePauseModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postPauseModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been paused.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preResumeModel:")]),t._v(" registered ARE event listeners will be notified just before the currently deployed model is resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postResumeModel:")]),t._v(" registered ARE event listeners will be notified immediately after the deployed model has been resumed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("preBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified just before the bundles are is installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("postBundlesInstalled:")]),t._v(" registered ARE event listeners will be notified immediately after the bundles have been installed.")])]),t._v(" "),e("li",[e("p",[e("em",[t._v("void unregisterAREEventListener(IAREEventListener clazz)")])])])]),t._v(" "),e("p",[t._v("Plugins already registered for receiving ARE core events can un-register using this method.")]),t._v(" "),e("h2",{attrs:{id:"dynamic-properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-properties"}},[t._v("#")]),t._v(" Dynamic Properties")]),t._v(" "),e("p",[t._v("In some applications, the ACS should be able to provide several options for property values which are not known in advance but depend on the current state of the ARE (see AsTeRUCS User Manual, section “Dynamic Properties”)… A typical example is the selection of a file which is available in the ARE file system (e.g. a .wav-file for the wave player plugin). This feature is particularly useful for plugins that are hardware dependent (selecting e.g. a soundcard or a midi player), or depend on the file system.")]),t._v(" "),e("p",[t._v("If a plugin is implementing a dynamic property, the values will be requested from the ARE, as soon as the ACS is synchronized with the ARE, via the ASAPI function:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),e("span",{pre:!0,attrs:{class:"token generics"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRuntimePropertyList")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" componentID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("\n")])])]),e("p",[t._v("The ARE middleware will forward the request for valid property values to the component instance with the given ID. The "),e("code",[t._v("List getRuntimePropertyList(String key)")]),t._v(" method has to be implemented in the "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" class which every AsTeRICS component extends.\nThe method implementation creates the list of valid properties and returns it to the middleware and the latter forwards the string list to the ACS via ASAPI. The ACS will dynamically update the property list in the properties window.")]),t._v(" "),e("p",[t._v("For an example of the dynamic property implementation, see the WaveFilePlayer plugin.")]),t._v(" "),e("h2",{attrs:{id:"data-synchronization"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-synchronization"}},[t._v("#")]),t._v(" Data Synchronization")]),t._v(" "),e("p",[t._v("Some plugins need data of multiple input ports to be able to start processing. Without data synchronization it is possible that one input port of a plugin receives multiple values before another port gets one value, although both signal channels deliver values at the same sampling rate.")]),t._v(" "),e("p",[t._v("The synchronization service provides a buffering mechanism at the middleware level that can be utilized by plugin developers in order to make sure that incoming data of selected input ports arrives synchronized.")]),t._v(" "),e("p",[t._v("To use the synchronization service in the plugin code, plugin developers are expected to extend the "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" instead of implementing the "),e("em",[t._v("IRuntimeInputPort.")]),t._v(" Basically, "),e("em",[t._v("DefaultRuntimeInputPort")]),t._v(" provides a default implementation for the necessary buffering methods, as shown in the table below.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("abstract")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" startBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" stopBuffering "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AbstractRuntimeComponentInstance")]),t._v(" c"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n\t\t\t"),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" portID"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("boolean")]),t._v(" isBuffered "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("buffering"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The designer can define that a plugin’s input port should be synchronized with some other input ports via the ACS. This will cause an argument change of the inputPort element on the deployment model file (e.g.,"),e("code",[t._v('')]),t._v(").")]),t._v(" "),e("p",[t._v("As soon as a model is deployed on the ARE, the middleware collects per component every port noted as synchronized port. When the model is successfully deployed and started, the ARE will buffer data which enters synchronized input ports until data on all synchronized ports has arrived. At that point, the ARE will call a new "),e("em",[t._v("AbstractRuntimeComponentInstance")]),t._v(" callback method.")]),t._v(" "),e("p",[t._v("Developers that wish to support data synchronization need to implement the following method at their component instances.")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("syncedValuesReceived")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HashMap")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" dataRow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Where dataRow is a HashMap between Input Port ID and byte[]. For synchronized input ports, instead of implementing the regular "),e("em",[t._v("void receiveData(byte[] data)")]),t._v(" method which delivers incoming data of a single port, developers need to implement the "),e("em",[t._v("syncedValuesReceived")]),t._v(" method which will be called from the ARE with synchronized data from all the input ports that have been selected.")]),t._v(" "),e("h2",{attrs:{id:"interfacing-native-c-c-code-via-jni"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#interfacing-native-c-c-code-via-jni"}},[t._v("#")]),t._v(" Interfacing Native C/C++ Code via JNI")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("## Specifying native libraries in the Manifest\n")])])]),e("p",[t._v("The Manifest file of a bundle which includes native libraries has to specify these .dlls as shown in the following example:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("Manifest-Version: 1.0\nBundle-ManifestVersion: 2\nBundle-Name: asterics-sensors.mycomponent\nBundle-SymbolicName: org.asterics.mycomponent\nBundle-Version: 0.1.0\nBundle-NativeCode: lib/native/mylib1.dll;\n lib/native/mylib2.dll;\n lib/native/mylib3.dll;\n osname=win32;processor=x86;\n osname=win;processor=x86-64;\n osname=win8;processor=x86;\n osname=win8;processor=x86-64;\n osname=windows 8;processor=x86;\n osname=windows 8;processor=x86-64;\n osname=windows8;processor=x86;\n osname=windows8;processor=x86-64;\n osname=Windows 8.1;processor=x86;\n osname=Windows 8.1;processor=x86-64\nDynamicImport-Package: *\n")])])]),e("p",[t._v("Components which interface native code via JNI and their respective manifest files can be found in the SVN, e.g. the “webcamera” component or the signal processing plugins by Starlab.")]),t._v(" "),e("p",[t._v("Note that the .jar containing the .dlls can be built manually using the command:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("jar "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-cvfm")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("/mybundle.jar META-INF/MANIFEST.MF "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\n")])])]),e("h2",{attrs:{id:"java-implementation-jni-bridge"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java-implementation-jni-bridge"}},[t._v("#")]),t._v(" Java-Implementation: JNI-Bridge")]),t._v(" "),e("p",[t._v("The recommended way to interface Java code of an ARE component with native code in a .dll is a bridge class which encapsulates the JNI functions and callbacks and maps the functions of the ARE component’s lifecycle-, port- and property-management to the corresponding functions in the native code. Here is a simple example which comprises one component property and receives data callbacks from a thread implemented in C. The received values are transferred to the component’s output port:")]),t._v(" "),e("div",{staticClass:"language-java extra-class"},[e("pre",{pre:!0,attrs:{class:"language-java"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("jni")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mycomponent"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token import"}},[e("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("logging"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* Statically load the native library */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib1.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib2"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib2.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("loadLibrary")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mylib3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// loads mylib3.dll ")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),t._v(" logger "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Logger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAnonymousLogger")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Bridge")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyComponentInstance"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OutputPort")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("my_outport "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Activates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("activate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Deactivates the underlying native code/hardware.\n *\n * @return 0 if everything was OK, a negative number otherwise\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("deactivate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Gets the value of the named property.\n *\n * @param key the name of the property to be accessed\n * @return the value of the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Sets the named property to the defined value.\n *\n * @param key the name of the property to be accessed\n * @param value the value to be assigned to the named property\n * @return the value previously assigned to the named property\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("native")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("setProperty")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code on demand to signify \n * an internal error. The first argument corresponds to an error code \n * and the second argument corresponds to a textual description \n * of the error.\n * @param errorCode an error code\n * @param message a textual description of the error\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("errorReport_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" errorCode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n logger"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("severe")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorCode "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('": "')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" message"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * This method is called back from the native code to send data\n * to the component’s output port.\n *\n * @param data1 (range is [0, Short.MAX_VALUE])\n */")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("newData_callback")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n my_outport"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data1"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h2",{attrs:{id:"c-implementation-callbacks-and-jni-code"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#c-implementation-callbacks-and-jni-code"}},[t._v("#")]),t._v(" C-Implementation: Callbacks and JNI code")]),t._v(" "),e("p",[t._v("The native C-code needs to be compiled into a .dll and include the JNI header files and libraries. An example for the Microsoft Visual Studio compiler looks as follows:")]),t._v(" "),e("p",[t._v("The following C-example shows how to implement a JNI-callback from a C-thread and an ARE-compliant exchange of a component property:")]),t._v(" "),e("div",{staticClass:"language-c extra-class"},[e("pre",{pre:!0,attrs:{class:"language-c"}},[e("code",[e("span",{pre:!0,attrs:{class:"token macro property"}},[e("span",{pre:!0,attrs:{class:"token directive-hash"}},[t._v("#")]),e("span",{pre:!0,attrs:{class:"token directive keyword"}},[t._v("include")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("")])]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" JavaVM "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" jobject g_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myProperty"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" propertyValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"20"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_activate")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\terror_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetJavaVM")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("g_jvm"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\tjclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newData_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* method not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// explicitly ask for a global reference")]),t._v("\n\tg_obj "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_init")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jint JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_deactivate")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\tjint error_code "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("my_c_thread_exit")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tenv"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("DeleteGlobalRef")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" error_code"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_getProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\t\t\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nJNIEXPORT jstring JNICALL "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("Java_org_asterics_jni_Bridge_setProperty")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jobject obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" jstring value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("char")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\tjstring result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown*/")]),t._v("\n\t strKey "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* OutOfMemoryError already thrown */")]),t._v("\n\t strValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("strcmp")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("NewStringUTF")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\tpollingIntervalValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t\tresult "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \t"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* property was not found */")]),t._v("\n\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("key"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strKey"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReleaseStringUTFChars")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" strValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" result"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// prepare JNI callback")]),t._v("\n JNIEnv "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n g_jvm"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("AttachCurrentThread")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("env"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NULL")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jclass cls "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObjectClass")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("g_obj"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n jmethodID mid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetMethodID")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cls"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"newCoordinates_callback"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"(IIII)V"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// perform JNI callback")]),t._v("\n env"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("CallVoidMethod")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("jint"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("my_new_data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("This native C-code needs to be compiled into a .dll, the JNI header files and libraries have to be specified to the compiler and linker respectively. An example for the Microsoft Visual Studio build tools looks as follows:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v('cl -c -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include" -I "C:\\Program Files (x86)\\java\\jdk1.6.0_21\\include\\win32" -I ".\\3rdparylib" my_c_file.cpp /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_WARNINGS" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /errorReport:queue \nlink my_c_file.obj /DLL /OUT:".\\my_c_file.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"libmsvc" /LIBPATH:"3rdparylib" "odbc32.lib" "odbccp32.lib" "comctl32.lib" "winmm.lib" "opengl32.lib" "ole32.lib" "strmiids.lib" "uuid.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "oleaut32.lib" /NODEFAULTLIB:"libcd.lib" /NODEFAULTLIB:"atlthunk" /NODEFAULTLIB:"LIBCMT" /MANIFESTUAC:"level=\'asInvoker\' uiAccess=\'false\'" /DEBUG /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:QUEUE\n')])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The compiler and linker switches may differ depending on the nature of your dependency libraries and setup.")])]),t._v(" "),e("h2",{attrs:{id:"asterics-packaging-environment-ape"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asterics-packaging-environment-ape"}},[t._v("#")]),t._v(" AsTeRICS Packaging Environment (APE)")]),t._v(" "),e("p",[t._v("The APE let’s you select a set of AsTeRICS model files and create a downstripped (minimum size) version of the ARE including plugins, configuration files and data files to execute the models. Optionally, the APE allows the creation of native installers for Windows, Linux incl. Raspberry Pi and Mac OSX using "),e("a",{attrs:{href:"http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGIBBCI",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaFX packaging technology"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("See "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-Packaging-Environment-(APE)",target:"_blank",rel:"noopener noreferrer"}},[t._v("APE documentation"),e("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/240.4da8673e.js b/assets/js/240.369897d5.js similarity index 97% rename from assets/js/240.4da8673e.js rename to assets/js/240.369897d5.js index de74a0e681..fb7ce5d645 100644 --- a/assets/js/240.4da8673e.js +++ b/assets/js/240.369897d5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[240],{1200:function(t,r,n){"use strict";n.r(r);var e=n(2),i=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"frontmatter-title"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),r("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),r("p",[t._v("Adds the preString and postString strings to the incoming string and sends the new string to the output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:n(761),alt:"Screenshot: StringExpander plugin",title:"Screenshot: StringExpander plugin"}})]),t._v(" "),r("p",[t._v("StringExpander plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input [string]:")]),t._v(" String input port.")]),t._v(" "),r("li",[r("strong",[t._v("preString [string]:")]),t._v(" String which will be placed before the input string (as leading string).")]),t._v(" "),r("li",[r("strong",[t._v("postString [string]:")]),t._v(" String which will be placed after the input string (as trailing string).")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("p",[r("strong",[t._v("preString [string]:")]),t._v(" default leading String.")])]),t._v(" "),r("li",[r("p",[r("strong",[t._v("postString [string]:")]),t._v(" default trailing String.")])]),t._v(" "),r("li",[r("p",[r("strong",[t._v("trim [boolean]:")]),t._v(" if selected, all leading and trailing white-space characters will be removed from the input string.")])])])])}),[],!1,null,null,null);r.default=i.exports},761:function(t,r,n){t.exports=n.p+"assets/img/stringexpander.35b2aef0.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[240],{1198:function(t,r,n){"use strict";n.r(r);var e=n(2),i=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"frontmatter-title"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),r("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),r("p",[t._v("Adds the preString and postString strings to the incoming string and sends the new string to the output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:n(761),alt:"Screenshot: StringExpander plugin",title:"Screenshot: StringExpander plugin"}})]),t._v(" "),r("p",[t._v("StringExpander plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input [string]:")]),t._v(" String input port.")]),t._v(" "),r("li",[r("strong",[t._v("preString [string]:")]),t._v(" String which will be placed before the input string (as leading string).")]),t._v(" "),r("li",[r("strong",[t._v("postString [string]:")]),t._v(" String which will be placed after the input string (as trailing string).")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("p",[r("strong",[t._v("preString [string]:")]),t._v(" default leading String.")])]),t._v(" "),r("li",[r("p",[r("strong",[t._v("postString [string]:")]),t._v(" default trailing String.")])]),t._v(" "),r("li",[r("p",[r("strong",[t._v("trim [boolean]:")]),t._v(" if selected, all leading and trailing white-space characters will be removed from the input string.")])])])])}),[],!1,null,null,null);r.default=i.exports},761:function(t,r,n){t.exports=n.p+"assets/img/stringexpander.35b2aef0.jpg"}}]); \ No newline at end of file diff --git a/assets/js/241.0372f159.js b/assets/js/241.f0bba66d.js similarity index 97% rename from assets/js/241.0372f159.js rename to assets/js/241.f0bba66d.js index 603213b4a1..917187245b 100644 --- a/assets/js/241.0372f159.js +++ b/assets/js/241.f0bba66d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[241],{1202:function(t,e,r){"use strict";r.r(e);var s=r(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("Applies a given filter text to the incoming string. It can be selected if only strings that contain the filter text are passed to the output port, and/or if the filter text shall be removed from the incoming string. Please note that the filter text is applied case sensitive.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(762),alt:"Screenshot: StringFilter plugin",title:"Screenshot: StringFilter plugin"}})]),t._v(" "),e("p",[t._v("StringFilter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [string]:")]),t._v(" String input port.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [string]:")]),t._v(" String output port for processed/filtered string.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("filterText [string]:")]),t._v(" The filter text.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passOnlyIfContains [boolean]:")]),t._v(" If selected, only strings containing the filter text will be passed.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("cropFilterText [boolean]:")]),t._v(" If selected, the filter will be removed before the input string is passed to the output port.")])])])])}),[],!1,null,null,null);e.default=i.exports},762:function(t,e,r){t.exports=r.p+"assets/img/stringfilter.e949de40.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[241],{1199:function(t,e,r){"use strict";r.r(e);var s=r(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("Applies a given filter text to the incoming string. It can be selected if only strings that contain the filter text are passed to the output port, and/or if the filter text shall be removed from the incoming string. Please note that the filter text is applied case sensitive.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(762),alt:"Screenshot: StringFilter plugin",title:"Screenshot: StringFilter plugin"}})]),t._v(" "),e("p",[t._v("StringFilter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [string]:")]),t._v(" String input port.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out [string]:")]),t._v(" String output port for processed/filtered string.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("filterText [string]:")]),t._v(" The filter text.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passOnlyIfContains [boolean]:")]),t._v(" If selected, only strings containing the filter text will be passed.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("cropFilterText [boolean]:")]),t._v(" If selected, the filter will be removed before the input string is passed to the output port.")])])])])}),[],!1,null,null,null);e.default=i.exports},762:function(t,e,r){t.exports=r.p+"assets/img/stringfilter.e949de40.jpg"}}]); \ No newline at end of file diff --git a/assets/js/242.ad0ebbdc.js b/assets/js/242.d2fa9bcd.js similarity index 97% rename from assets/js/242.ad0ebbdc.js rename to assets/js/242.d2fa9bcd.js index f82f1aa05d..6f90ba6dde 100644 --- a/assets/js/242.ad0ebbdc.js +++ b/assets/js/242.d2fa9bcd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[242],{1205:function(t,e,r){"use strict";r.r(e);var s=r(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The String Path Multiplexer component forwards strings from the selected input port to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(764),alt:"Screenshot: StringPathMultiplexer plugin",title:"Screenshot: StringPathMultiplexer plugin"}})]),t._v(" "),e("p",[t._v("StringPathMultiplexer plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1 to input4 [string]:")]),t._v(" The input ports for strings to be multiplexed.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v("[string]**")]),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("* The string output, which sends data of the selected input port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("passPort1 to passPort4:")]),t._v(" The string output, which sends data of the selected input port.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passNextPort:")]),t._v(" selets the next input port. If the currently used port is the maximum port (defined by the number property), input port 1 will be selected.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passPreviousPort:")]),t._v(" selects the previous input port. If the currently used port is port 1, the maximum port (defined by the number property) will be selected.")])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("number [integer]:")]),t._v(" The maximum port number (can be 1 to 4).")])])])}),[],!1,null,null,null);e.default=i.exports},764:function(t,e,r){t.exports=r.p+"assets/img/stringpathmultiplexer.cefdc2b2.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[242],{1202:function(t,e,r){"use strict";r.r(e);var s=r(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The String Path Multiplexer component forwards strings from the selected input port to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(764),alt:"Screenshot: StringPathMultiplexer plugin",title:"Screenshot: StringPathMultiplexer plugin"}})]),t._v(" "),e("p",[t._v("StringPathMultiplexer plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input1 to input4 [string]:")]),t._v(" The input ports for strings to be multiplexed.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" "),e("strong",[t._v("[string]**")]),e("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),t._v("* The string output, which sends data of the selected input port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("passPort1 to passPort4:")]),t._v(" The string output, which sends data of the selected input port.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passNextPort:")]),t._v(" selets the next input port. If the currently used port is the maximum port (defined by the number property), input port 1 will be selected.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("passPreviousPort:")]),t._v(" selects the previous input port. If the currently used port is port 1, the maximum port (defined by the number property) will be selected.")])])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("number [integer]:")]),t._v(" The maximum port number (can be 1 to 4).")])])])}),[],!1,null,null,null);e.default=i.exports},764:function(t,e,r){t.exports=r.p+"assets/img/stringpathmultiplexer.cefdc2b2.jpg"}}]); \ No newline at end of file diff --git a/assets/js/243.dce75e85.js b/assets/js/243.2b0420d1.js similarity index 95% rename from assets/js/243.dce75e85.js rename to assets/js/243.2b0420d1.js index a29f7a0bd3..ebd5d04bac 100644 --- a/assets/js/243.dce75e85.js +++ b/assets/js/243.2b0420d1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[243],{1204:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The StringPathSelector component allows routing of incoming strings between up to 4 output ports. The desired output port can be directly selected by a dedicated event listener port, or the strings can be switched to the next or previous output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(763),alt:"Screenshot: StringPathSelector plugin",title:"Screenshot: StringPathSelector plugin"}})]),t._v(" "),e("p",[t._v("StringPathSelector plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [string]:")]),t._v(" The incoming string port to be routed.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 to out4:")]),t._v(" Four output ports where the incoming strings can be routed to.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("select1 to select4:")]),t._v(" An incoming event at these ports directly activates the associated output path (e.g. as an event comes in at select 3, the input string port will be routed to out3.")]),t._v(" "),e("li",[e("strong",[t._v("selectNext:")]),t._v(" The next output port is selected for string output. The maximum number of active ports is set via the activePorts property. If the current number is already the maximum one, the select next event will wrap around the active port number and port 1 will be selected.")]),t._v(" "),e("li",[e("strong",[t._v("selectPrevious:")]),t._v(" The previous output port is selected for string output. If the current port is out1, the maximum port number (given by the activePorts property) will be selected.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("activePorts [integer]:")]),t._v(" The maximum port number in use (can be 1 to 4).")])])])}),[],!1,null,null,null);e.default=s.exports},763:function(t,e,r){t.exports=r.p+"assets/img/stringpathselector.ab8e1a6f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[243],{1204:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Signal Pathways)")]),t._v(" "),e("p",[t._v("The StringPathSelector component allows routing of incoming strings between up to 4 output ports. The desired output port can be directly selected by a dedicated event listener port, or the strings can be switched to the next or previous output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(765),alt:"Screenshot: StringPathSelector plugin",title:"Screenshot: StringPathSelector plugin"}})]),t._v(" "),e("p",[t._v("StringPathSelector plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in [string]:")]),t._v(" The incoming string port to be routed.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 to out4:")]),t._v(" Four output ports where the incoming strings can be routed to.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("select1 to select4:")]),t._v(" An incoming event at these ports directly activates the associated output path (e.g. as an event comes in at select 3, the input string port will be routed to out3.")]),t._v(" "),e("li",[e("strong",[t._v("selectNext:")]),t._v(" The next output port is selected for string output. The maximum number of active ports is set via the activePorts property. If the current number is already the maximum one, the select next event will wrap around the active port number and port 1 will be selected.")]),t._v(" "),e("li",[e("strong",[t._v("selectPrevious:")]),t._v(" The previous output port is selected for string output. If the current port is out1, the maximum port number (given by the activePorts property) will be selected.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("activePorts [integer]:")]),t._v(" The maximum port number in use (can be 1 to 4).")])])])}),[],!1,null,null,null);e.default=s.exports},765:function(t,e,r){t.exports=r.p+"assets/img/stringpathselector.ab8e1a6f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/244.51f447c2.js b/assets/js/244.05ea02ae.js similarity index 93% rename from assets/js/244.51f447c2.js rename to assets/js/244.05ea02ae.js index 1645bbec9a..9af38d3c70 100644 --- a/assets/js/244.51f447c2.js +++ b/assets/js/244.05ea02ae.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[244],{1206:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("Splits a string with separators in up to 16 outputports.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(765),alt:"Screenshot: StringSplitter plugin",title:"Screenshot: StringSplitter plugin"}})]),t._v(" "),e("p",[t._v("StringSplitter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" String input port. The string which has to be splitted.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output 1 to 16[string]:")]),t._v(" String output ports. Sending the seperated Data.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Seperator [string]:")]),t._v(" Defines the separator. The separator itself will not be part of the result strings. Please note that "),e("a",{attrs:{href:"https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#sum",target:"_blank",rel:"noopener noreferrer"}},[t._v("regular expressions"),e("OutboundLink")],1),t._v(" can be use for the separator. This also means that special characters for the regular expressions are not allowed in the separator string, unless they are introduced with the escape character (backslash). These special characters are: the backslash \\\\, the caret ^, the dollar sign $, the period or dot ., the vertical bar or pipe symbol |, the question mark ?, the asterisk or star *, the plus sign +, the opening parenthesis (, the closing parenthesis ), and the opening square bracket [, the opening curly brace {. For example: for using the dot as separator, use \\. as separator string.")])])])}),[],!1,null,null,null);e.default=a.exports},765:function(t,e,r){t.exports=r.p+"assets/img/stringsplitter.c64848ba.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[244],{1205:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("Splits a string with separators in up to 16 outputports.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(766),alt:"Screenshot: StringSplitter plugin",title:"Screenshot: StringSplitter plugin"}})]),t._v(" "),e("p",[t._v("StringSplitter plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("input [string]:")]),t._v(" String input port. The string which has to be splitted.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output 1 to 16[string]:")]),t._v(" String output ports. Sending the seperated Data.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Seperator [string]:")]),t._v(" Defines the separator. The separator itself will not be part of the result strings. Please note that "),e("a",{attrs:{href:"https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#sum",target:"_blank",rel:"noopener noreferrer"}},[t._v("regular expressions"),e("OutboundLink")],1),t._v(" can be use for the separator. This also means that special characters for the regular expressions are not allowed in the separator string, unless they are introduced with the escape character (backslash). These special characters are: the backslash \\\\, the caret ^, the dollar sign $, the period or dot ., the vertical bar or pipe symbol |, the question mark ?, the asterisk or star *, the plus sign +, the opening parenthesis (, the closing parenthesis ), and the opening square bracket [, the opening curly brace {. For example: for using the dot as separator, use \\. as separator string.")])])])}),[],!1,null,null,null);e.default=a.exports},766:function(t,e,r){t.exports=r.p+"assets/img/stringsplitter.c64848ba.png"}}]); \ No newline at end of file diff --git a/assets/js/245.89fbcb9a.js b/assets/js/245.42d41f4c.js similarity index 87% rename from assets/js/245.89fbcb9a.js rename to assets/js/245.42d41f4c.js index 256a11e295..c3710d4ad4 100644 --- a/assets/js/245.89fbcb9a.js +++ b/assets/js/245.42d41f4c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[245],{1207:function(t,o,r){"use strict";r.r(o);var e=r(2),n=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"string-to-double"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#string-to-double"}},[t._v("#")]),t._v(" String To Double")]),t._v(" "),o("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),o("p",[t._v("This component converts the incoming string values into the integer values at the output port.")]),t._v(" "),o("p",[o("img",{attrs:{src:r(766),alt:"Screenshot: StringToDouble plugin",title:"Screenshot: StringToDouble plugin"}})]),t._v(" "),o("p",[t._v("StringToDouble plugin")]),t._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("input [string]:")]),t._v(" Input port for the string values to be converted.")])]),t._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("output [double]:")]),t._v(" Output port for the converted double values.")])])])}),[],!1,null,null,null);o.default=n.exports},766:function(t,o,r){t.exports=r.p+"assets/img/stringtodouble.9dd0d127.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[245],{1208:function(t,o,r){"use strict";r.r(o);var e=r(2),n=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"string-to-double"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#string-to-double"}},[t._v("#")]),t._v(" String To Double")]),t._v(" "),o("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),o("p",[t._v("This component converts the incoming string values into the integer values at the output port.")]),t._v(" "),o("p",[o("img",{attrs:{src:r(769),alt:"Screenshot: StringToDouble plugin",title:"Screenshot: StringToDouble plugin"}})]),t._v(" "),o("p",[t._v("StringToDouble plugin")]),t._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("input [string]:")]),t._v(" Input port for the string values to be converted.")])]),t._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("output [double]:")]),t._v(" Output port for the converted double values.")])])])}),[],!1,null,null,null);o.default=n.exports},769:function(t,o,r){t.exports=r.p+"assets/img/stringtodouble.9dd0d127.jpg"}}]); \ No newline at end of file diff --git a/assets/js/246.bd319947.js b/assets/js/246.ee60da55.js similarity index 89% rename from assets/js/246.bd319947.js rename to assets/js/246.ee60da55.js index 63441a9eea..d298ac212a 100644 --- a/assets/js/246.bd319947.js +++ b/assets/js/246.ee60da55.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[246],{1210:function(t,r,e){"use strict";e.r(r);var n=e(2),s=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"string-to-int"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#string-to-int"}},[t._v("#")]),t._v(" String To Int")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),r("p",[t._v("This component converts the incoming string values into the integer values at the output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:e(768),alt:"Screenshot: StringToInt plugin",title:"Screenshot: StringToInt plugin"}})]),t._v(" "),r("p",[t._v("StringToInt plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input [string]:")]),t._v(" Input port for the string values to be converted.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [integer]:")]),t._v(" Output port for the converted integer values.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("hexadecimalInput [boolean]:")]),t._v(" If this property is set, the input string data are regarded as the hexadecimal data string.")])])])}),[],!1,null,null,null);r.default=s.exports},768:function(t,r,e){t.exports=e.p+"assets/img/stringtoint.3fa07379.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[246],{1206:function(t,r,e){"use strict";e.r(r);var n=e(2),s=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"string-to-int"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#string-to-int"}},[t._v("#")]),t._v(" String To Int")]),t._v(" "),r("p",[t._v("Component Type: Processor (Subcategory: Data Converters)")]),t._v(" "),r("p",[t._v("This component converts the incoming string values into the integer values at the output port.")]),t._v(" "),r("p",[r("img",{attrs:{src:e(767),alt:"Screenshot: StringToInt plugin",title:"Screenshot: StringToInt plugin"}})]),t._v(" "),r("p",[t._v("StringToInt plugin")]),t._v(" "),r("h2",{attrs:{id:"input-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("input [string]:")]),t._v(" Input port for the string values to be converted.")])]),t._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("output [integer]:")]),t._v(" Output port for the converted integer values.")])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("hexadecimalInput [boolean]:")]),t._v(" If this property is set, the input string data are regarded as the hexadecimal data string.")])])])}),[],!1,null,null,null);r.default=s.exports},767:function(t,r,e){t.exports=e.p+"assets/img/stringtoint.3fa07379.jpg"}}]); \ No newline at end of file diff --git a/assets/js/247.85528c41.js b/assets/js/247.0424e9d4.js similarity index 91% rename from assets/js/247.85528c41.js rename to assets/js/247.0424e9d4.js index b533c61a9a..8992590052 100644 --- a/assets/js/247.85528c41.js +++ b/assets/js/247.0424e9d4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[247],{1208:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"text-sender"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#text-sender"}},[t._v("#")]),t._v(" Text Sender")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component sends the string data through the output port when it receives the trigger event.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(767),alt:"Screenshot: TextSender plugin",title:"Screenshot: TextSender plugin"}})]),t._v(" "),e("p",[t._v("TextSender plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setText [string]:")]),t._v(" Updates the text with the incoming string.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendText:")]),t._v(" This event causes text to be sent.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("text [string]:")]),t._v(" The default text to be sent.")])])])}),[],!1,null,null,null);e.default=n.exports},767:function(t,e,r){t.exports=r.p+"assets/img/textsender.7fb85a38.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[247],{1207:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"text-sender"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#text-sender"}},[t._v("#")]),t._v(" Text Sender")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("This component sends the string data through the output port when it receives the trigger event.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(768),alt:"Screenshot: TextSender plugin",title:"Screenshot: TextSender plugin"}})]),t._v(" "),e("p",[t._v("TextSender plugin")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setText [string]:")]),t._v(" Updates the text with the incoming string.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendText:")]),t._v(" This event causes text to be sent.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("text [string]:")]),t._v(" The default text to be sent.")])])])}),[],!1,null,null,null);e.default=n.exports},768:function(t,e,r){t.exports=r.p+"assets/img/textsender.7fb85a38.jpg"}}]); \ No newline at end of file diff --git a/assets/js/248.b672d96d.js b/assets/js/248.aa3377dd.js similarity index 96% rename from assets/js/248.b672d96d.js rename to assets/js/248.aa3377dd.js index 15f1f42a80..12cf326897 100644 --- a/assets/js/248.b672d96d.js +++ b/assets/js/248.aa3377dd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[248],{1213:function(e,t,o){"use strict";o.r(t);var s=o(2),h=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold"}},[e._v("#")]),e._v(" Threshold")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Basic Math)")]),e._v(" "),t("p",[e._v("This component takes an input and compares it to a given threshold and generates an according output value dependent on the operation mode. The component allows three operation modes: binary, deadzone and cut off which are described in the property section. The component allows operating with a hysteresis by setting the thresholds for transition from below to above and vice versa differently. Transitions over the thresholds are always evaluated arithmetically thus a below threshold to above transition always happens when the new value is mathematically greater than the threshold while the last input was less than threshold. Respectively the transition from above to below happens when the last value was greater than the threshold value and the new value is less than it. This statement also holds for negative values in the threshold."),t("br"),e._v("\nThe component provides the possibility to raise events on threshold transitions either on below to above, above to below or on both.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(770),alt:"Screenshot: Threshold plugin",title:"Screenshot: Threshold plugin"}})]),e._v(" "),t("p",[e._v("Threshold plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" the input to be evaluated.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out[double]:")]),e._v(" the value that the threshold passes on for the given input.")])]),e._v(" "),t("h2",{attrs:{id:"event-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-port-description"}},[e._v("#")]),e._v(" Event Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventPosEdge:")]),e._v(" This event port will trigger an event when the value crosses the thresholdHigh property from below.")]),e._v(" "),t("li",[t("strong",[e._v("eventNegEdge:")]),e._v(" This event port will trigger an event when the value crosses the thresholdLow property from above.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("thresholdHigh [double]:")]),e._v(" The threshold that is checked for transitions from below the threshold to above.")]),e._v(" "),t("li",[t("strong",[e._v("thresholdLow [double]:")]),e._v(" The threshold that is checked for transitions from above the threshold to below. Setting it to the same value as threshold_high will remove the hysteresis from the threshold system.")]),e._v(" "),t("li",[t("strong",[e._v("outputHigh [double]:")]),e._v(" The value to be sent to the output if the input is above the threshold in certain operation modes.")]),e._v(" "),t("li",[t("strong",[e._v("outputLow [double]:")]),e._v(" The value to be sent to the output if the input is below the threshold in certain operation modes (see below).")]),e._v(" "),t("li",[t("strong",[e._v("operationMode [integer]:")]),e._v(" There are three operation modes for the threshold component:\n"),t("ul",[t("li",[t("em",[e._v("binary:")]),e._v(" the output will only generate two different values, the value of output_high if the input is in the range above the threshold and the value of output_low if the input is below the threshold.")]),e._v(" "),t("li",[t("em",[e._v("cutoff:")]),e._v(" the input value will be passed through to the output as long as the value is below the threshold. If the input passes the threshold the output will take on the value set in output_high.v")]),e._v(" "),t("li",[t("em",[e._v("deadzone:")]),e._v(" the input value will be passed through to the output as long as the value is above the threshold. If the input falls below the threshold the output will take on the value set in output_low.")])])]),e._v(" "),t("li",[t("strong",[e._v("eventCondition [integer]:")]),e._v(" This property declares on which types of transitions an event will be raised:\n"),t("ul",[t("li",[t("em",[e._v("Below->above:")]),e._v(" only transitions from below to above threshold raise events.")]),e._v(" "),t("li",[t("em",[e._v("Above->below:")]),e._v(" only transitions from above to below threshold raise events.")]),e._v(" "),t("li",[t("em",[e._v("Both:")]),e._v(" both types of transitions raise events.")])])])])])}),[],!1,null,null,null);t.default=h.exports},770:function(e,t,o){e.exports=o.p+"assets/img/threshold.5ccba1f1.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[248],{1284:function(e,t,o){"use strict";o.r(t);var s=o(2),h=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold"}},[e._v("#")]),e._v(" Threshold")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Basic Math)")]),e._v(" "),t("p",[e._v("This component takes an input and compares it to a given threshold and generates an according output value dependent on the operation mode. The component allows three operation modes: binary, deadzone and cut off which are described in the property section. The component allows operating with a hysteresis by setting the thresholds for transition from below to above and vice versa differently. Transitions over the thresholds are always evaluated arithmetically thus a below threshold to above transition always happens when the new value is mathematically greater than the threshold while the last input was less than threshold. Respectively the transition from above to below happens when the last value was greater than the threshold value and the new value is less than it. This statement also holds for negative values in the threshold."),t("br"),e._v("\nThe component provides the possibility to raise events on threshold transitions either on below to above, above to below or on both.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(865),alt:"Screenshot: Threshold plugin",title:"Screenshot: Threshold plugin"}})]),e._v(" "),t("p",[e._v("Threshold plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" the input to be evaluated.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out[double]:")]),e._v(" the value that the threshold passes on for the given input.")])]),e._v(" "),t("h2",{attrs:{id:"event-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-port-description"}},[e._v("#")]),e._v(" Event Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eventPosEdge:")]),e._v(" This event port will trigger an event when the value crosses the thresholdHigh property from below.")]),e._v(" "),t("li",[t("strong",[e._v("eventNegEdge:")]),e._v(" This event port will trigger an event when the value crosses the thresholdLow property from above.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("thresholdHigh [double]:")]),e._v(" The threshold that is checked for transitions from below the threshold to above.")]),e._v(" "),t("li",[t("strong",[e._v("thresholdLow [double]:")]),e._v(" The threshold that is checked for transitions from above the threshold to below. Setting it to the same value as threshold_high will remove the hysteresis from the threshold system.")]),e._v(" "),t("li",[t("strong",[e._v("outputHigh [double]:")]),e._v(" The value to be sent to the output if the input is above the threshold in certain operation modes.")]),e._v(" "),t("li",[t("strong",[e._v("outputLow [double]:")]),e._v(" The value to be sent to the output if the input is below the threshold in certain operation modes (see below).")]),e._v(" "),t("li",[t("strong",[e._v("operationMode [integer]:")]),e._v(" There are three operation modes for the threshold component:\n"),t("ul",[t("li",[t("em",[e._v("binary:")]),e._v(" the output will only generate two different values, the value of output_high if the input is in the range above the threshold and the value of output_low if the input is below the threshold.")]),e._v(" "),t("li",[t("em",[e._v("cutoff:")]),e._v(" the input value will be passed through to the output as long as the value is below the threshold. If the input passes the threshold the output will take on the value set in output_high.v")]),e._v(" "),t("li",[t("em",[e._v("deadzone:")]),e._v(" the input value will be passed through to the output as long as the value is above the threshold. If the input falls below the threshold the output will take on the value set in output_low.")])])]),e._v(" "),t("li",[t("strong",[e._v("eventCondition [integer]:")]),e._v(" This property declares on which types of transitions an event will be raised:\n"),t("ul",[t("li",[t("em",[e._v("Below->above:")]),e._v(" only transitions from below to above threshold raise events.")]),e._v(" "),t("li",[t("em",[e._v("Above->below:")]),e._v(" only transitions from above to below threshold raise events.")]),e._v(" "),t("li",[t("em",[e._v("Both:")]),e._v(" both types of transitions raise events.")])])])])])}),[],!1,null,null,null);t.default=h.exports},865:function(e,t,o){e.exports=o.p+"assets/img/threshold.5ccba1f1.jpg"}}]); \ No newline at end of file diff --git a/assets/js/249.008f57e5.js b/assets/js/249.265f0c16.js similarity index 96% rename from assets/js/249.008f57e5.js rename to assets/js/249.265f0c16.js index 03f4766b5f..91bfc3d530 100644 --- a/assets/js/249.008f57e5.js +++ b/assets/js/249.265f0c16.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[249],{1211:function(e,t,a){"use strict";a.r(t);var o=a(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Microcontroller Interface)")]),e._v(" "),t("p",[e._v("The Universal Remote Control (RC) enables the possibility to control all electronic devices in a household which are controlled remotely through infrared (IR) commands. THe necessary IR codes can be recorded with the RC itself and stored on a database on the computer. By choosing the manufacturer, name and function the IR code is deposed in this database and can be selected in order to send the code to the universal RC and therefore control electronic devices. The universal RC can also be used as a handheld gadget due to its built in battery and user interface. THe IR code database can be stored on an SD card.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(769),alt:"Screenshot: UniversalRemoteControl plugin",title:"Screenshot: Universal Remote Control plugin"}})]),e._v(" "),t("p",[e._v("The Universal Remote Control sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("For the use of the universal RC with a computer, it has to be be connected to a USB port. The firmware of the universal RC can be found in the AsTeRICS folder under /CIMs/UniversalInfraredRemoteControl/. A database will be automatically generated if there is not found one. For the usage of the universal RC as a handheld gadget, the SD card has to be formatted as a FAT16 volume and contain a database as well as the configuration file.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("DeviceType [string]:")]),e._v(" Type of the device to be controlled via IR (e.g.: TV)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceName [string]:")]),e._v(" Name of the device to be controlled via IR (e.g.: Sony, Samsung, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceFunction [string]:")]),e._v(" Name of function of the device (e.g.: On, Off, VolumeUp, etc.)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("SendIRCode:")]),e._v(" Send an IR Code to the Universal Remote Control")]),e._v(" "),t("li",[t("strong",[e._v("RecordIRCode:")]),e._v(" Record an IR Code through the Universal Remote Control")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("StartRecord:")]),e._v(" will be triggered when Universal Remote Control is recording")]),e._v(" "),t("li",[t("strong",[e._v("StopRecord:")]),e._v(" will be triggered when Universal Remote Control has finished recording")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("IRCodeFilePath [string]:")]),e._v(" Filepath to the file, where the IR Codes are stored.")])]),e._v(" "),t("h2",{attrs:{id:"ir-code-database"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-code-database"}},[e._v("#")]),e._v(" IR Code Database")]),e._v(" "),t("p",[e._v("The database which contains the IR codes as well as the information about the type and name of the device and the specific function is a comma separated value file. The first value is the type, the second one is the name and the third one is the function. The following 512 values are the IR code. This database is automatically generated and maintained if new IR codes are recorded with the Universal Remote Control with IR functions.")]),e._v(" "),t("h2",{attrs:{id:"configuration-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configuration-file"}},[e._v("#")]),e._v(" Configuration File")]),e._v(" "),t("p",[e._v("The settings of the universal RC can be stored in the config.csv file. This is a comma separated value file and contains configurations such as the speed and sensibility of the rotary encoder and external buttons as well as the name of the file that contains the IR codes. The content of the default config.csv file is:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("\t\tJoystickSpeed,120\n\t\tJoystickSensibility,3\n\t\tFile,IRCODES.CSV\n\t\tSort,2\n")])])])])}),[],!1,null,null,null);t.default=r.exports},769:function(e,t,a){e.exports=a.p+"assets/img/universalremotecontrol.c9a71d59.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[249],{1210:function(e,t,a){"use strict";a.r(t);var o=a(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Microcontroller Interface)")]),e._v(" "),t("p",[e._v("The Universal Remote Control (RC) enables the possibility to control all electronic devices in a household which are controlled remotely through infrared (IR) commands. THe necessary IR codes can be recorded with the RC itself and stored on a database on the computer. By choosing the manufacturer, name and function the IR code is deposed in this database and can be selected in order to send the code to the universal RC and therefore control electronic devices. The universal RC can also be used as a handheld gadget due to its built in battery and user interface. THe IR code database can be stored on an SD card.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(771),alt:"Screenshot: UniversalRemoteControl plugin",title:"Screenshot: Universal Remote Control plugin"}})]),e._v(" "),t("p",[e._v("The Universal Remote Control sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("For the use of the universal RC with a computer, it has to be be connected to a USB port. The firmware of the universal RC can be found in the AsTeRICS folder under /CIMs/UniversalInfraredRemoteControl/. A database will be automatically generated if there is not found one. For the usage of the universal RC as a handheld gadget, the SD card has to be formatted as a FAT16 volume and contain a database as well as the configuration file.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("DeviceType [string]:")]),e._v(" Type of the device to be controlled via IR (e.g.: TV)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceName [string]:")]),e._v(" Name of the device to be controlled via IR (e.g.: Sony, Samsung, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceFunction [string]:")]),e._v(" Name of function of the device (e.g.: On, Off, VolumeUp, etc.)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("SendIRCode:")]),e._v(" Send an IR Code to the Universal Remote Control")]),e._v(" "),t("li",[t("strong",[e._v("RecordIRCode:")]),e._v(" Record an IR Code through the Universal Remote Control")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("StartRecord:")]),e._v(" will be triggered when Universal Remote Control is recording")]),e._v(" "),t("li",[t("strong",[e._v("StopRecord:")]),e._v(" will be triggered when Universal Remote Control has finished recording")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("IRCodeFilePath [string]:")]),e._v(" Filepath to the file, where the IR Codes are stored.")])]),e._v(" "),t("h2",{attrs:{id:"ir-code-database"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-code-database"}},[e._v("#")]),e._v(" IR Code Database")]),e._v(" "),t("p",[e._v("The database which contains the IR codes as well as the information about the type and name of the device and the specific function is a comma separated value file. The first value is the type, the second one is the name and the third one is the function. The following 512 values are the IR code. This database is automatically generated and maintained if new IR codes are recorded with the Universal Remote Control with IR functions.")]),e._v(" "),t("h2",{attrs:{id:"configuration-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configuration-file"}},[e._v("#")]),e._v(" Configuration File")]),e._v(" "),t("p",[e._v("The settings of the universal RC can be stored in the config.csv file. This is a comma separated value file and contains configurations such as the speed and sensibility of the rotary encoder and external buttons as well as the name of the file that contains the IR codes. The content of the default config.csv file is:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("\t\tJoystickSpeed,120\n\t\tJoystickSensibility,3\n\t\tFile,IRCODES.CSV\n\t\tSort,2\n")])])])])}),[],!1,null,null,null);t.default=r.exports},771:function(e,t,a){e.exports=a.p+"assets/img/universalremotecontrol.c9a71d59.png"}}]); \ No newline at end of file diff --git a/assets/js/25.873d628d.js b/assets/js/25.c86449f8.js similarity index 97% rename from assets/js/25.873d628d.js rename to assets/js/25.c86449f8.js index 287e3fa67f..0ea8acd53c 100644 --- a/assets/js/25.873d628d.js +++ b/assets/js/25.c86449f8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{296:function(e,t){e.exports="data:image/png;base64,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"},297:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWsAAACaCAIAAADgnf4nAAAAAXNSR0IArs4c6QAAIrtJREFUeF7tXQl8FEXWrwmEEM4ExQMIhBxGs+wq4XCJCBIImsAquATC4gcR3ACyYmBl/ZCIcRX5XDyiK6eAgZXPI0jQBSJHBJcVlwABJCCBXIDhEkg45Eoms6+q+pzpmemZdDJk5tWvCT3Vr169+lf1v1+9PspUVVVVUflLdGiHixcvEkIGDRoEfzEhAogAImCFwOnTp2tqag4fPqzMN0kM0qtXrzZt2rz44ovR0dGdOnVC+BABRAARUCJgNpvLzlc98oexNw7sLj5yhB8SGGRc0hNjxoxJSkpat+8cooYIIAKIgD0EYvtG/XjyzJRHenMSERjkuQn/s3LlyvX7ziNwiAAigAg4RuDe2IgxqamFS+cLDAKxjzlz5pTX3IXAIQKIACKgB4H2PcOfvT8CYiLUBwEGycnJyT1QqackyiACiAAiENQjfHqPqMLCQoFBtm/f/vG2YsQFEUAEEAE9CLR8oOs7v3tky5YtAoPs2rVr+caDekqiDCKACCACTX8T+vfHKYP4SViYTAQ3RAARQAT0IFBtEZhD9kGyNv+IzIoIIAKIgB4Erkd3WTasv2oWs3KL6lEzPVpQBhFABDyOgOXniryF75380eAoRIf7fjVw8vOm9h01G3gxKmTlk+o4CDKIx4cCGoAIuIHAmiljp7yQGtunuxtlHRTZ8f3e+W8teXL+Sr0M8o+8ImMtQG2IACLQAAisSE5cm/fp1cM/GFtXi3t/M2xg8rhPN2iq/Tmy0ye/V0dS/fxMuCECiECjQwDOcIu5ttZsttSyDXbYxnPgL90R96WjbEcsZa6VC8oaakGzPTRuipFU5b0Yk5OUP/upuCi2zf7BmawHjp9c+Wpc8saTmjVvX65xSDPTqrgeGadt1afEkf1Oq0AB30UAzvNac42lpqa2mm2wY6Ybz1lbeOJPa/dMgS1nD+zD0ZzCE/Qn3XbTHFqkWijIldTUmJkS0GwP1hpKLzTJDOLEBYHx/b+mF7cVfwLbqsjT+XqYevvyAXBK65E0QqbT03/dlp3YSVMVuz9l7WNpZloV1yPj1Hh9SmT7GxY3dD0bOQLMBzEzFqCbGXZuso393FJ8dvVni/kG+2sP/mSVY4YiTFLYoHhNtaW6GnRSgrADjus+SEXJkW6RHTgjdXo68bd6KJ+Y7HOYnvLGyWhaosc8PTJOzXRViavyTg1AAW9GgPog4DLcpNzB6AM8CLbP2CSuS/CIURNrWfr8k4V5ZefhL/8J+XDUwigDNrEUuCFMT41DH0RjFuNHTA62PoMGFb42/4tjosyx3CnhS/PFIvnpyVOyzvjRzOT+dFuav21p/wlbSMGKP4Qnv72NljqVNZsdSu6fvp9WBAJJuflCJqg680USLzub1qKpn+x/W9Av6GRKlr4NBUEnU3iKmmQjxvytCqEupp+KcSdMyzYZCs2CNm1xbJh27dqAnNKH2xfpCqwcdpzjbsWjjR8BPpsww8yFTUAsZnrysx36d0iXoAGd244cPRm+7gHpk48/4DuQA/mJoUFUmM99hA3oo8ZSTemDzmLs4HPTIlCI7lmMKW7iv7fFfhM36uHwpTvBb+86NGX0lu3/4k7O/u2fxKeM77DzwxVhH2X/uwy2iX1A/qN4EpPyaVn2X+L8TP9amrw+Fvbh6Fvki+wTUMoE/LLC9BzNGb1lRvh88g47OvrI+x/u19Rv8ov5C9MAmr+an1tBqwYlx0Oh4BsxdB+u3jRTU0yo69PZ5P0XxLJcXsM2yXmTjZQLasg7M0xsqUMlzH59uJUPVmDldBqFAt6MAJzn5w7tL1qzqihnFfw9DDts4zuHc1ZF7M29/1rF6Kf+VCkm2IccyBfEcuRSQtmcVaDTwSxGeibVlUiqKXTo4vLVn80+/kLXJTtNpj6D47/avI+6h9t2lc5+vI/JFBIZ9dXT6dnHRZeRcRhPFWXHSUFWctekvl2TXvjkSHkZxAYIiXn65fF3w1FQRWIeeiiUStL9olMVWvrh6M5ZVEPfpzcLmqkSoSBVKFanJSbUFTI+6fGCCtAvyWvYJjm9CiOlgpryTgwTW+pIiWS/DtzGDFBh5c1OOrbNCQLcWWjSLMAvIKBJgPAXdpoENG/SrDns7GoTtj+w47tvpd8QE+xDDuRTASjINipPiwTwTfBB7FSuwSB6WbrzhKlpPTZv3+bnFzcsrWh19rEz2R8cHzSwI1y1O0+Y+/2xqabpIx4KBYoBhSx+ybwUer7+If37Y2v4NjNOdVQpKe/b6K/4aNafCVPy7fhfC5rlKqSCTsSOnSoTwqpCWS3bJDQU+sWCtvI6DaOOjX0lChDcw01vD+Jte+9CgF44mzRp2qKlf2DLpoHCX9hpGhjYtEWL/Jah+/zvevONv9xkadoLr/MdyIH8/FZdaEG2NQ1sQTfYYRvopD6IHayqte7F0PPc7vafj9ZX8KPHCvL2RHUNg/2OfX9H8pZ8mUf69u0qFeyYnLNwWo9jJ44x1oB5FCvVOawL+f/sz2mmtMlHlZKKfVH/vaOSmf6K4qJf39OR7mz97oCgWUOJttie775ntdOyY34by0mNKdGyTWGkTUFbeeeG6VCiaLh7uDnqPgc9i4caOQLcAfFv2appy9aw+bdqBftsaw1/C0y3vf7qtGqWXnzpbz2bXoa//Cfkw1EqxovAX7pDS8HG3RB7g0qDQZzAGBv+04jOw34LW79lEf/4W3IYlQ95Jjli1aaItMdDWEX/mckEOk9+995kKjCwz/A9y6DUm9/C/pQvMkzv9uMCLIeFLSQ+0dwPGfQwAf2P9eBisZOfIRmTofirR0N/LZa1Lagt1iO0fBqtekRGaOabgkKhrJZtsmG2BW3knRumQ4kMiLu4ObwENPLTBOnRLgKUQZo392/Vuhnb/Fu2gX220Z0HA2+kv/Iu32A/LshilcNYgxWh3MHogxZsAzpZWEC7XiHQyr+TCt8og++D/HP3ST7zcSkVzO34ff+KKbEuFUJhRAARMAyB9xIeXpH15tlvNxqkEa7s9D7LHf0fHZfy4vO52zXVfhzYujQlzur7IK6HrH5a+mnxq79/yPWCWAIRQAQMQgDOcCF+AUEQMRrC4iAQzhDjGoEt/IV9yJHiHWyHbTyGwsIo8JPvt2A+iHaqsf0+yPqCU65wWNmXTz/04Q89/7j2qydCXCmHsogAImAoAkufevJP0yY80C3SUK1kX+HRD95d9szHazTVLvFvdXI89UHkWcyGvaeNtQC1IQKIQAMgcHJ/wbq5GVcuGLxUS6t2tw2dmdHh/hjNJsxv0urshAEqBvl635kGaC1WgQggAl6AQKapxfln1D7Ixv1nvaBh2AREABFoAATesgRW/VHNIJt++LkBKsYqEAFEwAsQeLO2+SWJQYKCgiwWiy2DPNilmRc0FZuACCACdURg57GbVhreMDf/NqYNPAsivxdTxzqwOCKACPggAsggPtjp2GREwDAEkEEMgxIVIQI+iAAyiA92OjYZETAMAWQQw6BERYiADyKADOKDnY5NRgQMQwAZxDAoUREi4IMIIIP4YKdjkxEBwxBABjEMSlSECPggAsggPtjp2GREwDAEkEEMgxIVIQI+iAAyiA92OjYZETAMAWQQw6BERYiADyKADOKDnY5NRgQMQwAZxDAoUREi4IMIIIP4YKdjkxEBwxBABjEMSlSECPggAsggPtjp2GREwDAEkEEMgxIVIQI+iABdLwa/k+rZjj956kzFyTNVVRc9awbW7uMIBAW17djhzg5332mLg4PvpCKDeH7YXLp8MyCw2R23tfW8KWiBDyNw9vzFS5evtg+mi11aJfzS8q0+LpA+bvUe8gH73BuEchwEVuxWbj6AGDYREUAE9CJgjx8wkqoXQZRDBBABWwQUDHJLOSGlCwcPXljawD1mW6lHzGjgVmN1iIAeBOzwgzs+yOCgIPnsvhXOMZUNOgzSIaIH0vqUKX7vIRNND71XLFTDcqSf8Et1SHlAWcrGRlVBQhQ/xSoV1fKsibmSltyJTLlSVG1lfWKCum9FBNxhENI7JTpnUoN7CPbhC3t0OMnZyD2W0o05ZPijYQ6xDpu8adNkxyKe7quI57+zWI5mxkp2FK//nKSmks/Xc0aJGDJS2qeHRg6JYPlWYrqbAZwQ+fnIo7D6KU0buqVFCpwUm5pa+LpAY8XvvV4YK5gUmykKg/x3z/PaMfkeAm4xCImaOiN65vublXDBdR2eK2GJOSj0Op+WxvLSNgsH03gJWdRmoiIdipmZz7VbCTP3YWEa0ypXr6CQkiJOIFr2iAVFH8Rahiosel9oh9o2u2bwBkqm1tfUi7HEjGHddmhQyNFDKgJRiekc0bnz0kjmCokHEhYfzRQJKnqYyFUg1G3kSJ0aUcxHEHD3Xkx8ZjZJUp3EkzfBw2k0ZYvkkn8oahH8TMlKmkT4zjzgls1pMUUzuGTBcLUrA4dmRmfzQ3N70x7QEs6fWTQEJDLjFV0UFhGdX1RCC6zPio6g7gX4GTb2WBfUkmE20/rJTNnNcmCG1K56HTCCm5EwLFWmkHu67Th0FGrNXbuk2z2yBwLeiFJMw6wdaZFshkRTZNoOkCg+UhgrejG8QISonZDI59O7pc3LpQ5I5owhoj6lEnk+Va8goHJPIqDnXoxrodT4qXMPUUYQk3SVTsoih4ppfm/mDIRH9ZZ2qE9RfIhkJXFnBRwNft7zBId6z52qJAZNYSsZXjZ+SErW+s1URcoQrkHDHrVybRlhBgReTW/JNsdmQAO5DZSQ6md2JM1TlNwA+0vW5tKzP3VYAjNAU8x21CknIMqJkt3xSWtKjEzrlq6YrCiV4CTGk6d2Q9at8byHe7MY4YRZNDzn/Y3i6RqTM7xA6T7Yb1jvuVyQJZUroVFGrzBQyKHizRtzohmBAH04tUePjGSQXjPqpTuBGXYI1/zEJUTyQuDELjySu/7zbjKBaInpMIl6HOL0iItTryQ6UiyaMAMiMiJP6dCHIt6IANCHRqrT3dywyTPITDFgwR0NFsoUQhiaFdL5hlUIRZSjh4SAqKDEgbCN8vgh0TOTZnICoUmPPfZlqAGiN0N0mkG9HkPjIEcP0SkGdS12pG4QgpyWDfJEJmFYt7TENCWBaIrpGM1AESRtnHTfJ3diZJoUW6HFaWB3MXd0MPkoAk7v5rr1QCqEQ1IooMAl0TNj2NRkUlG04NVrIx2fWTD3kDCNUd4WBmnQJmgRlTgQ1qCQFCKe9Hrs0ZTJF1pBPRjZPXLFDAPGF71nSlNiIY1u0rlJ5gzp9LWayEiugQMxHSYBRRwd+bkYH0kkG5zdX1HGQRT3nHVUhSKNEgF7MQ75zbq8wnPKlplrLQ92adYo29rYjIY360I6tW9sVqO9XohAcfkpe2/WNfFTzWJeqw74NqYNhCHqEAfxQgC9r0miOyPdfEF/wfs62aMtcvdurkeNxsp1I5CwWIyfiP/jjRPd4KGgAgEdd3Ndu5mL6CICiIAvIeA0kupLYNxybYWPu9xyNqFBPoaAe4NQjqRuPaiKpFabMZLaQCOourr2eq32zfYGsgCrQQQYAs39LP7+GrFR+EaZfxPVEH31phBJVTLIeSWM1eZavBeD4woRQAQAAcYgKmZ59WYz63sxJhOBTf5OGSKHCCACiICIACcHzhJ0X0zWHovEIQgdIoAIIAJKBDRn2ng3FwcJIoAIOEcA7+Y6xwglEAFEwC4Ceu7mYhgEBxAigAhoIuDcB8HbiTh0EAFEwFUEFHEQ+dUJuueqIpRHBBABL0ZATQ8yP+CbdV7c6dg0RKDeEZCfKPv34QvK2q7eNOMTZfUOP6sgr/BUzt6KY6fxwfaGwRtr0Uagy11th3fvOLDb3baH4YmyFs2aKPPTr/nzJ8oUDFKkZpAbyCANNNS+K7sW3DagT9fgBqoPq0EEtBD4vqyy9Odfhka11maQADWDXBUYBJ8HuSVGE9LHLdENvm2E40Ho/BtlO46ofJAr19EHaaABBT5I4gN3KSvruaSBqsZqfAGBxXtMPRZb9LR0Vf5P9nyQVs1VPshLv9j4IIpXYjjdYEIEEAFEQEJA2wu5xWYxHlnRthEuuB3Vi6zpdWsP7nZkTRKJct3G55LIbuWaQfo1hJPdqeS5dkIBwyFyopC3191W62+lpyR1PFGmePHO8eMgsO6ksNCUan2DzWmqlSjttNRAjvDCBbcVoLHzQdhsziiIencOYsIwZCWxVDK04ceX2gAweGgdziI4S8dVkZ6q9VTFJikqkmiCiChRPi0hPfPIuIECbckQMQWUmAAot0iNW6BS6Hob39GqGtor9zKYZ9PR74id66Bn7clo1uj2AJHeynXybq6eCoQFJvkq172JsOocXXEuKlxPeaNkvHDBbfn6uXsgyVhCICACWwaxoYYS8q+uYmYlGcMl80hGHc4Q97tFMoCZse4CeTKbFLmlbmJ3smKPdsnnBpKtq4VmCjQB9CGi9OQuVqqErCBkIh+FSogI+Xs26bmaHHfLKqGQUqErbeQ00U+r6qJdQhfTXi4jx6tUQkOBUPKowJi9JMOOX6Yp46DGugCgWdadZ1Lp6nDMCSkpip4xI1r6wZe8drhWdunCSbDSJV2TRbU0Ey64reqc4sGhZMVqsk7MXLeZ7bOLsHT5/aaMxFkRNgzxYBLJLo/PxdNRSy9ciku3cB1Teg2i4y3JK6+KtC6mDa5moO2dcOFKDjuOktX12cZ3kKuw4rtw0q+SbGIBfbiuCtM0davpsUqBCIaGqVDiJm0qJ6HiREYDIiaj0UaF+wZVA1DWMqygoJA7Ptx4qXUjSGclKIopFaUJp+TVjozvSpZzHhRTXFfyDVsUFi7Sx4O0p4SaMrpqdNiHtgedP5Oq/0PL4VGELS1XWkyiwmGpOPZDXPLa8VrZYZMXze3NVpBULDCLC26r+6t4/YBgUqa6M6bR20er5FOFH4ZBD2cgXYw7mHQtZe4AnIojSLn6OiblyMNaIS9fFWFG0IPpBWNAQx7pN5BdEmEnRj2ag8kq+zMpqG45d5FWkwEwxWhH5nYX3KuMKiItrEntb0eOlwvOy/TVhHSnZzJ3Pf5+gToRXUewU3cE2ZpHxeDkGcdzGLvxpJxr2EIkyEhXft7GC2S5RMfAYmUUNw0cCBEUwnRJZAQNMDmtMOcIzNaZhoIZe+VrhnWpC6Qcrg2OdemR0WmNlpiRcRA6ewBWpHOYiDBYWZv9EJa81r9WtmQlLrht22GcCKwSeM6KQUknj6HsTBZP4FWhZAyfPlSSxXxB83YkVNyn1zGY+ChyZPWSPB/9nA6AL/h1j/sFcOWXdqwMs5rFKI9CdYRkcIVwlYbTAAY6ywF2EHwrzWF9gcwE1z2VDCgXzkPJXV9RKVIb6BG5KXSgPKeTLtcyRFZV2LRxXSnpx9ZspX4Nn0bZ4sB8AQFzrlATTOgORpqSC+n8tNVyQJyXalgJ53EQexIadsI6slnrN8Mchi5SS/mkuLSkCPwRLmrIItV6lXjjgtsR98AFZ7DoitsdJxfIVkIGw4Os0gmsJ/oQrHa2bU8tuMLzcINTx1vnCLbhl+nstI9jtOIgQKh6RhrOsSCBFsEZWREkz+aoFQBFJenKEYMGVolRGA6RFZJADbZthABKEDUmLojRpaYMr8hWoQ2fZtgPW2hi5sQBEalK46KiVMfozImMzi7TEnPOIK48D0LP23nzDnHOCIsgOZPmHeJBED2LVOcLsVfBTlxw27rDEhbvpf65dHbB5VeKaMi3IQgpqxJPG3sjg3m2PLIIndUZ/HMWK3FET2IkgsrXYcAJRRUGCDntyDvsPjTwCHgTwmnPjtEJCPeqWHqHTQTKuzOyUOppR/gsD6IS4/ktbTGHNhOmQlWy3RQi6W0BiT212ggBlLh4EipOowTPi+OmwEGlkFnFwVSKHd1Fg992b7cz70amTisHRHFUiuNQ5RItqjtFj0zdu5FpcPo8iO67uaAMpi75QuCU/8iPhgkNTc4WqYb1rlOyYOFtRSQVF9y27mKYhNPwuxhcgOGo6RJT3zvUyfCAgAJ4+HC1XwXRB3aXdDpM/sWAgjVHQESgSghqzA2q250L0S7JACH6CFf47kLwQpqhCLIKdoNwJsRcoNXcWjjfZD3Mg4BDMAnaGipGRsTAMwShyxXRBz49Ee53DiQrIIBip41wWQuVYpn2cZDmO9xmCUwruMA24D5OIjQoy2ZwEC2yDUJDoMdeBASUEHXf2Xa2pozjGt0jFHs+iPxmXUGZ6t3Qc5dv4ru57mHtaqm6PNUO58Y3Lk25lcbB/YIwOw9fuNoGg+Rh6K8KqoNJ0KIYMRgkmlQniLTaRRXCjXObigzCwHg1hjzVfnvrZkrLplf5aa/2YPs1d+MbhBqNQwCcWOVEQI9imBMJTzHBNEHz2S09WupHBpwviEe4/0wq9zLUtrkBkePGwZMdGVoV1Q8kKq3Sw2PSc2jKWW29GuDcB9lXfklpwdlLN9AHqdcukZTb+iANUy/WgghYIeDgzbo72gQohdMqTeiD4PhBBBABvQjouRejVxfKGY4AfNzFcJ2oEBFwCQH3BqEcSf3huGoWc7oKZzEu4e++8Nkr5pJf3C+OJREBoxAIb0nuaKX6DgjXDF85vCtINYuZel6YxcgMckDNIKeQQYzqFtSDCDRyBIBB7lYzyHMig7jzZl0jRwPNRwQQAZcRMPLNOpcrxwKIACLQyBFw/madnYdWG3m70XxEABEwBAGn6+a68GadIQahEkQAEWg8CHB+8GPrWSq/Yaj8TqqKQxpP09BSRAARqHcE+GtzUI20w6u0+dIyk8Ivtdd7h2AFiECjQkB3HISRDFJIo+pcNBYRqH8EnMdB1B8AqH+LsAZEABFoNAg490GEAIkk2GiahoYiAohAvSMg8YOD1R4oeUifGap3i7ACRAARaEwICPxgFeZQPpOqeiKkMTUNbUUEEIF6RkCbP5T3YqgByrlOPRuE6hEBRKAxIcBv0NpEOeQ364pPq94PLT17Fb8w1Jg62HO2ri34acP+kyerrnnOBCNr7hAUmHh/h2ExnRwozcrKOnXq1I0bN4ys2HO6AgIC7r777pSUFHsmwJt1YXe0UB595lQt/8IQMojn+s0ral6z+8SyHyv9HnygaWvVCGu8jau5fLV2574J9wU/2TNEsxULFy1qERg4atSo22+/vfE2U2n5uXPnPvvss6vXrk2eNEmzRboYpOSMygcpOYM+iHcMj/ptxYTlO39+uE+325o/H1xdvzU1lPb3Kv0Lz19vv/37ZeMf1Kxzzpw5M2bMCAoKun79ekMZVb/1NG/eHLyJefPmzZo1yx6DhN+pukJMOCn4IHIktX5tRO1eisCZi9ebtGwB9HFnU+IdG7QFWgTtstdj1dXV7dq18xr6gGZCW6BF0C43BikyiBugYRFrBCzelZx2sHc1V2iN01ZrCigZRHqaHR9rdw9M3y3lZWeUno70vSY7W7NORITwHT0gogwiwBCgw8VC/3rHRlvktGddYJDSBfHxC0qVBWxzXFBnsdSxuFZdrrZXkpd9kGqzRbk51YgCiABHAM62Wposxm4l8wfd1rYN3x6bX0KVF89/LB72WEUbp0L+tI0GV8qaUOuUP+AcZE22l0oWDA4OHrwAjObIAEhqUdsch/qsD9axuEZdTp0Ge/wgM0jV1Wppu3jVnZgKnlG+igB1PoxNcJXtvXb4zgtVZ+mWfd9L3RMXlHDPmFZUsiBx5KHXdle9NcjYapn3zT0qZ8lRxSVfryVjx5K1X4PJlGzYCa8sYJvjUjvqWNwtH8QeP8gMcuVazZXrwnb5eo0zAPE4IiAiIMxeXDoJHAtv/mAWeW3+pFBBatC8XXPJ2o2lfLJUsnBIz5zHd21M7WpgjUpVegjEEWeWbPqSPDEl8b5dX27iFAJAHfkgAR4fgZSwiObZ5JQsSkhYtGg6CEzfQilykSAuyEPWFnqQpembKPKbxN+sgE0RWSErwmXsJ6ej2R4/4L0Yp9ChgBMEqmvMF6/8Unn5qmFb4aHCmCEPtlcobN8xbNfBH67erDF/MbnXF/Hf5iQpjxpY9eWr0BZokeM219TUXLKbDqxbY34s9vZe/UfvWrPuAIj9csO8q7DLmyWQvnnZnD75/QPaOekH+4PIK70ufTX1wYOTqDgUeGwNyF868P6jydXLeFbJK7GgkAuXlCwbvfJvIGBThFZhJWPf5EuXoEXuDXRkEPdww1IyAtRPNzpZeGhFTixSCxGFAsujL0e9MW1JudE1KvVxJ8Fxslt/Wd46S0L/kNrafgOTC9bllbFASHeWU1sb0j+he8HRUu2cWRP6Ma1lpYfJJxPCWYp7rQDkqU7xKI+sdBd/dgnrDrjYFrGVcYiYs+baPY4M4jZ0WFBJIoZGQjqHRxas21au8LnLS47ERITAeR0ztF/K3A2J6x57aWs9zWF0sIcYjtGyoHzrhr175wyKhPTMp2Tvhq3QDKU8jeTwMItYWiun+6zNR6T0134qeYHfFMVZ6MZREUcGcz1uj2ZkELehw4ICAvRejKXWXGvg1m/cLPJ/f14G12+m9ptX4l4lCQM61dKzDy6lnca9/WLR2DHLSw2tVLAf2uL0fLLvdpUBgYxaclhIS0YBhZQp7sWwwwP7OsypDelyz945S7cpfIaQfglEmaO8F8P2bYuobgA5v3fjNokggyAR1BkBYcph5I3VTmNX/zNx3dDI0N/QLcXyYVnW2C5wO4NeuekN1y6jP/0ofM4jY7OAZIysl9/N1XErxnqWJZzu5dtyycyn+4onf9+4kXtzwZkie9949F6aHs197OtXgEC0ctg0jaW+r3w980gqKwBp9Iry2pCn5so5s7dxHPh8hu/bFBHylTKOpjFuDwL53dzNP/ys/MAyGIBv97sNq+8UHPrutzVPDHot4Mxtfk6v3I0DlfO1ppdv3Nn0yy3rpvXXtDgjI+P1118vLy9vHO3RZ2VoaGh6ejo0TVMc3s3lCz1IaU5Nc/52P/og+gBGKYcI0FmMt2zQFj29XZ+RXA/o1tNkTRlkELehw4JSHITOLLxqczaNqbcgricVuzegkUHcww1LCQjc2ba55ZfrK8y3nTMT79igLdAiaJe9Pvb396+srOzYsaMHXIX6qRLaAi2CdrkxrDEO4gZoWERGAL5R9uHBCzU9fmUKDPAOXCzXbjTdc/CPv2pn7xtlixYtgs8CJiUltW3b1juafPHixezsbPho4yT73yizFwdBBvGOMeDJVmTvOg7fSf35spd8NLR96wD4TmpSr84OMF2wYAFctN37JI8nu8pO3eB9BAcHP/vss/ZscxBJRQa5BTsUTUIEbi0E8F7MrdUfaA0i4DUIYCTVa7oSG4IIeAABZBAPgI5VIgJegwAyiNd0JTYEEfAAAsggHgAdq0QEvAYBZBCv6UpsCCLgAQSQQTwAOlaJCHgNAsggXtOV2BBEwAMIIIN4AHSsEhHwGgSQQbymK7EhiIAHEEAG8QDoWCUi4DUIyO/FbIJvlGFCBBABREAHAs/X3jzcvRN+o0wHVCiCCCAC9hHAWQyODkQAEXAfAWQQ97HDkogAIoAMgmMAEUAE3EcAGcR97LAkIoAICPdi7t37E2KBCCACiIB+BPi9GEL/YUIEEAFEwHUEhLu5B8sqYJkK+KGZ/jo3094iFkczY6VKUzcwKciKzTyqLKAUotKxmRvUMhtSIU9VhBe3UsXFZG1ChSrbVHUxAaW8psIGWaDD1i5mmLrZtIGQbNBT5tg2H0pJieOjkJcOxqam0nzpqO2OJuZSLyjlldVZ5Opt+lDqVyoj9Ja0KzdEKidlqXJU3QzFrXpV0qwBsbL36bhTgcNbpH+M8d6RsRbt0FTbIIPKcSXXr18/ceLEpUuXLqvTlStXIAP+WqWzZ8+CQjjZ7fEA5IMAcIVSAPD4L26/d8nPq10nAAAAAElFTkSuQmCC"},298:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_33ee9963708d1fff.70ac87d7.png"},299:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_f830b9b181946728.4be74a14.png"},300:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_d5be58f6ea0f5f1.b4ff3013.png"},301:function(e,t,a){e.exports=a.p+"assets/img/eclipse-ant-buildtarget.a52616ed.png"},945:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"development-environment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-environment"}},[e._v("#")]),e._v(" Development Environment")]),e._v(" "),t("h2",{attrs:{id:"repository-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#repository-overview"}},[e._v("#")]),e._v(" Repository Overview")]),e._v(" "),t("p",[e._v("The source code repository is organised in the following subfolders:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(296),alt:""}})]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ACS")])]),e._v(" folder contains the AsTeRICS Configuration Suite source code.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Android")])]),e._v(" folder contains a server application for Android phones which allows interfacing with the AsTeRICS Android plugin to use phone functions in AsTeRICS models.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ARE")])]),e._v(" folder contains the middleware and service layers and ARE components.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("bin")])]),e._v(" folder contains subfolders where ARE and ACS executable files are placed during the build flow. These folders contain additional configuration files or dependencies, for example the config.ini and loader.ini files which specify the modules which are loaded by the ARE at startup.")]),e._v(" "),t("p",[e._v("Additionally, the bin folder contains several resources which are useful, e.g. a pre-built ACS with demo models (in the ACS\\models folder) and the OSKA application.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("BNCIevaluationSuite")])]),e._v(" is a collection of matlab files for analysis and comparison of algorithms for Brain Computer Interfaces (contributed by Starlab).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("CIM")])]),e._v(" folder contains firmware for the microcontroller modules used to interface the system to the environment (maintained by IMA and FHTW).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Documentation")])]),e._v(" folder contains the User- and the Developer Manual, and OSKA manual and the licence information for the developed and all utilized source code and libraries.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("NativeASAPI")])]),e._v(" folder contains C++ libraries for mobile-phone and GSM modem access, 3d-mouse and tremor reduction from own C++ projects.")]),e._v(" "),t("h2",{attrs:{id:"clone-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#clone-repository"}},[e._v("#")]),e._v(" Clone Repository")]),e._v(" "),t("p",[e._v("Install a "),t("a",{attrs:{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("git"),t("OutboundLink")],1),e._v(" command line client and clone the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS.git",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),t("OutboundLink")],1),e._v(" by entering:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone https://github.com/asterics/AsTeRICS.git\n")])])]),t("h2",{attrs:{id:"prerequisites"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[e._v("#")]),e._v(" Prerequisites")]),e._v(" "),t("p",[e._v("You need:")]),e._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Java Development Kit 8"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[e._v("apache ant build framework (version >= 1.9.1)"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Set "),t("a",{attrs:{href:"#environment-variables"}},[e._v("Environment Variables")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"environment-variables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#environment-variables"}},[e._v("#")]),e._v(" Environment Variables")]),e._v(" "),t("ul",[t("li",[e._v("Ensure to set "),t("code",[e._v("JAVA_HOME")]),e._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")]),e._v(" "),t("li",[e._v("Ensure to set "),t("code",[e._v("ANT_HOME")]),e._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")])]),e._v(" "),t("p",[e._v("See below an example of how to set the environment variable "),t("code",[e._v("JAVA_HOME")]),e._v(" on Windows 7.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(297),alt:"Setting Environment Variable JAVA_HOME on Windows 7"}})]),e._v(" "),t("h2",{attrs:{id:"build"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#build"}},[e._v("#")]),e._v(" Build")]),e._v(" "),t("p",[e._v("AsTeRICS uses the build system "),t("code",[e._v("ant")]),e._v(".\nYou can simply build the framework from the command line:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h3",{attrs:{id:"building-are-middleware-services-and-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#building-are-middleware-services-and-plugins"}},[e._v("#")]),e._v(" Building ARE Middleware, Services and Plugins")]),e._v(" "),t("p",[e._v("In the "),t("code",[e._v("ARE")]),e._v(" subfolder the source code of the ARE middleware ("),t("code",[e._v("ARE/middleware")]),e._v("), ARE services ("),t("code",[e._v("ARE/services")]),e._v(") and plugins ("),t("code",[e._v("ARE/components")]),e._v(") can be found.")]),e._v(" "),t("p",[e._v("The middleware, the services and the components have separate ant build files ("),t("code",[e._v("build.xml")]),e._v("). The middleware and services are required for building the plugins (components). To build everything, a top-level build script is available in the "),t("code",[e._v("ARE")]),e._v(" folder.\nAlternatively, individual services or components can be built by selecting their associated "),t("code",[e._v("build.xml")]),e._v(" script from the corresponding subfolders.")]),e._v(" "),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" the ARE (plugins, services), enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE with "),t("strong",[e._v("remote debugging enabled")]),e._v(", enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run-debug\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h2",{attrs:{id:"eclipse-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-setup"}},[e._v("#")]),e._v(" Eclipse Setup")]),e._v(" "),t("p",[e._v("The AsTeRICS framework is not bound to a specific IDE, but "),t("a",{attrs:{href:"https://www.eclipse.org/downloads/packages/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Eclipse IDE for Enterprise Java Developers"),t("OutboundLink")],1),e._v(" is recommended. This will provide editing support for diverse file types (java, html, Js, CSS, xml). Alternately you can install "),t("em",[e._v("Eclipse IDE for Java Developers")]),e._v(" and later install addons for web development.")]),e._v(" "),t("h3",{attrs:{id:"java-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#java-project"}},[e._v("#")]),e._v(" Java Project")]),e._v(" "),t("p",[e._v("You must create a "),t("code",[e._v("Java Project")]),e._v(" first:")]),e._v(" "),t("p",[e._v("Choose "),t("em",[e._v("File -> New -> JavaProject")]),e._v(" in the Eclipse main menu, disable the option "),t("em",[e._v("“Use default location”")]),e._v(" and browse to the "),t("em",[e._v("ARE")]),e._v(" subfolder:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(298),alt:""}})]),e._v(" "),t("p",[e._v("Then you should see something like this:\n"),t("img",{attrs:{src:a(299),alt:""}})]),e._v(" "),t("p",[e._v("Eclipse provides different views ("),t("em",[e._v("Window -> Show View")]),e._v("), where the "),t("em",[e._v("Navigator")]),e._v(" and the "),t("em",[e._v("Package Explorer")]),e._v(" are most useful for Java source code development.")]),e._v(" "),t("p",[e._v("Note that the “"),t("em",[e._v("Refresh")]),e._v("” command ("),t("em",[e._v("F5")]),e._v(") synchronizes the Navigator view with changes in the local file system.")]),e._v(" "),t("h3",{attrs:{id:"character-encoding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#character-encoding"}},[e._v("#")]),e._v(" Character encoding")]),e._v(" "),t("p",[e._v("Incorrect character encoding settings can cause problems with ANT-based builds in eclipse, especially if special characters like ö, ä, etc. are used in the source code. Be sure to use ISO-8859-1 as character encoding in "),t("em",[e._v("Configuations and Lauch")]),e._v(" settings (in the "),t("em",[e._v("Common")]),e._v(" tab) as shown in the screenshot (note that this is not the default setting in some versions of eclipse):")]),e._v(" "),t("p",[t("img",{attrs:{src:a(300),alt:""}})]),e._v(" "),t("h3",{attrs:{id:"editing-model-files-windows-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-model-files-windows-only"}},[e._v("#")]),e._v(" Editing Model Files (windows-only)")]),e._v(" "),t("p",[e._v("You can configure the Eclipse editor to open the "),t("em",[e._v("ACS")]),e._v(" editor for AsTeRICS model files ("),t("code",[e._v(".acs")]),e._v(").")]),e._v(" "),t("ol",[t("li",[e._v("Right click on a model file, select "),t("code",[e._v("Open with/Other")])]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("External programs")]),e._v(" and browse to "),t("code",[e._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),e._v(" (Note: "),t("strong",[e._v("ACS.bat")]),e._v(")")]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("Use it for all `*.acs file")])]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Ok")])])]),e._v(" "),t("h3",{attrs:{id:"ant-within-eclipse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ant-within-eclipse"}},[e._v("#")]),e._v(" Ant within Eclipse")]),e._v(" "),t("p",[e._v("You can run the "),t("em",[e._v("ant")]),e._v(" targets of the AsTeRICS build system from within Eclipse.")]),e._v(" "),t("h4",{attrs:{id:"run-default-target"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[e._v("#")]),e._v(" Run default target")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build")]),e._v(" (first entry)")])]),e._v(" "),t("h4",{attrs:{id:"run-selected-targets"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[e._v("#")]),e._v(" Run selected targets")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build...")]),e._v(" (second entry)")]),e._v(" "),t("li",[e._v("Click onto targets to run")]),e._v(" "),t("li",[e._v("Select order of execution at the bottom")]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Apply")]),e._v(" and "),t("code",[e._v("Run")])])]),e._v(" "),t("p",[e._v("The screenshot below shows the dialog for build target selection:\n"),t("img",{attrs:{src:a(301),alt:"Screenshot of ant build target selection"}})])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{297:function(e,t){e.exports="data:image/png;base64,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"},298:function(e,t){e.exports="data:image/png;base64,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"},299:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_33ee9963708d1fff.70ac87d7.png"},300:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_f830b9b181946728.4be74a14.png"},301:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_d5be58f6ea0f5f1.b4ff3013.png"},302:function(e,t,a){e.exports=a.p+"assets/img/eclipse-ant-buildtarget.a52616ed.png"},946:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"development-environment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-environment"}},[e._v("#")]),e._v(" Development Environment")]),e._v(" "),t("h2",{attrs:{id:"repository-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#repository-overview"}},[e._v("#")]),e._v(" Repository Overview")]),e._v(" "),t("p",[e._v("The source code repository is organised in the following subfolders:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(297),alt:""}})]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ACS")])]),e._v(" folder contains the AsTeRICS Configuration Suite source code.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Android")])]),e._v(" folder contains a server application for Android phones which allows interfacing with the AsTeRICS Android plugin to use phone functions in AsTeRICS models.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ARE")])]),e._v(" folder contains the middleware and service layers and ARE components.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("bin")])]),e._v(" folder contains subfolders where ARE and ACS executable files are placed during the build flow. These folders contain additional configuration files or dependencies, for example the config.ini and loader.ini files which specify the modules which are loaded by the ARE at startup.")]),e._v(" "),t("p",[e._v("Additionally, the bin folder contains several resources which are useful, e.g. a pre-built ACS with demo models (in the ACS\\models folder) and the OSKA application.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("BNCIevaluationSuite")])]),e._v(" is a collection of matlab files for analysis and comparison of algorithms for Brain Computer Interfaces (contributed by Starlab).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("CIM")])]),e._v(" folder contains firmware for the microcontroller modules used to interface the system to the environment (maintained by IMA and FHTW).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Documentation")])]),e._v(" folder contains the User- and the Developer Manual, and OSKA manual and the licence information for the developed and all utilized source code and libraries.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("NativeASAPI")])]),e._v(" folder contains C++ libraries for mobile-phone and GSM modem access, 3d-mouse and tremor reduction from own C++ projects.")]),e._v(" "),t("h2",{attrs:{id:"clone-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#clone-repository"}},[e._v("#")]),e._v(" Clone Repository")]),e._v(" "),t("p",[e._v("Install a "),t("a",{attrs:{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("git"),t("OutboundLink")],1),e._v(" command line client and clone the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS.git",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),t("OutboundLink")],1),e._v(" by entering:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone https://github.com/asterics/AsTeRICS.git\n")])])]),t("h2",{attrs:{id:"prerequisites"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[e._v("#")]),e._v(" Prerequisites")]),e._v(" "),t("p",[e._v("You need:")]),e._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Java Development Kit 8"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[e._v("apache ant build framework (version >= 1.9.1)"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Set "),t("a",{attrs:{href:"#environment-variables"}},[e._v("Environment Variables")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"environment-variables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#environment-variables"}},[e._v("#")]),e._v(" Environment Variables")]),e._v(" "),t("ul",[t("li",[e._v("Ensure to set "),t("code",[e._v("JAVA_HOME")]),e._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")]),e._v(" "),t("li",[e._v("Ensure to set "),t("code",[e._v("ANT_HOME")]),e._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")])]),e._v(" "),t("p",[e._v("See below an example of how to set the environment variable "),t("code",[e._v("JAVA_HOME")]),e._v(" on Windows 7.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(298),alt:"Setting Environment Variable JAVA_HOME on Windows 7"}})]),e._v(" "),t("h2",{attrs:{id:"build"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#build"}},[e._v("#")]),e._v(" Build")]),e._v(" "),t("p",[e._v("AsTeRICS uses the build system "),t("code",[e._v("ant")]),e._v(".\nYou can simply build the framework from the command line:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h3",{attrs:{id:"building-are-middleware-services-and-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#building-are-middleware-services-and-plugins"}},[e._v("#")]),e._v(" Building ARE Middleware, Services and Plugins")]),e._v(" "),t("p",[e._v("In the "),t("code",[e._v("ARE")]),e._v(" subfolder the source code of the ARE middleware ("),t("code",[e._v("ARE/middleware")]),e._v("), ARE services ("),t("code",[e._v("ARE/services")]),e._v(") and plugins ("),t("code",[e._v("ARE/components")]),e._v(") can be found.")]),e._v(" "),t("p",[e._v("The middleware, the services and the components have separate ant build files ("),t("code",[e._v("build.xml")]),e._v("). The middleware and services are required for building the plugins (components). To build everything, a top-level build script is available in the "),t("code",[e._v("ARE")]),e._v(" folder.\nAlternatively, individual services or components can be built by selecting their associated "),t("code",[e._v("build.xml")]),e._v(" script from the corresponding subfolders.")]),e._v(" "),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" the ARE (plugins, services), enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE with "),t("strong",[e._v("remote debugging enabled")]),e._v(", enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run-debug\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h2",{attrs:{id:"eclipse-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-setup"}},[e._v("#")]),e._v(" Eclipse Setup")]),e._v(" "),t("p",[e._v("The AsTeRICS framework is not bound to a specific IDE, but "),t("a",{attrs:{href:"https://www.eclipse.org/downloads/packages/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Eclipse IDE for Enterprise Java Developers"),t("OutboundLink")],1),e._v(" is recommended. This will provide editing support for diverse file types (java, html, Js, CSS, xml). Alternately you can install "),t("em",[e._v("Eclipse IDE for Java Developers")]),e._v(" and later install addons for web development.")]),e._v(" "),t("h3",{attrs:{id:"java-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#java-project"}},[e._v("#")]),e._v(" Java Project")]),e._v(" "),t("p",[e._v("You must create a "),t("code",[e._v("Java Project")]),e._v(" first:")]),e._v(" "),t("p",[e._v("Choose "),t("em",[e._v("File -> New -> JavaProject")]),e._v(" in the Eclipse main menu, disable the option "),t("em",[e._v("“Use default location”")]),e._v(" and browse to the "),t("em",[e._v("ARE")]),e._v(" subfolder:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(299),alt:""}})]),e._v(" "),t("p",[e._v("Then you should see something like this:\n"),t("img",{attrs:{src:a(300),alt:""}})]),e._v(" "),t("p",[e._v("Eclipse provides different views ("),t("em",[e._v("Window -> Show View")]),e._v("), where the "),t("em",[e._v("Navigator")]),e._v(" and the "),t("em",[e._v("Package Explorer")]),e._v(" are most useful for Java source code development.")]),e._v(" "),t("p",[e._v("Note that the “"),t("em",[e._v("Refresh")]),e._v("” command ("),t("em",[e._v("F5")]),e._v(") synchronizes the Navigator view with changes in the local file system.")]),e._v(" "),t("h3",{attrs:{id:"character-encoding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#character-encoding"}},[e._v("#")]),e._v(" Character encoding")]),e._v(" "),t("p",[e._v("Incorrect character encoding settings can cause problems with ANT-based builds in eclipse, especially if special characters like ö, ä, etc. are used in the source code. Be sure to use ISO-8859-1 as character encoding in "),t("em",[e._v("Configuations and Lauch")]),e._v(" settings (in the "),t("em",[e._v("Common")]),e._v(" tab) as shown in the screenshot (note that this is not the default setting in some versions of eclipse):")]),e._v(" "),t("p",[t("img",{attrs:{src:a(301),alt:""}})]),e._v(" "),t("h3",{attrs:{id:"editing-model-files-windows-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-model-files-windows-only"}},[e._v("#")]),e._v(" Editing Model Files (windows-only)")]),e._v(" "),t("p",[e._v("You can configure the Eclipse editor to open the "),t("em",[e._v("ACS")]),e._v(" editor for AsTeRICS model files ("),t("code",[e._v(".acs")]),e._v(").")]),e._v(" "),t("ol",[t("li",[e._v("Right click on a model file, select "),t("code",[e._v("Open with/Other")])]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("External programs")]),e._v(" and browse to "),t("code",[e._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),e._v(" (Note: "),t("strong",[e._v("ACS.bat")]),e._v(")")]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("Use it for all `*.acs file")])]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Ok")])])]),e._v(" "),t("h3",{attrs:{id:"ant-within-eclipse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ant-within-eclipse"}},[e._v("#")]),e._v(" Ant within Eclipse")]),e._v(" "),t("p",[e._v("You can run the "),t("em",[e._v("ant")]),e._v(" targets of the AsTeRICS build system from within Eclipse.")]),e._v(" "),t("h4",{attrs:{id:"run-default-target"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[e._v("#")]),e._v(" Run default target")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build")]),e._v(" (first entry)")])]),e._v(" "),t("h4",{attrs:{id:"run-selected-targets"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[e._v("#")]),e._v(" Run selected targets")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build...")]),e._v(" (second entry)")]),e._v(" "),t("li",[e._v("Click onto targets to run")]),e._v(" "),t("li",[e._v("Select order of execution at the bottom")]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Apply")]),e._v(" and "),t("code",[e._v("Run")])])]),e._v(" "),t("p",[e._v("The screenshot below shows the dialog for build target selection:\n"),t("img",{attrs:{src:a(302),alt:"Screenshot of ant build target selection"}})])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/250.0c88e8bc.js b/assets/js/250.842cf373.js similarity index 91% rename from assets/js/250.0c88e8bc.js rename to assets/js/250.842cf373.js index 9f3e1b9ed6..ee6d1d01a0 100644 --- a/assets/js/250.0c88e8bc.js +++ b/assets/js/250.842cf373.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[250],{1214:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"yaak"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#yaak"}},[e._v("#")]),e._v(" Yaak")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-phone-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-phone-interface"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Phone Interface)")]),e._v(" "),t("p",[e._v("Yaak is a flexible on-screen-keyboard for the Android operating system. More information can be found in the pdf documentation in the Android/Yaak folder within the release package.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(771),alt:"Yaak plugin in the ACS",title:"Yaak plugin in the ACS"}})]),e._v(" "),t("p",[e._v("Yaak plugin in the ACS")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("The Android based mobile device running Yaak must be connected to the AsTeRICS system over a TCP/IP connection and the used port must not be blocked by a firewall")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" gives the action string whenever a button of the keyboard gets triggered. The string for each button can be stored in the xml layout for the keyboards.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("hostname [string]:")]),e._v(" The hostname of the mobile device (IP or hostname is valid)")]),e._v(" "),t("li",[t("strong",[e._v("port [integer]:")]),e._v(" The port Yaak listens for incoming messages. This can be set in the xml file of a keyboard.")])])])}),[],!1,null,null,null);t.default=o.exports},771:function(e,t,a){e.exports=a.p+"assets/img/yaak.228d9dc7.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[250],{1213:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"yaak"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#yaak"}},[e._v("#")]),e._v(" Yaak")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-phone-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-phone-interface"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Phone Interface)")]),e._v(" "),t("p",[e._v("Yaak is a flexible on-screen-keyboard for the Android operating system. More information can be found in the pdf documentation in the Android/Yaak folder within the release package.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(774),alt:"Yaak plugin in the ACS",title:"Yaak plugin in the ACS"}})]),e._v(" "),t("p",[e._v("Yaak plugin in the ACS")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("The Android based mobile device running Yaak must be connected to the AsTeRICS system over a TCP/IP connection and the used port must not be blocked by a firewall")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action [string]:")]),e._v(" gives the action string whenever a button of the keyboard gets triggered. The string for each button can be stored in the xml layout for the keyboards.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("hostname [string]:")]),e._v(" The hostname of the mobile device (IP or hostname is valid)")]),e._v(" "),t("li",[t("strong",[e._v("port [integer]:")]),e._v(" The port Yaak listens for incoming messages. This can be set in the xml file of a keyboard.")])])])}),[],!1,null,null,null);t.default=o.exports},774:function(e,t,a){e.exports=a.p+"assets/img/yaak.228d9dc7.png"}}]); \ No newline at end of file diff --git a/assets/js/251.1792a0ae.js b/assets/js/251.53475791.js similarity index 96% rename from assets/js/251.1792a0ae.js rename to assets/js/251.53475791.js index 17a6a51b30..8a6ae6d75a 100644 --- a/assets/js/251.1792a0ae.js +++ b/assets/js/251.53475791.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[251],{1216:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"analog-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#analog-in"}},[e._v("#")]),e._v(" Analog In")]),e._v(" "),t("h3",{attrs:{id:"component-type-sensor-subcategory-generic-control-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-sensor-subcategory-generic-control-input"}},[e._v("#")]),e._v(" Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The AnalogIn component is a sensor which is used in combination with the ADC CIM. The component provides two output ports which correlate to the inputs IN1 and IN2 of the CIM. The component can be set up to sample the inputs periodically or upon an incoming event. Both inputs can be used for voltage and resistance measurement.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(774),alt:"Screenshot: AnalogIn plugin",title:"Screenshot: AnalogIn plugin"}})]),e._v(" "),t("p",[e._v("AnalogIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an ADC CIM (CIM ID: 0x0901) connected to a USB port.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1 to in2 [integer]:")]),e._v(" Each of these output port corresponds to one input of the ADC CIM. The measured values are forwarded directly from the CIM thus corresponding to the description given in the CIM specification. Depending on the type of connected sensor the values either correspond to a voltage or a resistive value.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("adcSampleTrigger:")]),e._v(" An incoming event on this port will cause the ADC CIM to sample data on its inputs. This event will only take effect if the periodic_update property is set to 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodicUpdate [integer]:")]),e._v(" This property defines the time between data sampling requests to the ADC CIM (in milliseconds). The software component will send requests to the CIM in the given intervals. Due to current limitations of the ADC CIM it is recommended to use time intervals not lower than 50 milliseconds (20 samples per second).")]),e._v(" "),t("li",[t("strong",[e._v("activateInput1 to activateInput2 [Boolean]:")]),e._v(" These properties correspond the CIM’s ADC inputs IN1 to IN8, if the property is true, the corresponding output port of the software component will send the sampled data.")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=s.exports},774:function(e,t,n){e.exports=n.p+"assets/img/analogin.1a43205a.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[251],{1216:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"analog-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#analog-in"}},[e._v("#")]),e._v(" Analog In")]),e._v(" "),t("h3",{attrs:{id:"component-type-sensor-subcategory-generic-control-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-sensor-subcategory-generic-control-input"}},[e._v("#")]),e._v(" Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The AnalogIn component is a sensor which is used in combination with the ADC CIM. The component provides two output ports which correlate to the inputs IN1 and IN2 of the CIM. The component can be set up to sample the inputs periodically or upon an incoming event. Both inputs can be used for voltage and resistance measurement.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(777),alt:"Screenshot: AnalogIn plugin",title:"Screenshot: AnalogIn plugin"}})]),e._v(" "),t("p",[e._v("AnalogIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an ADC CIM (CIM ID: 0x0901) connected to a USB port.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1 to in2 [integer]:")]),e._v(" Each of these output port corresponds to one input of the ADC CIM. The measured values are forwarded directly from the CIM thus corresponding to the description given in the CIM specification. Depending on the type of connected sensor the values either correspond to a voltage or a resistive value.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("adcSampleTrigger:")]),e._v(" An incoming event on this port will cause the ADC CIM to sample data on its inputs. This event will only take effect if the periodic_update property is set to 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodicUpdate [integer]:")]),e._v(" This property defines the time between data sampling requests to the ADC CIM (in milliseconds). The software component will send requests to the CIM in the given intervals. Due to current limitations of the ADC CIM it is recommended to use time intervals not lower than 50 milliseconds (20 samples per second).")]),e._v(" "),t("li",[t("strong",[e._v("activateInput1 to activateInput2 [Boolean]:")]),e._v(" These properties correspond the CIM’s ADC inputs IN1 to IN8, if the property is true, the corresponding output port of the software component will send the sampled data.")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=s.exports},777:function(e,t,n){e.exports=n.p+"assets/img/analogin.1a43205a.jpg"}}]); \ No newline at end of file diff --git a/assets/js/252.d1e877ac.js b/assets/js/252.6fa0c25c.js similarity index 86% rename from assets/js/252.d1e877ac.js rename to assets/js/252.6fa0c25c.js index d1f2af7666..44a2cba611 100644 --- a/assets/js/252.d1e877ac.js +++ b/assets/js/252.6fa0c25c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[252],{1218:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Simulation)")]),t._v(" "),e("p",[t._v("The AutostartEvent component sends an event after model start, with a delay defined by the Delay property.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(777),alt:"Screenshot: AutostartEvent plugin",title:"Screenshot: AutostartEvent plugin"}})]),t._v(" "),e("p",[t._v("AutostartEvent plugin")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" The output event.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Delay [integer]:")]),t._v(" The event delay[ms].")])])])}),[],!1,null,null,null);e.default=n.exports},777:function(t,e,r){t.exports=r.p+"assets/img/autostartevent.7ca8c939.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[252],{1217:function(t,e,r){"use strict";r.r(e);var s=r(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Simulation)")]),t._v(" "),e("p",[t._v("The AutostartEvent component sends an event after model start, with a delay defined by the Delay property.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(778),alt:"Screenshot: AutostartEvent plugin",title:"Screenshot: AutostartEvent plugin"}})]),t._v(" "),e("p",[t._v("AutostartEvent plugin")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output")]),t._v(" The output event.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Delay [integer]:")]),t._v(" The event delay[ms].")])])])}),[],!1,null,null,null);e.default=n.exports},778:function(t,e,r){t.exports=r.p+"assets/img/autostartevent.7ca8c939.jpg"}}]); \ No newline at end of file diff --git a/assets/js/253.82805d5b.js b/assets/js/253.4124dd14.js similarity index 94% rename from assets/js/253.82805d5b.js rename to assets/js/253.4124dd14.js index 64c68d12ec..8243028b34 100644 --- a/assets/js/253.82805d5b.js +++ b/assets/js/253.4124dd14.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[253],{1220:function(t,e,o){"use strict";o.r(e);var n=o(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The Button Grid component is a simple GUI on-screen keyboard. It sends events after buttons have been pressed.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(780),alt:"Screenshot: ButtonGrid plugin",title:"Screenshot: ButtonGrid plugin"}})]),t._v(" "),e("p",[t._v("ButtonGrid plugin")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("button1…button20:")]),t._v(" These events are fired as the corresponding buttons are pressed.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("caption [string]:")]),t._v(" The text shown on the component caption.")]),t._v(" "),e("li",[e("strong",[t._v("horizontalOrientation [boolean]:")]),t._v(" If selected, the keyboard will be placed horizontally, otherwise the keyboard will be placed vertically.")]),t._v(" "),e("li",[e("strong",[t._v("textColor [integer, combobox selection]:")]),t._v(" The color of the caption text (“default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("backgroundColor [integer, combobox selection]:")]),t._v(" The color of the button background (“default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("borderColor [integer, combobox selection]:")]),t._v(" The color of the button frame (“default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("borderThickness [integer]:")]),t._v(" The size of the button frame")]),t._v(" "),e("li",[e("strong",[t._v("selectionFrameColor [integer, combobox selection]:")]),t._v(" The color of the selection frame (active button, “default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("selectionFrameThickness [integer]:")]),t._v(" The size of the selection frame")]),t._v(" "),e("li",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")]),t._v(" "),e("li",[e("strong",[t._v("buttonCaption1…buttonCaption20 [string]:")]),t._v(" The text shown on the buttons:1…20. If the text is empty, the button will not be displayed at all.")]),t._v(" "),e("li",[e("strong",[t._v("toolTip1…toolTip20 [string]:")]),t._v(" The text shown as tooltip when the mouse hovers over a corresponding button. If the text is empty, no tooltip will be displayed.")])])])}),[],!1,null,null,null);e.default=r.exports},780:function(t,e,o){t.exports=o.p+"assets/img/buttongrid.5b8ad03c.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[253],{1218:function(t,e,o){"use strict";o.r(e);var n=o(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The Button Grid component is a simple GUI on-screen keyboard. It sends events after buttons have been pressed.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(779),alt:"Screenshot: ButtonGrid plugin",title:"Screenshot: ButtonGrid plugin"}})]),t._v(" "),e("p",[t._v("ButtonGrid plugin")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("button1…button20:")]),t._v(" These events are fired as the corresponding buttons are pressed.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("caption [string]:")]),t._v(" The text shown on the component caption.")]),t._v(" "),e("li",[e("strong",[t._v("horizontalOrientation [boolean]:")]),t._v(" If selected, the keyboard will be placed horizontally, otherwise the keyboard will be placed vertically.")]),t._v(" "),e("li",[e("strong",[t._v("textColor [integer, combobox selection]:")]),t._v(" The color of the caption text (“default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("backgroundColor [integer, combobox selection]:")]),t._v(" The color of the button background (“default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("borderColor [integer, combobox selection]:")]),t._v(" The color of the button frame (“default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("borderThickness [integer]:")]),t._v(" The size of the button frame")]),t._v(" "),e("li",[e("strong",[t._v("selectionFrameColor [integer, combobox selection]:")]),t._v(" The color of the selection frame (active button, “default” keeps the standard setting)")]),t._v(" "),e("li",[e("strong",[t._v("selectionFrameThickness [integer]:")]),t._v(" The size of the selection frame")]),t._v(" "),e("li",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")]),t._v(" "),e("li",[e("strong",[t._v("buttonCaption1…buttonCaption20 [string]:")]),t._v(" The text shown on the buttons:1…20. If the text is empty, the button will not be displayed at all.")]),t._v(" "),e("li",[e("strong",[t._v("toolTip1…toolTip20 [string]:")]),t._v(" The text shown as tooltip when the mouse hovers over a corresponding button. If the text is empty, no tooltip will be displayed.")])])])}),[],!1,null,null,null);e.default=r.exports},779:function(t,e,o){t.exports=o.p+"assets/img/buttongrid.5b8ad03c.jpg"}}]); \ No newline at end of file diff --git a/assets/js/254.7415dc93.js b/assets/js/254.b02c8dfa.js similarity index 98% rename from assets/js/254.7415dc93.js rename to assets/js/254.b02c8dfa.js index 4a11bed005..5d7172334b 100644 --- a/assets/js/254.7415dc93.js +++ b/assets/js/254.b02c8dfa.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[254],{1222:function(e,t,i){"use strict";i.r(t);var n=i(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The DigitalIn component provides an interface to read the digital inputs of the GPIO CIM. On state changes of the connected signals (transitions to high or low level), the component generates corresponding trigger-events.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(784),alt:"Screenshot: DigitalIn plugin",title:"Screenshot: DigitalIn plugin"}})]),e._v(" "),t("p",[e._v("DigitalIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the DigitalIn (GPO) CIM (CIM Id: 0x0701) connected to an USB port.")]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1High to in6High:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to high level, an event will be raised on the corresponding port.")]),e._v(" "),t("li",[t("strong",[e._v("in1Low to in6Low:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to low level, an event will be raised on the corresponding port.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activateEventIn1 to activateEventIn6 [Boolean]:")]),e._v(" These properties declare for each port whether or not a signal transition on the actual input port should result in an event being triggered in the ARE. If a property is set true for one input, it will raise events on signal transitions, if it is set to false it will not.")]),e._v(" "),t("li",[t("strong",[e._v("periodicUpdate:")]),e._v(" Period in milliseconds for update messages about state of device inputs. If the property is set to zero, the plugin will receive messages from the CIM on signal transitions, if the property is non-zero, the CIM will send status messages in the defined intervals without extra event messages on signal changes. Both modes will have the same effect on the software plugin, it will raise events on its trigger ports.")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=s.exports},784:function(e,t,i){e.exports=i.p+"assets/img/digitalin.83464356.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[254],{1221:function(e,t,i){"use strict";i.r(t);var n=i(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The DigitalIn component provides an interface to read the digital inputs of the GPIO CIM. On state changes of the connected signals (transitions to high or low level), the component generates corresponding trigger-events.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(784),alt:"Screenshot: DigitalIn plugin",title:"Screenshot: DigitalIn plugin"}})]),e._v(" "),t("p",[e._v("DigitalIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the DigitalIn (GPO) CIM (CIM Id: 0x0701) connected to an USB port.")]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1High to in6High:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to high level, an event will be raised on the corresponding port.")]),e._v(" "),t("li",[t("strong",[e._v("in1Low to in6Low:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to low level, an event will be raised on the corresponding port.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activateEventIn1 to activateEventIn6 [Boolean]:")]),e._v(" These properties declare for each port whether or not a signal transition on the actual input port should result in an event being triggered in the ARE. If a property is set true for one input, it will raise events on signal transitions, if it is set to false it will not.")]),e._v(" "),t("li",[t("strong",[e._v("periodicUpdate:")]),e._v(" Period in milliseconds for update messages about state of device inputs. If the property is set to zero, the plugin will receive messages from the CIM on signal transitions, if the property is non-zero, the CIM will send status messages in the defined intervals without extra event messages on signal changes. Both modes will have the same effect on the software plugin, it will raise events on its trigger ports.")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=s.exports},784:function(e,t,i){e.exports=i.p+"assets/img/digitalin.83464356.jpg"}}]); \ No newline at end of file diff --git a/assets/js/255.5eb0e744.js b/assets/js/255.446ce26d.js similarity index 95% rename from assets/js/255.5eb0e744.js rename to assets/js/255.446ce26d.js index b899d939cd..f5c7010115 100644 --- a/assets/js/255.5eb0e744.js +++ b/assets/js/255.446ce26d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[255],{1223:function(t,e,o){"use strict";o.r(e);var r=o(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("This component creates a GUI edit field which can send the text to other components. The text will be sent to the output port when enter is pressed or when the edit box looses the input focus (when the cursor is removed from the edit field).")]),t._v(" "),e("p",[e("img",{attrs:{src:o(785),alt:"Screenshot: EditBox plugin",title:"Screenshot: EditBox plugin"}})]),t._v(" "),e("p",[t._v("EditBox plugin")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clear:")]),t._v(" Removes the text from the component.")]),t._v(" "),e("li",[e("strong",[t._v("send:")]),t._v(" Send the text value to the String output port.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("caption [string]:")]),t._v(" Caption of the component.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("default [string]:")]),t._v(" The default text, which is set at startup.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("textColor [integer]:")]),t._v(" Defines color of the text.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("backgroundColor [integer]:")]),t._v(" Defines background color.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("insertAction [integer]:")]),t._v(" Defines behaviour of the component after the text has been sent to the output port. The text in the component can be selected or removed.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("sendDefaultValue [boolean]:")]),t._v(" When this checkbox is checked the default String value is sent to the String output port when the model gets started.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])])}),[],!1,null,null,null);e.default=n.exports},785:function(t,e,o){t.exports=o.p+"assets/img/editbox.54fb1779.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[255],{1223:function(t,e,o){"use strict";o.r(e);var r=o(2),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("This component creates a GUI edit field which can send the text to other components. The text will be sent to the output port when enter is pressed or when the edit box looses the input focus (when the cursor is removed from the edit field).")]),t._v(" "),e("p",[e("img",{attrs:{src:o(788),alt:"Screenshot: EditBox plugin",title:"Screenshot: EditBox plugin"}})]),t._v(" "),e("p",[t._v("EditBox plugin")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("output [string]:")]),t._v(" String output port.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("clear:")]),t._v(" Removes the text from the component.")]),t._v(" "),e("li",[e("strong",[t._v("send:")]),t._v(" Send the text value to the String output port.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[t._v("caption [string]:")]),t._v(" Caption of the component.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("default [string]:")]),t._v(" The default text, which is set at startup.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("textColor [integer]:")]),t._v(" Defines color of the text.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("backgroundColor [integer]:")]),t._v(" Defines background color.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("insertAction [integer]:")]),t._v(" Defines behaviour of the component after the text has been sent to the output port. The text in the component can be selected or removed.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("sendDefaultValue [boolean]:")]),t._v(" When this checkbox is checked the default String value is sent to the String output port when the model gets started.")])]),t._v(" "),e("li",[e("p",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])])}),[],!1,null,null,null);e.default=n.exports},788:function(t,e,o){t.exports=o.p+"assets/img/editbox.54fb1779.jpg"}}]); \ No newline at end of file diff --git a/assets/js/256.123edcf0.js b/assets/js/256.b0bd1795.js similarity index 97% rename from assets/js/256.123edcf0.js rename to assets/js/256.b0bd1795.js index 1aac3eda18..d204ac049c 100644 --- a/assets/js/256.123edcf0.js +++ b/assets/js/256.b0bd1795.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[256],{1233:function(e,t,o){"use strict";o.r(t);var i=o(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("The FacetrackerCLM component is one of the vision based plugin. At this stage of development it offers the same functionalities for mouse emulation as the other sensor plugin named "),t("strong",[t("a",{attrs:{href:"FacetrackerLK.htm"}},[e._v("facetrackerLK")])]),e._v(" .")]),e._v(" "),t("p",[e._v("The underlying mechanism is based on the tracking of facial features detected in a first initialization stage by fitting a deformable face model on the image as soon as the region of interest is identified thanks to the OpenCV implementation of the Viola-Jones classifier.")]),e._v(" "),t("p",[e._v("The plugin outputs at each frame the relative offsets of a series of measures based on the tracked points with respect to the previous frame. These offsets may be integrated or used directly as inputs for the mouse emulator actuators. Usually it is a good idea to use the relative displacement of the centre of the face (PosX and PosY) to guide the mouse movements and reserve the other measurements or events to implement other optional functionalities (the head roll, pitch and yaw angles and relative scale of the face).")]),e._v(" "),t("p",[e._v("The FacetrackerCLM also introduces the detection of facial gestures that can be then exploited in the ACS models to directly perform actions or trigger events. In this version an event is sent for the detection of the raising of both eyebrows.")]),e._v(" "),t("p",[e._v("For a closer explaination of the EyeTrackerCLM functions and the training algorithm for eye states please refer to the document FacetrackerCLM.pdf in the folder /documentation.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(800),alt:"Screenshot: FacetrackerCLM plugin",title:"Screenshot: FacetrackerCLM plugin"}})]),e._v(" "),t("p",[e._v("FacetrackerCLM plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available in the operating system (preferably a consumer USB camera).")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("p",[e._v("There are no input ports for this plugin.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Roll[double]:")]),e._v(" The output port Roll outputs the relative change of the roll angle of the head pose (degrees).")]),e._v(" "),t("li",[t("strong",[e._v("Pitch[double]:")]),e._v(" The output port Pitch outputs the relative change of the pitch angle of the head pose (degrees).")]),e._v(" "),t("li",[t("strong",[e._v("Yaw[double]:")]),e._v(" The output port Yaw outputs the relative change of the yaw angle of the head pose (degrees).")]),e._v(" "),t("li",[t("strong",[e._v("PosX[double]:")]),e._v(" The output port PosX outputs the relative displacement of the x coordinate (image coordinates) of the tracked point (approximatively located around the nose).")]),e._v(" "),t("li",[t("strong",[e._v("PosY[double]:")]),e._v(" The output port PosX outputs the relative displacement of the y coordinate (image coordinates) of the tracked point (approximatively located around the nose).")]),e._v(" "),t("li",[t("strong",[e._v("Scale[double]:")]),e._v(" The output port Scale outputs the relative change in scale of the apparent size of the fitted face model in the current image.")]),e._v(" "),t("li",[t("strong",[e._v("EyeLeft[int]:")]),e._v(" The output port EyeLeft outputs 0 if the left eye is opened, 1 if closed in the current image.")]),e._v(" "),t("li",[t("strong",[e._v("EyeRight[int]:")]),e._v(" The output port EyeRight outputs 0 if the right eye is opened, 1 if closed in the current image.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("reset:")]),e._v(" Forces reinit of the fitting of deformable model for the face in order to reset the tracking points.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings:")]),e._v(" Displays the camera settings dialog on screen")]),e._v(" "),t("li",[t("strong",[e._v("setReferencePose:")]),e._v(" sets the reference pose")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("EyebrowsRaised:")]),e._v(" this event gets raised everytime the plugin detects a specific configuration of the facial landmarks corresponding to a "),t("em",[e._v("surprise")]),e._v(" expression.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cameraSelection [string, combobox selection]:")]),e._v(" this property determines the index of the input camera. Possible values range from “first camera” to “fifth camera”. If only one camera is available in the system, “first camera” is the correct choice.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" this selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include “160x120”, “320x240”, “640x480” and “800x600”. If the selected resolution cannot be delivered by the image acquisition device, the closest matching resolution is chosen automatically by the plugin.")]),e._v(" "),t("li",[t("strong",[e._v("cameraDisplayUpdate [integer]:")]),e._v(" this property allows to select the update rate for the camera display in milliseconds. If “0” milliseconds is chosen, no window for the live-video will be displayed. If “100” is chosen, the live image window will be updated 10 times a second. Please note that this property does not influence the frame rate of the camera nor the processing interval for new camera frames, only the display in the GUI is adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("modelName [string]:")]),e._v(" this property informs the plugin about which is the trained model to load. The file is searched in the the FacetrackerCLM/EyeStateModels folder inside the plugin “data” folder. Specify the name without .yml extension.")])])])}),[],!1,null,null,null);t.default=r.exports},800:function(e,t,o){e.exports=o.p+"assets/img/facetrackerclm.45de8d83.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[256],{1230:function(e,t,o){"use strict";o.r(t);var i=o(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("The FacetrackerCLM component is one of the vision based plugin. At this stage of development it offers the same functionalities for mouse emulation as the other sensor plugin named "),t("strong",[t("a",{attrs:{href:"FacetrackerLK.htm"}},[e._v("facetrackerLK")])]),e._v(" .")]),e._v(" "),t("p",[e._v("The underlying mechanism is based on the tracking of facial features detected in a first initialization stage by fitting a deformable face model on the image as soon as the region of interest is identified thanks to the OpenCV implementation of the Viola-Jones classifier.")]),e._v(" "),t("p",[e._v("The plugin outputs at each frame the relative offsets of a series of measures based on the tracked points with respect to the previous frame. These offsets may be integrated or used directly as inputs for the mouse emulator actuators. Usually it is a good idea to use the relative displacement of the centre of the face (PosX and PosY) to guide the mouse movements and reserve the other measurements or events to implement other optional functionalities (the head roll, pitch and yaw angles and relative scale of the face).")]),e._v(" "),t("p",[e._v("The FacetrackerCLM also introduces the detection of facial gestures that can be then exploited in the ACS models to directly perform actions or trigger events. In this version an event is sent for the detection of the raising of both eyebrows.")]),e._v(" "),t("p",[e._v("For a closer explaination of the EyeTrackerCLM functions and the training algorithm for eye states please refer to the document FacetrackerCLM.pdf in the folder /documentation.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(799),alt:"Screenshot: FacetrackerCLM plugin",title:"Screenshot: FacetrackerCLM plugin"}})]),e._v(" "),t("p",[e._v("FacetrackerCLM plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available in the operating system (preferably a consumer USB camera).")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("p",[e._v("There are no input ports for this plugin.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Roll[double]:")]),e._v(" The output port Roll outputs the relative change of the roll angle of the head pose (degrees).")]),e._v(" "),t("li",[t("strong",[e._v("Pitch[double]:")]),e._v(" The output port Pitch outputs the relative change of the pitch angle of the head pose (degrees).")]),e._v(" "),t("li",[t("strong",[e._v("Yaw[double]:")]),e._v(" The output port Yaw outputs the relative change of the yaw angle of the head pose (degrees).")]),e._v(" "),t("li",[t("strong",[e._v("PosX[double]:")]),e._v(" The output port PosX outputs the relative displacement of the x coordinate (image coordinates) of the tracked point (approximatively located around the nose).")]),e._v(" "),t("li",[t("strong",[e._v("PosY[double]:")]),e._v(" The output port PosX outputs the relative displacement of the y coordinate (image coordinates) of the tracked point (approximatively located around the nose).")]),e._v(" "),t("li",[t("strong",[e._v("Scale[double]:")]),e._v(" The output port Scale outputs the relative change in scale of the apparent size of the fitted face model in the current image.")]),e._v(" "),t("li",[t("strong",[e._v("EyeLeft[int]:")]),e._v(" The output port EyeLeft outputs 0 if the left eye is opened, 1 if closed in the current image.")]),e._v(" "),t("li",[t("strong",[e._v("EyeRight[int]:")]),e._v(" The output port EyeRight outputs 0 if the right eye is opened, 1 if closed in the current image.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("reset:")]),e._v(" Forces reinit of the fitting of deformable model for the face in order to reset the tracking points.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings:")]),e._v(" Displays the camera settings dialog on screen")]),e._v(" "),t("li",[t("strong",[e._v("setReferencePose:")]),e._v(" sets the reference pose")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("EyebrowsRaised:")]),e._v(" this event gets raised everytime the plugin detects a specific configuration of the facial landmarks corresponding to a "),t("em",[e._v("surprise")]),e._v(" expression.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cameraSelection [string, combobox selection]:")]),e._v(" this property determines the index of the input camera. Possible values range from “first camera” to “fifth camera”. If only one camera is available in the system, “first camera” is the correct choice.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" this selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include “160x120”, “320x240”, “640x480” and “800x600”. If the selected resolution cannot be delivered by the image acquisition device, the closest matching resolution is chosen automatically by the plugin.")]),e._v(" "),t("li",[t("strong",[e._v("cameraDisplayUpdate [integer]:")]),e._v(" this property allows to select the update rate for the camera display in milliseconds. If “0” milliseconds is chosen, no window for the live-video will be displayed. If “100” is chosen, the live image window will be updated 10 times a second. Please note that this property does not influence the frame rate of the camera nor the processing interval for new camera frames, only the display in the GUI is adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("modelName [string]:")]),e._v(" this property informs the plugin about which is the trained model to load. The file is searched in the the FacetrackerCLM/EyeStateModels folder inside the plugin “data” folder. Specify the name without .yml extension.")])])])}),[],!1,null,null,null);t.default=r.exports},799:function(e,t,o){e.exports=o.p+"assets/img/facetrackerclm.45de8d83.jpg"}}]); \ No newline at end of file diff --git a/assets/js/257.7cd27a3c.js b/assets/js/257.8c9ce1d0.js similarity index 94% rename from assets/js/257.7cd27a3c.js rename to assets/js/257.8c9ce1d0.js index 0ef5a2de04..6a86c142f8 100644 --- a/assets/js/257.7cd27a3c.js +++ b/assets/js/257.8c9ce1d0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[257],{1235:function(e,t,r){"use strict";r.r(t);var o=r(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"folderbrowser"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#folderbrowser"}},[e._v("#")]),e._v(" FolderBrowser")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: File System)")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("FolderBrowser")]),e._v(" component allows to browse and select files in a given folder or subfolders of it. The navigation can be controlled by events.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(803),alt:"Screenshot: FolderBrowser plugin",title:"Screenshot: FolderBrowser plugin"}})]),e._v(" "),t("p",[e._v("The FolderBrowser plugin block element of the ACS.")]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("initialFolder [string]")]),e._v(": The initial folder to start browsing.")]),e._v(" "),t("li",[t("strong",[e._v("wrapAround [boolean]")]),e._v(": If true, the browsing is wrapped around after the last entry.")]),e._v(" "),t("li",[t("strong",[e._v("exitInitialFolder [boolean]")]),e._v(": If true, the initial folder may be exited.")]),e._v(" "),t("li",[t("strong",[e._v("autoListFiles [boolean]")]),e._v(": Automatically output files when entering the folder.")]),e._v(" "),t("li",[t("strong",[e._v("noFolderMessage [string]")]),e._v(": Message to be sent to the folderName port if no subfolder is available.")]),e._v(" "),t("li",[t("strong",[e._v("noFileMessage [string]")]),e._v(": The message to be sent to the fileNames port, if no file is available.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("next")]),e._v(": Got to the next folder in current directory")]),e._v(" "),t("li",[t("strong",[e._v("previous")]),e._v(": Go to the previous folder in current directory")]),e._v(" "),t("li",[t("strong",[e._v("enter")]),e._v(": Enter current folder")]),e._v(" "),t("li",[t("strong",[e._v("exit")]),e._v(": Exit current folder")]),e._v(" "),t("li",[t("strong",[e._v("current")]),e._v(": Output current folder")]),e._v(" "),t("li",[t("strong",[e._v("listFiles")]),e._v(": Lists files in current folder")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("folderName [string]")]),e._v(": The name of the current folder (without path).")]),e._v(" "),t("li",[t("strong",[e._v("folderPath [boolean]")]),e._v(": The name of the current folder (including path)")]),e._v(" "),t("li",[t("strong",[e._v("fileNames [boolean]")]),e._v(": The names of the files in current folder.")]),e._v(" "),t("li",[t("strong",[e._v("filePaths [boolean]")]),e._v(": The names of the files in current folder (including path)")])])])}),[],!1,null,null,null);t.default=s.exports},803:function(e,t,r){e.exports=r.p+"assets/img/folderbrowser.b4608102.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[257],{1234:function(e,t,r){"use strict";r.r(t);var o=r(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"folderbrowser"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#folderbrowser"}},[e._v("#")]),e._v(" FolderBrowser")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: File System)")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("FolderBrowser")]),e._v(" component allows to browse and select files in a given folder or subfolders of it. The navigation can be controlled by events.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(804),alt:"Screenshot: FolderBrowser plugin",title:"Screenshot: FolderBrowser plugin"}})]),e._v(" "),t("p",[e._v("The FolderBrowser plugin block element of the ACS.")]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("initialFolder [string]")]),e._v(": The initial folder to start browsing.")]),e._v(" "),t("li",[t("strong",[e._v("wrapAround [boolean]")]),e._v(": If true, the browsing is wrapped around after the last entry.")]),e._v(" "),t("li",[t("strong",[e._v("exitInitialFolder [boolean]")]),e._v(": If true, the initial folder may be exited.")]),e._v(" "),t("li",[t("strong",[e._v("autoListFiles [boolean]")]),e._v(": Automatically output files when entering the folder.")]),e._v(" "),t("li",[t("strong",[e._v("noFolderMessage [string]")]),e._v(": Message to be sent to the folderName port if no subfolder is available.")]),e._v(" "),t("li",[t("strong",[e._v("noFileMessage [string]")]),e._v(": The message to be sent to the fileNames port, if no file is available.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("next")]),e._v(": Got to the next folder in current directory")]),e._v(" "),t("li",[t("strong",[e._v("previous")]),e._v(": Go to the previous folder in current directory")]),e._v(" "),t("li",[t("strong",[e._v("enter")]),e._v(": Enter current folder")]),e._v(" "),t("li",[t("strong",[e._v("exit")]),e._v(": Exit current folder")]),e._v(" "),t("li",[t("strong",[e._v("current")]),e._v(": Output current folder")]),e._v(" "),t("li",[t("strong",[e._v("listFiles")]),e._v(": Lists files in current folder")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("folderName [string]")]),e._v(": The name of the current folder (without path).")]),e._v(" "),t("li",[t("strong",[e._v("folderPath [boolean]")]),e._v(": The name of the current folder (including path)")]),e._v(" "),t("li",[t("strong",[e._v("fileNames [boolean]")]),e._v(": The names of the files in current folder.")]),e._v(" "),t("li",[t("strong",[e._v("filePaths [boolean]")]),e._v(": The names of the files in current folder (including path)")])])])}),[],!1,null,null,null);t.default=s.exports},804:function(e,t,r){e.exports=r.p+"assets/img/folderbrowser.b4608102.jpg"}}]); \ No newline at end of file diff --git a/assets/js/258.3c261f5e.js b/assets/js/258.92321666.js similarity index 96% rename from assets/js/258.3c261f5e.js rename to assets/js/258.92321666.js index a8786fe5fd..dc76b3bac3 100644 --- a/assets/js/258.3c261f5e.js +++ b/assets/js/258.92321666.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[258],{1231:function(e,t,h){"use strict";h.r(t);var i=h(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"headpositionhc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#headpositionhc"}},[e._v("#")]),e._v(" HeadPositionHC")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This plug-in provides a selection of up to 12 choices via the head. A choice can be selected through looking to the side. The angle of the head is calculated with the position of the ear and the mouth. The detection of the features is realised with HaarCascade.")]),e._v(" "),t("p",[t("img",{attrs:{src:h(798),alt:"Screenshot: HeadPositionHC plug-in",title:"Screenshot: HeadPositionHC plugin"}})]),e._v(" "),t("p",[e._v("The HeadPositionHC sensor plug-in")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A webcam or an other camera has to be connected to the computer.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CellNumber:")]),e._v(" the number of the current selected Choice")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select:")]),e._v(" will be triggered when the position is held for an amount of time")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ChoiceEachSide [integer]:")]),e._v(" sets the choices, which are visible and selectable for each side. (1-6 Choices each side are possible)")]),e._v(" "),t("li",[t("strong",[e._v("Angle1LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the first choice on the left side. Every value lower than this value and higher than the value of Angle2LeftSide selects the first choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle2LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the second choice on the left side. Every value lower than this value and higher than the value of Angle3LeftSide selects the second choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle3LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the third choice on the left side. Every value lower than this value and higher than the value of Angle4LeftSide selects the third choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle4LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the fourth choice on the left side. Every value lower than this value and higher than the value of Angle5LeftSide selects the fourth choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle5LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the fifth choice on the left side. Every value lower than this value and higher than the value of Angle6LeftSide selects the fifth choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle6LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the sixth choice on the left side. Every value lower than this value selects the sixth choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle1RightSide [integer]:")]),e._v(" sets the lower value of the angle for the first choice on the right side. Every value higher than this value and lower than the value of Angle2RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle2RightSide [integer]:")]),e._v(" sets the lower value of the angle for the second choice on the right side. Every value higher than this value and lower than the value of Angle3RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle3RightSide [integer]:")]),e._v(" sets the lower value of the angle for the third choice on the right side. Every value higher than this value and lower than the value of Angle4RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle4RightSide [integer]:")]),e._v(" sets the lower value of the angle for the fourth choice on the right side. Every value higher than this value and lower than the value of Angle5RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle5RightSide [integer]:")]),e._v(" sets the lower value of the angle for the fifth choice on the right side. Every value higher than this value and lower than the value of Angle6RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle6RightSide [integer]:")]),e._v(" sets the lower value of the angle for the sixth choice on the right side. Every value higher than this value selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("PathForHaarCascade [string]:")]),e._v(" Filepath to the folder, where the HaarCascade-files are stored.")]),e._v(" "),t("li",[t("strong",[e._v("CameraID [integer]:")]),e._v(" the ID of the Camera.")]),e._v(" "),t("li",[t("strong",[e._v("CounterResettingROI [integer]:")]),e._v(" the number of frames to wait before resetting the ROI (finding the face) when no feature is found.")]),e._v(" "),t("li",[t("strong",[e._v("CounterToSendSelectEvent [integer]:")]),e._v(" the number of frames, which the person has to hold the position until the select event is triggered.")])])])}),[],!1,null,null,null);t.default=r.exports},798:function(e,t,h){e.exports=h.p+"assets/img/headpositionhc.38072afc.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[258],{1232:function(e,t,h){"use strict";h.r(t);var i=h(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"headpositionhc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#headpositionhc"}},[e._v("#")]),e._v(" HeadPositionHC")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This plug-in provides a selection of up to 12 choices via the head. A choice can be selected through looking to the side. The angle of the head is calculated with the position of the ear and the mouth. The detection of the features is realised with HaarCascade.")]),e._v(" "),t("p",[t("img",{attrs:{src:h(801),alt:"Screenshot: HeadPositionHC plug-in",title:"Screenshot: HeadPositionHC plugin"}})]),e._v(" "),t("p",[e._v("The HeadPositionHC sensor plug-in")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A webcam or an other camera has to be connected to the computer.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CellNumber:")]),e._v(" the number of the current selected Choice")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Select:")]),e._v(" will be triggered when the position is held for an amount of time")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ChoiceEachSide [integer]:")]),e._v(" sets the choices, which are visible and selectable for each side. (1-6 Choices each side are possible)")]),e._v(" "),t("li",[t("strong",[e._v("Angle1LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the first choice on the left side. Every value lower than this value and higher than the value of Angle2LeftSide selects the first choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle2LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the second choice on the left side. Every value lower than this value and higher than the value of Angle3LeftSide selects the second choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle3LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the third choice on the left side. Every value lower than this value and higher than the value of Angle4LeftSide selects the third choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle4LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the fourth choice on the left side. Every value lower than this value and higher than the value of Angle5LeftSide selects the fourth choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle5LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the fifth choice on the left side. Every value lower than this value and higher than the value of Angle6LeftSide selects the fifth choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle6LeftSide [integer]:")]),e._v(" sets the upper value of the angle for the sixth choice on the left side. Every value lower than this value selects the sixth choice of the left side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle1RightSide [integer]:")]),e._v(" sets the lower value of the angle for the first choice on the right side. Every value higher than this value and lower than the value of Angle2RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle2RightSide [integer]:")]),e._v(" sets the lower value of the angle for the second choice on the right side. Every value higher than this value and lower than the value of Angle3RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle3RightSide [integer]:")]),e._v(" sets the lower value of the angle for the third choice on the right side. Every value higher than this value and lower than the value of Angle4RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle4RightSide [integer]:")]),e._v(" sets the lower value of the angle for the fourth choice on the right side. Every value higher than this value and lower than the value of Angle5RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle5RightSide [integer]:")]),e._v(" sets the lower value of the angle for the fifth choice on the right side. Every value higher than this value and lower than the value of Angle6RightSide selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("Angle6RightSide [integer]:")]),e._v(" sets the lower value of the angle for the sixth choice on the right side. Every value higher than this value selects the first choice of the right side.")]),e._v(" "),t("li",[t("strong",[e._v("PathForHaarCascade [string]:")]),e._v(" Filepath to the folder, where the HaarCascade-files are stored.")]),e._v(" "),t("li",[t("strong",[e._v("CameraID [integer]:")]),e._v(" the ID of the Camera.")]),e._v(" "),t("li",[t("strong",[e._v("CounterResettingROI [integer]:")]),e._v(" the number of frames to wait before resetting the ROI (finding the face) when no feature is found.")]),e._v(" "),t("li",[t("strong",[e._v("CounterToSendSelectEvent [integer]:")]),e._v(" the number of frames, which the person has to hold the position until the select event is triggered.")])])])}),[],!1,null,null,null);t.default=r.exports},801:function(e,t,h){e.exports=h.p+"assets/img/headpositionhc.38072afc.png"}}]); \ No newline at end of file diff --git a/assets/js/259.733a72a3.js b/assets/js/259.e5dba3c5.js similarity index 97% rename from assets/js/259.733a72a3.js rename to assets/js/259.e5dba3c5.js index 86cca37b83..4d0117dd62 100644 --- a/assets/js/259.733a72a3.js +++ b/assets/js/259.e5dba3c5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[259],{1236:function(e,r,t){"use strict";t.r(r);var s=t(2),o=Object(s.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"intelrealsense"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#intelrealsense"}},[e._v("#")]),e._v(" IntelRealSense")]),e._v(" "),r("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),r("p",[e._v("OS: >= Windows 8.1, 64 bit")]),e._v(" "),r("p",[e._v("This component interfaces the Intel Real Sense F200 (SR300) 3D camera and provides head tracking and facial gesture recognition functionality. The head tracking could be used for camera mouse applications and provides 3D absolute coordinates. The facial gestures could be used for simple actions like mouse click or key emulation. Each facial gesture has a recognition score. The user can define the threshold that triggers an event when the score exceeds the threshold.")]),e._v(" "),r("h2",{attrs:{id:"requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),r("p",[e._v("You need an "),r("a",{attrs:{href:"https://software.intel.com/de-de/realsense/sr300camera",target:"_blank",rel:"noopener noreferrer"}},[e._v("Intel Real Sense F200 (SR300)"),r("OutboundLink")],1),e._v(" camera plugged in and the SDK installed and running. The camera only supports Windows (>= 8.1, 64 Bit).")]),e._v(" "),r("p",[r("img",{attrs:{src:t(804),alt:"Intel Real Sense 3D camera",title:"Intel Real Sense F200 (SR300) camera"}})]),e._v(" "),r("p",[e._v("Intel Real Sense F200 (SR300) camera")]),e._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("h [integer]:")]),e._v(" The face rectangle height in pixels.")]),e._v(" "),r("li",[r("strong",[e._v("w [integer]:")]),e._v(" The face rectangle width in pixels.")]),e._v(" "),r("li",[r("strong",[e._v("x [integer]:")]),e._v(" The x coordinate of the top left corner of the face rectangle.")]),e._v(" "),r("li",[r("strong",[e._v("y [integer]:")]),e._v(" The y coordinate of the top left corner of the face rectangle.")]),e._v(" "),r("li",[r("strong",[e._v("roll [integer]:")]),e._v(" Degree of head roll.")]),e._v(" "),r("li",[r("strong",[e._v("yaw [integer]:")]),e._v(" Degree of head yaw (left - right).")]),e._v(" "),r("li",[r("strong",[e._v("pitch [integer]:")]),e._v(" Degree of head pitch (up - down).")])]),e._v(" "),r("h2",{attrs:{id:"event-trigger-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("browRaiserLeft:")]),e._v(" browRaiserLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("browRaiserRight:")]),e._v(" browRaiserRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("browLowererLeft:")]),e._v(" browLowererLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("browLowererRight:")]),e._v(" browLowererRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("smile:")]),e._v(" smile expression happened")]),e._v(" "),r("li",[r("strong",[e._v("kiss:")]),e._v(" kiss expression happened")]),e._v(" "),r("li",[r("strong",[e._v("mouthOpen:")]),e._v(" mouthOpen expression happened")]),e._v(" "),r("li",[r("strong",[e._v("tongueOut:")]),e._v(" tongueOut expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesClosedLeft:")]),e._v(" eyesClosedLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesClosedRight:")]),e._v(" eyesClosedRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesTurnLeft:")]),e._v(" eyesTurnLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesTurnRight:")]),e._v(" eyesTurnRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesUp:")]),e._v(" eyesUp expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesDown:")]),e._v(" eyesDown expression happened")]),e._v(" "),r("li",[r("strong",[e._v("puffLeft:")]),e._v(" puffLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("puffRight:")]),e._v(" puffRight expression happened")])]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("deviceModel [combobox selection]:")]),e._v(" Camera model, one of: F200, R200, R200_Enhanced, SR300")]),e._v(" "),r("li",[r("strong",[e._v("enableExpressions:")]),e._v(" Enable,Disable facial expressions")]),e._v(" "),r("li",[r("strong",[e._v("displayGUI:")]),e._v(" Enable, Disable camera gui.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowRaiserLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowRaiserRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowLowererLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowLowererRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreSmile:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreKiss:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreMouthOpen:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreThongueOut:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesClosedLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesClosedRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesTurnLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesTurnRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesUp:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesDown:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scorePuffLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scorePuffRight:")]),e._v(" Set score threshold value of expression to trigger event.")])])])}),[],!1,null,null,null);r.default=o.exports},804:function(e,r,t){e.exports=t.p+"assets/img/realsense_f200_camera.1ced686a.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[259],{1237:function(e,r,t){"use strict";t.r(r);var s=t(2),o=Object(s.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"intelrealsense"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#intelrealsense"}},[e._v("#")]),e._v(" IntelRealSense")]),e._v(" "),r("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),r("p",[e._v("OS: >= Windows 8.1, 64 bit")]),e._v(" "),r("p",[e._v("This component interfaces the Intel Real Sense F200 (SR300) 3D camera and provides head tracking and facial gesture recognition functionality. The head tracking could be used for camera mouse applications and provides 3D absolute coordinates. The facial gestures could be used for simple actions like mouse click or key emulation. Each facial gesture has a recognition score. The user can define the threshold that triggers an event when the score exceeds the threshold.")]),e._v(" "),r("h2",{attrs:{id:"requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),r("p",[e._v("You need an "),r("a",{attrs:{href:"https://software.intel.com/de-de/realsense/sr300camera",target:"_blank",rel:"noopener noreferrer"}},[e._v("Intel Real Sense F200 (SR300)"),r("OutboundLink")],1),e._v(" camera plugged in and the SDK installed and running. The camera only supports Windows (>= 8.1, 64 Bit).")]),e._v(" "),r("p",[r("img",{attrs:{src:t(808),alt:"Intel Real Sense 3D camera",title:"Intel Real Sense F200 (SR300) camera"}})]),e._v(" "),r("p",[e._v("Intel Real Sense F200 (SR300) camera")]),e._v(" "),r("h2",{attrs:{id:"output-port-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("h [integer]:")]),e._v(" The face rectangle height in pixels.")]),e._v(" "),r("li",[r("strong",[e._v("w [integer]:")]),e._v(" The face rectangle width in pixels.")]),e._v(" "),r("li",[r("strong",[e._v("x [integer]:")]),e._v(" The x coordinate of the top left corner of the face rectangle.")]),e._v(" "),r("li",[r("strong",[e._v("y [integer]:")]),e._v(" The y coordinate of the top left corner of the face rectangle.")]),e._v(" "),r("li",[r("strong",[e._v("roll [integer]:")]),e._v(" Degree of head roll.")]),e._v(" "),r("li",[r("strong",[e._v("yaw [integer]:")]),e._v(" Degree of head yaw (left - right).")]),e._v(" "),r("li",[r("strong",[e._v("pitch [integer]:")]),e._v(" Degree of head pitch (up - down).")])]),e._v(" "),r("h2",{attrs:{id:"event-trigger-description"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("browRaiserLeft:")]),e._v(" browRaiserLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("browRaiserRight:")]),e._v(" browRaiserRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("browLowererLeft:")]),e._v(" browLowererLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("browLowererRight:")]),e._v(" browLowererRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("smile:")]),e._v(" smile expression happened")]),e._v(" "),r("li",[r("strong",[e._v("kiss:")]),e._v(" kiss expression happened")]),e._v(" "),r("li",[r("strong",[e._v("mouthOpen:")]),e._v(" mouthOpen expression happened")]),e._v(" "),r("li",[r("strong",[e._v("tongueOut:")]),e._v(" tongueOut expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesClosedLeft:")]),e._v(" eyesClosedLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesClosedRight:")]),e._v(" eyesClosedRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesTurnLeft:")]),e._v(" eyesTurnLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesTurnRight:")]),e._v(" eyesTurnRight expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesUp:")]),e._v(" eyesUp expression happened")]),e._v(" "),r("li",[r("strong",[e._v("eyesDown:")]),e._v(" eyesDown expression happened")]),e._v(" "),r("li",[r("strong",[e._v("puffLeft:")]),e._v(" puffLeft expression happened")]),e._v(" "),r("li",[r("strong",[e._v("puffRight:")]),e._v(" puffRight expression happened")])]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("deviceModel [combobox selection]:")]),e._v(" Camera model, one of: F200, R200, R200_Enhanced, SR300")]),e._v(" "),r("li",[r("strong",[e._v("enableExpressions:")]),e._v(" Enable,Disable facial expressions")]),e._v(" "),r("li",[r("strong",[e._v("displayGUI:")]),e._v(" Enable, Disable camera gui.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowRaiserLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowRaiserRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowLowererLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreBrowLowererRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreSmile:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreKiss:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreMouthOpen:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreThongueOut:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesClosedLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesClosedRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesTurnLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesTurnRight:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesUp:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scoreEyesDown:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scorePuffLeft:")]),e._v(" Set score threshold value of expression to trigger event.")]),e._v(" "),r("li",[r("strong",[e._v("scorePuffRight:")]),e._v(" Set score threshold value of expression to trigger event.")])])])}),[],!1,null,null,null);r.default=o.exports},808:function(e,r,t){e.exports=t.p+"assets/img/realsense_f200_camera.1ced686a.jpg"}}]); \ No newline at end of file diff --git a/assets/js/26.c38947c1.js b/assets/js/26.7a748c90.js similarity index 97% rename from assets/js/26.c38947c1.js rename to assets/js/26.7a748c90.js index f84a8b7ecb..c5dee5b6bb 100644 --- a/assets/js/26.c38947c1.js +++ b/assets/js/26.7a748c90.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{296:function(e,t){e.exports="data:image/png;base64,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"},297:function(e,t){e.exports="data:image/png;base64,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"},298:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_33ee9963708d1fff.70ac87d7.png"},299:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_f830b9b181946728.4be74a14.png"},300:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_d5be58f6ea0f5f1.b4ff3013.png"},301:function(e,t,a){e.exports=a.p+"assets/img/eclipse-ant-buildtarget.a52616ed.png"},986:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"development-environment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-environment"}},[e._v("#")]),e._v(" Development Environment")]),e._v(" "),t("h2",{attrs:{id:"repository-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#repository-overview"}},[e._v("#")]),e._v(" Repository Overview")]),e._v(" "),t("p",[e._v("The source code repository is organised in the following subfolders:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(296),alt:""}})]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ACS")])]),e._v(" folder contains the AsTeRICS Configuration Suite source code.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Android")])]),e._v(" folder contains a server application for Android phones which allows interfacing with the AsTeRICS Android plugin to use phone functions in AsTeRICS models.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ARE")])]),e._v(" folder contains the middleware and service layers and ARE components.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("bin")])]),e._v(" folder contains subfolders where ARE and ACS executable files are placed during the build flow. These folders contain additional configuration files or dependencies, for example the config.ini and loader.ini files which specify the modules which are loaded by the ARE at startup.")]),e._v(" "),t("p",[e._v("Additionally, the bin folder contains several resources which are useful, e.g. a pre-built ACS with demo models (in the ACS\\models folder) and the OSKA application.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("BNCIevaluationSuite")])]),e._v(" is a collection of matlab files for analysis and comparison of algorithms for Brain Computer Interfaces (contributed by Starlab).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("CIM")])]),e._v(" folder contains firmware for the microcontroller modules used to interface the system to the environment (maintained by IMA and FHTW).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Documentation")])]),e._v(" folder contains the User- and the Developer Manual, and OSKA manual and the licence information for the developed and all utilized source code and libraries.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("NativeASAPI")])]),e._v(" folder contains C++ libraries for mobile-phone and GSM modem access, 3d-mouse and tremor reduction from own C++ projects.")]),e._v(" "),t("h2",{attrs:{id:"clone-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#clone-repository"}},[e._v("#")]),e._v(" Clone Repository")]),e._v(" "),t("p",[e._v("Install a "),t("a",{attrs:{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("git"),t("OutboundLink")],1),e._v(" command line client and clone the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS.git",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),t("OutboundLink")],1),e._v(" by entering:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone https://github.com/asterics/AsTeRICS.git\n")])])]),t("h2",{attrs:{id:"prerequisites"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[e._v("#")]),e._v(" Prerequisites")]),e._v(" "),t("p",[e._v("You need:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Java Development Kit 8")]),e._v(": "),t("a",{attrs:{href:"https://www.azul.com/downloads/zulu-community/?version=java-8-lts&package=jdk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Zulu JDKs"),t("OutboundLink")],1),e._v(" are recommended, but you can also use "),t("a",{attrs:{href:"https://openjdk.java.net/install/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenJDK"),t("OutboundLink")],1),e._v(" or the "),t("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Oracle JDK"),t("OutboundLink")],1),e._v(". If you are on Windows, be sure to select the 32-bit version of the JDK.")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[e._v("apache ant build framework (version >= 1.9.1)"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Set "),t("a",{attrs:{href:"#environment-variables"}},[e._v("Environment Variables")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"environment-variables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#environment-variables"}},[e._v("#")]),e._v(" Environment Variables")]),e._v(" "),t("ul",[t("li",[e._v("Ensure to set "),t("code",[e._v("JAVA_HOME")]),e._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")]),e._v(" "),t("li",[e._v("Ensure to set "),t("code",[e._v("ANT_HOME")]),e._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")])]),e._v(" "),t("p",[e._v("See below an example of how to set the environment variable "),t("code",[e._v("JAVA_HOME")]),e._v(" on Windows 7.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(297),alt:"Setting Environment Variable JAVA_HOME on Windows 7"}})]),e._v(" "),t("h2",{attrs:{id:"build"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#build"}},[e._v("#")]),e._v(" Build")]),e._v(" "),t("p",[e._v("AsTeRICS uses the build system "),t("code",[e._v("ant")]),e._v(".\nYou can simply build the framework from the command line:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h3",{attrs:{id:"building-are-middleware-services-and-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#building-are-middleware-services-and-plugins"}},[e._v("#")]),e._v(" Building ARE Middleware, Services and Plugins")]),e._v(" "),t("p",[e._v("In the "),t("code",[e._v("ARE")]),e._v(" subfolder the source code of the ARE middleware ("),t("code",[e._v("ARE/middleware")]),e._v("), ARE services ("),t("code",[e._v("ARE/services")]),e._v(") and plugins ("),t("code",[e._v("ARE/components")]),e._v(") can be found.")]),e._v(" "),t("p",[e._v("The middleware, the services and the components have separate ant build files ("),t("code",[e._v("build.xml")]),e._v("). The middleware and services are required for building the plugins (components). To build everything, a top-level build script is available in the "),t("code",[e._v("ARE")]),e._v(" folder.\nAlternatively, individual services or components can be built by selecting their associated "),t("code",[e._v("build.xml")]),e._v(" script from the corresponding subfolders.")]),e._v(" "),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" the ARE (plugins, services), enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE with "),t("strong",[e._v("remote debugging enabled")]),e._v(", enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run-debug\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h2",{attrs:{id:"eclipse-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-setup"}},[e._v("#")]),e._v(" Eclipse Setup")]),e._v(" "),t("p",[e._v("The AsTeRICS framework is not bound to a specific IDE, but "),t("a",{attrs:{href:"https://www.eclipse.org/downloads/packages/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Eclipse IDE for Enterprise Java Developers"),t("OutboundLink")],1),e._v(" is recommended. This will provide editing support for diverse file types (java, html, Js, CSS, xml). Alternately you can install "),t("em",[e._v("Eclipse IDE for Java Developers")]),e._v(" and later install addons for web development.")]),e._v(" "),t("h3",{attrs:{id:"java-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#java-project"}},[e._v("#")]),e._v(" Java Project")]),e._v(" "),t("p",[e._v("You must create a "),t("code",[e._v("Java Project")]),e._v(" first:")]),e._v(" "),t("p",[e._v("Choose "),t("em",[e._v("File -> New -> JavaProject")]),e._v(" in the Eclipse main menu, disable the option "),t("em",[e._v("“Use default location”")]),e._v(" and browse to the "),t("em",[e._v("ARE")]),e._v(" subfolder:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(298),alt:""}})]),e._v(" "),t("p",[e._v("Then you should see something like this:\n"),t("img",{attrs:{src:a(299),alt:""}})]),e._v(" "),t("p",[e._v("Eclipse provides different views ("),t("em",[e._v("Window -> Show View")]),e._v("), where the "),t("em",[e._v("Navigator")]),e._v(" and the "),t("em",[e._v("Package Explorer")]),e._v(" are most useful for Java source code development.")]),e._v(" "),t("p",[e._v("Note that the “"),t("em",[e._v("Refresh")]),e._v("” command ("),t("em",[e._v("F5")]),e._v(") synchronizes the Navigator view with changes in the local file system.")]),e._v(" "),t("h3",{attrs:{id:"character-encoding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#character-encoding"}},[e._v("#")]),e._v(" Character encoding")]),e._v(" "),t("p",[e._v("Incorrect character encoding settings can cause problems with ANT-based builds in eclipse, especially if special characters like ö, ä, etc. are used in the source code. Be sure to use ISO-8859-1 as character encoding in "),t("em",[e._v("Configuations and Lauch")]),e._v(" settings (in the "),t("em",[e._v("Common")]),e._v(" tab) as shown in the screenshot (note that this is not the default setting in some versions of eclipse):")]),e._v(" "),t("p",[t("img",{attrs:{src:a(300),alt:""}})]),e._v(" "),t("h3",{attrs:{id:"editing-model-files-windows-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-model-files-windows-only"}},[e._v("#")]),e._v(" Editing Model Files (windows-only)")]),e._v(" "),t("p",[e._v("You can configure the Eclipse editor to open the "),t("em",[e._v("ACS")]),e._v(" editor for AsTeRICS model files ("),t("code",[e._v(".acs")]),e._v(").")]),e._v(" "),t("ol",[t("li",[e._v("Right click on a model file, select "),t("code",[e._v("Open with/Other")])]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("External programs")]),e._v(" and browse to "),t("code",[e._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),e._v(" (Note: "),t("strong",[e._v("ACS.bat")]),e._v(")")]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("Use it for all `*.acs file")])]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Ok")])])]),e._v(" "),t("h3",{attrs:{id:"ant-within-eclipse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ant-within-eclipse"}},[e._v("#")]),e._v(" Ant within Eclipse")]),e._v(" "),t("p",[e._v("You can run the "),t("em",[e._v("ant")]),e._v(" targets of the AsTeRICS build system from within Eclipse.")]),e._v(" "),t("h4",{attrs:{id:"run-default-target"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[e._v("#")]),e._v(" Run default target")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build")]),e._v(" (first entry)")])]),e._v(" "),t("h4",{attrs:{id:"run-selected-targets"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[e._v("#")]),e._v(" Run selected targets")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build...")]),e._v(" (second entry)")]),e._v(" "),t("li",[e._v("Click onto targets to run")]),e._v(" "),t("li",[e._v("Select order of execution at the bottom")]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Apply")]),e._v(" and "),t("code",[e._v("Run")])])]),e._v(" "),t("p",[e._v("The screenshot below shows the dialog for build target selection:\n"),t("img",{attrs:{src:a(301),alt:"Screenshot of ant build target selection"}})])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{297:function(e,t){e.exports="data:image/png;base64,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"},298:function(e,t){e.exports="data:image/png;base64,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"},299:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_33ee9963708d1fff.70ac87d7.png"},300:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_f830b9b181946728.4be74a14.png"},301:function(e,t,a){e.exports=a.p+"assets/img/DeveloperManual_html_d5be58f6ea0f5f1.b4ff3013.png"},302:function(e,t,a){e.exports=a.p+"assets/img/eclipse-ant-buildtarget.a52616ed.png"},981:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"development-environment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-environment"}},[e._v("#")]),e._v(" Development Environment")]),e._v(" "),t("h2",{attrs:{id:"repository-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#repository-overview"}},[e._v("#")]),e._v(" Repository Overview")]),e._v(" "),t("p",[e._v("The source code repository is organised in the following subfolders:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(297),alt:""}})]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ACS")])]),e._v(" folder contains the AsTeRICS Configuration Suite source code.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Android")])]),e._v(" folder contains a server application for Android phones which allows interfacing with the AsTeRICS Android plugin to use phone functions in AsTeRICS models.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("ARE")])]),e._v(" folder contains the middleware and service layers and ARE components.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("bin")])]),e._v(" folder contains subfolders where ARE and ACS executable files are placed during the build flow. These folders contain additional configuration files or dependencies, for example the config.ini and loader.ini files which specify the modules which are loaded by the ARE at startup.")]),e._v(" "),t("p",[e._v("Additionally, the bin folder contains several resources which are useful, e.g. a pre-built ACS with demo models (in the ACS\\models folder) and the OSKA application.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("BNCIevaluationSuite")])]),e._v(" is a collection of matlab files for analysis and comparison of algorithms for Brain Computer Interfaces (contributed by Starlab).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("CIM")])]),e._v(" folder contains firmware for the microcontroller modules used to interface the system to the environment (maintained by IMA and FHTW).")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Documentation")])]),e._v(" folder contains the User- and the Developer Manual, and OSKA manual and the licence information for the developed and all utilized source code and libraries.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("NativeASAPI")])]),e._v(" folder contains C++ libraries for mobile-phone and GSM modem access, 3d-mouse and tremor reduction from own C++ projects.")]),e._v(" "),t("h2",{attrs:{id:"clone-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#clone-repository"}},[e._v("#")]),e._v(" Clone Repository")]),e._v(" "),t("p",[e._v("Install a "),t("a",{attrs:{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("git"),t("OutboundLink")],1),e._v(" command line client and clone the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS.git",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),t("OutboundLink")],1),e._v(" by entering:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone https://github.com/asterics/AsTeRICS.git\n")])])]),t("h2",{attrs:{id:"prerequisites"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[e._v("#")]),e._v(" Prerequisites")]),e._v(" "),t("p",[e._v("You need:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Java Development Kit 8")]),e._v(": "),t("a",{attrs:{href:"https://www.azul.com/downloads/zulu-community/?version=java-8-lts&package=jdk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Zulu JDKs"),t("OutboundLink")],1),e._v(" are recommended, but you can also use "),t("a",{attrs:{href:"https://openjdk.java.net/install/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenJDK"),t("OutboundLink")],1),e._v(" or the "),t("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Oracle JDK"),t("OutboundLink")],1),e._v(". If you are on Windows, be sure to select the 32-bit version of the JDK.")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[e._v("apache ant build framework (version >= 1.9.1)"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Set "),t("a",{attrs:{href:"#environment-variables"}},[e._v("Environment Variables")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"environment-variables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#environment-variables"}},[e._v("#")]),e._v(" Environment Variables")]),e._v(" "),t("ul",[t("li",[e._v("Ensure to set "),t("code",[e._v("JAVA_HOME")]),e._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")]),e._v(" "),t("li",[e._v("Ensure to set "),t("code",[e._v("ANT_HOME")]),e._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),t("code",[e._v("Path")]),e._v(".")])]),e._v(" "),t("p",[e._v("See below an example of how to set the environment variable "),t("code",[e._v("JAVA_HOME")]),e._v(" on Windows 7.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(298),alt:"Setting Environment Variable JAVA_HOME on Windows 7"}})]),e._v(" "),t("h2",{attrs:{id:"build"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#build"}},[e._v("#")]),e._v(" Build")]),e._v(" "),t("p",[e._v("AsTeRICS uses the build system "),t("code",[e._v("ant")]),e._v(".\nYou can simply build the framework from the command line:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h3",{attrs:{id:"building-are-middleware-services-and-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#building-are-middleware-services-and-plugins"}},[e._v("#")]),e._v(" Building ARE Middleware, Services and Plugins")]),e._v(" "),t("p",[e._v("In the "),t("code",[e._v("ARE")]),e._v(" subfolder the source code of the ARE middleware ("),t("code",[e._v("ARE/middleware")]),e._v("), ARE services ("),t("code",[e._v("ARE/services")]),e._v(") and plugins ("),t("code",[e._v("ARE/components")]),e._v(") can be found.")]),e._v(" "),t("p",[e._v("The middleware, the services and the components have separate ant build files ("),t("code",[e._v("build.xml")]),e._v("). The middleware and services are required for building the plugins (components). To build everything, a top-level build script is available in the "),t("code",[e._v("ARE")]),e._v(" folder.\nAlternatively, individual services or components can be built by selecting their associated "),t("code",[e._v("build.xml")]),e._v(" script from the corresponding subfolders.")]),e._v(" "),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" the ARE (plugins, services), enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run\n")])])]),t("p",[e._v("To "),t("strong",[e._v("build")]),e._v(" and "),t("strong",[e._v("start")]),e._v(" the ARE with "),t("strong",[e._v("remote debugging enabled")]),e._v(", enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant run-debug\n")])])]),t("p",[e._v("For other build targets and their meaning, enter:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[e._v("ant "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-projecthelp")]),e._v("\n")])])]),t("h2",{attrs:{id:"eclipse-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-setup"}},[e._v("#")]),e._v(" Eclipse Setup")]),e._v(" "),t("p",[e._v("The AsTeRICS framework is not bound to a specific IDE, but "),t("a",{attrs:{href:"https://www.eclipse.org/downloads/packages/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Eclipse IDE for Enterprise Java Developers"),t("OutboundLink")],1),e._v(" is recommended. This will provide editing support for diverse file types (java, html, Js, CSS, xml). Alternately you can install "),t("em",[e._v("Eclipse IDE for Java Developers")]),e._v(" and later install addons for web development.")]),e._v(" "),t("h3",{attrs:{id:"java-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#java-project"}},[e._v("#")]),e._v(" Java Project")]),e._v(" "),t("p",[e._v("You must create a "),t("code",[e._v("Java Project")]),e._v(" first:")]),e._v(" "),t("p",[e._v("Choose "),t("em",[e._v("File -> New -> JavaProject")]),e._v(" in the Eclipse main menu, disable the option "),t("em",[e._v("“Use default location”")]),e._v(" and browse to the "),t("em",[e._v("ARE")]),e._v(" subfolder:")]),e._v(" "),t("p",[t("img",{attrs:{src:a(299),alt:""}})]),e._v(" "),t("p",[e._v("Then you should see something like this:\n"),t("img",{attrs:{src:a(300),alt:""}})]),e._v(" "),t("p",[e._v("Eclipse provides different views ("),t("em",[e._v("Window -> Show View")]),e._v("), where the "),t("em",[e._v("Navigator")]),e._v(" and the "),t("em",[e._v("Package Explorer")]),e._v(" are most useful for Java source code development.")]),e._v(" "),t("p",[e._v("Note that the “"),t("em",[e._v("Refresh")]),e._v("” command ("),t("em",[e._v("F5")]),e._v(") synchronizes the Navigator view with changes in the local file system.")]),e._v(" "),t("h3",{attrs:{id:"character-encoding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#character-encoding"}},[e._v("#")]),e._v(" Character encoding")]),e._v(" "),t("p",[e._v("Incorrect character encoding settings can cause problems with ANT-based builds in eclipse, especially if special characters like ö, ä, etc. are used in the source code. Be sure to use ISO-8859-1 as character encoding in "),t("em",[e._v("Configuations and Lauch")]),e._v(" settings (in the "),t("em",[e._v("Common")]),e._v(" tab) as shown in the screenshot (note that this is not the default setting in some versions of eclipse):")]),e._v(" "),t("p",[t("img",{attrs:{src:a(301),alt:""}})]),e._v(" "),t("h3",{attrs:{id:"editing-model-files-windows-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-model-files-windows-only"}},[e._v("#")]),e._v(" Editing Model Files (windows-only)")]),e._v(" "),t("p",[e._v("You can configure the Eclipse editor to open the "),t("em",[e._v("ACS")]),e._v(" editor for AsTeRICS model files ("),t("code",[e._v(".acs")]),e._v(").")]),e._v(" "),t("ol",[t("li",[e._v("Right click on a model file, select "),t("code",[e._v("Open with/Other")])]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("External programs")]),e._v(" and browse to "),t("code",[e._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),e._v(" (Note: "),t("strong",[e._v("ACS.bat")]),e._v(")")]),e._v(" "),t("li",[e._v("Check "),t("code",[e._v("Use it for all `*.acs file")])]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Ok")])])]),e._v(" "),t("h3",{attrs:{id:"ant-within-eclipse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ant-within-eclipse"}},[e._v("#")]),e._v(" Ant within Eclipse")]),e._v(" "),t("p",[e._v("You can run the "),t("em",[e._v("ant")]),e._v(" targets of the AsTeRICS build system from within Eclipse.")]),e._v(" "),t("h4",{attrs:{id:"run-default-target"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[e._v("#")]),e._v(" Run default target")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build")]),e._v(" (first entry)")])]),e._v(" "),t("h4",{attrs:{id:"run-selected-targets"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[e._v("#")]),e._v(" Run selected targets")]),e._v(" "),t("ol",[t("li",[e._v("Right click onto file "),t("code",[e._v("build.xml")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Run As/Ant Build...")]),e._v(" (second entry)")]),e._v(" "),t("li",[e._v("Click onto targets to run")]),e._v(" "),t("li",[e._v("Select order of execution at the bottom")]),e._v(" "),t("li",[e._v("Click onto "),t("code",[e._v("Apply")]),e._v(" and "),t("code",[e._v("Run")])])]),e._v(" "),t("p",[e._v("The screenshot below shows the dialog for build target selection:\n"),t("img",{attrs:{src:a(302),alt:"Screenshot of ant build target selection"}})])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/260.207d2ce6.js b/assets/js/260.85089714.js similarity index 98% rename from assets/js/260.207d2ce6.js rename to assets/js/260.85089714.js index ef8ccec5f3..b4bed182a1 100644 --- a/assets/js/260.207d2ce6.js +++ b/assets/js/260.85089714.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[260],{1237:function(t,v,_){"use strict";_.r(v);var e=_(2),r=Object(e.a)({},(function(){var t=this,v=t._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"frontmatter-title"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),v("p",[t._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),t._v(" "),v("p",[t._v("This component provides access to keystrokes of a single key on the keyboard. The keystroke capture does not depend on a particular window or text field to have the input focus. For every keypress and release of the specified key an event gets fired. Possible applications include triggering functions by keyboard input, interfacing to speech recognition software or remapping keys to other keycodes.")]),t._v(" "),v("p",[v("img",{attrs:{src:_(805),alt:"Screenshot: KeyCapture plugin",title:"Screenshot: KeyCapture plugin"}})]),t._v(" "),v("p",[t._v("KeybCapture plugin")]),t._v(" "),v("h2",{attrs:{id:"requirements"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),v("p",[t._v("A keyboard which generates keystrokes or a software component which injects keystrokes into the operating system message queue.")]),t._v(" "),v("h2",{attrs:{id:"mapping-of-keycodes-to-actual-keys"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#mapping-of-keycodes-to-actual-keys"}},[t._v("#")]),t._v(" Mapping of keyCodes to actual keys")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",[t._v("Key")]),t._v(" "),v("th",[t._v("KeyCode")])])]),t._v(" "),v("tbody",[v("tr",[v("td",[t._v("A")]),t._v(" "),v("td",[t._v("30")])]),t._v(" "),v("tr",[v("td",[t._v("B")]),t._v(" "),v("td",[t._v("48")])]),t._v(" "),v("tr",[v("td",[t._v("C")]),t._v(" "),v("td",[t._v("46")])]),t._v(" "),v("tr",[v("td",[t._v("D")]),t._v(" "),v("td",[t._v("32")])]),t._v(" "),v("tr",[v("td",[t._v("E")]),t._v(" "),v("td",[t._v("18")])]),t._v(" "),v("tr",[v("td",[t._v("F")]),t._v(" "),v("td",[t._v("33")])]),t._v(" "),v("tr",[v("td",[t._v("G")]),t._v(" "),v("td",[t._v("34")])]),t._v(" "),v("tr",[v("td",[t._v("H")]),t._v(" "),v("td",[t._v("35")])]),t._v(" "),v("tr",[v("td",[t._v("I")]),t._v(" "),v("td",[t._v("23")])]),t._v(" "),v("tr",[v("td",[t._v("J")]),t._v(" "),v("td",[t._v("36")])]),t._v(" "),v("tr",[v("td",[t._v("K")]),t._v(" "),v("td",[t._v("37")])]),t._v(" "),v("tr",[v("td",[t._v("L")]),t._v(" "),v("td",[t._v("38")])]),t._v(" "),v("tr",[v("td",[t._v("M")]),t._v(" "),v("td",[t._v("50")])]),t._v(" "),v("tr",[v("td",[t._v("N")]),t._v(" "),v("td",[t._v("49")])]),t._v(" "),v("tr",[v("td",[t._v("O")]),t._v(" "),v("td",[t._v("24")])]),t._v(" "),v("tr",[v("td",[t._v("P")]),t._v(" "),v("td",[t._v("25")])]),t._v(" "),v("tr",[v("td",[t._v("Q")]),t._v(" "),v("td",[t._v("16")])]),t._v(" "),v("tr",[v("td",[t._v("R")]),t._v(" "),v("td",[t._v("19")])]),t._v(" "),v("tr",[v("td",[t._v("S")]),t._v(" "),v("td",[t._v("31")])]),t._v(" "),v("tr",[v("td",[t._v("T")]),t._v(" "),v("td",[t._v("20")])]),t._v(" "),v("tr",[v("td",[t._v("U")]),t._v(" "),v("td",[t._v("22")])]),t._v(" "),v("tr",[v("td",[t._v("V")]),t._v(" "),v("td",[t._v("47")])]),t._v(" "),v("tr",[v("td",[t._v("W")]),t._v(" "),v("td",[t._v("17")])]),t._v(" "),v("tr",[v("td",[t._v("X")]),t._v(" "),v("td",[t._v("45")])]),t._v(" "),v("tr",[v("td",[t._v("Y")]),t._v(" "),v("td",[t._v("21")])]),t._v(" "),v("tr",[v("td",[t._v("Z")]),t._v(" "),v("td",[t._v("44")])]),t._v(" "),v("tr",[v("td",[t._v("0")]),t._v(" "),v("td",[t._v("11")])]),t._v(" "),v("tr",[v("td",[t._v("1")]),t._v(" "),v("td",[t._v("2")])]),t._v(" "),v("tr",[v("td",[t._v("2")]),t._v(" "),v("td",[t._v("3")])]),t._v(" "),v("tr",[v("td",[t._v("3")]),t._v(" "),v("td",[t._v("4")])]),t._v(" "),v("tr",[v("td",[t._v("4")]),t._v(" "),v("td",[t._v("5")])]),t._v(" "),v("tr",[v("td",[t._v("5")]),t._v(" "),v("td",[t._v("6")])]),t._v(" "),v("tr",[v("td",[t._v("6")]),t._v(" "),v("td",[t._v("7")])]),t._v(" "),v("tr",[v("td",[t._v("7")]),t._v(" "),v("td",[t._v("8")])]),t._v(" "),v("tr",[v("td",[t._v("8")]),t._v(" "),v("td",[t._v("9")])]),t._v(" "),v("tr",[v("td",[t._v("9")]),t._v(" "),v("td",[t._v("10")])]),t._v(" "),v("tr",[v("td",[t._v("F1")]),t._v(" "),v("td",[t._v("59")])]),t._v(" "),v("tr",[v("td",[t._v("F2")]),t._v(" "),v("td",[t._v("60")])]),t._v(" "),v("tr",[v("td",[t._v("F3")]),t._v(" "),v("td",[t._v("61")])]),t._v(" "),v("tr",[v("td",[t._v("F4")]),t._v(" "),v("td",[t._v("62")])]),t._v(" "),v("tr",[v("td",[t._v("F5")]),t._v(" "),v("td",[t._v("63")])]),t._v(" "),v("tr",[v("td",[t._v("F6")]),t._v(" "),v("td",[t._v("64")])]),t._v(" "),v("tr",[v("td",[t._v("F7")]),t._v(" "),v("td",[t._v("65")])]),t._v(" "),v("tr",[v("td",[t._v("F8")]),t._v(" "),v("td",[t._v("66")])]),t._v(" "),v("tr",[v("td",[t._v("F9")]),t._v(" "),v("td",[t._v("67")])]),t._v(" "),v("tr",[v("td",[t._v("F10")]),t._v(" "),v("td",[t._v("68")])]),t._v(" "),v("tr",[v("td",[t._v("F11")]),t._v(" "),v("td",[t._v("87")])]),t._v(" "),v("tr",[v("td",[t._v("F12")]),t._v(" "),v("td",[t._v("88")])]),t._v(" "),v("tr",[v("td",[t._v("F13")]),t._v(" "),v("td",[t._v("91")])]),t._v(" "),v("tr",[v("td",[t._v("F14")]),t._v(" "),v("td",[t._v("92")])]),t._v(" "),v("tr",[v("td",[t._v("F15")]),t._v(" "),v("td",[t._v("93")])]),t._v(" "),v("tr",[v("td",[t._v("F16")]),t._v(" "),v("td",[t._v("99")])]),t._v(" "),v("tr",[v("td",[t._v("F17")]),t._v(" "),v("td",[t._v("100")])]),t._v(" "),v("tr",[v("td",[t._v("F18")]),t._v(" "),v("td",[t._v("101")])]),t._v(" "),v("tr",[v("td",[t._v("F19")]),t._v(" "),v("td",[t._v("102")])]),t._v(" "),v("tr",[v("td",[t._v("F20")]),t._v(" "),v("td",[t._v("103")])]),t._v(" "),v("tr",[v("td",[t._v("F21")]),t._v(" "),v("td",[t._v("104")])]),t._v(" "),v("tr",[v("td",[t._v("F22")]),t._v(" "),v("td",[t._v("105")])]),t._v(" "),v("tr",[v("td",[t._v("F23")]),t._v(" "),v("td",[t._v("106")])]),t._v(" "),v("tr",[v("td",[t._v("F24")]),t._v(" "),v("td",[t._v("107")])]),t._v(" "),v("tr",[v("td",[t._v("ESC")]),t._v(" "),v("td",[t._v("1")])]),t._v(" "),v("tr",[v("td",[t._v("-")]),t._v(" "),v("td",[t._v("12")])]),t._v(" "),v("tr",[v("td",[t._v("=/+")]),t._v(" "),v("td",[t._v("13")])]),t._v(" "),v("tr",[v("td",[t._v("Backspace")]),t._v(" "),v("td",[t._v("14")])]),t._v(" "),v("tr",[v("td",[t._v("Tab")]),t._v(" "),v("td",[t._v("15")])]),t._v(" "),v("tr",[v("td",[t._v("Caps Lock")]),t._v(" "),v("td",[t._v("58")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Up")]),t._v(" "),v("td",[t._v("57416")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Left")]),t._v(" "),v("td",[t._v("57419")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Right")]),t._v(" "),v("td",[t._v("57421")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Down")]),t._v(" "),v("td",[t._v("57424")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 0")]),t._v(" "),v("td",[t._v("82")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 1")]),t._v(" "),v("td",[t._v("79")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 2")]),t._v(" "),v("td",[t._v("80")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 3")]),t._v(" "),v("td",[t._v("81")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 4")]),t._v(" "),v("td",[t._v("75")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 5")]),t._v(" "),v("td",[t._v("76")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 6")]),t._v(" "),v("td",[t._v("77")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 7")]),t._v(" "),v("td",[t._v("71")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 8")]),t._v(" "),v("td",[t._v("72")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 9")]),t._v(" "),v("td",[t._v("73")])]),t._v(" "),v("tr",[v("td",[t._v("Ctrl left")]),t._v(" "),v("td",[t._v("29")])]),t._v(" "),v("tr",[v("td",[t._v("Ctrl right")]),t._v(" "),v("td",[t._v("3613")])]),t._v(" "),v("tr",[v("td",[t._v("Alt left")]),t._v(" "),v("td",[t._v("56")])]),t._v(" "),v("tr",[v("td",[t._v("Alt right")]),t._v(" "),v("td",[t._v("3640")])]),t._v(" "),v("tr",[v("td",[t._v("Context Menu")]),t._v(" "),v("td",[t._v("3677")])]),t._v(" "),v("tr",[v("td",[t._v("Windows Key")]),t._v(" "),v("td",[t._v("3675 or 3676")])]),t._v(" "),v("tr",[v("td",[t._v("SPACE")]),t._v(" "),v("td",[t._v("57")])]),t._v(" "),v("tr",[v("td",[t._v("Print Screen")]),t._v(" "),v("td",[t._v("3639")])]),t._v(" "),v("tr",[v("td",[t._v("Scroll Lock")]),t._v(" "),v("td",[t._v("70")])]),t._v(" "),v("tr",[v("td",[t._v("Pause")]),t._v(" "),v("td",[t._v("3653")])]),t._v(" "),v("tr",[v("td",[t._v("Enter")]),t._v(" "),v("td",[t._v("28")])]),t._v(" "),v("tr",[v("td",[t._v("Page Up")]),t._v(" "),v("td",[t._v("3657")])]),t._v(" "),v("tr",[v("td",[t._v("Page Down")]),t._v(" "),v("td",[t._v("3665")])]),t._v(" "),v("tr",[v("td",[t._v(",")]),t._v(" "),v("td",[t._v("51")])]),t._v(" "),v("tr",[v("td",[t._v(".")]),t._v(" "),v("td",[t._v("52")])])])]),t._v(" "),v("p",[v("a",{attrs:{href:"https://github.com/kwhat/jnativehook/blob/master/src/java/org/jnativehook/keyboard/NativeKeyEvent.java",title:"Opens external link in new window",target:"_blank",rel:"noopener noreferrer"}},[t._v("Click here"),v("OutboundLink")],1),t._v(" to view a full list of keycodes.")]),t._v(" "),v("h2",{attrs:{id:"input-port-description"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("keyCode [integer]:")]),t._v(" The keycode of the key which should be captured. For a list of the mapping between keycodes and keys see the graphics above.")])]),t._v(" "),v("h2",{attrs:{id:"event-trigger-description"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("keyPressed:")]),t._v(" This event port fires an event if the key with the specified keyCode was pressed.")]),t._v(" "),v("li",[v("strong",[t._v("keyReleased:")]),t._v(" This event port fires an event if the key with the specified keyCode was released.")])]),t._v(" "),v("h2",{attrs:{id:"event-listener-description"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("enable:")]),t._v(" The keystate is captured and events get fired")]),t._v(" "),v("li",[v("strong",[t._v("disable:")]),t._v(" The plugin does not fire any event.")]),t._v(" "),v("li",[v("strong",[t._v("block:")]),t._v(" After this event, the keystroke of the key with the specified keyCode is not forwarded to the operating system.")]),t._v(" "),v("li",[v("strong",[t._v("unblock:")]),t._v(" After this event, the keystroke of the key with the specified keyCode is forwarded to the operating system.")])]),t._v(" "),v("h2",{attrs:{id:"properties"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("block [boolean]:")]),t._v(" If this property is set to true, no key press activities will be routed to the operating system")]),t._v(" "),v("li",[v("strong",[t._v("keyCode[integer]:")]),t._v(" The keycode of the key which should be captured. For a list of the mapping between keycodes and keys see the graphics above.")])])])}),[],!1,null,null,null);v.default=r.exports},805:function(t,v,_){t.exports=_.p+"assets/img/keycapture.23ab76be.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[260],{1236:function(t,v,_){"use strict";_.r(v);var e=_(2),r=Object(e.a)({},(function(){var t=this,v=t._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"frontmatter-title"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),v("p",[t._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),t._v(" "),v("p",[t._v("This component provides access to keystrokes of a single key on the keyboard. The keystroke capture does not depend on a particular window or text field to have the input focus. For every keypress and release of the specified key an event gets fired. Possible applications include triggering functions by keyboard input, interfacing to speech recognition software or remapping keys to other keycodes.")]),t._v(" "),v("p",[v("img",{attrs:{src:_(807),alt:"Screenshot: KeyCapture plugin",title:"Screenshot: KeyCapture plugin"}})]),t._v(" "),v("p",[t._v("KeybCapture plugin")]),t._v(" "),v("h2",{attrs:{id:"requirements"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),v("p",[t._v("A keyboard which generates keystrokes or a software component which injects keystrokes into the operating system message queue.")]),t._v(" "),v("h2",{attrs:{id:"mapping-of-keycodes-to-actual-keys"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#mapping-of-keycodes-to-actual-keys"}},[t._v("#")]),t._v(" Mapping of keyCodes to actual keys")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",[t._v("Key")]),t._v(" "),v("th",[t._v("KeyCode")])])]),t._v(" "),v("tbody",[v("tr",[v("td",[t._v("A")]),t._v(" "),v("td",[t._v("30")])]),t._v(" "),v("tr",[v("td",[t._v("B")]),t._v(" "),v("td",[t._v("48")])]),t._v(" "),v("tr",[v("td",[t._v("C")]),t._v(" "),v("td",[t._v("46")])]),t._v(" "),v("tr",[v("td",[t._v("D")]),t._v(" "),v("td",[t._v("32")])]),t._v(" "),v("tr",[v("td",[t._v("E")]),t._v(" "),v("td",[t._v("18")])]),t._v(" "),v("tr",[v("td",[t._v("F")]),t._v(" "),v("td",[t._v("33")])]),t._v(" "),v("tr",[v("td",[t._v("G")]),t._v(" "),v("td",[t._v("34")])]),t._v(" "),v("tr",[v("td",[t._v("H")]),t._v(" "),v("td",[t._v("35")])]),t._v(" "),v("tr",[v("td",[t._v("I")]),t._v(" "),v("td",[t._v("23")])]),t._v(" "),v("tr",[v("td",[t._v("J")]),t._v(" "),v("td",[t._v("36")])]),t._v(" "),v("tr",[v("td",[t._v("K")]),t._v(" "),v("td",[t._v("37")])]),t._v(" "),v("tr",[v("td",[t._v("L")]),t._v(" "),v("td",[t._v("38")])]),t._v(" "),v("tr",[v("td",[t._v("M")]),t._v(" "),v("td",[t._v("50")])]),t._v(" "),v("tr",[v("td",[t._v("N")]),t._v(" "),v("td",[t._v("49")])]),t._v(" "),v("tr",[v("td",[t._v("O")]),t._v(" "),v("td",[t._v("24")])]),t._v(" "),v("tr",[v("td",[t._v("P")]),t._v(" "),v("td",[t._v("25")])]),t._v(" "),v("tr",[v("td",[t._v("Q")]),t._v(" "),v("td",[t._v("16")])]),t._v(" "),v("tr",[v("td",[t._v("R")]),t._v(" "),v("td",[t._v("19")])]),t._v(" "),v("tr",[v("td",[t._v("S")]),t._v(" "),v("td",[t._v("31")])]),t._v(" "),v("tr",[v("td",[t._v("T")]),t._v(" "),v("td",[t._v("20")])]),t._v(" "),v("tr",[v("td",[t._v("U")]),t._v(" "),v("td",[t._v("22")])]),t._v(" "),v("tr",[v("td",[t._v("V")]),t._v(" "),v("td",[t._v("47")])]),t._v(" "),v("tr",[v("td",[t._v("W")]),t._v(" "),v("td",[t._v("17")])]),t._v(" "),v("tr",[v("td",[t._v("X")]),t._v(" "),v("td",[t._v("45")])]),t._v(" "),v("tr",[v("td",[t._v("Y")]),t._v(" "),v("td",[t._v("21")])]),t._v(" "),v("tr",[v("td",[t._v("Z")]),t._v(" "),v("td",[t._v("44")])]),t._v(" "),v("tr",[v("td",[t._v("0")]),t._v(" "),v("td",[t._v("11")])]),t._v(" "),v("tr",[v("td",[t._v("1")]),t._v(" "),v("td",[t._v("2")])]),t._v(" "),v("tr",[v("td",[t._v("2")]),t._v(" "),v("td",[t._v("3")])]),t._v(" "),v("tr",[v("td",[t._v("3")]),t._v(" "),v("td",[t._v("4")])]),t._v(" "),v("tr",[v("td",[t._v("4")]),t._v(" "),v("td",[t._v("5")])]),t._v(" "),v("tr",[v("td",[t._v("5")]),t._v(" "),v("td",[t._v("6")])]),t._v(" "),v("tr",[v("td",[t._v("6")]),t._v(" "),v("td",[t._v("7")])]),t._v(" "),v("tr",[v("td",[t._v("7")]),t._v(" "),v("td",[t._v("8")])]),t._v(" "),v("tr",[v("td",[t._v("8")]),t._v(" "),v("td",[t._v("9")])]),t._v(" "),v("tr",[v("td",[t._v("9")]),t._v(" "),v("td",[t._v("10")])]),t._v(" "),v("tr",[v("td",[t._v("F1")]),t._v(" "),v("td",[t._v("59")])]),t._v(" "),v("tr",[v("td",[t._v("F2")]),t._v(" "),v("td",[t._v("60")])]),t._v(" "),v("tr",[v("td",[t._v("F3")]),t._v(" "),v("td",[t._v("61")])]),t._v(" "),v("tr",[v("td",[t._v("F4")]),t._v(" "),v("td",[t._v("62")])]),t._v(" "),v("tr",[v("td",[t._v("F5")]),t._v(" "),v("td",[t._v("63")])]),t._v(" "),v("tr",[v("td",[t._v("F6")]),t._v(" "),v("td",[t._v("64")])]),t._v(" "),v("tr",[v("td",[t._v("F7")]),t._v(" "),v("td",[t._v("65")])]),t._v(" "),v("tr",[v("td",[t._v("F8")]),t._v(" "),v("td",[t._v("66")])]),t._v(" "),v("tr",[v("td",[t._v("F9")]),t._v(" "),v("td",[t._v("67")])]),t._v(" "),v("tr",[v("td",[t._v("F10")]),t._v(" "),v("td",[t._v("68")])]),t._v(" "),v("tr",[v("td",[t._v("F11")]),t._v(" "),v("td",[t._v("87")])]),t._v(" "),v("tr",[v("td",[t._v("F12")]),t._v(" "),v("td",[t._v("88")])]),t._v(" "),v("tr",[v("td",[t._v("F13")]),t._v(" "),v("td",[t._v("91")])]),t._v(" "),v("tr",[v("td",[t._v("F14")]),t._v(" "),v("td",[t._v("92")])]),t._v(" "),v("tr",[v("td",[t._v("F15")]),t._v(" "),v("td",[t._v("93")])]),t._v(" "),v("tr",[v("td",[t._v("F16")]),t._v(" "),v("td",[t._v("99")])]),t._v(" "),v("tr",[v("td",[t._v("F17")]),t._v(" "),v("td",[t._v("100")])]),t._v(" "),v("tr",[v("td",[t._v("F18")]),t._v(" "),v("td",[t._v("101")])]),t._v(" "),v("tr",[v("td",[t._v("F19")]),t._v(" "),v("td",[t._v("102")])]),t._v(" "),v("tr",[v("td",[t._v("F20")]),t._v(" "),v("td",[t._v("103")])]),t._v(" "),v("tr",[v("td",[t._v("F21")]),t._v(" "),v("td",[t._v("104")])]),t._v(" "),v("tr",[v("td",[t._v("F22")]),t._v(" "),v("td",[t._v("105")])]),t._v(" "),v("tr",[v("td",[t._v("F23")]),t._v(" "),v("td",[t._v("106")])]),t._v(" "),v("tr",[v("td",[t._v("F24")]),t._v(" "),v("td",[t._v("107")])]),t._v(" "),v("tr",[v("td",[t._v("ESC")]),t._v(" "),v("td",[t._v("1")])]),t._v(" "),v("tr",[v("td",[t._v("-")]),t._v(" "),v("td",[t._v("12")])]),t._v(" "),v("tr",[v("td",[t._v("=/+")]),t._v(" "),v("td",[t._v("13")])]),t._v(" "),v("tr",[v("td",[t._v("Backspace")]),t._v(" "),v("td",[t._v("14")])]),t._v(" "),v("tr",[v("td",[t._v("Tab")]),t._v(" "),v("td",[t._v("15")])]),t._v(" "),v("tr",[v("td",[t._v("Caps Lock")]),t._v(" "),v("td",[t._v("58")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Up")]),t._v(" "),v("td",[t._v("57416")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Left")]),t._v(" "),v("td",[t._v("57419")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Right")]),t._v(" "),v("td",[t._v("57421")])]),t._v(" "),v("tr",[v("td",[t._v("Cursor Down")]),t._v(" "),v("td",[t._v("57424")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 0")]),t._v(" "),v("td",[t._v("82")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 1")]),t._v(" "),v("td",[t._v("79")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 2")]),t._v(" "),v("td",[t._v("80")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 3")]),t._v(" "),v("td",[t._v("81")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 4")]),t._v(" "),v("td",[t._v("75")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 5")]),t._v(" "),v("td",[t._v("76")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 6")]),t._v(" "),v("td",[t._v("77")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 7")]),t._v(" "),v("td",[t._v("71")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 8")]),t._v(" "),v("td",[t._v("72")])]),t._v(" "),v("tr",[v("td",[t._v("NumPad 9")]),t._v(" "),v("td",[t._v("73")])]),t._v(" "),v("tr",[v("td",[t._v("Ctrl left")]),t._v(" "),v("td",[t._v("29")])]),t._v(" "),v("tr",[v("td",[t._v("Ctrl right")]),t._v(" "),v("td",[t._v("3613")])]),t._v(" "),v("tr",[v("td",[t._v("Alt left")]),t._v(" "),v("td",[t._v("56")])]),t._v(" "),v("tr",[v("td",[t._v("Alt right")]),t._v(" "),v("td",[t._v("3640")])]),t._v(" "),v("tr",[v("td",[t._v("Context Menu")]),t._v(" "),v("td",[t._v("3677")])]),t._v(" "),v("tr",[v("td",[t._v("Windows Key")]),t._v(" "),v("td",[t._v("3675 or 3676")])]),t._v(" "),v("tr",[v("td",[t._v("SPACE")]),t._v(" "),v("td",[t._v("57")])]),t._v(" "),v("tr",[v("td",[t._v("Print Screen")]),t._v(" "),v("td",[t._v("3639")])]),t._v(" "),v("tr",[v("td",[t._v("Scroll Lock")]),t._v(" "),v("td",[t._v("70")])]),t._v(" "),v("tr",[v("td",[t._v("Pause")]),t._v(" "),v("td",[t._v("3653")])]),t._v(" "),v("tr",[v("td",[t._v("Enter")]),t._v(" "),v("td",[t._v("28")])]),t._v(" "),v("tr",[v("td",[t._v("Page Up")]),t._v(" "),v("td",[t._v("3657")])]),t._v(" "),v("tr",[v("td",[t._v("Page Down")]),t._v(" "),v("td",[t._v("3665")])]),t._v(" "),v("tr",[v("td",[t._v(",")]),t._v(" "),v("td",[t._v("51")])]),t._v(" "),v("tr",[v("td",[t._v(".")]),t._v(" "),v("td",[t._v("52")])])])]),t._v(" "),v("p",[v("a",{attrs:{href:"https://github.com/kwhat/jnativehook/blob/master/src/java/org/jnativehook/keyboard/NativeKeyEvent.java",title:"Opens external link in new window",target:"_blank",rel:"noopener noreferrer"}},[t._v("Click here"),v("OutboundLink")],1),t._v(" to view a full list of keycodes.")]),t._v(" "),v("h2",{attrs:{id:"input-port-description"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("keyCode [integer]:")]),t._v(" The keycode of the key which should be captured. For a list of the mapping between keycodes and keys see the graphics above.")])]),t._v(" "),v("h2",{attrs:{id:"event-trigger-description"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("keyPressed:")]),t._v(" This event port fires an event if the key with the specified keyCode was pressed.")]),t._v(" "),v("li",[v("strong",[t._v("keyReleased:")]),t._v(" This event port fires an event if the key with the specified keyCode was released.")])]),t._v(" "),v("h2",{attrs:{id:"event-listener-description"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("enable:")]),t._v(" The keystate is captured and events get fired")]),t._v(" "),v("li",[v("strong",[t._v("disable:")]),t._v(" The plugin does not fire any event.")]),t._v(" "),v("li",[v("strong",[t._v("block:")]),t._v(" After this event, the keystroke of the key with the specified keyCode is not forwarded to the operating system.")]),t._v(" "),v("li",[v("strong",[t._v("unblock:")]),t._v(" After this event, the keystroke of the key with the specified keyCode is forwarded to the operating system.")])]),t._v(" "),v("h2",{attrs:{id:"properties"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),v("ul",[v("li",[v("strong",[t._v("block [boolean]:")]),t._v(" If this property is set to true, no key press activities will be routed to the operating system")]),t._v(" "),v("li",[v("strong",[t._v("keyCode[integer]:")]),t._v(" The keycode of the key which should be captured. For a list of the mapping between keycodes and keys see the graphics above.")])])])}),[],!1,null,null,null);v.default=r.exports},807:function(t,v,_){t.exports=_.p+"assets/img/keycapture.23ab76be.jpg"}}]); \ No newline at end of file diff --git a/assets/js/261.9483463b.js b/assets/js/261.3daa9f49.js similarity index 96% rename from assets/js/261.9483463b.js rename to assets/js/261.3daa9f49.js index b302c59d36..d783aaded2 100644 --- a/assets/js/261.9483463b.js +++ b/assets/js/261.3daa9f49.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[261],{1239:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),e._v(" "),t("p",[e._v("This component provides access to keystrokes input via a standard keyboard. The keystroke capture does not depend on a particular window or text field to have the input focus. The keycodes of the pressed keys and accumulated words (multiple keys separated by ) are provided at the output ports of this component. Possible applications include triggering functions by keyboard input, interfacing to speech recognition software or remapping keys to other keycodes.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(808),alt:"Screenshot: KeyboardCapture plugin",title:"Screenshot: KeyboardCapture plugin"}})]),e._v(" "),t("p",[e._v("KeyboardCapture plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A keyboard which generates keystrokes or a software component which injects keystrokes into the operating system message queue.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keyCode [integer]:")]),e._v(" This port sends the virtual keycode of the last pressed key as an integer value.")]),e._v(" "),t("li",[t("strong",[e._v("words [string]:")]),e._v(" This ports accumulates keystrokes and sends them as a string as soon as a blank separator (space key) appears in the key input stream.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("recognizedCommand1 - recognizedCommand10:")]),e._v(" These event ports fire an event if one of seven command strings has been detected in the current input stream of keys.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blockEvents [boolean]:")]),e._v(" If this property is set to true, no key press activities will be routed to the operating system - they will not be processed by other applications and disappear. If the property value is set to false, keystrokes will be passed back to the operating system and processed as usual.")]),e._v(" "),t("li",[t("strong",[e._v("command1 [string] - command10 [string]:")]),e._v(" Seven string properties to specify command strings. The component looks for these command strings in the input stream of keystrokes. If a command string matches, the corresponding event trigger port is raised. This can be useful for example to define voice commands which should trigger certain actions in other ARE plugins.")])])])}),[],!1,null,null,null);t.default=o.exports},808:function(e,t,s){e.exports=s.p+"assets/img/keyboardcapture.483dae78.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[261],{1239:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),e._v(" "),t("p",[e._v("This component provides access to keystrokes input via a standard keyboard. The keystroke capture does not depend on a particular window or text field to have the input focus. The keycodes of the pressed keys and accumulated words (multiple keys separated by ) are provided at the output ports of this component. Possible applications include triggering functions by keyboard input, interfacing to speech recognition software or remapping keys to other keycodes.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(810),alt:"Screenshot: KeyboardCapture plugin",title:"Screenshot: KeyboardCapture plugin"}})]),e._v(" "),t("p",[e._v("KeyboardCapture plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A keyboard which generates keystrokes or a software component which injects keystrokes into the operating system message queue.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keyCode [integer]:")]),e._v(" This port sends the virtual keycode of the last pressed key as an integer value.")]),e._v(" "),t("li",[t("strong",[e._v("words [string]:")]),e._v(" This ports accumulates keystrokes and sends them as a string as soon as a blank separator (space key) appears in the key input stream.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("recognizedCommand1 - recognizedCommand10:")]),e._v(" These event ports fire an event if one of seven command strings has been detected in the current input stream of keys.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blockEvents [boolean]:")]),e._v(" If this property is set to true, no key press activities will be routed to the operating system - they will not be processed by other applications and disappear. If the property value is set to false, keystrokes will be passed back to the operating system and processed as usual.")]),e._v(" "),t("li",[t("strong",[e._v("command1 [string] - command10 [string]:")]),e._v(" Seven string properties to specify command strings. The component looks for these command strings in the input stream of keystrokes. If a command string matches, the corresponding event trigger port is raised. This can be useful for example to define voice commands which should trigger certain actions in other ARE plugins.")])])])}),[],!1,null,null,null);t.default=o.exports},810:function(e,t,s){e.exports=s.p+"assets/img/keyboardcapture.483dae78.jpg"}}]); \ No newline at end of file diff --git a/assets/js/262.6dfadf82.js b/assets/js/262.5d2767ec.js similarity index 98% rename from assets/js/262.6dfadf82.js rename to assets/js/262.5d2767ec.js index af1fe772dc..153474ca51 100644 --- a/assets/js/262.6dfadf82.js +++ b/assets/js/262.5d2767ec.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[262],{1240:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"kinect"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#kinect"}},[e._v("#")]),e._v(" Kinect")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Visions)")]),e._v(" "),t("p",[e._v("The Kinect component interfaces to the Microsoft Kinect camera over the OpenNI library. It provides the skeleton Data of exactly one person in front of the kinect camera.")]),e._v(" "),t("p",[e._v("For the installation of the OpenNI framework and the drivers see for example "),t("a",{attrs:{href:"http://studentguru.gr/b/vangos/archive/2011/01/20/how-to-successfully-install-kinect-windows-openni-nite.aspx",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(809),alt:"Screenshot: Kinect plugin",title:"Screenshot: Kinect plugin"}})]),e._v(" "),t("p",[e._v("Kinect plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A Microsoft Kinect must be connected to the system.")]),e._v(" "),t("li",[e._v("The installed drivers must be compatible to the framework. e.g. The SensorKinect drivers work perfectly.")]),e._v(" "),t("li",[e._v("The OpenNI Framework must be installed.")]),e._v(" "),t("li",[e._v("The Nite Middleware must be installed")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("p",[e._v("The range of the coordinates is 0 - 640 for the x coordinates and 0 - 480 for the y coordinates if centerZeroPoint is set false and -320 - 320 for the x coordinate and -240 - 240 for the y coordinate when set to true.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("HeadX [double]:")]),e._v(" The X position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadY [double]:")]),e._v(" The Y position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadZ [double]:")]),e._v(" The Z position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("leftHandX [double]:")]),e._v(" The X position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("leftHandY [double]:")]),e._v(" The Y position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("leftHandZ [double]:")]),e._v(" The Z position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightHandX [double]:")]),e._v(" The X position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightHandY [double]:")]),e._v(" The Y position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightHandZ [double]:")]),e._v(" The Z position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightFootX [double]:")]),e._v(" The X position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("rightFootY [double]:")]),e._v(" The Y position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("rightFootZ [double]:")]),e._v(" The Z position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("leftFootX [double]:")]),e._v(" The X position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("leftFootY [double]:")]),e._v(" The Y position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("leftFootZ [double]:")]),e._v(" The Z position of the left Foot")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("visualize [boolean]:")]),e._v(" When set to true a windows is displayed which shows the tracked skeleton. While the window is simply grey, no skeleton has been found yet.")]),e._v(" "),t("li",[t("strong",[e._v("centerZeroPoint [boolean]:")]),e._v(" Specifies wether the 0,0 point is at the top left corner (centerZeroPoint=false) or in the middle of the frame (centerZeroPoint=true)")])])])}),[],!1,null,null,null);t.default=n.exports},809:function(e,t,o){e.exports=o.p+"assets/img/kinect.b78672d6.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[262],{1238:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"kinect"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#kinect"}},[e._v("#")]),e._v(" Kinect")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Visions)")]),e._v(" "),t("p",[e._v("The Kinect component interfaces to the Microsoft Kinect camera over the OpenNI library. It provides the skeleton Data of exactly one person in front of the kinect camera.")]),e._v(" "),t("p",[e._v("For the installation of the OpenNI framework and the drivers see for example "),t("a",{attrs:{href:"http://studentguru.gr/b/vangos/archive/2011/01/20/how-to-successfully-install-kinect-windows-openni-nite.aspx",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(809),alt:"Screenshot: Kinect plugin",title:"Screenshot: Kinect plugin"}})]),e._v(" "),t("p",[e._v("Kinect plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A Microsoft Kinect must be connected to the system.")]),e._v(" "),t("li",[e._v("The installed drivers must be compatible to the framework. e.g. The SensorKinect drivers work perfectly.")]),e._v(" "),t("li",[e._v("The OpenNI Framework must be installed.")]),e._v(" "),t("li",[e._v("The Nite Middleware must be installed")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("p",[e._v("The range of the coordinates is 0 - 640 for the x coordinates and 0 - 480 for the y coordinates if centerZeroPoint is set false and -320 - 320 for the x coordinate and -240 - 240 for the y coordinate when set to true.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("HeadX [double]:")]),e._v(" The X position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadY [double]:")]),e._v(" The Y position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadZ [double]:")]),e._v(" The Z position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("leftHandX [double]:")]),e._v(" The X position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("leftHandY [double]:")]),e._v(" The Y position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("leftHandZ [double]:")]),e._v(" The Z position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightHandX [double]:")]),e._v(" The X position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightHandY [double]:")]),e._v(" The Y position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightHandZ [double]:")]),e._v(" The Z position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("rightFootX [double]:")]),e._v(" The X position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("rightFootY [double]:")]),e._v(" The Y position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("rightFootZ [double]:")]),e._v(" The Z position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("leftFootX [double]:")]),e._v(" The X position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("leftFootY [double]:")]),e._v(" The Y position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("leftFootZ [double]:")]),e._v(" The Z position of the left Foot")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("visualize [boolean]:")]),e._v(" When set to true a windows is displayed which shows the tracked skeleton. While the window is simply grey, no skeleton has been found yet.")]),e._v(" "),t("li",[t("strong",[e._v("centerZeroPoint [boolean]:")]),e._v(" Specifies wether the 0,0 point is at the top left corner (centerZeroPoint=false) or in the middle of the frame (centerZeroPoint=true)")])])])}),[],!1,null,null,null);t.default=n.exports},809:function(e,t,o){e.exports=o.p+"assets/img/kinect.b78672d6.jpg"}}]); \ No newline at end of file diff --git a/assets/js/263.c8dd13d1.js b/assets/js/263.7bf898d1.js similarity index 97% rename from assets/js/263.c8dd13d1.js rename to assets/js/263.7bf898d1.js index 2b2f98890b..cc3bda8a34 100644 --- a/assets/js/263.c8dd13d1.js +++ b/assets/js/263.7bf898d1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[263],{1242:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"kinectj4k"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#kinectj4k"}},[e._v("#")]),e._v(" KinectJ4K")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Visions)")]),e._v(" "),t("p",[e._v("The Kinect component interfaces to the Microsoft Kinect v1 camera over the "),t("a",{attrs:{href:"http://research.dwi.ufl.edu/ufdw/j4k/J4KSDK.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("J4K library"),t("OutboundLink")],1),e._v(". It provides the skeleton data of exactly one person in front of the kinect v1 camera.")]),e._v(" "),t("p",[e._v("For the installation the SDK from Microsoft is needed. The plugin was tested with the SDK-Version 1.5 (see "),t("a",{attrs:{href:"http://www.microsoft.com/en-us/download/details.aspx?id=29866",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[t("img",{attrs:{src:o(812),alt:"Screenshot: KinectJ4K plugin",title:"Screenshot: KinectJ4K plugin"}})]),e._v(" "),t("p",[e._v("KinectJ4K plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A Microsoft Kinect v1 must be connected to the system.")]),e._v(" "),t("li",[e._v("The drivers from Microsoft (usually installed with the SDK) are required.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("p",[e._v("You can find more information about the Coordinate Spaces "),t("a",{attrs:{href:"http://www.microsoft.com/en-us/download/details.aspx?id=29866",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("FootLeftX [double]:")]),e._v(" The X position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootLeftY [double]:")]),e._v(" The Y position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootLeftZ [double]:")]),e._v(" The Z position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootRightX [double]:")]),e._v(" The X position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootRightY [double]:")]),e._v(" The Y position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootRightZ [double]:")]),e._v(" The Z position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("AnkleLeftX [double]:")]),e._v(" The X position of the left Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleLeftY [double]:")]),e._v(" The Y position of the left Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleLeftZ [double]:")]),e._v(" The Z position of the left Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleRightX [double]:")]),e._v(" The X position of the right Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleRightY [double]:")]),e._v(" The Y position of the right Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleRightZ [double]:")]),e._v(" The Z position of the right Ankle")]),e._v(" "),t("li",[t("strong",[e._v("KneeLeftX [double]:")]),e._v(" The X position of the left Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeLeftY [double]:")]),e._v(" The Y position of the left Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeLeftZ [double]:")]),e._v(" The Z position of the left Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeRightX [double]:")]),e._v(" The X position of the right Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeRightY [double]:")]),e._v(" The Y position of the right Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeRightZ [double]:")]),e._v(" The Z position of the right Knee")]),e._v(" "),t("li",[t("strong",[e._v("HipLeftX [double]:")]),e._v(" The X position of the left side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipLeftY [double]:")]),e._v(" The Y position of the left side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipLeftZ [double]:")]),e._v(" The Z position of the left side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipCenterX [double]:")]),e._v(" The X position of the center of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipCenterY [double]:")]),e._v(" The Y position of the center of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipCenterZ [double]:")]),e._v(" The Z position of the center of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipRightX [double]:")]),e._v(" The X position of the right side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipRightY [double]:")]),e._v(" The Y position of the right side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipRightZ [double]:")]),e._v(" The Z position of the right side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("SpineX [double]:")]),e._v(" The X position of the Spine")]),e._v(" "),t("li",[t("strong",[e._v("SpineY [double]:")]),e._v(" The Y position of the Spine")]),e._v(" "),t("li",[t("strong",[e._v("SpineZ [double]:")]),e._v(" The Z position of the Spine")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderLeftX [double]:")]),e._v(" The X position of the left Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderLeftY [double]:")]),e._v(" The Y position of the left Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderLeftZ [double]:")]),e._v(" The Z position of the left Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderCenterX [double]:")]),e._v(" The X position of the area between the Shoulders")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderCenterY [double]:")]),e._v(" The Y position of the area between the Shoulders")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderCenterZ [double]:")]),e._v(" The Z position of the area between the Shoulders")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderRightX [double]:")]),e._v(" The X position of the right Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderRightY [double]:")]),e._v(" The Y position of the right Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderRightZ [double]:")]),e._v(" The Z position of the right Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ElbowLeftX [double]:")]),e._v(" The X position of the left Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowLeftY [double]:")]),e._v(" The Y position of the left Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowLeftZ [double]:")]),e._v(" The Z position of the left Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowRightX [double]:")]),e._v(" The X position of the right Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowRightY [double]:")]),e._v(" The Y position of the right Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowRightZ [double]:")]),e._v(" The Z position of the right Elbow")]),e._v(" "),t("li",[t("strong",[e._v("WristLeftX [double]:")]),e._v(" The X position of the left Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristLeftY [double]:")]),e._v(" The Y position of the left Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristLeftZ [double]:")]),e._v(" The Z position of the left Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristRightX [double]:")]),e._v(" The X position of the right Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristRightY [double]:")]),e._v(" The Y position of the right Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristRightZ [double]:")]),e._v(" The Z position of the right Wrist")]),e._v(" "),t("li",[t("strong",[e._v("HandLeftX [double]:")]),e._v(" The X position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandLeftY [double]:")]),e._v(" The Y position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandLeftZ [double]:")]),e._v(" The Z position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandRightX [double]:")]),e._v(" The X position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandRightY [double]:")]),e._v(" The Y position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandRightZ [double]:")]),e._v(" The Z position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("HeadX [double]:")]),e._v(" The X position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadY [double]:")]),e._v(" The Y position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadZ [double]:")]),e._v(" The Z position of the Head")])])])}),[],!1,null,null,null);t.default=n.exports},812:function(e,t,o){e.exports=o.p+"assets/img/kinectj4k.519d9582.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[263],{1240:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"kinectj4k"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#kinectj4k"}},[e._v("#")]),e._v(" KinectJ4K")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Visions)")]),e._v(" "),t("p",[e._v("The Kinect component interfaces to the Microsoft Kinect v1 camera over the "),t("a",{attrs:{href:"http://research.dwi.ufl.edu/ufdw/j4k/J4KSDK.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("J4K library"),t("OutboundLink")],1),e._v(". It provides the skeleton data of exactly one person in front of the kinect v1 camera.")]),e._v(" "),t("p",[e._v("For the installation the SDK from Microsoft is needed. The plugin was tested with the SDK-Version 1.5 (see "),t("a",{attrs:{href:"http://www.microsoft.com/en-us/download/details.aspx?id=29866",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[t("img",{attrs:{src:o(811),alt:"Screenshot: KinectJ4K plugin",title:"Screenshot: KinectJ4K plugin"}})]),e._v(" "),t("p",[e._v("KinectJ4K plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A Microsoft Kinect v1 must be connected to the system.")]),e._v(" "),t("li",[e._v("The drivers from Microsoft (usually installed with the SDK) are required.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("p",[e._v("You can find more information about the Coordinate Spaces "),t("a",{attrs:{href:"http://www.microsoft.com/en-us/download/details.aspx?id=29866",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("FootLeftX [double]:")]),e._v(" The X position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootLeftY [double]:")]),e._v(" The Y position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootLeftZ [double]:")]),e._v(" The Z position of the left Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootRightX [double]:")]),e._v(" The X position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootRightY [double]:")]),e._v(" The Y position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("FootRightZ [double]:")]),e._v(" The Z position of the right Foot")]),e._v(" "),t("li",[t("strong",[e._v("AnkleLeftX [double]:")]),e._v(" The X position of the left Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleLeftY [double]:")]),e._v(" The Y position of the left Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleLeftZ [double]:")]),e._v(" The Z position of the left Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleRightX [double]:")]),e._v(" The X position of the right Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleRightY [double]:")]),e._v(" The Y position of the right Ankle")]),e._v(" "),t("li",[t("strong",[e._v("AnkleRightZ [double]:")]),e._v(" The Z position of the right Ankle")]),e._v(" "),t("li",[t("strong",[e._v("KneeLeftX [double]:")]),e._v(" The X position of the left Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeLeftY [double]:")]),e._v(" The Y position of the left Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeLeftZ [double]:")]),e._v(" The Z position of the left Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeRightX [double]:")]),e._v(" The X position of the right Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeRightY [double]:")]),e._v(" The Y position of the right Knee")]),e._v(" "),t("li",[t("strong",[e._v("KneeRightZ [double]:")]),e._v(" The Z position of the right Knee")]),e._v(" "),t("li",[t("strong",[e._v("HipLeftX [double]:")]),e._v(" The X position of the left side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipLeftY [double]:")]),e._v(" The Y position of the left side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipLeftZ [double]:")]),e._v(" The Z position of the left side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipCenterX [double]:")]),e._v(" The X position of the center of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipCenterY [double]:")]),e._v(" The Y position of the center of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipCenterZ [double]:")]),e._v(" The Z position of the center of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipRightX [double]:")]),e._v(" The X position of the right side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipRightY [double]:")]),e._v(" The Y position of the right side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("HipRightZ [double]:")]),e._v(" The Z position of the right side of the Hip")]),e._v(" "),t("li",[t("strong",[e._v("SpineX [double]:")]),e._v(" The X position of the Spine")]),e._v(" "),t("li",[t("strong",[e._v("SpineY [double]:")]),e._v(" The Y position of the Spine")]),e._v(" "),t("li",[t("strong",[e._v("SpineZ [double]:")]),e._v(" The Z position of the Spine")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderLeftX [double]:")]),e._v(" The X position of the left Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderLeftY [double]:")]),e._v(" The Y position of the left Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderLeftZ [double]:")]),e._v(" The Z position of the left Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderCenterX [double]:")]),e._v(" The X position of the area between the Shoulders")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderCenterY [double]:")]),e._v(" The Y position of the area between the Shoulders")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderCenterZ [double]:")]),e._v(" The Z position of the area between the Shoulders")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderRightX [double]:")]),e._v(" The X position of the right Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderRightY [double]:")]),e._v(" The Y position of the right Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ShoulderRightZ [double]:")]),e._v(" The Z position of the right Shoulder")]),e._v(" "),t("li",[t("strong",[e._v("ElbowLeftX [double]:")]),e._v(" The X position of the left Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowLeftY [double]:")]),e._v(" The Y position of the left Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowLeftZ [double]:")]),e._v(" The Z position of the left Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowRightX [double]:")]),e._v(" The X position of the right Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowRightY [double]:")]),e._v(" The Y position of the right Elbow")]),e._v(" "),t("li",[t("strong",[e._v("ElbowRightZ [double]:")]),e._v(" The Z position of the right Elbow")]),e._v(" "),t("li",[t("strong",[e._v("WristLeftX [double]:")]),e._v(" The X position of the left Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristLeftY [double]:")]),e._v(" The Y position of the left Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristLeftZ [double]:")]),e._v(" The Z position of the left Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristRightX [double]:")]),e._v(" The X position of the right Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristRightY [double]:")]),e._v(" The Y position of the right Wrist")]),e._v(" "),t("li",[t("strong",[e._v("WristRightZ [double]:")]),e._v(" The Z position of the right Wrist")]),e._v(" "),t("li",[t("strong",[e._v("HandLeftX [double]:")]),e._v(" The X position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandLeftY [double]:")]),e._v(" The Y position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandLeftZ [double]:")]),e._v(" The Z position of the left Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandRightX [double]:")]),e._v(" The X position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandRightY [double]:")]),e._v(" The Y position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("HandRightZ [double]:")]),e._v(" The Z position of the right Hand")]),e._v(" "),t("li",[t("strong",[e._v("HeadX [double]:")]),e._v(" The X position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadY [double]:")]),e._v(" The Y position of the Head")]),e._v(" "),t("li",[t("strong",[e._v("HeadZ [double]:")]),e._v(" The Z position of the Head")])])])}),[],!1,null,null,null);t.default=n.exports},811:function(e,t,o){e.exports=o.p+"assets/img/kinectj4k.519d9582.png"}}]); \ No newline at end of file diff --git a/assets/js/264.a9126715.js b/assets/js/264.49cfa089.js similarity index 98% rename from assets/js/264.a9126715.js rename to assets/js/264.49cfa089.js index f40c77dae0..e50922b9a7 100644 --- a/assets/js/264.a9126715.js +++ b/assets/js/264.49cfa089.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[264],{1245:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"lightscore"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#lightscore"}},[t._v("#")]),t._v(" Lightscore")]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),t._v(" "),e("p",[t._v("The Lightscore plugin provides the data output of the 9DOF IMU and RGB-color sensor "),e("a",{attrs:{href:"https://allesoderlicht.com/Archive/projects/lightscores",target:"_blank",rel:"noopener noreferrer"}},[t._v("lightscores"),e("OutboundLink")],1),t._v(". Additionally to the raw data, calculated euler values of the orentation (picht, yaw, roll) are provided. Please note that this in an early version of the product and the installation process is thus a bit demanding …")]),t._v(" "),e("p",[e("img",{attrs:{src:r(816),alt:"Screenshot: Lightscore plugin",title:"Screenshot: Lightscore plugin"}})]),t._v(" "),e("p",[t._v("Lightscore plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This plugin requires a lightscroes BLE sensor module connected to the AsTeRICS platform, please contact "),e("a",{attrs:{href:"https://allesoderlicht.com/contact",target:"_blank",rel:"noopener noreferrer"}},[t._v("AllesOderLicht"),e("OutboundLink")],1),t._v(" for cooperation or details about the hardware.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("led1 [double]:")]),t._v(" light intensity for led1. [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("led2 [double]:")]),t._v(" light intensity for led2. [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("led3 [double]:")]),t._v(" light intensity for led3. [currently not used]")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("start:")]),t._v(" start data transfer [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("stop:")]),t._v(" stop data transfer [currently not used]")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("red [double]:")]),t._v(" Red light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("green [double]:")]),t._v(" Green light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("blue double]:")]),t._v(" Blue light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("white [double]:")]),t._v(" White / total light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("accX [double]:")]),t._v(" Acceleration X axis.")]),t._v(" "),e("li",[e("strong",[t._v("accY [double]:")]),t._v(" Acceleration Y axis.")]),t._v(" "),e("li",[e("strong",[t._v("accZ [double]:")]),t._v(" Acceleration Z axis.")]),t._v(" "),e("li",[e("strong",[t._v("magX [double]:")]),t._v(" Magnetometer X axis.")]),t._v(" "),e("li",[e("strong",[t._v("magY [double]:")]),t._v(" Magnetometer Y axis.")]),t._v(" "),e("li",[e("strong",[t._v("magZ [double]:")]),t._v(" Magnetometer Z axis.")]),t._v(" "),e("li",[e("strong",[t._v("gyrX [double]:")]),t._v(" Gyroscope X axis.")]),t._v(" "),e("li",[e("strong",[t._v("gyrY [double]:")]),t._v(" Gyroscope Y axis.")]),t._v(" "),e("li",[e("strong",[t._v("gyrZ [double]:")]),t._v(" Gyroscope Z axis.")]),t._v(" "),e("li",[e("strong",[t._v("yaw [double]:")]),t._v(" Yaw value in euler degrees.")]),t._v(" "),e("li",[e("strong",[t._v("pitch [double]:")]),t._v(" Pitch value in euler degrees.")]),t._v(" "),e("li",[e("strong",[t._v("roll [double]:")]),t._v(" Roll value in euler degrees.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("autostart [Boolean]:")]),t._v(" Start data transmission automatically after model start. [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("id [String]:")]),t._v(" ID number of the lichtscores sensor. [currently not used]")])])])}),[],!1,null,null,null);e.default=s.exports},816:function(t,e,r){t.exports=r.p+"assets/img/lightscore.c0b77e36.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[264],{1243:function(t,e,r){"use strict";r.r(e);var o=r(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"lightscore"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#lightscore"}},[t._v("#")]),t._v(" Lightscore")]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),t._v(" "),e("p",[t._v("The Lightscore plugin provides the data output of the 9DOF IMU and RGB-color sensor "),e("a",{attrs:{href:"https://allesoderlicht.com/Archive/projects/lightscores",target:"_blank",rel:"noopener noreferrer"}},[t._v("lightscores"),e("OutboundLink")],1),t._v(". Additionally to the raw data, calculated euler values of the orentation (picht, yaw, roll) are provided. Please note that this in an early version of the product and the installation process is thus a bit demanding …")]),t._v(" "),e("p",[e("img",{attrs:{src:r(816),alt:"Screenshot: Lightscore plugin",title:"Screenshot: Lightscore plugin"}})]),t._v(" "),e("p",[t._v("Lightscore plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This plugin requires a lightscroes BLE sensor module connected to the AsTeRICS platform, please contact "),e("a",{attrs:{href:"https://allesoderlicht.com/contact",target:"_blank",rel:"noopener noreferrer"}},[t._v("AllesOderLicht"),e("OutboundLink")],1),t._v(" for cooperation or details about the hardware.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("led1 [double]:")]),t._v(" light intensity for led1. [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("led2 [double]:")]),t._v(" light intensity for led2. [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("led3 [double]:")]),t._v(" light intensity for led3. [currently not used]")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("start:")]),t._v(" start data transfer [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("stop:")]),t._v(" stop data transfer [currently not used]")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("red [double]:")]),t._v(" Red light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("green [double]:")]),t._v(" Green light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("blue double]:")]),t._v(" Blue light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("white [double]:")]),t._v(" White / total light intensity.")]),t._v(" "),e("li",[e("strong",[t._v("accX [double]:")]),t._v(" Acceleration X axis.")]),t._v(" "),e("li",[e("strong",[t._v("accY [double]:")]),t._v(" Acceleration Y axis.")]),t._v(" "),e("li",[e("strong",[t._v("accZ [double]:")]),t._v(" Acceleration Z axis.")]),t._v(" "),e("li",[e("strong",[t._v("magX [double]:")]),t._v(" Magnetometer X axis.")]),t._v(" "),e("li",[e("strong",[t._v("magY [double]:")]),t._v(" Magnetometer Y axis.")]),t._v(" "),e("li",[e("strong",[t._v("magZ [double]:")]),t._v(" Magnetometer Z axis.")]),t._v(" "),e("li",[e("strong",[t._v("gyrX [double]:")]),t._v(" Gyroscope X axis.")]),t._v(" "),e("li",[e("strong",[t._v("gyrY [double]:")]),t._v(" Gyroscope Y axis.")]),t._v(" "),e("li",[e("strong",[t._v("gyrZ [double]:")]),t._v(" Gyroscope Z axis.")]),t._v(" "),e("li",[e("strong",[t._v("yaw [double]:")]),t._v(" Yaw value in euler degrees.")]),t._v(" "),e("li",[e("strong",[t._v("pitch [double]:")]),t._v(" Pitch value in euler degrees.")]),t._v(" "),e("li",[e("strong",[t._v("roll [double]:")]),t._v(" Roll value in euler degrees.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("autostart [Boolean]:")]),t._v(" Start data transmission automatically after model start. [currently not used]")]),t._v(" "),e("li",[e("strong",[t._v("id [String]:")]),t._v(" ID number of the lichtscores sensor. [currently not used]")])])])}),[],!1,null,null,null);e.default=s.exports},816:function(t,e,r){t.exports=r.p+"assets/img/lightscore.c0b77e36.jpg"}}]); \ No newline at end of file diff --git a/assets/js/265.529119f8.js b/assets/js/265.4b157215.js similarity index 95% rename from assets/js/265.529119f8.js rename to assets/js/265.4b157215.js index 560233548d..6c0bbecb74 100644 --- a/assets/js/265.529119f8.js +++ b/assets/js/265.4b157215.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[265],{1244:function(e,t,r){"use strict";r.r(t);var i=r(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"linereader"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linereader"}},[e._v("#")]),e._v(" LineReader")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This component reads lines from a text file and sends them to an output port. The line reading can be triggered by an incoming event.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(815),alt:"Screenshot: LineReader plugin",title:"Screenshot: LineReader plugin"}})]),e._v(" "),t("p",[e._v("ButtonGrid plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("skipLines (integer):")]),e._v(" When an integer number is received at this port, the component tries to skip this number of lines. The next line will be read from the resulting position.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actLine (string):")]),e._v(" A line of text which has been read from the file (as line termination character, the “enter”-key (\\n) is used.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("readNextLine:")]),e._v(" When this event is triggered, the component tries to read one line of text from the file and sends it to the output port.")]),e._v(" "),t("li",[t("strong",[e._v("resetToFirstLine:")]),e._v(" When this event is triggered, the internal file pointer is reset ot the beginning of the file.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("endOfFile:")]),e._v(" This event is fired when no line can be read from the file (file end or other error occurred)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("fileName [string]:")]),e._v(" The full path and file name of the text file to read. The path can be given as absolute path or relative to the ARE executable’s directory")])])])}),[],!1,null,null,null);t.default=n.exports},815:function(e,t,r){e.exports=r.p+"assets/img/linereader.11a07801.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[265],{1244:function(e,t,r){"use strict";r.r(t);var i=r(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"linereader"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linereader"}},[e._v("#")]),e._v(" LineReader")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: File System)")]),e._v(" "),t("p",[e._v("This component reads lines from a text file and sends them to an output port. The line reading can be triggered by an incoming event.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(817),alt:"Screenshot: LineReader plugin",title:"Screenshot: LineReader plugin"}})]),e._v(" "),t("p",[e._v("ButtonGrid plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("skipLines (integer):")]),e._v(" When an integer number is received at this port, the component tries to skip this number of lines. The next line will be read from the resulting position.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actLine (string):")]),e._v(" A line of text which has been read from the file (as line termination character, the “enter”-key (\\n) is used.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("readNextLine:")]),e._v(" When this event is triggered, the component tries to read one line of text from the file and sends it to the output port.")]),e._v(" "),t("li",[t("strong",[e._v("resetToFirstLine:")]),e._v(" When this event is triggered, the internal file pointer is reset ot the beginning of the file.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("endOfFile:")]),e._v(" This event is fired when no line can be read from the file (file end or other error occurred)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("fileName [string]:")]),e._v(" The full path and file name of the text file to read. The path can be given as absolute path or relative to the ARE executable’s directory")])])])}),[],!1,null,null,null);t.default=n.exports},817:function(e,t,r){e.exports=r.p+"assets/img/linereader.11a07801.jpg"}}]); \ No newline at end of file diff --git a/assets/js/266.afe8cf81.js b/assets/js/266.234b9c2e.js similarity index 97% rename from assets/js/266.afe8cf81.js rename to assets/js/266.234b9c2e.js index fb3bdee806..bc476f12db 100644 --- a/assets/js/266.afe8cf81.js +++ b/assets/js/266.234b9c2e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[266],{1248:function(e,t,s){"use strict";s.r(t);var i=s(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"lipmouseir"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#lipmouseir"}},[e._v("#")]),e._v(" LipmouseIR")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides signals from the Lipmouse module, which allows computer control via a mouthpiece. The user can create input signals with 3 degrees of freedom by interacting with the mouthpiece: left/right, up/down and sip/puff. The horizontal and vertical movements are measured via force sensors inside the lipmouse module. The sip/puff actions are measured via a pressure sensor. The lipmouse can be adjusted to very low force that it can be used by persons with severly reduced motor capabilites (e.g. late stage musculuar dystrophy or quadraplegia up to C1/C2 lesions). Additionally the Lipmouse has an infrared interface which enables it to control electronic devices."),t("br"),e._v("\nThrough a receiver it is possible to record commands from existing remote controls and store the codes to a database. When needed, the IR signal is reconstructed and transmitted to the device to be controlled.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(820),alt:"Screenshot: LipmouseIR plugin",title:"Screenshot: LipmouseIR plugin"}})]),e._v(" "),t("p",[e._v("The LipmouseIR sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The LipmouseIR module must be connected to a USB port. Firmware for the lipmouseIR sensor can be found in the folder CIMs/Lipmouse_CIM. The free “teensy loader” tool can be used to update the firmware of the lipmouseIR module. Detailed design documentation will be provided in the future.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("DeviceType [string]:")]),e._v(" Type of the device to be controlled via IR (e.g.: TV)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceName [string]:")]),e._v(" Name of the device to be controlled via IR (e.g.: Sony, Samsung, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceFunction [string]:")]),e._v(" Name of function of the device (e.g.: On, Off, VolumeUp, etc.)")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("X [integer]:")]),e._v(" the force applied to the Lipmouse mouthpiece in x-direction")]),e._v(" "),t("li",[t("strong",[e._v("Y [integer]:")]),e._v(" the force applied to the Lipmouse mouthpiece in y-direction")]),e._v(" "),t("li",[t("strong",[e._v("pressure [integer]:")]),e._v(" the pressure value applied to the sip/puff - sensor")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("SendIRCode:")]),e._v(" Send an IR Code to the Lipmouse")]),e._v(" "),t("li",[t("strong",[e._v("RecordIRCode:")]),e._v(" Record an IR Code through the Lipmouse")]),e._v(" "),t("li",[t("strong",[e._v("calibration:")]),e._v(" if this event is received, the x/y force value is set to 0 (removing any drift of the sensor values)")]),e._v(" "),t("li",[t("strong",[e._v("setLed1:")]),e._v(" if this event is received, Led1 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed1:")]),e._v(" if this event is received, Led1 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed2:")]),e._v(" if this event is received, Led2 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed2:")]),e._v(" if this event is received, Led2 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed3:")]),e._v(" if this event is received, Led3 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed3:")]),e._v(" if this event is received, Led3 will be turned off")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("StartRecord:")]),e._v(" will be triggered when Lipmouse is recording")]),e._v(" "),t("li",[t("strong",[e._v("StopRecord:")]),e._v(" will be triggered when Lipmouse has finished recording")]),e._v(" "),t("li",[t("strong",[e._v("sip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increses back before the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longSip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increases back after the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("sipStart:")]),e._v(" will be triggered at the moment when pressure decreases under the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("sipEnd:")]),e._v(" will be triggered at the moment when pressure increases above the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("puff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back before the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longPuff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back after the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("puffStart:")]),e._v(" will be triggered at the moment when pressure increases above the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("puffEnd:")]),e._v(" will be triggered at the moment when pressure decreases under the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("button1Pressed:")]),e._v(" will be triggered when button1 of the lipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button1Released:")]),e._v(" will be triggered when button1 of the lipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button2Pressed:")]),e._v(" will be triggered when button2 of the lipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button2Released:")]),e._v(" will be triggered when button2 of the lipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button3Pressed:")]),e._v(" will be triggered when button3 of the lipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button3Released:")]),e._v(" will be triggered when button3 of the lipmouse is released")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("uniqueID [integer]:")]),e._v(" a unique identifier, useful if more then one lipmouse modules are used (dynamic property).")]),e._v(" "),t("li",[t("strong",[e._v("periodicADCUpdate [integer]:")]),e._v(" the update rate for force and pressure values in milliseconds.")]),e._v(" "),t("li",[t("strong",[e._v("sipThreshold [integer]:")]),e._v(" threshold value for sip actions.")]),e._v(" "),t("li",[t("strong",[e._v("sipTime [integer]:")]),e._v(" threshold time for sip/longSip events.")]),e._v(" "),t("li",[t("strong",[e._v("puffThreshold [integer]:")]),e._v(" threshold value for puff actions.")]),e._v(" "),t("li",[t("strong",[e._v("puffTime [integer]:")]),e._v(" threshold time for puff/longPuff events.")]),e._v(" "),t("li",[t("strong",[e._v("IRCodeFilePath [string]:")]),e._v(" Filepath to the file, where the IR Codes are stored.")])]),e._v(" "),t("h2",{attrs:{id:"ir-code-database"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-code-database"}},[e._v("#")]),e._v(" IR Code Database")]),e._v(" "),t("p",[e._v("The database which contains the IR codes as well as the information about the type and name of the device and the specific function is a comma separated value file. The first value is the type, the second one is the name and the third one is the function. The following 512 values are the IR code. This database is automatically generated and maintained if new IR codes are recorded with the Lipmouse with IR functions.")])])}),[],!1,null,null,null);t.default=r.exports},820:function(e,t,s){e.exports=s.p+"assets/img/lipmouseir.135b0f05.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[266],{1249:function(e,t,s){"use strict";s.r(t);var i=s(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"lipmouseir"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#lipmouseir"}},[e._v("#")]),e._v(" LipmouseIR")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides signals from the Lipmouse module, which allows computer control via a mouthpiece. The user can create input signals with 3 degrees of freedom by interacting with the mouthpiece: left/right, up/down and sip/puff. The horizontal and vertical movements are measured via force sensors inside the lipmouse module. The sip/puff actions are measured via a pressure sensor. The lipmouse can be adjusted to very low force that it can be used by persons with severly reduced motor capabilites (e.g. late stage musculuar dystrophy or quadraplegia up to C1/C2 lesions). Additionally the Lipmouse has an infrared interface which enables it to control electronic devices."),t("br"),e._v("\nThrough a receiver it is possible to record commands from existing remote controls and store the codes to a database. When needed, the IR signal is reconstructed and transmitted to the device to be controlled.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(824),alt:"Screenshot: LipmouseIR plugin",title:"Screenshot: LipmouseIR plugin"}})]),e._v(" "),t("p",[e._v("The LipmouseIR sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The LipmouseIR module must be connected to a USB port. Firmware for the lipmouseIR sensor can be found in the folder CIMs/Lipmouse_CIM. The free “teensy loader” tool can be used to update the firmware of the lipmouseIR module. Detailed design documentation will be provided in the future.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("DeviceType [string]:")]),e._v(" Type of the device to be controlled via IR (e.g.: TV)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceName [string]:")]),e._v(" Name of the device to be controlled via IR (e.g.: Sony, Samsung, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("DeviceFunction [string]:")]),e._v(" Name of function of the device (e.g.: On, Off, VolumeUp, etc.)")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("X [integer]:")]),e._v(" the force applied to the Lipmouse mouthpiece in x-direction")]),e._v(" "),t("li",[t("strong",[e._v("Y [integer]:")]),e._v(" the force applied to the Lipmouse mouthpiece in y-direction")]),e._v(" "),t("li",[t("strong",[e._v("pressure [integer]:")]),e._v(" the pressure value applied to the sip/puff - sensor")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("SendIRCode:")]),e._v(" Send an IR Code to the Lipmouse")]),e._v(" "),t("li",[t("strong",[e._v("RecordIRCode:")]),e._v(" Record an IR Code through the Lipmouse")]),e._v(" "),t("li",[t("strong",[e._v("calibration:")]),e._v(" if this event is received, the x/y force value is set to 0 (removing any drift of the sensor values)")]),e._v(" "),t("li",[t("strong",[e._v("setLed1:")]),e._v(" if this event is received, Led1 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed1:")]),e._v(" if this event is received, Led1 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed2:")]),e._v(" if this event is received, Led2 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed2:")]),e._v(" if this event is received, Led2 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed3:")]),e._v(" if this event is received, Led3 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed3:")]),e._v(" if this event is received, Led3 will be turned off")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("StartRecord:")]),e._v(" will be triggered when Lipmouse is recording")]),e._v(" "),t("li",[t("strong",[e._v("StopRecord:")]),e._v(" will be triggered when Lipmouse has finished recording")]),e._v(" "),t("li",[t("strong",[e._v("sip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increses back before the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longSip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increases back after the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("sipStart:")]),e._v(" will be triggered at the moment when pressure decreases under the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("sipEnd:")]),e._v(" will be triggered at the moment when pressure increases above the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("puff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back before the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longPuff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back after the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("puffStart:")]),e._v(" will be triggered at the moment when pressure increases above the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("puffEnd:")]),e._v(" will be triggered at the moment when pressure decreases under the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("button1Pressed:")]),e._v(" will be triggered when button1 of the lipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button1Released:")]),e._v(" will be triggered when button1 of the lipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button2Pressed:")]),e._v(" will be triggered when button2 of the lipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button2Released:")]),e._v(" will be triggered when button2 of the lipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button3Pressed:")]),e._v(" will be triggered when button3 of the lipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button3Released:")]),e._v(" will be triggered when button3 of the lipmouse is released")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("uniqueID [integer]:")]),e._v(" a unique identifier, useful if more then one lipmouse modules are used (dynamic property).")]),e._v(" "),t("li",[t("strong",[e._v("periodicADCUpdate [integer]:")]),e._v(" the update rate for force and pressure values in milliseconds.")]),e._v(" "),t("li",[t("strong",[e._v("sipThreshold [integer]:")]),e._v(" threshold value for sip actions.")]),e._v(" "),t("li",[t("strong",[e._v("sipTime [integer]:")]),e._v(" threshold time for sip/longSip events.")]),e._v(" "),t("li",[t("strong",[e._v("puffThreshold [integer]:")]),e._v(" threshold value for puff actions.")]),e._v(" "),t("li",[t("strong",[e._v("puffTime [integer]:")]),e._v(" threshold time for puff/longPuff events.")]),e._v(" "),t("li",[t("strong",[e._v("IRCodeFilePath [string]:")]),e._v(" Filepath to the file, where the IR Codes are stored.")])]),e._v(" "),t("h2",{attrs:{id:"ir-code-database"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-code-database"}},[e._v("#")]),e._v(" IR Code Database")]),e._v(" "),t("p",[e._v("The database which contains the IR codes as well as the information about the type and name of the device and the specific function is a comma separated value file. The first value is the type, the second one is the name and the third one is the function. The following 512 values are the IR code. This database is automatically generated and maintained if new IR codes are recorded with the Lipmouse with IR functions.")])])}),[],!1,null,null,null);t.default=r.exports},824:function(e,t,s){e.exports=s.p+"assets/img/lipmouseir.135b0f05.png"}}]); \ No newline at end of file diff --git a/assets/js/267.fc91ed88.js b/assets/js/267.64a8ede7.js similarity index 96% rename from assets/js/267.fc91ed88.js rename to assets/js/267.64a8ede7.js index b918dd670f..e1544837b7 100644 --- a/assets/js/267.fc91ed88.js +++ b/assets/js/267.64a8ede7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[267],{1249:function(e,t,s){"use strict";s.r(t);var i=s(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"micgpi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#micgpi"}},[e._v("#")]),e._v(" MicGPI")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("This component reads the input from the microphone or line-in of a computer’s sound device. The averaged amplitude / sound pressure level and the dominant frequency can be calculated and used for control purposes. It is highly recommended to use a headset microphone to avoid unwanted detections from ambient noise. The sampling rate can be set (300-44100 Hz), the other device properties are mono (1 channel) and 8 bit resoltion.")]),e._v(" "),t("p",[e._v("It is possible to attach a momentary switch via standard 3.5mm jack plug to the mic/line input of the soundcard (or a cheap USB soundcard) and use this component for detection of switch presses.")]),e._v(" "),t("p",[t("strong",[e._v("Disclaimer:")]),e._v(" Attaching a switch to mic/line input does not work with all sound cards. Although we are not aware of a permanent damage to a sound card, you do this on your own risk !")]),e._v(" "),t("p",[t("img",{attrs:{src:s(821),alt:"Screenshot: MicGPI plugin",title:"Screenshot: MicGPI plugin"}})]),e._v(" "),t("p",[e._v("MicGPI plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A internal or external sound device with mic or line input is required. If the component is utilized as switch input, a momentary switch must be attached to the line-in or microphone input jack. No additional input circuit is required. Any sort of filtering of the signal like background noise cancelling must be disabled.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("thresholdLow [int]:")]),e._v(" This input port sets the low threshold below a signal must move that a inLow event gets triggered.")]),e._v(" "),t("li",[t("strong",[e._v("thresholdHigh [int]:")]),e._v(" This input port sets the high threshold above a signal must move that a inHigh event gets triggered.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pressure [double]:")]),e._v(" This port outputs the sound amplitude or pressure level of the mic input signal (the values depend on the selected calculation mode).")]),e._v(" "),t("li",[t("strong",[e._v("frequency [integer]:")]),e._v(" In case frequency calculation is enabled, this port outputs the dominant frequency of the spectrum (in Hz).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("inLow:")]),e._v(" This event is fired if the calculated level goes below the low threshold (can be used to detect switch press/release or sound pressure level).")]),e._v(" "),t("li",[t("strong",[e._v("inHigh:")]),e._v(" This event is fired if the calculated level goes above the high threshold (can be used to detect switch press/release or sound pressure level).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("samplingRate [int]:")]),e._v(" Defines the sampling rate in Hz (allowed values are in the rang of 300 - 44100 Hz)")]),e._v(" "),t("li",[t("strong",[e._v("sampleSize [int]:")]),e._v(" Defines the size of the sample buffer. Must be a power of 2. The values 32/64/128/256/512/1024/2048 can be selected from a combobox. This buffer size determines the calculation-interval on the output ports.")]),e._v(" "),t("li",[t("strong",[e._v("mode [int, combobox selection]:")]),e._v(" Defines the way how the output signal (which is also compared to the threshold values) is calculated. The calculation is applied on a block of samples of the selected size. Available options are: average sample values, average absolute sample values, min value, max value and max absolute value")]),e._v(" "),t("li",[t("strong",[e._v("thresholdLow [int]:")]),e._v(" This property sets the low threshold below a signal must move that a inLow event gets triggered.")]),e._v(" "),t("li",[t("strong",[e._v("thresholdHigh [int]:")]),e._v(" This property sets the high threshold above a signal must move that a inHigh event gets triggered.")]),e._v(" "),t("li",[t("strong",[e._v("noiseLevel [double]:")]),e._v(" This property defines a minimum level fo a valid sound signal. All noise which is below this level will be attenauted to avoid unwanted detections.")]),e._v(" "),t("li",[t("strong",[e._v("calculateFrequency [boolean]:")]),e._v(" If true, an FFT will be performed to calculate the frequency spectrum and output the dominant frequency to the associated port.")]),e._v(" "),t("li",[t("strong",[e._v("printSpectrum [boolean]:")]),e._v(" If this property is set to true and frequency calculation is enabled, the FFT spectrum will be printed to the console (only reasonable in debug mode).")]),e._v(" "),t("li",[t("strong",[e._v("captureDevice: [string]:")]),e._v(" This property defines the sound card from which the audio samples should be analysed. (dynamic property, values are suggested when ARE is in synced state)")])])])}),[],!1,null,null,null);t.default=o.exports},821:function(e,t,s){e.exports=s.p+"assets/img/micgpi.c3fe15a9.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[267],{1246:function(e,t,s){"use strict";s.r(t);var i=s(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"micgpi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#micgpi"}},[e._v("#")]),e._v(" MicGPI")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("This component reads the input from the microphone or line-in of a computer’s sound device. The averaged amplitude / sound pressure level and the dominant frequency can be calculated and used for control purposes. It is highly recommended to use a headset microphone to avoid unwanted detections from ambient noise. The sampling rate can be set (300-44100 Hz), the other device properties are mono (1 channel) and 8 bit resoltion.")]),e._v(" "),t("p",[e._v("It is possible to attach a momentary switch via standard 3.5mm jack plug to the mic/line input of the soundcard (or a cheap USB soundcard) and use this component for detection of switch presses.")]),e._v(" "),t("p",[t("strong",[e._v("Disclaimer:")]),e._v(" Attaching a switch to mic/line input does not work with all sound cards. Although we are not aware of a permanent damage to a sound card, you do this on your own risk !")]),e._v(" "),t("p",[t("img",{attrs:{src:s(820),alt:"Screenshot: MicGPI plugin",title:"Screenshot: MicGPI plugin"}})]),e._v(" "),t("p",[e._v("MicGPI plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A internal or external sound device with mic or line input is required. If the component is utilized as switch input, a momentary switch must be attached to the line-in or microphone input jack. No additional input circuit is required. Any sort of filtering of the signal like background noise cancelling must be disabled.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("thresholdLow [int]:")]),e._v(" This input port sets the low threshold below a signal must move that a inLow event gets triggered.")]),e._v(" "),t("li",[t("strong",[e._v("thresholdHigh [int]:")]),e._v(" This input port sets the high threshold above a signal must move that a inHigh event gets triggered.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pressure [double]:")]),e._v(" This port outputs the sound amplitude or pressure level of the mic input signal (the values depend on the selected calculation mode).")]),e._v(" "),t("li",[t("strong",[e._v("frequency [integer]:")]),e._v(" In case frequency calculation is enabled, this port outputs the dominant frequency of the spectrum (in Hz).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("inLow:")]),e._v(" This event is fired if the calculated level goes below the low threshold (can be used to detect switch press/release or sound pressure level).")]),e._v(" "),t("li",[t("strong",[e._v("inHigh:")]),e._v(" This event is fired if the calculated level goes above the high threshold (can be used to detect switch press/release or sound pressure level).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("samplingRate [int]:")]),e._v(" Defines the sampling rate in Hz (allowed values are in the rang of 300 - 44100 Hz)")]),e._v(" "),t("li",[t("strong",[e._v("sampleSize [int]:")]),e._v(" Defines the size of the sample buffer. Must be a power of 2. The values 32/64/128/256/512/1024/2048 can be selected from a combobox. This buffer size determines the calculation-interval on the output ports.")]),e._v(" "),t("li",[t("strong",[e._v("mode [int, combobox selection]:")]),e._v(" Defines the way how the output signal (which is also compared to the threshold values) is calculated. The calculation is applied on a block of samples of the selected size. Available options are: average sample values, average absolute sample values, min value, max value and max absolute value")]),e._v(" "),t("li",[t("strong",[e._v("thresholdLow [int]:")]),e._v(" This property sets the low threshold below a signal must move that a inLow event gets triggered.")]),e._v(" "),t("li",[t("strong",[e._v("thresholdHigh [int]:")]),e._v(" This property sets the high threshold above a signal must move that a inHigh event gets triggered.")]),e._v(" "),t("li",[t("strong",[e._v("noiseLevel [double]:")]),e._v(" This property defines a minimum level fo a valid sound signal. All noise which is below this level will be attenauted to avoid unwanted detections.")]),e._v(" "),t("li",[t("strong",[e._v("calculateFrequency [boolean]:")]),e._v(" If true, an FFT will be performed to calculate the frequency spectrum and output the dominant frequency to the associated port.")]),e._v(" "),t("li",[t("strong",[e._v("printSpectrum [boolean]:")]),e._v(" If this property is set to true and frequency calculation is enabled, the FFT spectrum will be printed to the console (only reasonable in debug mode).")]),e._v(" "),t("li",[t("strong",[e._v("captureDevice: [string]:")]),e._v(" This property defines the sound card from which the audio samples should be analysed. (dynamic property, values are suggested when ARE is in synced state)")])])])}),[],!1,null,null,null);t.default=o.exports},820:function(e,t,s){e.exports=s.p+"assets/img/micgpi.c3fe15a9.png"}}]); \ No newline at end of file diff --git a/assets/js/268.d465fd5d.js b/assets/js/268.dc466a9c.js similarity index 96% rename from assets/js/268.d465fd5d.js rename to assets/js/268.dc466a9c.js index 2c1c0f510f..63c2c2cfd2 100644 --- a/assets/js/268.d465fd5d.js +++ b/assets/js/268.dc466a9c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[268],{1247:function(e,t,s){"use strict";s.r(t);var o=s(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),e._v(" "),t("p",[e._v("This component provides access to mouse input activities of connected a standard mouse, like mouse x/y movement or button press/release activities. Mouse wheel and third mouse button are supported.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(819),alt:"Screenshot: MouseCapture plugin",title:"Screenshot: MouseCapture plugin"}})]),e._v(" "),t("p",[e._v("MouseCapture plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A mouse or mouse-equivalent must be connected to the computer/personal platform.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [integer]:")]),e._v(" This port provides current absolute mouse X-position or relative mouse X-movement as integer value (depending on the mode of operation).")]),e._v(" "),t("li",[t("strong",[e._v("mouseY [integer]:")]),e._v(" This port provides current absolute mouse Y-position or relative mouse Y-movement as integer value (depending on the mode of operation).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blockEvents:")]),e._v(" After this incoming event no mouse activities will be routed to the operating system.")]),e._v(" "),t("li",[t("strong",[e._v("forwardEvents:")]),e._v(" After this incoming event all mouse activities will also be forwarded to the operating system.")]),e._v(" "),t("li",[t("strong",[e._v("toggleBlock:")]),e._v(" An incoming event toggles the current blockEvents. If the mouse activities were forwarded they will now be kept and vica versa.")]),e._v(" "),t("li",[t("strong",[e._v("pollMousePosition:")]),e._v(" Retrieves the current mouse position (x/y) values and sends them to the output ports. Useful for tracking the mouse if it is moved programmatically.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftButtonPressed:")]),e._v(" This port fires an event as the left mouse button is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("leftButtonReleased:")]),e._v(" This port fires an event as the left mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("rightButtonPressed:")]),e._v(" This port fires an event as the right mouse button is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("rightButtonReleased:")]),e._v(" This port fires an event as the right mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("middleButtonPressed:")]),e._v(" This port fires an event as the middle mouse button is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("middleButtonReleased:")]),e._v(" This port fires an event as the middle mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" This port fires an event as the mouse wheel is turned one step away from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" This port fires an event as the mouse wheel is turned one step towards the user.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blockEvents [boolean]:")]),e._v(" This property defines the mode of operation of the mousehook component. If this property is set to true, no mouse activities will be routed to the operating system - they will not be processed by other applications, the mouse cursor will not move and no clicks will be actually performed by the operation system. This can be useful if the mouse activity shall be transferred e.g. from the AsTeRICS personal platform to another system (via the HID actuator) or the mouse should be trapped to control a particular GUI or menu structure. In this case, the mouse component outputs only relative mouse movements in X and Y axis at the corresponding output ports. If the property value is set to false, mouse activities will be passed back to the operating system and will be processed as usual. In this case, the mousehook component provides the absolute mouse positions at the component?s output ports.")])])])}),[],!1,null,null,null);t.default=r.exports},819:function(e,t,s){e.exports=s.p+"assets/img/mousecapture.9a78212a.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[268],{1253:function(e,t,s){"use strict";s.r(t);var o=s(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),e._v(" "),t("p",[e._v("This component provides access to mouse input activities of connected a standard mouse, like mouse x/y movement or button press/release activities. Mouse wheel and third mouse button are supported.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(829),alt:"Screenshot: MouseCapture plugin",title:"Screenshot: MouseCapture plugin"}})]),e._v(" "),t("p",[e._v("MouseCapture plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A mouse or mouse-equivalent must be connected to the computer/personal platform.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [integer]:")]),e._v(" This port provides current absolute mouse X-position or relative mouse X-movement as integer value (depending on the mode of operation).")]),e._v(" "),t("li",[t("strong",[e._v("mouseY [integer]:")]),e._v(" This port provides current absolute mouse Y-position or relative mouse Y-movement as integer value (depending on the mode of operation).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blockEvents:")]),e._v(" After this incoming event no mouse activities will be routed to the operating system.")]),e._v(" "),t("li",[t("strong",[e._v("forwardEvents:")]),e._v(" After this incoming event all mouse activities will also be forwarded to the operating system.")]),e._v(" "),t("li",[t("strong",[e._v("toggleBlock:")]),e._v(" An incoming event toggles the current blockEvents. If the mouse activities were forwarded they will now be kept and vica versa.")]),e._v(" "),t("li",[t("strong",[e._v("pollMousePosition:")]),e._v(" Retrieves the current mouse position (x/y) values and sends them to the output ports. Useful for tracking the mouse if it is moved programmatically.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftButtonPressed:")]),e._v(" This port fires an event as the left mouse button is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("leftButtonReleased:")]),e._v(" This port fires an event as the left mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("rightButtonPressed:")]),e._v(" This port fires an event as the right mouse button is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("rightButtonReleased:")]),e._v(" This port fires an event as the right mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("middleButtonPressed:")]),e._v(" This port fires an event as the middle mouse button is pressed.")]),e._v(" "),t("li",[t("strong",[e._v("middleButtonReleased:")]),e._v(" This port fires an event as the middle mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" This port fires an event as the mouse wheel is turned one step away from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" This port fires an event as the mouse wheel is turned one step towards the user.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blockEvents [boolean]:")]),e._v(" This property defines the mode of operation of the mousehook component. If this property is set to true, no mouse activities will be routed to the operating system - they will not be processed by other applications, the mouse cursor will not move and no clicks will be actually performed by the operation system. This can be useful if the mouse activity shall be transferred e.g. from the AsTeRICS personal platform to another system (via the HID actuator) or the mouse should be trapped to control a particular GUI or menu structure. In this case, the mouse component outputs only relative mouse movements in X and Y axis at the corresponding output ports. If the property value is set to false, mouse activities will be passed back to the operating system and will be processed as usual. In this case, the mousehook component provides the absolute mouse positions at the component?s output ports.")])])])}),[],!1,null,null,null);t.default=r.exports},829:function(e,t,s){e.exports=s.p+"assets/img/mousecapture.9a78212a.jpg"}}]); \ No newline at end of file diff --git a/assets/js/269.f4411432.js b/assets/js/269.e42dda26.js similarity index 92% rename from assets/js/269.f4411432.js rename to assets/js/269.e42dda26.js index df70fda945..888c7a3824 100644 --- a/assets/js/269.f4411432.js +++ b/assets/js/269.e42dda26.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[269],{1250:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"openbci"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openbci"}},[e._v("#")]),e._v(" OpenBCI")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component provides an interface to bioelectric amplifiers which are compatible to the openBCI packet fromat. For more information please refer to the "),t("a",{attrs:{href:"http://www.openbci.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenBCI"),t("OutboundLink")],1),e._v(" website. The COM Port number where the device is connected must be specified in the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(822),alt:"Screenshot: OpenBCI plugin",title:"Screenshot: OpenBCI plugin"}})]),e._v(" "),t("p",[e._v("OpenBCI plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an Open BCI compatible device connected to a COM Port, which sends packet protocol for channel data.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel8 [integer]:")]),e._v(" Each output corresponds to the sampled data from its corresponding channel. A calibration procedure to obtain the factor for calculation of microvolts must be performed with the amplifier device.")]),e._v(" "),t("li",[t("strong",[e._v("AccX, AccY, AccZ [integer]:")]),e._v(" The current values of the 3 axis of the acceleration sensor.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [String]:")]),e._v(" The name of the COM port, for example COM2 or COM17.")]),e._v(" "),t("li",[t("strong",[e._v("Baudrate [Integer]:")]),e._v(" The baud rate for the transmission. Standard is 115200.")])])])}),[],!1,null,null,null);t.default=n.exports},822:function(e,t,r){e.exports=r.p+"assets/img/openbci.36c1b739.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[269],{1248:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"openbci"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openbci"}},[e._v("#")]),e._v(" OpenBCI")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component provides an interface to bioelectric amplifiers which are compatible to the openBCI packet fromat. For more information please refer to the "),t("a",{attrs:{href:"http://www.openbci.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenBCI"),t("OutboundLink")],1),e._v(" website. The COM Port number where the device is connected must be specified in the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(823),alt:"Screenshot: OpenBCI plugin",title:"Screenshot: OpenBCI plugin"}})]),e._v(" "),t("p",[e._v("OpenBCI plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an Open BCI compatible device connected to a COM Port, which sends packet protocol for channel data.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel8 [integer]:")]),e._v(" Each output corresponds to the sampled data from its corresponding channel. A calibration procedure to obtain the factor for calculation of microvolts must be performed with the amplifier device.")]),e._v(" "),t("li",[t("strong",[e._v("AccX, AccY, AccZ [integer]:")]),e._v(" The current values of the 3 axis of the acceleration sensor.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [String]:")]),e._v(" The name of the COM port, for example COM2 or COM17.")]),e._v(" "),t("li",[t("strong",[e._v("Baudrate [Integer]:")]),e._v(" The baud rate for the transmission. Standard is 115200.")])])])}),[],!1,null,null,null);t.default=n.exports},823:function(e,t,r){e.exports=r.p+"assets/img/openbci.36c1b739.jpg"}}]); \ No newline at end of file diff --git a/assets/js/27.730f0b1c.js b/assets/js/27.f2c190b1.js similarity index 90% rename from assets/js/27.730f0b1c.js rename to assets/js/27.f2c190b1.js index 893a5203a6..5f1bbf9723 100644 --- a/assets/js/27.730f0b1c.js +++ b/assets/js/27.f2c190b1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{1041:function(e,t,n){"use strict";n.r(t);var s=n(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"keyboard-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-control"}},[e._v("#")]),e._v(" Keyboard Control")]),e._v(" "),t("p",[e._v("The WebACS is fully accessible via keyboard. The following sections describe the usage in the different parts of the ACS.")]),e._v(" "),t("h2",{attrs:{id:"shortcuts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shortcuts"}},[e._v("#")]),e._v(" Shortcuts")]),e._v(" "),t("p",[e._v("The shortcut menu right at the top of the screen (see picture below) gives the user the chance to jump directly to one of the subsections of the page, thus making keyboard navigation much faster.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(488),alt:"Screenshot: Shortcut menu",title:"Screenshot: Shortcut menu"}})]),e._v(" "),t("p",[e._v("WebACS shortcut menu")]),e._v(" "),t("h2",{attrs:{id:"menu"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#menu"}},[e._v("#")]),e._v(" Menu")]),e._v(" "),t("p",[e._v("After jumping to the menu with "),t("em",[e._v("CTRL-0")]),e._v(", the menu tabs can be switched by using the "),t("em",[e._v("arrow")]),e._v(" keys. Once the desired tab is active, the menu items can be reached via the "),t("em",[e._v("Tab")]),e._v(" key. When one of the component menus in the Components tab is selected, it can also be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(489),alt:"Screenshot: The menu after opening a components submenu",title:"Screenshot: The menu after opening a components submenu"}})]),e._v(" "),t("p",[e._v("The menu after opening a components submenu")]),e._v(" "),t("h2",{attrs:{id:"model-panel"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-panel"}},[e._v("#")]),e._v(" Model Panel")]),e._v(" "),t("p",[e._v("After jumping to the model panel with "),t("em",[e._v("CTRL-1")]),e._v(", the "),t("em",[e._v("arrow")]),e._v(" keys can be used to switch between the models.")]),e._v(" "),t("h2",{attrs:{id:"model-designer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-designer"}},[e._v("#")]),e._v(" Model Designer")]),e._v(" "),t("p",[e._v("After jumping to the model designer with "),t("em",[e._v("CTRL-2")]),e._v(", the user can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Now the components can be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys or moved by using "),t("em",[e._v("Shift-Arrow")]),e._v("."),t("br"),e._v("\nPressing the "),t("em",[e._v("Space")]),e._v(" bar activates port mode, thus enabling the user to navigate the ports of the selected component via the "),t("em",[e._v("arrow")]),e._v(" keys. Pressing "),t("em",[e._v("Shift-Space")]),e._v(" on an output port starts drawing a new channel. The user must then navigate to a matching input port on another component and press "),t("em",[e._v("Shift-Space")]),e._v(" there to complete the channel. "),t("em",[e._v("Esc")]),e._v(" ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the "),t("em",[e._v("Space")]),e._v(" bar again. Now the channels connected to the selected port can be navigated using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends channel mode.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(490),alt:"Screenshot: The Model Designer in port mode",title:"Screenshot: The Model Designer in port mode"}})]),e._v(" "),t("p",[e._v("The Model Designer in port mode")]),e._v(" "),t("h2",{attrs:{id:"gui-designer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gui-designer"}},[e._v("#")]),e._v(" GUI Designer")]),e._v(" "),t("p",[e._v("After jumping to the GUI Designer with "),t("em",[e._v("CTRL-3")]),e._v(", the user can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Then the user can navigate the elements by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Shift-arrow")]),e._v(" keys moves the selected element, "),t("em",[e._v("Alt-arrow")]),e._v(" keys resizes the selected element.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(491),alt:"Screenshot: The GUI Designer in keyboard mode",title:"Screenshot: The GUI Designer in keyboard mode"}})]),e._v(" "),t("p",[e._v("The GUI Designer in keyboard mode")]),e._v(" "),t("h2",{attrs:{id:"list-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#list-view"}},[e._v("#")]),e._v(" List View")]),e._v(" "),t("p",[e._v("After jumping to the List View with "),t("em",[e._v("CTRL-4")]),e._v(", the user can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Then the user can navigate the elements by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Space")]),e._v(" activates port mode, so that the ports of the selected components can be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the "),t("em",[e._v("Space")]),e._v(" bar again. Now the channels connected to the selected port can be navigated using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends channel mode.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(492),alt:"Screenshot: List View in channel mode",title:"Screenshot: List View in channel mode"}})]),e._v(" "),t("p",[e._v("List View in channel mode")]),e._v(" "),t("h2",{attrs:{id:"property-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#property-editor"}},[e._v("#")]),e._v(" Property Editor")]),e._v(" "),t("p",[e._v("After jumping to the Property Editor with "),t("em",[e._v("CTRL-5")]),e._v(", the user can switch the tabs of the Property Editor by using the "),t("em",[e._v("arrow")]),e._v(" keys. All other elements can be reached by using the "),t("em",[e._v("Tab")]),e._v(" key in the same way as on any website.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(493),alt:"Screenshot: Property Editor with open dropdown",title:"Screenshot: Property Editor with open dropdown"}})]),e._v(" "),t("p",[e._v("Property Editor with open dropdown")])])}),[],!1,null,null,null);t.default=r.exports},488:function(e,t){e.exports="data:image/png;base64,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"},489:function(e,t,n){e.exports=n.p+"assets/img/menu_open_components.7be82a1c.png"},490:function(e,t,n){e.exports=n.p+"assets/img/model_designer_in_port_mode.b0d664ff.png"},491:function(e,t,n){e.exports=n.p+"assets/img/gui_designer_in_keyboard_mode.9e46d348.png"},492:function(e,t,n){e.exports=n.p+"assets/img/list_view_in_channel_mode.3427773e.png"},493:function(e,t,n){e.exports=n.p+"assets/img/property_editor_with_open_dropdown.ce0c4b62.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{1037:function(e,t,n){"use strict";n.r(t);var s=n(2),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"keyboard-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-control"}},[e._v("#")]),e._v(" Keyboard Control")]),e._v(" "),t("p",[e._v("The WebACS is fully accessible via keyboard. The following sections describe the usage in the different parts of the ACS.")]),e._v(" "),t("h2",{attrs:{id:"shortcuts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shortcuts"}},[e._v("#")]),e._v(" Shortcuts")]),e._v(" "),t("p",[e._v("The shortcut menu right at the top of the screen (see picture below) gives the user the chance to jump directly to one of the subsections of the page, thus making keyboard navigation much faster.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(483),alt:"Screenshot: Shortcut menu",title:"Screenshot: Shortcut menu"}})]),e._v(" "),t("p",[e._v("WebACS shortcut menu")]),e._v(" "),t("h2",{attrs:{id:"menu"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#menu"}},[e._v("#")]),e._v(" Menu")]),e._v(" "),t("p",[e._v("After jumping to the menu with "),t("em",[e._v("CTRL-0")]),e._v(", the menu tabs can be switched by using the "),t("em",[e._v("arrow")]),e._v(" keys. Once the desired tab is active, the menu items can be reached via the "),t("em",[e._v("Tab")]),e._v(" key. When one of the component menus in the Components tab is selected, it can also be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(484),alt:"Screenshot: The menu after opening a components submenu",title:"Screenshot: The menu after opening a components submenu"}})]),e._v(" "),t("p",[e._v("The menu after opening a components submenu")]),e._v(" "),t("h2",{attrs:{id:"model-panel"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-panel"}},[e._v("#")]),e._v(" Model Panel")]),e._v(" "),t("p",[e._v("After jumping to the model panel with "),t("em",[e._v("CTRL-1")]),e._v(", the "),t("em",[e._v("arrow")]),e._v(" keys can be used to switch between the models.")]),e._v(" "),t("h2",{attrs:{id:"model-designer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-designer"}},[e._v("#")]),e._v(" Model Designer")]),e._v(" "),t("p",[e._v("After jumping to the model designer with "),t("em",[e._v("CTRL-2")]),e._v(", the user can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Now the components can be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys or moved by using "),t("em",[e._v("Shift-Arrow")]),e._v("."),t("br"),e._v("\nPressing the "),t("em",[e._v("Space")]),e._v(" bar activates port mode, thus enabling the user to navigate the ports of the selected component via the "),t("em",[e._v("arrow")]),e._v(" keys. Pressing "),t("em",[e._v("Shift-Space")]),e._v(" on an output port starts drawing a new channel. The user must then navigate to a matching input port on another component and press "),t("em",[e._v("Shift-Space")]),e._v(" there to complete the channel. "),t("em",[e._v("Esc")]),e._v(" ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the "),t("em",[e._v("Space")]),e._v(" bar again. Now the channels connected to the selected port can be navigated using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends channel mode.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(485),alt:"Screenshot: The Model Designer in port mode",title:"Screenshot: The Model Designer in port mode"}})]),e._v(" "),t("p",[e._v("The Model Designer in port mode")]),e._v(" "),t("h2",{attrs:{id:"gui-designer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gui-designer"}},[e._v("#")]),e._v(" GUI Designer")]),e._v(" "),t("p",[e._v("After jumping to the GUI Designer with "),t("em",[e._v("CTRL-3")]),e._v(", the user can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Then the user can navigate the elements by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Shift-arrow")]),e._v(" keys moves the selected element, "),t("em",[e._v("Alt-arrow")]),e._v(" keys resizes the selected element.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(486),alt:"Screenshot: The GUI Designer in keyboard mode",title:"Screenshot: The GUI Designer in keyboard mode"}})]),e._v(" "),t("p",[e._v("The GUI Designer in keyboard mode")]),e._v(" "),t("h2",{attrs:{id:"list-view"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#list-view"}},[e._v("#")]),e._v(" List View")]),e._v(" "),t("p",[e._v("After jumping to the List View with "),t("em",[e._v("CTRL-4")]),e._v(", the user can enter keyboard mode by pressing "),t("em",[e._v("Enter")]),e._v(". Then the user can navigate the elements by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Space")]),e._v(" activates port mode, so that the ports of the selected components can be navigated by using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the "),t("em",[e._v("Space")]),e._v(" bar again. Now the channels connected to the selected port can be navigated using the "),t("em",[e._v("arrow")]),e._v(" keys. "),t("em",[e._v("Esc")]),e._v(" ends channel mode.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(487),alt:"Screenshot: List View in channel mode",title:"Screenshot: List View in channel mode"}})]),e._v(" "),t("p",[e._v("List View in channel mode")]),e._v(" "),t("h2",{attrs:{id:"property-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#property-editor"}},[e._v("#")]),e._v(" Property Editor")]),e._v(" "),t("p",[e._v("After jumping to the Property Editor with "),t("em",[e._v("CTRL-5")]),e._v(", the user can switch the tabs of the Property Editor by using the "),t("em",[e._v("arrow")]),e._v(" keys. All other elements can be reached by using the "),t("em",[e._v("Tab")]),e._v(" key in the same way as on any website.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(488),alt:"Screenshot: Property Editor with open dropdown",title:"Screenshot: Property Editor with open dropdown"}})]),e._v(" "),t("p",[e._v("Property Editor with open dropdown")])])}),[],!1,null,null,null);t.default=r.exports},483:function(e,t){e.exports="data:image/png;base64,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"},484:function(e,t,n){e.exports=n.p+"assets/img/menu_open_components.7be82a1c.png"},485:function(e,t,n){e.exports=n.p+"assets/img/model_designer_in_port_mode.b0d664ff.png"},486:function(e,t,n){e.exports=n.p+"assets/img/gui_designer_in_keyboard_mode.9e46d348.png"},487:function(e,t,n){e.exports=n.p+"assets/img/list_view_in_channel_mode.3427773e.png"},488:function(e,t,n){e.exports=n.p+"assets/img/property_editor_with_open_dropdown.ce0c4b62.png"}}]); \ No newline at end of file diff --git a/assets/js/270.c8244a47.js b/assets/js/270.8d270c18.js similarity index 92% rename from assets/js/270.c8244a47.js rename to assets/js/270.8d270c18.js index ee0de58d30..2eea526ee3 100644 --- a/assets/js/270.c8244a47.js +++ b/assets/js/270.8d270c18.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[270],{1257:function(e,t,r){"use strict";r.r(t);var o=r(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"p2parser"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#p2parser"}},[e._v("#")]),e._v(" P2Parser")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component provides an interface to bioelectric amplifiers which are compatible to the openEEG P2 packet fromat (e.g. the ModualarEEG or the SMTEEG by Olimex). For more information please refer to the "),t("a",{attrs:{href:"http://openeeg.sf.net",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenEEG"),t("OutboundLink")],1),e._v(" website.The COM Port number where the device is connected must be specified in the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(833),alt:"Screenshot: OpenEEG P2Parser plugin",title:"Screenshot: OpenEEG P2Parser plugin"}})]),e._v(" "),t("p",[e._v("OpenEEG P2 Parser plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an OpenEEG compatible device connected to a COM Port, which sends the P2 packet protocol for channel data.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel6 [integer]:")]),e._v(" Each output corresponds to the sampled data from its corresponding channel. The values range for -512 to 512. A calibration procedure to obtain the factor for calculation of microvolts must be performed with the amplifier device.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [String]:")]),e._v(" The name of the COM port, for example COM2 or COM17.")]),e._v(" "),t("li",[t("strong",[e._v("Baudrate [Integer]:")]),e._v(" The baud rate for the transmission. Standard is 57600.")])])])}),[],!1,null,null,null);t.default=a.exports},833:function(e,t,r){e.exports=r.p+"assets/img/p2parser.8b47904f.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[270],{1250:function(e,t,r){"use strict";r.r(t);var o=r(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"p2parser"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#p2parser"}},[e._v("#")]),e._v(" P2Parser")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component provides an interface to bioelectric amplifiers which are compatible to the openEEG P2 packet fromat (e.g. the ModualarEEG or the SMTEEG by Olimex). For more information please refer to the "),t("a",{attrs:{href:"http://openeeg.sf.net",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenEEG"),t("OutboundLink")],1),e._v(" website.The COM Port number where the device is connected must be specified in the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(825),alt:"Screenshot: OpenEEG P2Parser plugin",title:"Screenshot: OpenEEG P2Parser plugin"}})]),e._v(" "),t("p",[e._v("OpenEEG P2 Parser plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an OpenEEG compatible device connected to a COM Port, which sends the P2 packet protocol for channel data.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel6 [integer]:")]),e._v(" Each output corresponds to the sampled data from its corresponding channel. The values range for -512 to 512. A calibration procedure to obtain the factor for calculation of microvolts must be performed with the amplifier device.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [String]:")]),e._v(" The name of the COM port, for example COM2 or COM17.")]),e._v(" "),t("li",[t("strong",[e._v("Baudrate [Integer]:")]),e._v(" The baud rate for the transmission. Standard is 57600.")])])])}),[],!1,null,null,null);t.default=a.exports},825:function(e,t,r){e.exports=r.p+"assets/img/p2parser.8b47904f.jpg"}}]); \ No newline at end of file diff --git a/assets/js/271.e596a00e.js b/assets/js/271.da400853.js similarity index 97% rename from assets/js/271.e596a00e.js rename to assets/js/271.da400853.js index c98f8ac59d..e299c651c6 100644 --- a/assets/js/271.e596a00e.js +++ b/assets/js/271.da400853.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[271],{1253:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"philipshuesensor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#philipshuesensor"}},[e._v("#")]),e._v(" PhilipsHueSensor")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The PhilipsHueSensor component provides an interface to the motion sensor and dimmer switch of the "),t("a",{attrs:{href:"https://www2.meethue.com/en-us",target:"_blank",rel:"noopener noreferrer"}},[e._v("Philips Hue smart lighting system"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("One instance of this plugin can fire events for one specified Philips Hue sensor.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(827),alt:"Screenshot: PhilipsHue plugin",title:"Screenshot: PhilipsHue plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A Philips Hue hardware Bridge")]),e._v(" "),t("li",[e._v("A Philips Hue Sensor (a dimmer switch or a motion sensor)")])]),e._v(" "),t("h2",{attrs:{id:"initial-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup"}},[e._v("#")]),e._v(" Initial Setup")]),e._v(" "),t("p",[e._v("See the PhilipsHue actuator plugin documentation for detailed instructions.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("currentState [string]:")]),e._v(" This port periodically returns the state the target sensor. The polling rate can be set via the updateRate property (in milliseconds).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("statusChanged:")]),e._v(" fires when the configure sensor changes its status (buttons pressed, motion detected, battery charge, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("tick:")]),e._v(" fires for each tick (depends on updateRate property)")]),e._v(" "),t("li",[t("strong",[e._v("motionDetected:")]),e._v(" fires once presence is detected (motion sensor only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonOn:")]),e._v(" fires if the first button is pressed (dimmer switch only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonBrighter:")]),e._v(" fires if the second button is pressed (dimmer switch only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonDarker:")]),e._v(" fires if the third button is pressed (dimmer switch only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonOff:")]),e._v(" fires if the last button is pressed (dimmer switch only)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("apiKey [string]:")]),e._v(" API key for the REST API of the bridge")]),e._v(" "),t("li",[t("strong",[e._v("ip [string]:")]),e._v(" IP address of the bridge")]),e._v(" "),t("li",[t("strong",[e._v("target [string]:")]),e._v(" sensor that should be used as input in the form "),t("code",[e._v("/sensors/")])]),e._v(" "),t("li",[t("strong",[e._v("updateRate [integer]:")]),e._v(" polling rate for "),t("strong",[e._v("currentState")]),e._v(" and the event triggers\n"),t("ul",[t("li",[e._v("value in milliseconds")]),e._v(" "),t("li",[e._v("the lower this value is, the faster you will be notified of changes")]),e._v(" "),t("li",[e._v("don’t set this too low or the bridge might slow down (500 milliseconds is a good compromise)")])])])])])}),[],!1,null,null,null);t.default=s.exports},827:function(e,t){e.exports="data:image/png;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[271],{1251:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"philipshuesensor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#philipshuesensor"}},[e._v("#")]),e._v(" PhilipsHueSensor")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The PhilipsHueSensor component provides an interface to the motion sensor and dimmer switch of the "),t("a",{attrs:{href:"https://www2.meethue.com/en-us",target:"_blank",rel:"noopener noreferrer"}},[e._v("Philips Hue smart lighting system"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("One instance of this plugin can fire events for one specified Philips Hue sensor.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(826),alt:"Screenshot: PhilipsHue plugin",title:"Screenshot: PhilipsHue plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("A Philips Hue hardware Bridge")]),e._v(" "),t("li",[e._v("A Philips Hue Sensor (a dimmer switch or a motion sensor)")])]),e._v(" "),t("h2",{attrs:{id:"initial-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup"}},[e._v("#")]),e._v(" Initial Setup")]),e._v(" "),t("p",[e._v("See the PhilipsHue actuator plugin documentation for detailed instructions.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("currentState [string]:")]),e._v(" This port periodically returns the state the target sensor. The polling rate can be set via the updateRate property (in milliseconds).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("statusChanged:")]),e._v(" fires when the configure sensor changes its status (buttons pressed, motion detected, battery charge, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("tick:")]),e._v(" fires for each tick (depends on updateRate property)")]),e._v(" "),t("li",[t("strong",[e._v("motionDetected:")]),e._v(" fires once presence is detected (motion sensor only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonOn:")]),e._v(" fires if the first button is pressed (dimmer switch only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonBrighter:")]),e._v(" fires if the second button is pressed (dimmer switch only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonDarker:")]),e._v(" fires if the third button is pressed (dimmer switch only)")]),e._v(" "),t("li",[t("strong",[e._v("dimmerButtonOff:")]),e._v(" fires if the last button is pressed (dimmer switch only)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("apiKey [string]:")]),e._v(" API key for the REST API of the bridge")]),e._v(" "),t("li",[t("strong",[e._v("ip [string]:")]),e._v(" IP address of the bridge")]),e._v(" "),t("li",[t("strong",[e._v("target [string]:")]),e._v(" sensor that should be used as input in the form "),t("code",[e._v("/sensors/")])]),e._v(" "),t("li",[t("strong",[e._v("updateRate [integer]:")]),e._v(" polling rate for "),t("strong",[e._v("currentState")]),e._v(" and the event triggers\n"),t("ul",[t("li",[e._v("value in milliseconds")]),e._v(" "),t("li",[e._v("the lower this value is, the faster you will be notified of changes")]),e._v(" "),t("li",[e._v("don’t set this too low or the bridge might slow down (500 milliseconds is a good compromise)")])])])])])}),[],!1,null,null,null);t.default=s.exports},826:function(e,t){e.exports="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/272.2a16aa73.js b/assets/js/272.024b082b.js similarity index 96% rename from assets/js/272.2a16aa73.js rename to assets/js/272.024b082b.js index 8d505d6a92..e0cf3dffc6 100644 --- a/assets/js/272.2a16aa73.js +++ b/assets/js/272.024b082b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[272],{1254:function(e,t,o){"use strict";o.r(t);var n=o(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"platform-analog-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#platform-analog-in"}},[e._v("#")]),e._v(" Platform Analog In")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Personal Platform)")]),e._v(" "),t("p",[e._v("The PlatformAnalogIn component is a sensor which is used in combination with the analog inputs of the personal platform. The component provides two output ports which correlate to the inputs IN1 and IN2 of the platform. The component can be set up to sample the inputs periodically or upon an incoming event. Both inputs can be used for voltage and resistance measurement.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(828),alt:"Screenshot: PlatformAnalogIn plugin",title:"Screenshot: PlatformAnalogIn plugin"}})]),e._v(" "),t("p",[e._v("Platform AnalogIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the Core CIM (CIM Id: 0x0602) of the AsTeRICS Personal Platform.")]),e._v(" "),t("p",[e._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),e._v(" "),t("p",[e._v("The AsteRICS Personal Platform")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1 to in2 [integer]:")]),e._v(" Each of these output port corresponds to one input of the ADC CIM. The measured values are forwarded directly from the CIM thus corresponding to the description given in the CIM specification. Depending on the type of connected sensor the values either correspond to a voltage or a resistive value.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("adcSampleTrigger:")]),e._v(" An incoming event on this port will cause the ADC CIM to sample data on its inputs. This event will only take effect if the periodic_update property is set to 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodicUpdate [integer]:")]),e._v(" This property defines the time between data sampling requests to the ADC CIM (in milliseconds). The software component will send requests to the CIM in the given intervals. Due to current limitations of the ADC CIM it is recommended to use time intervals not lower than 50 milliseconds (20 samples per second).")]),e._v(" "),t("li",[t("strong",[e._v("activateInput1 to activateInput2 [Boolean]:")]),e._v(" These properties correspond the CIM’s ADC inputs IN1 to IN8, if the property is true, the corresponding output port of the software component will send the sampled data.")])])])}),[],!1,null,null,null);t.default=r.exports},828:function(e,t,o){e.exports=o.p+"assets/img/platformanalogin.b5aea034.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[272],{1254:function(e,t,o){"use strict";o.r(t);var n=o(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"platform-analog-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#platform-analog-in"}},[e._v("#")]),e._v(" Platform Analog In")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Personal Platform)")]),e._v(" "),t("p",[e._v("The PlatformAnalogIn component is a sensor which is used in combination with the analog inputs of the personal platform. The component provides two output ports which correlate to the inputs IN1 and IN2 of the platform. The component can be set up to sample the inputs periodically or upon an incoming event. Both inputs can be used for voltage and resistance measurement.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(830),alt:"Screenshot: PlatformAnalogIn plugin",title:"Screenshot: PlatformAnalogIn plugin"}})]),e._v(" "),t("p",[e._v("Platform AnalogIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the Core CIM (CIM Id: 0x0602) of the AsTeRICS Personal Platform.")]),e._v(" "),t("p",[e._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),e._v(" "),t("p",[e._v("The AsteRICS Personal Platform")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1 to in2 [integer]:")]),e._v(" Each of these output port corresponds to one input of the ADC CIM. The measured values are forwarded directly from the CIM thus corresponding to the description given in the CIM specification. Depending on the type of connected sensor the values either correspond to a voltage or a resistive value.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("adcSampleTrigger:")]),e._v(" An incoming event on this port will cause the ADC CIM to sample data on its inputs. This event will only take effect if the periodic_update property is set to 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodicUpdate [integer]:")]),e._v(" This property defines the time between data sampling requests to the ADC CIM (in milliseconds). The software component will send requests to the CIM in the given intervals. Due to current limitations of the ADC CIM it is recommended to use time intervals not lower than 50 milliseconds (20 samples per second).")]),e._v(" "),t("li",[t("strong",[e._v("activateInput1 to activateInput2 [Boolean]:")]),e._v(" These properties correspond the CIM’s ADC inputs IN1 to IN8, if the property is true, the corresponding output port of the software component will send the sampled data.")])])])}),[],!1,null,null,null);t.default=r.exports},830:function(e,t,o){e.exports=o.p+"assets/img/platformanalogin.b5aea034.jpg"}}]); \ No newline at end of file diff --git a/assets/js/273.7b7a5e31.js b/assets/js/273.1f543121.js similarity index 93% rename from assets/js/273.7b7a5e31.js rename to assets/js/273.1f543121.js index fafb6a9fb1..9f2faa87b7 100644 --- a/assets/js/273.7b7a5e31.js +++ b/assets/js/273.1f543121.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[273],{1260:function(t,e,i){"use strict";i.r(e);var n=i(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"platform-digital-in"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#platform-digital-in"}},[t._v("#")]),t._v(" Platform Digital In")]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Personal Platform)")]),t._v(" "),e("p",[t._v("The PlatformDigitalIn component provides an interface to read the digital inputs of the AsTeRICS Personal Platform. On state changes of the connected signals (transitions to high or low level), the component generates corresponding trigger events.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(836),alt:"Screenshot: PlatformDigitalIn plugin",title:"Screenshot: PlatformDigitalIn plugin"}})]),t._v(" "),e("p",[t._v("PlatformDigitalIn plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the Core CIM (CIM Id: 0x0602) of the AsTeRICS Personal Platform.")]),t._v(" "),e("p",[t._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),t._v(" "),e("p",[t._v("The AsteRICS Personal Platform")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1High to in3High:")]),t._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to high level, an event will be raised on the corresponding port.")]),t._v(" "),e("li",[e("strong",[t._v("in1Low to in3Low:")]),t._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to low level, an event will be raised on the corresponding port.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("activateEventIn1 to activateEventIn3 [Boolean]:")]),t._v(" These properties declare for each port whether or not a signal transition on the actual input port should result in an event being triggered in the ARE. If a property is set true for one input, it will raise events on signal transitions, if it is set to false it will not.")])])])}),[],!1,null,null,null);e.default=r.exports},836:function(t,e,i){t.exports=i.p+"assets/img/platformdigitalin.f8f31a4b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[273],{1255:function(t,e,i){"use strict";i.r(e);var n=i(2),r=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"platform-digital-in"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#platform-digital-in"}},[t._v("#")]),t._v(" Platform Digital In")]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Personal Platform)")]),t._v(" "),e("p",[t._v("The PlatformDigitalIn component provides an interface to read the digital inputs of the AsTeRICS Personal Platform. On state changes of the connected signals (transitions to high or low level), the component generates corresponding trigger events.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(831),alt:"Screenshot: PlatformDigitalIn plugin",title:"Screenshot: PlatformDigitalIn plugin"}})]),t._v(" "),e("p",[t._v("PlatformDigitalIn plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the Core CIM (CIM Id: 0x0602) of the AsTeRICS Personal Platform.")]),t._v(" "),e("p",[t._v("![The AsteRICS Personal Platform (./preliminary version)](./img/personalplatform.jpg “The AsteRICS Personal Platform (preliminary version)”)")]),t._v(" "),e("p",[t._v("The AsteRICS Personal Platform")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1High to in3High:")]),t._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to high level, an event will be raised on the corresponding port.")]),t._v(" "),e("li",[e("strong",[t._v("in1Low to in3Low:")]),t._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to low level, an event will be raised on the corresponding port.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("activateEventIn1 to activateEventIn3 [Boolean]:")]),t._v(" These properties declare for each port whether or not a signal transition on the actual input port should result in an event being triggered in the ARE. If a property is set true for one input, it will raise events on signal transitions, if it is set to false it will not.")])])])}),[],!1,null,null,null);e.default=r.exports},831:function(t,e,i){t.exports=i.p+"assets/img/platformdigitalin.f8f31a4b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/274.720461e2.js b/assets/js/274.2270b991.js similarity index 91% rename from assets/js/274.720461e2.js rename to assets/js/274.2270b991.js index ebff6cb84d..ae99a40c5a 100644 --- a/assets/js/274.720461e2.js +++ b/assets/js/274.2270b991.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[274],{1261:function(t,e,s){"use strict";s.r(e);var r=s(2),i=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This plugin reads a whole .csv file and sends the seperate lines as strings to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(837),alt:"Screenshot: ReadCSV plugin",title:"Screenshot: ReadCSV plugin"}})]),t._v(" "),e("p",[t._v("ReadCSV")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("read:")]),t._v(" Opens a file-chooser menu to select a csv-file which should be opened and read. The file is read immideately after selection (attention: this blocks the ARE model execution until the file contents are read completely !)")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Output[string]:")]),t._v(" The port sends the individual lines of the file as strings. An example for the string is: “data1;data2;data3”. To seperate the string into individual strin values, the StringSplitter can be used.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FilePath[string]:")]),t._v(" Defines the default Path were the file is located. (TBD: add property for default FileName and line-by-line read option)")])])])}),[],!1,null,null,null);e.default=i.exports},837:function(t,e,s){t.exports=s.p+"assets/img/readcsv.fc76a472.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[274],{1260:function(t,e,s){"use strict";s.r(e);var r=s(2),i=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This plugin reads a whole .csv file and sends the seperate lines as strings to the output port.")]),t._v(" "),e("p",[e("img",{attrs:{src:s(838),alt:"Screenshot: ReadCSV plugin",title:"Screenshot: ReadCSV plugin"}})]),t._v(" "),e("p",[t._v("ReadCSV")]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("read:")]),t._v(" Opens a file-chooser menu to select a csv-file which should be opened and read. The file is read immideately after selection (attention: this blocks the ARE model execution until the file contents are read completely !)")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Output[string]:")]),t._v(" The port sends the individual lines of the file as strings. An example for the string is: “data1;data2;data3”. To seperate the string into individual strin values, the StringSplitter can be used.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FilePath[string]:")]),t._v(" Defines the default Path were the file is located. (TBD: add property for default FileName and line-by-line read option)")])])])}),[],!1,null,null,null);e.default=i.exports},838:function(t,e,s){t.exports=s.p+"assets/img/readcsv.fc76a472.png"}}]); \ No newline at end of file diff --git a/assets/js/275.54d9041c.js b/assets/js/275.71353893.js similarity index 87% rename from assets/js/275.54d9041c.js rename to assets/js/275.71353893.js index 5b57778c93..253f9186eb 100644 --- a/assets/js/275.54d9041c.js +++ b/assets/js/275.71353893.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[275],{1262:function(t,e,s){"use strict";s.r(e);var r=s(2),a=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This plugin reads an .edf file and sends the data to its output ports")]),t._v(" "),e("p",[e("img",{attrs:{src:s(838),alt:"Screenshot: ReadEDF plugin",title:"Screenshot: ReadEDF plugin"}})]),t._v(" "),e("p",[t._v("ReadEDF")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("CH1 - CH8[double]:")]),t._v(" these ports send the samples of the recorded signals.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FileName[string]:")]),t._v(" specifies the name of the file, in which the data has been recorded "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);e.default=a.exports},838:function(t,e,s){t.exports=s.p+"assets/img/readedf.a50c4602.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[275],{1261:function(t,e,s){"use strict";s.r(e);var r=s(2),a=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: File System)")]),t._v(" "),e("p",[t._v("This plugin reads an .edf file and sends the data to its output ports")]),t._v(" "),e("p",[e("img",{attrs:{src:s(839),alt:"Screenshot: ReadEDF plugin",title:"Screenshot: ReadEDF plugin"}})]),t._v(" "),e("p",[t._v("ReadEDF")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("CH1 - CH8[double]:")]),t._v(" these ports send the samples of the recorded signals.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("FileName[string]:")]),t._v(" specifies the name of the file, in which the data has been recorded "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);e.default=a.exports},839:function(t,e,s){t.exports=s.p+"assets/img/readedf.a50c4602.png"}}]); \ No newline at end of file diff --git a/assets/js/276.312ecc13.js b/assets/js/276.8c380b15.js similarity index 92% rename from assets/js/276.312ecc13.js rename to assets/js/276.8c380b15.js index 78f8db2723..a94760b6b7 100644 --- a/assets/js/276.312ecc13.js +++ b/assets/js/276.8c380b15.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[276],{1264:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The SignalGenerator component can generate several output waveforms for component tests or other purposes like timing or event generation. Available waveforms are sine, sawtooth, rectangle and random signal data.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(841),alt:"Screenshot: SignalGenerator plugin",title:"Screenshot: SignalGenerator plugin"}})]),e._v(" "),t("p",[e._v("SignalGenerator plugin")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out [double]:")]),e._v(" The generated waveform is provided at this port.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendInterval [integer]:")]),e._v(" This value specifies the output rate in milliseconds. Please note that the output rate has to be fast enough to assemble the selected output frequency. For example if a frequency of 2 Hz is set, the send_interval should not be greater than 125 milliseconds according to the sample theorem.")]),e._v(" "),t("li",[t("strong",[e._v("waveForm [integer]:")]),e._v(" The waveform types random, sine, sawtooth and rectangle can be selected.")]),e._v(" "),t("li",[t("strong",[e._v("frequency [double]:")]),e._v(" The frequency of the output signal in Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("amplitude [double]:")]),e._v(" The amplitude of the output signal.")]),e._v(" "),t("li",[t("strong",[e._v("phaseShift [double]:")]),e._v(" The output signal is phase-shifted by this value (in milliseconds).")]),e._v(" "),t("li",[t("strong",[e._v("offset [double]:")]),e._v(" Amplitude-offset of the output signal (this value is added to each generated waveform value).")])])])}),[],!1,null,null,null);t.default=a.exports},841:function(e,t,o){e.exports=o.p+"assets/img/signalgenerator.3806148b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[276],{1262:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The SignalGenerator component can generate several output waveforms for component tests or other purposes like timing or event generation. Available waveforms are sine, sawtooth, rectangle and random signal data.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(840),alt:"Screenshot: SignalGenerator plugin",title:"Screenshot: SignalGenerator plugin"}})]),e._v(" "),t("p",[e._v("SignalGenerator plugin")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out [double]:")]),e._v(" The generated waveform is provided at this port.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendInterval [integer]:")]),e._v(" This value specifies the output rate in milliseconds. Please note that the output rate has to be fast enough to assemble the selected output frequency. For example if a frequency of 2 Hz is set, the send_interval should not be greater than 125 milliseconds according to the sample theorem.")]),e._v(" "),t("li",[t("strong",[e._v("waveForm [integer]:")]),e._v(" The waveform types random, sine, sawtooth and rectangle can be selected.")]),e._v(" "),t("li",[t("strong",[e._v("frequency [double]:")]),e._v(" The frequency of the output signal in Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("amplitude [double]:")]),e._v(" The amplitude of the output signal.")]),e._v(" "),t("li",[t("strong",[e._v("phaseShift [double]:")]),e._v(" The output signal is phase-shifted by this value (in milliseconds).")]),e._v(" "),t("li",[t("strong",[e._v("offset [double]:")]),e._v(" Amplitude-offset of the output signal (this value is added to each generated waveform value).")])])])}),[],!1,null,null,null);t.default=a.exports},840:function(e,t,o){e.exports=o.p+"assets/img/signalgenerator.3806148b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/277.309f95ac.js b/assets/js/277.7bd0b69e.js similarity index 94% rename from assets/js/277.309f95ac.js rename to assets/js/277.7bd0b69e.js index 50953a8d0a..8667df3bc3 100644 --- a/assets/js/277.309f95ac.js +++ b/assets/js/277.7bd0b69e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[277],{1267:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"slider"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slider"}},[e._v("#")]),e._v(" Slider")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("The Slider component generates a slider with adjustable range of values and size on the ARE desktop. This slider can be used to change important parameters of the model during runtime. Furthermore, an incoming signal can be adjusted by the slider component, using a gain factor property.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(845),alt:"Screenshot: Slider plugin",title:"Screenshot: Slider plugin"}})]),e._v(" "),t("p",[e._v("Slider plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("setValue [integer]:")]),e._v(" Sets the slider position to the incoming value. Note that this value is not propagated to the output port (to avoid loops).")]),e._v(" "),t("li",[t("strong",[e._v("in [double]:")]),e._v(" input port for an incoming signal which can be amplified by the slider component")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("value [integer]:")]),e._v(" This port provides the currently selected slider value (position). Only integer values are possible.")]),e._v(" "),t("li",[t("strong",[e._v("out [double]:")]),e._v(" The amplified (or attenuated) input signal (out = in * gain * slider value)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("min [integer]:")]),e._v(" The minimum value of the slider range")]),e._v(" "),t("li",[t("strong",[e._v("max [integer]:")]),e._v(" The maximum value of the slider range")]),e._v(" "),t("li",[t("strong",[e._v("default [integer]:")]),e._v(" The defualt position of the slider at model startup (this value is not automatically sent to the port at model startup.")]),e._v(" "),t("li",[t("strong",[e._v("gain [double]:")]),e._v(" The amplification value for an (optional) incoming signal (out = in * gain * slider value)")]),e._v(" "),t("li",[t("strong",[e._v("caption [string]:")]),e._v(" A label for the slider")]),e._v(" "),t("li",[t("strong",[e._v("majorTickspacing [integer]:")]),e._v(" Coarse sections for the slider value captions")]),e._v(" "),t("li",[t("strong",[e._v("minorTickspacing [integer]:")]),e._v(" Fine sections for the slider value captions")]),e._v(" "),t("li",[t("strong",[e._v("alignment [integer, combobox selection]:")]),e._v(" Slider orientation in the GUI, can be horizontal or vertical")]),e._v(" "),t("li",[t("strong",[e._v("fontSize [integer]:")]),e._v(" Font size of the caption")]),e._v(" "),t("li",[t("strong",[e._v("storeValue [boolean]:")]),e._v(" if the storeValue property is enabled, the current value of the slider position is stored and restored when the model is started next time. Note that this overrides the defaultValue property.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=r.exports},845:function(e,t,i){e.exports=i.p+"assets/img/slider.5dd042d2.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[277],{1264:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"slider"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slider"}},[e._v("#")]),e._v(" Slider")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("The Slider component generates a slider with adjustable range of values and size on the ARE desktop. This slider can be used to change important parameters of the model during runtime. Furthermore, an incoming signal can be adjusted by the slider component, using a gain factor property.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(843),alt:"Screenshot: Slider plugin",title:"Screenshot: Slider plugin"}})]),e._v(" "),t("p",[e._v("Slider plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("setValue [integer]:")]),e._v(" Sets the slider position to the incoming value. Note that this value is not propagated to the output port (to avoid loops).")]),e._v(" "),t("li",[t("strong",[e._v("in [double]:")]),e._v(" input port for an incoming signal which can be amplified by the slider component")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("value [integer]:")]),e._v(" This port provides the currently selected slider value (position). Only integer values are possible.")]),e._v(" "),t("li",[t("strong",[e._v("out [double]:")]),e._v(" The amplified (or attenuated) input signal (out = in * gain * slider value)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("min [integer]:")]),e._v(" The minimum value of the slider range")]),e._v(" "),t("li",[t("strong",[e._v("max [integer]:")]),e._v(" The maximum value of the slider range")]),e._v(" "),t("li",[t("strong",[e._v("default [integer]:")]),e._v(" The defualt position of the slider at model startup (this value is not automatically sent to the port at model startup.")]),e._v(" "),t("li",[t("strong",[e._v("gain [double]:")]),e._v(" The amplification value for an (optional) incoming signal (out = in * gain * slider value)")]),e._v(" "),t("li",[t("strong",[e._v("caption [string]:")]),e._v(" A label for the slider")]),e._v(" "),t("li",[t("strong",[e._v("majorTickspacing [integer]:")]),e._v(" Coarse sections for the slider value captions")]),e._v(" "),t("li",[t("strong",[e._v("minorTickspacing [integer]:")]),e._v(" Fine sections for the slider value captions")]),e._v(" "),t("li",[t("strong",[e._v("alignment [integer, combobox selection]:")]),e._v(" Slider orientation in the GUI, can be horizontal or vertical")]),e._v(" "),t("li",[t("strong",[e._v("fontSize [integer]:")]),e._v(" Font size of the caption")]),e._v(" "),t("li",[t("strong",[e._v("storeValue [boolean]:")]),e._v(" if the storeValue property is enabled, the current value of the slider position is stored and restored when the model is started next time. Note that this overrides the defaultValue property.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=r.exports},843:function(e,t,i){e.exports=i.p+"assets/img/slider.5dd042d2.jpg"}}]); \ No newline at end of file diff --git a/assets/js/278.5247617b.js b/assets/js/278.770a4467.js similarity index 94% rename from assets/js/278.5247617b.js rename to assets/js/278.770a4467.js index a8f9f68c51..a8308eaa18 100644 --- a/assets/js/278.5247617b.js +++ b/assets/js/278.770a4467.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[278],{1266:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("Similar to the Keyboard Hook component, this component provides access to keystrokes coming from a standard keyboard or injected via software. The difference to the Keyboard Hook is that the Text Field Reader opens a GUI element with a text input filed and processes key input only from this text field. The keycodes of the pressed keys and accumulated words (multiple keys separated by ) are provided at the output ports of this component. Possible applications include triggering functions by keyboard input or remapping keys to other keycodes.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(844),alt:"Screenshot: TextfieldReader plugin",title:"Screenshot: TextfieldReader plugin"}})]),e._v(" "),t("p",[e._v("TextfieldReader plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A keyboard which generates keystrokes or a software component which injects keystrokes into the operating system?s message queue.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keys [integer]:")]),e._v(" This port sends the virtual keycode of the last pressed key as an integer value.")]),e._v(" "),t("li",[t("strong",[e._v("words [string]:")]),e._v(" This ports accumulates keystrokes and sends them as a string as soon as a blank separator (space key) appears in the key input stream.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("recognizedCommand1 - recognizedCommand7:")]),e._v(" These event ports fire an event if one of seven command strings has been detected in the current input stream of keys.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("command1 [string] - command7 [string]:")]),e._v(" Seven string properties to specify command strings. The component looks for these command strings in the input stream of keystrokes. If a command string matches, the corresponding event trigger port is raised. This can be useful for example to define voice commands which should trigger certain actions in other ARE plugins.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=o.exports},844:function(e,t,s){e.exports=s.p+"assets/img/textfieldreader.3a481d00.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[278],{1268:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("Similar to the Keyboard Hook component, this component provides access to keystrokes coming from a standard keyboard or injected via software. The difference to the Keyboard Hook is that the Text Field Reader opens a GUI element with a text input filed and processes key input only from this text field. The keycodes of the pressed keys and accumulated words (multiple keys separated by ) are provided at the output ports of this component. Possible applications include triggering functions by keyboard input or remapping keys to other keycodes.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(849),alt:"Screenshot: TextfieldReader plugin",title:"Screenshot: TextfieldReader plugin"}})]),e._v(" "),t("p",[e._v("TextfieldReader plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A keyboard which generates keystrokes or a software component which injects keystrokes into the operating system?s message queue.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("keys [integer]:")]),e._v(" This port sends the virtual keycode of the last pressed key as an integer value.")]),e._v(" "),t("li",[t("strong",[e._v("words [string]:")]),e._v(" This ports accumulates keystrokes and sends them as a string as soon as a blank separator (space key) appears in the key input stream.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("recognizedCommand1 - recognizedCommand7:")]),e._v(" These event ports fire an event if one of seven command strings has been detected in the current input stream of keys.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("command1 [string] - command7 [string]:")]),e._v(" Seven string properties to specify command strings. The component looks for these command strings in the input stream of keystrokes. If a command string matches, the corresponding event trigger port is raised. This can be useful for example to define voice commands which should trigger certain actions in other ARE plugins.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" If selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);t.default=o.exports},849:function(e,t,s){e.exports=s.p+"assets/img/textfieldreader.3a481d00.jpg"}}]); \ No newline at end of file diff --git a/assets/js/279.41789329.js b/assets/js/279.cabaa4bf.js similarity index 96% rename from assets/js/279.41789329.js rename to assets/js/279.cabaa4bf.js index 900e2b4915..da47943340 100644 --- a/assets/js/279.41789329.js +++ b/assets/js/279.cabaa4bf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[279],{1268:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"timer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#timer"}},[e._v("#")]),e._v(" Timer")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The timer component can measure time in milliseconds, provide current time on an output port and trigger events when a specified time period has passed. It can be used to influence other features (e.g. to provide acceleration) or to enable dwell selection, for example clicking when a certain time has passed.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(846),alt:"Screenshot: Timer plugin",title:"Screenshot: Timer plugin"}})]),e._v(" "),t("p",[e._v("Timer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("period [integer]:")]),e._v(" The number of milliseconds the timer period property is set to.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("time [integer]:")]),e._v(" The number of milliseconds which have passed since the timer has been started.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" An incoming event starts the timer.")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" An incoming event stops the timer (pause, the current time value is not reset to 0).")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" An incoming event resets the time value to 0 (but does not stop the timer).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodFinished:")]),e._v(" This event is triggered when the given time has passed.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mode [integer]:")]),e._v(" This property selects one of several possible modes of operation of the timer:\n"),t("ul",[t("li",[t("em",[e._v("“one shot”:")]),e._v(" The timer runs once from 0 to the specified time, and then stops.")]),e._v(" "),t("li",[t("em",[e._v("“repeat n times”:")]),e._v(" The timer completes the time period several times (the number is selected with the repeat counter property).")]),e._v(" "),t("li",[t("em",[e._v("“endless loop”:")]),e._v(" the timer completes the time period until it is stopped by an event at the stop listener port.")]),e._v(" "),t("li",[t("em",[e._v("“once and continue time output”:")]),e._v(" The time period is completed once, the timer is not stopped but continues to send the last time value (this is useful to generate increasing values with persisting maximum value, e.g. for utilization as accelerated speed value).")]),e._v(" "),t("li",[t("em",[e._v("“measure time between start and stop”:")]),e._v(" The timer sends the time passed from start to stop events to the output port (when stop was received).")])])]),e._v(" "),t("li",[t("strong",[e._v("repeatCounter [integer]:")]),e._v(' The number of periods to finish for the "repeat n times " mode.')]),e._v(" "),t("li",[t("strong",[e._v("timePeriod (ms) [integer]:")]),e._v(" The time period covered by this counter in milliseconds.")]),e._v(" "),t("li",[t("strong",[e._v("resolution (ms) [integer]:")]),e._v(" The update rate of the timer in milliseconds. This value defines how often the current time value is updated and sent to the output port. It thereby defines the accuracy for the timer.")]),e._v(" "),t("li",[t("strong",[e._v("waitPeriod (ms) [integer]:")]),e._v(" This value specifies how long the timer is bypassed before it actually starts (after receiving a start event).")]),e._v(" "),t("li",[t("strong",[e._v("autostart [boolean]:")]),e._v(" This property defines if the timer will be started automatically together with the model (true) or if it will be started by an event (false).")])])])}),[],!1,null,null,null);t.default=s.exports},846:function(e,t,i){e.exports=i.p+"assets/img/timer.1ce9db2c.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[279],{1267:function(e,t,i){"use strict";i.r(t);var r=i(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"timer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#timer"}},[e._v("#")]),e._v(" Timer")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The timer component can measure time in milliseconds, provide current time on an output port and trigger events when a specified time period has passed. It can be used to influence other features (e.g. to provide acceleration) or to enable dwell selection, for example clicking when a certain time has passed.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(848),alt:"Screenshot: Timer plugin",title:"Screenshot: Timer plugin"}})]),e._v(" "),t("p",[e._v("Timer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("period [integer]:")]),e._v(" The number of milliseconds the timer period property is set to.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("time [integer]:")]),e._v(" The number of milliseconds which have passed since the timer has been started.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" An incoming event starts the timer.")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" An incoming event stops the timer (pause, the current time value is not reset to 0).")]),e._v(" "),t("li",[t("strong",[e._v("reset:")]),e._v(" An incoming event resets the time value to 0 (but does not stop the timer).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodFinished:")]),e._v(" This event is triggered when the given time has passed.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mode [integer]:")]),e._v(" This property selects one of several possible modes of operation of the timer:\n"),t("ul",[t("li",[t("em",[e._v("“one shot”:")]),e._v(" The timer runs once from 0 to the specified time, and then stops.")]),e._v(" "),t("li",[t("em",[e._v("“repeat n times”:")]),e._v(" The timer completes the time period several times (the number is selected with the repeat counter property).")]),e._v(" "),t("li",[t("em",[e._v("“endless loop”:")]),e._v(" the timer completes the time period until it is stopped by an event at the stop listener port.")]),e._v(" "),t("li",[t("em",[e._v("“once and continue time output”:")]),e._v(" The time period is completed once, the timer is not stopped but continues to send the last time value (this is useful to generate increasing values with persisting maximum value, e.g. for utilization as accelerated speed value).")]),e._v(" "),t("li",[t("em",[e._v("“measure time between start and stop”:")]),e._v(" The timer sends the time passed from start to stop events to the output port (when stop was received).")])])]),e._v(" "),t("li",[t("strong",[e._v("repeatCounter [integer]:")]),e._v(' The number of periods to finish for the "repeat n times " mode.')]),e._v(" "),t("li",[t("strong",[e._v("timePeriod (ms) [integer]:")]),e._v(" The time period covered by this counter in milliseconds.")]),e._v(" "),t("li",[t("strong",[e._v("resolution (ms) [integer]:")]),e._v(" The update rate of the timer in milliseconds. This value defines how often the current time value is updated and sent to the output port. It thereby defines the accuracy for the timer.")]),e._v(" "),t("li",[t("strong",[e._v("waitPeriod (ms) [integer]:")]),e._v(" This value specifies how long the timer is bypassed before it actually starts (after receiving a start event).")]),e._v(" "),t("li",[t("strong",[e._v("autostart [boolean]:")]),e._v(" This property defines if the timer will be started automatically together with the model (true) or if it will be started by an event (false).")])])])}),[],!1,null,null,null);t.default=s.exports},848:function(e,t,i){e.exports=i.p+"assets/img/timer.1ce9db2c.jpg"}}]); \ No newline at end of file diff --git a/assets/js/28.19ea2e18.js b/assets/js/28.a5924173.js similarity index 94% rename from assets/js/28.19ea2e18.js rename to assets/js/28.a5924173.js index ef12abb3de..de8c69312f 100644 --- a/assets/js/28.19ea2e18.js +++ b/assets/js/28.a5924173.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{1050:function(e,t,i){"use strict";i.r(t);var a=i(2),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"grid-appearance-and-layout"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-appearance-and-layout"}},[e._v("#")]),e._v(" Grid appearance and layout")]),e._v(" "),t("p",[t("strong",[e._v("Videos on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Iw605fb85bs&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=12&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Layout options"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=X6YrWJW2ZoM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=21&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Collect elements"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=t0FWZcM9TMg&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=22&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prediction elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("This chapter is about a grid’s layout and appearance and how to edit it:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#adding-elements-and-layout-options"}},[e._v("Adding elements and change the layout")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#editing-grid-elements"}},[e._v("Editing grid elements menu")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#edit-grid-item-modal"}},[e._v("Edit modal")]),e._v(": changing label and image")],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"adding-elements-and-layout-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-elements-and-layout-options"}},[e._v("#")]),e._v(" Adding elements and layout options")]),e._v(" "),t("p",[e._v("In the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#edit-view"}},[e._v("Edit view (“Editing on”)")]),e._v(" the following menu opens on a click on “more”:")],1),e._v(" "),t("p",[t("img",{attrs:{src:i(500),alt:"edit view - more menu"}}),e._v(" "),t("em",[e._v("Fig. 1: Edit view - menu “more”")])]),e._v(" "),t("p",[e._v("These are the actions to select in the menu:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New → New Element")]),e._v(": creates a normal new element, opening a dialog where label and image can be defined")]),e._v(" "),t("li",[t("strong",[e._v("New → Many new elements")]),e._v(": creates multiple new normal elements at once, opening a dialog where multiple elements can be defined and inserted into the grid")]),e._v(" "),t("li",[t("strong",[e._v("New → New collect element")]),e._v(": creates a new collect element, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("Terms")])],1),e._v(" "),t("li",[t("strong",[e._v("New → New prediction element")]),e._v(": creates a new prediction element, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("Terms")])],1),e._v(" "),t("li",[t("strong",[e._v("New → New YouTube Player")]),e._v(": creates a new YouTube Player element")]),e._v(" "),t("li",[t("strong",[e._v("Delete all elements")]),e._v(": removes all grid elements from the grid")]),e._v(" "),t("li",[t("strong",[e._v("Change grid dimensions")]),e._v(": set grid size (number of rows and minimum number of columns)")]),e._v(" "),t("li",[t("strong",[e._v("Translate grid")]),e._v(": select which grid(s) to translate and in which language the texts shall be translated")]),e._v(" "),t("li",[t("strong",[e._v("Fill gaps")]),e._v(": moves all grid elements as far left as possible, closing gaps as the following image shows:\n"),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{staticStyle:{"margin-left":"2em"},attrs:{src:i(501),alt:"fill gaps",width:"130"}})])]),e._v(" "),t("li",[t("strong",[e._v("Edit global grid")]),e._v(": directly go to the page, where the global grid can be edited (otherwise go to "),t("em",[e._v("Manage grids → Edit global Grid")]),e._v(" (at the bottom))")])]),e._v(" "),t("h2",{attrs:{id:"editing-grid-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-grid-elements"}},[e._v("#")]),e._v(" Editing grid elements")]),e._v(" "),t("p",[e._v("A right click (or long tap) on a grid element in "),t("strong",[e._v("edit view (“editing on”)")]),e._v(" opens the following menu:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(502),alt:"edit view - element menu"}}),e._v(" "),t("em",[e._v("Fig. 2: Grid element menu in “Editing on” - view")])]),e._v(" "),t("p",[e._v("These are the options to select:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Edit")]),e._v(": opens a dialog to edit the label and the image of this element (“Edit modal”)")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": deletes this element")]),e._v(" "),t("li",[t("strong",[e._v("More → Clone")]),e._v(": inserts a copy of this element to the grid")]),e._v(" "),t("li",[t("strong",[e._v("More → Do element action")]),e._v(": performs the actions that are assigned to this grid element, e.g. speaking the label or navigating to another grid")]),e._v(" "),t("li",[t("strong",[e._v("More → Move element to other grid")]),e._v(": moves the element to another grid which can be selected")])]),e._v(" "),t("h2",{attrs:{id:"edit-grid-item-modal"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#edit-grid-item-modal"}},[e._v("#")]),e._v(" “Edit grid item” modal")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=KWwWgCgidXM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=13&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Add and edit elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The “Edit”-modal is opened by a right click (or long tap) on a grid element in "),t("strong",[e._v("edit view (“editing on”)")]),e._v(" and subsequent clicking on “Edit”. The “Edit”-modal has three tabs (General, Image and Actions):")]),e._v(" "),t("h4",{attrs:{id:"tab-general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-general"}},[e._v("#")]),e._v(" Tab “General”")]),e._v(" "),t("p",[e._v("Clicking on “Edit” in the grid element menu (Fig. 2) opens the following modal (Tab "),t("em",[e._v("General")]),e._v(") shown in Figure 3:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(503),alt:"edit grid element general"}}),e._v(" "),t("em",[e._v("Fig. 3: “Edit grid item” modal - Tab “General”")])]),e._v(" "),t("p",[e._v("These are the elements in the modal of Figure 3 (Edit grid item - Tab "),t("em",[e._v("General")]),e._v("):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Label")]),e._v(": change the label of the element shown under the image, can be empty")]),e._v(" "),t("li",[t("strong",[e._v("Color category")]),e._v(": choose the color category (Noun, Verb, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("Search for images")]),e._v(": change to the "),t("em",[e._v("Image")]),e._v("-Tab.")]),e._v(" "),t("li",[t("strong",[e._v("Costum background color")]),e._v(": choose a different backgroud color")]),e._v(" "),t("li",[t("strong",[e._v("Hide element")]),e._v(": the element will only be visible in the “Editing on”-view. After clicking “Editing off”, it will not be visible.")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes, edit the previous grid element in the “Edit grid item” modal - Tab “General”")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes, edit the next grid element in the “Edit grid item” modal - Tab “General”")])]),e._v(" "),t("h4",{attrs:{id:"tab-image"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-image"}},[e._v("#")]),e._v(" Tab “Image”")]),e._v(" "),t("p",[t("img",{attrs:{src:i(504),alt:"edit grid element image"}}),e._v(" "),t("em",[e._v("Fig. 4: “Edit grid item” modal - Tab “Image”")])]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Choose file")]),e._v(": opens a file dialog to choose a different image")]),e._v(" "),t("li",[t("strong",[e._v("Search by label")]),e._v(": image search is done by label")]),e._v(" "),t("li",[t("strong",[e._v("Clear image")]),e._v(": deletes the currently chosen image")]),e._v(" "),t("li",[t("strong",[e._v("Drop area")]),e._v(": drag and drop image files in this area to select them. It’s possible to drag and drop files from a file explorer or also other programs like e.g. METACOM MetaSearch*.\n![fill gaps](file://C:\\Users\\Agnes Scheibenreif\\OneDrive - FH Technikum Wien\\Projekte\\WBT\\Github codes\\AsTeRICS-Grid\\docs\\documentation_user\\img\\drag_metacom.gif)")]),e._v(" "),t("li",[t("strong",[e._v("Image Search")]),e._v(": type in the name of which images shall be looked for")]),e._v(" "),t("li",[t("strong",[e._v("Search Provider")]),e._v(": select the provider for the image search")]),e._v(" "),t("li",[t("strong",[e._v("Settings for image search")]),e._v(": select additional settings like Plural or Color (skin color, hair color,…)")])]),e._v(" "),t("h4",{attrs:{id:"tab-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-actions"}},[e._v("#")]),e._v(" Tab “Actions”")]),e._v(" "),t("p",[t("img",{attrs:{src:i(313),alt:"edit grid element actions"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 5: “Edit grid item” modal - Tab “Actions”")])]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New Action")]),e._v(": select type of new action in the combobox (e.g. Speak label, Navigate to other grid)")]),e._v(" "),t("li",[t("strong",[e._v("Add action")]),e._v(": add the selected type of action to the grid")]),e._v(" "),t("li",[t("strong",[e._v("Current actions")]),e._v(": actions currently assigned to the current grid element are shown here")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": open additional drop down menus to edit and configure the particular action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this action from the current grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": tests the action, e.g. speaks the label. This button is not available for all types of actions.")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes, edit the previous grid element in the “Edit grid item” modal - Tab “Actions”")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes, edit the next grid element in the “Edit grid item” modal - Tab “Actions”")])]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.metacom-symbole.de/",target:"_blank"}},[e._v("*METACOM and MetaSearch")]),e._v(" © Annette Kitzinger")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=n.exports},313:function(e,t,i){e.exports=i.p+"assets/img/edit_grid_element_actions_en.8cb3125d.jpg"},500:function(e,t,i){e.exports=i.p+"assets/img/edit_moremenu_en.619098c5.jpg"},501:function(e,t,i){e.exports=i.p+"assets/img/fill_gaps.cc2b28c6.gif"},502:function(e,t,i){e.exports=i.p+"assets/img/edit_element_menu_en.41b988c2.jpg"},503:function(e,t,i){e.exports=i.p+"assets/img/edit_grid_element_general_en.c0b2582a.jpg"},504:function(e,t,i){e.exports=i.p+"assets/img/edit_grid_element_image_en.d78a5e47.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{1050:function(e,t,i){"use strict";i.r(t);var a=i(2),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"grid-appearance-and-layout"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-appearance-and-layout"}},[e._v("#")]),e._v(" Grid appearance and layout")]),e._v(" "),t("p",[t("strong",[e._v("Videos on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=Iw605fb85bs&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=12&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Layout options"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=X6YrWJW2ZoM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=21&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Collect elements"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=t0FWZcM9TMg&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=22&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prediction elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("This chapter is about a grid’s layout and appearance and how to edit it:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#adding-elements-and-layout-options"}},[e._v("Adding elements and change the layout")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#editing-grid-elements"}},[e._v("Editing grid elements menu")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#edit-grid-item-modal"}},[e._v("Edit modal")]),e._v(": changing label and image")],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"adding-elements-and-layout-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-elements-and-layout-options"}},[e._v("#")]),e._v(" Adding elements and layout options")]),e._v(" "),t("p",[e._v("In the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#edit-view"}},[e._v("Edit view (“Editing on”)")]),e._v(" the following menu opens on a click on “more”:")],1),e._v(" "),t("p",[t("img",{attrs:{src:i(509),alt:"edit view - more menu"}}),e._v(" "),t("em",[e._v("Fig. 1: Edit view - menu “more”")])]),e._v(" "),t("p",[e._v("These are the actions to select in the menu:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New → New Element")]),e._v(": creates a normal new element, opening a dialog where label and image can be defined")]),e._v(" "),t("li",[t("strong",[e._v("New → Many new elements")]),e._v(": creates multiple new normal elements at once, opening a dialog where multiple elements can be defined and inserted into the grid")]),e._v(" "),t("li",[t("strong",[e._v("New → New collect element")]),e._v(": creates a new collect element, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("Terms")])],1),e._v(" "),t("li",[t("strong",[e._v("New → New prediction element")]),e._v(": creates a new prediction element, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("Terms")])],1),e._v(" "),t("li",[t("strong",[e._v("New → New YouTube Player")]),e._v(": creates a new YouTube Player element")]),e._v(" "),t("li",[t("strong",[e._v("Delete all elements")]),e._v(": removes all grid elements from the grid")]),e._v(" "),t("li",[t("strong",[e._v("Change grid dimensions")]),e._v(": set grid size (number of rows and minimum number of columns)")]),e._v(" "),t("li",[t("strong",[e._v("Translate grid")]),e._v(": select which grid(s) to translate and in which language the texts shall be translated")]),e._v(" "),t("li",[t("strong",[e._v("Fill gaps")]),e._v(": moves all grid elements as far left as possible, closing gaps as the following image shows:\n"),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{staticStyle:{"margin-left":"2em"},attrs:{src:i(510),alt:"fill gaps",width:"130"}})])]),e._v(" "),t("li",[t("strong",[e._v("Edit global grid")]),e._v(": directly go to the page, where the global grid can be edited (otherwise go to "),t("em",[e._v("Manage grids → Edit global Grid")]),e._v(" (at the bottom))")])]),e._v(" "),t("h2",{attrs:{id:"editing-grid-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-grid-elements"}},[e._v("#")]),e._v(" Editing grid elements")]),e._v(" "),t("p",[e._v("A right click (or long tap) on a grid element in "),t("strong",[e._v("edit view (“editing on”)")]),e._v(" opens the following menu:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(511),alt:"edit view - element menu"}}),e._v(" "),t("em",[e._v("Fig. 2: Grid element menu in “Editing on” - view")])]),e._v(" "),t("p",[e._v("These are the options to select:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Edit")]),e._v(": opens a dialog to edit the label and the image of this element (“Edit modal”)")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": deletes this element")]),e._v(" "),t("li",[t("strong",[e._v("More → Clone")]),e._v(": inserts a copy of this element to the grid")]),e._v(" "),t("li",[t("strong",[e._v("More → Do element action")]),e._v(": performs the actions that are assigned to this grid element, e.g. speaking the label or navigating to another grid")]),e._v(" "),t("li",[t("strong",[e._v("More → Move element to other grid")]),e._v(": moves the element to another grid which can be selected")])]),e._v(" "),t("h2",{attrs:{id:"edit-grid-item-modal"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#edit-grid-item-modal"}},[e._v("#")]),e._v(" “Edit grid item” modal")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=KWwWgCgidXM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=13&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Add and edit elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The “Edit”-modal is opened by a right click (or long tap) on a grid element in "),t("strong",[e._v("edit view (“editing on”)")]),e._v(" and subsequent clicking on “Edit”. The “Edit”-modal has three tabs (General, Image and Actions):")]),e._v(" "),t("h4",{attrs:{id:"tab-general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-general"}},[e._v("#")]),e._v(" Tab “General”")]),e._v(" "),t("p",[e._v("Clicking on “Edit” in the grid element menu (Fig. 2) opens the following modal (Tab "),t("em",[e._v("General")]),e._v(") shown in Figure 3:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(512),alt:"edit grid element general"}}),e._v(" "),t("em",[e._v("Fig. 3: “Edit grid item” modal - Tab “General”")])]),e._v(" "),t("p",[e._v("These are the elements in the modal of Figure 3 (Edit grid item - Tab "),t("em",[e._v("General")]),e._v("):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Label")]),e._v(": change the label of the element shown under the image, can be empty")]),e._v(" "),t("li",[t("strong",[e._v("Color category")]),e._v(": choose the color category (Noun, Verb, etc.)")]),e._v(" "),t("li",[t("strong",[e._v("Search for images")]),e._v(": change to the "),t("em",[e._v("Image")]),e._v("-Tab.")]),e._v(" "),t("li",[t("strong",[e._v("Costum background color")]),e._v(": choose a different backgroud color")]),e._v(" "),t("li",[t("strong",[e._v("Hide element")]),e._v(": the element will only be visible in the “Editing on”-view. After clicking “Editing off”, it will not be visible.")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes, edit the previous grid element in the “Edit grid item” modal - Tab “General”")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes, edit the next grid element in the “Edit grid item” modal - Tab “General”")])]),e._v(" "),t("h4",{attrs:{id:"tab-image"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-image"}},[e._v("#")]),e._v(" Tab “Image”")]),e._v(" "),t("p",[t("img",{attrs:{src:i(513),alt:"edit grid element image"}}),e._v(" "),t("em",[e._v("Fig. 4: “Edit grid item” modal - Tab “Image”")])]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Choose file")]),e._v(": opens a file dialog to choose a different image")]),e._v(" "),t("li",[t("strong",[e._v("Search by label")]),e._v(": image search is done by label")]),e._v(" "),t("li",[t("strong",[e._v("Clear image")]),e._v(": deletes the currently chosen image")]),e._v(" "),t("li",[t("strong",[e._v("Drop area")]),e._v(": drag and drop image files in this area to select them. It’s possible to drag and drop files from a file explorer or also other programs like e.g. METACOM MetaSearch*.\n![fill gaps](file://C:\\Users\\Agnes Scheibenreif\\OneDrive - FH Technikum Wien\\Projekte\\WBT\\Github codes\\AsTeRICS-Grid\\docs\\documentation_user\\img\\drag_metacom.gif)")]),e._v(" "),t("li",[t("strong",[e._v("Image Search")]),e._v(": type in the name of which images shall be looked for")]),e._v(" "),t("li",[t("strong",[e._v("Search Provider")]),e._v(": select the provider for the image search")]),e._v(" "),t("li",[t("strong",[e._v("Settings for image search")]),e._v(": select additional settings like Plural or Color (skin color, hair color,…)")])]),e._v(" "),t("h4",{attrs:{id:"tab-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-actions"}},[e._v("#")]),e._v(" Tab “Actions”")]),e._v(" "),t("p",[t("img",{attrs:{src:i(313),alt:"edit grid element actions"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 5: “Edit grid item” modal - Tab “Actions”")])]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New Action")]),e._v(": select type of new action in the combobox (e.g. Speak label, Navigate to other grid)")]),e._v(" "),t("li",[t("strong",[e._v("Add action")]),e._v(": add the selected type of action to the grid")]),e._v(" "),t("li",[t("strong",[e._v("Current actions")]),e._v(": actions currently assigned to the current grid element are shown here")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": open additional drop down menus to edit and configure the particular action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this action from the current grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": tests the action, e.g. speaks the label. This button is not available for all types of actions.")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes, edit the previous grid element in the “Edit grid item” modal - Tab “Actions”")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes, edit the next grid element in the “Edit grid item” modal - Tab “Actions”")])]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.metacom-symbole.de/",target:"_blank"}},[e._v("*METACOM and MetaSearch")]),e._v(" © Annette Kitzinger")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=n.exports},313:function(e,t,i){e.exports=i.p+"assets/img/edit_grid_element_actions_en.8cb3125d.jpg"},509:function(e,t,i){e.exports=i.p+"assets/img/edit_moremenu_en.619098c5.jpg"},510:function(e,t,i){e.exports=i.p+"assets/img/fill_gaps.cc2b28c6.gif"},511:function(e,t,i){e.exports=i.p+"assets/img/edit_element_menu_en.41b988c2.jpg"},512:function(e,t,i){e.exports=i.p+"assets/img/edit_grid_element_general_en.c0b2582a.jpg"},513:function(e,t,i){e.exports=i.p+"assets/img/edit_grid_element_image_en.d78a5e47.jpg"}}]); \ No newline at end of file diff --git a/assets/js/280.74cafd49.js b/assets/js/280.37cc5fde.js similarity index 96% rename from assets/js/280.74cafd49.js rename to assets/js/280.37cc5fde.js index 5ef69a2b2d..decbd7aaed 100644 --- a/assets/js/280.74cafd49.js +++ b/assets/js/280.37cc5fde.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[280],{1271:function(e,t,a){"use strict";a.r(t);var r=a(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"tobii4cheadtracker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tobii4cheadtracker"}},[e._v("#")]),e._v(" Tobii4CHeadTracker")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("OS: Windows")]),e._v(" "),t("p",[e._v("This component provides access to the raw head tracking data of the "),t("a",{attrs:{href:"https://tobiigaming.com/eye-tracker-4c/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Tracker 4C"),t("OutboundLink")],1),e._v(" eye tracking device. The data includes the head position (x/y/z) in mm and the head rotation (x/y/z) in Euler angles. The Tobii4CHeadTracker plugin can be combined with the "),t("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/AsTeRICS-Help/master/Plugins/sensors/EyeX.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("EyeX"),t("OutboundLink")],1),e._v(" plugin to also get the eye gaze data.")]),e._v(" "),t("p",[e._v("The plugin connects to the device via the "),t("a",{attrs:{href:"https://tobiigaming.com/getstarted/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Eye Tracking Core Software"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("OS: Windows")]),e._v(" "),t("li",[e._v("USB port: The Tracker 4C needs at least a USB 2.0 port. Preferably don’t use a USB hub, or only use a "),t("a",{attrs:{href:"https://help.tobii.com/hc/en-us/articles/212907389-Recommended-USB-2-0-hubs",target:"_blank",rel:"noopener noreferrer"}},[e._v("recommended hub from Tobii"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://tobiigaming.com/getstarted/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Eye Tracking Core Software"),t("OutboundLink")],1),e._v(" must be installed and running.")])]),e._v(" "),t("p",[t("img",{attrs:{src:a(852),alt:"Screenshot: Tobii Tracker 4C plugin",title:"Screenshot: Tobii Tracker 4C plugin"}})]),e._v(" "),t("p",[e._v("Tobii Tracker 4C")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[e._v("**headRotX [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head rotation x angle (Euler).")]),e._v(" "),t("li",[e._v("**headRotY [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head rotation y angle (Euler).")]),e._v(" "),t("li",[e._v("**headRotZ [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head rotation z angle (Euler).")]),e._v(" "),t("li",[e._v("**headPosX [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head position x coordinate (mm).")]),e._v(" "),t("li",[e._v("**headPosY [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head position y coordinate (mm).")]),e._v(" "),t("li",[e._v("**headPosZ [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head position y coordinate (mm).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activate:")]),e._v(" Activates (Turns on) the eye tracker device.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate")]),e._v(" Deactivates (Pauses) the eye tracker device.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("userPresenceStatusAway:")]),e._v(" Indicates that no user is sitting in front of the tracker.")]),e._v(" "),t("li",[t("strong",[e._v("userPresenceStatusPresent:")]),e._v(" Indicates that a user is sitting in front of the tracker.")]),e._v(" "),t("li",[t("strong",[e._v("calibrationStarted:")]),e._v(" Indicates that the tracker calibration has been started.")]),e._v(" "),t("li",[t("strong",[e._v("calibrationFinished:")]),e._v(" Indicates that the tracker calibration has been finished.")]),e._v(" "),t("li",[t("strong",[e._v("displayAreaChanged:")]),e._v(" Indicates that the assigned display has been changed.")]),e._v(" "),t("li",[t("strong",[e._v("powerSaveStateTrue:")]),e._v(" Indicates that the tracker is in power save mode.")]),e._v(" "),t("li",[t("strong",[e._v("powerSaveStateFalse:")]),e._v(" Indicates that the tracker is not in power save mode.")]),e._v(" "),t("li",[t("strong",[e._v("deviceOff:")]),e._v(" Indicates that the tracker is currently paused.")]),e._v(" "),t("li",[t("strong",[e._v("deviceOn:")]),e._v(" Indicates that the tracker is currently enabled.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" Selects if the tracker is enabled at startup.")])])])}),[],!1,null,null,null);t.default=i.exports},852:function(e,t,a){e.exports=a.p+"assets/img/tobiigaming_product_4c.a006cad9.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[280],{1270:function(e,t,a){"use strict";a.r(t);var r=a(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"tobii4cheadtracker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tobii4cheadtracker"}},[e._v("#")]),e._v(" Tobii4CHeadTracker")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("OS: Windows")]),e._v(" "),t("p",[e._v("This component provides access to the raw head tracking data of the "),t("a",{attrs:{href:"https://tobiigaming.com/eye-tracker-4c/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Tracker 4C"),t("OutboundLink")],1),e._v(" eye tracking device. The data includes the head position (x/y/z) in mm and the head rotation (x/y/z) in Euler angles. The Tobii4CHeadTracker plugin can be combined with the "),t("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/AsTeRICS-Help/master/Plugins/sensors/EyeX.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("EyeX"),t("OutboundLink")],1),e._v(" plugin to also get the eye gaze data.")]),e._v(" "),t("p",[e._v("The plugin connects to the device via the "),t("a",{attrs:{href:"https://tobiigaming.com/getstarted/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Eye Tracking Core Software"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("OS: Windows")]),e._v(" "),t("li",[e._v("USB port: The Tracker 4C needs at least a USB 2.0 port. Preferably don’t use a USB hub, or only use a "),t("a",{attrs:{href:"https://help.tobii.com/hc/en-us/articles/212907389-Recommended-USB-2-0-hubs",target:"_blank",rel:"noopener noreferrer"}},[e._v("recommended hub from Tobii"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://tobiigaming.com/getstarted/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Eye Tracking Core Software"),t("OutboundLink")],1),e._v(" must be installed and running.")])]),e._v(" "),t("p",[t("img",{attrs:{src:a(853),alt:"Screenshot: Tobii Tracker 4C plugin",title:"Screenshot: Tobii Tracker 4C plugin"}})]),e._v(" "),t("p",[e._v("Tobii Tracker 4C")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[e._v("**headRotX [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head rotation x angle (Euler).")]),e._v(" "),t("li",[e._v("**headRotY [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head rotation y angle (Euler).")]),e._v(" "),t("li",[e._v("**headRotZ [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head rotation z angle (Euler).")]),e._v(" "),t("li",[e._v("**headPosX [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head position x coordinate (mm).")]),e._v(" "),t("li",[e._v("**headPosY [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head position y coordinate (mm).")]),e._v(" "),t("li",[e._v("**headPosZ [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*Head position y coordinate (mm).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activate:")]),e._v(" Activates (Turns on) the eye tracker device.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate")]),e._v(" Deactivates (Pauses) the eye tracker device.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("userPresenceStatusAway:")]),e._v(" Indicates that no user is sitting in front of the tracker.")]),e._v(" "),t("li",[t("strong",[e._v("userPresenceStatusPresent:")]),e._v(" Indicates that a user is sitting in front of the tracker.")]),e._v(" "),t("li",[t("strong",[e._v("calibrationStarted:")]),e._v(" Indicates that the tracker calibration has been started.")]),e._v(" "),t("li",[t("strong",[e._v("calibrationFinished:")]),e._v(" Indicates that the tracker calibration has been finished.")]),e._v(" "),t("li",[t("strong",[e._v("displayAreaChanged:")]),e._v(" Indicates that the assigned display has been changed.")]),e._v(" "),t("li",[t("strong",[e._v("powerSaveStateTrue:")]),e._v(" Indicates that the tracker is in power save mode.")]),e._v(" "),t("li",[t("strong",[e._v("powerSaveStateFalse:")]),e._v(" Indicates that the tracker is not in power save mode.")]),e._v(" "),t("li",[t("strong",[e._v("deviceOff:")]),e._v(" Indicates that the tracker is currently paused.")]),e._v(" "),t("li",[t("strong",[e._v("deviceOn:")]),e._v(" Indicates that the tracker is currently enabled.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" Selects if the tracker is enabled at startup.")])])])}),[],!1,null,null,null);t.default=i.exports},853:function(e,t,a){e.exports=a.p+"assets/img/tobiigaming_product_4c.a006cad9.png"}}]); \ No newline at end of file diff --git a/assets/js/281.1847e8e9.js b/assets/js/281.e2235cc3.js similarity index 99% rename from assets/js/281.1847e8e9.js rename to assets/js/281.e2235cc3.js index bd28246351..9692d01c93 100644 --- a/assets/js/281.1847e8e9.js +++ b/assets/js/281.e2235cc3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[281],{1275:function(e,t,a){"use strict";a.r(t);var r=a(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"xfacetrackerlk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#xfacetrackerlk"}},[e._v("#")]),e._v(" XFacetrackerLK")]),e._v(" "),t("h3",{attrs:{id:"component-type-sensor-subcategory-computer-vision"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-sensor-subcategory-computer-vision"}},[e._v("#")]),e._v(" Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("OS: Windows (x86, x64), Linux (x86, x64, RPi3), Mac OSX")]),e._v(" "),t("p",[e._v("This component provides a cross-platform face tracking computer vision algorithm which puts out estimated movement of a user’s nose and chin in x and y coordinates. The underlying mechanism builds upon the "),t("a",{attrs:{href:"https://github.com/bytedeco/javacv",target:"_blank",rel:"noopener noreferrer"}},[e._v("JavaCV library"),t("OutboundLink")],1),e._v(" for frame grabbing and computer vision processing. In particular a trained cascade of haar-like features is used in combination with a Lukas Kanade optical flow algorithm to track a face and its movement. The x- and y- coordinates can be used in camera-mouse configurations or to enable selection or control tasks. The values are only provided if a face can be tracked by the algorithm. Note that the x- and y- values represent relative movement in pixels and have to be accumulated (e.g. via the integrate component) to generate e.g. absolute mouse positions.")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available (this can be any webcam or a camera which is available as image acquisition device via the operating system). The picture below shows the Logitech Webcam 9000 Pro. Also the camera device of a Kinect sensor or PS3Eye should work. Furthermore, a video stream of an IP camera can be used for tracking.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(315),alt:"Logitech Webcam 9000 Pro",title:"Logitech Webcam 9000 Pro"}}),t("br"),e._v("\nLogitech Webcam 9000 Pro")]),e._v(" "),t("h3",{attrs:{id:"note-for-raspberry-pi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#note-for-raspberry-pi"}},[e._v("#")]),e._v(" Note for Raspberry Pi")]),e._v(" "),t("p",[e._v("The plugin can be used on a Raspberry Pi 3 (tested with Raspbian Jessie) with USB cameras, the Kinect camera or the "),t("a",{attrs:{href:"https://www.raspberrypi.org/products/camera-module-v2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Raspberry Pi camera module"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("In order for the raspi cam to work, the following steps are necessary:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Enable the camera with")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" raspi-config\n")])])])]),e._v(" "),t("li",[t("p",[e._v("Add the v4l driver for the camera, to make it accessible as /dev/videoXX device:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" modprobe bcm2835-v4l2 "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("max_video_width")]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("2592")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("max_video_height")]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("1944")]),e._v("\n")])])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("noseX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("noseY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s chin with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s chin with respect to the previous image frame.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("init:")]),e._v(" if this event is triggered, the face recognition procedure is initiated. This can be useful if the correct face position has been lost due to drifting of the LK algorithm.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings")]),e._v(" an incoming event displays the settings window for the camera device (only on Windows), where parameters like image brightness or contrast can be adjusted.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("frameGrabber[string, combobox selection]:")]),e._v(" Name of FrameGrabber to use (Default, VideoInput, OpenCV, FFmpeg, OpenKinect, PS3Eye, IPCamera).")]),e._v(" "),t("li",[t("strong",[e._v("frameGrabberFormat[string]:")]),e._v(" Format for grabber, e.g. FFmpeg: ‘dshow’ (default), ‘vfwcap’, ‘gdigrab’.")]),e._v(" "),t("li",[t("strong",[e._v("deviceList [string, combobox selection]:")]),e._v(" List of available devices, if supported by grabber")]),e._v(" "),t("li",[t("strong",[e._v("cameraSelection [string]:")]),e._v(" The camera device to be used - use camdIdx e.g. ‘0’ (VideoInput, OpenCV, OpenKinect, PS3Eye), or camName e.g. ‘video=Integrated Camera’ or ‘desktop’ (FFmpeg), stream-url for IPCamera.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" This selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include 160x120, 320x240, 640x480, 800x600, 1024x768 and 1600x1200.")]),e._v(" "),t("li",[t("strong",[e._v("frameRate [integer]:")]),e._v(" The frame rate to use for frame grabbing. In case of 0 or a negative value, the maximum frame rate will be used.")]),e._v(" "),t("li",[t("strong",[e._v("titleVideoFrameWindow [string]:")]),e._v(" The title of the window showing the video frame.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI window will be shown.")]),e._v(" "),t("li",[t("strong",[e._v("enableOverlaySettings [boolean]:")]),e._v(" if selected, the video frame shows the current frame rate and device name as overlayed text.")])]),e._v(" "),t("h2",{attrs:{id:"example-configuraitons"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-configuraitons"}},[e._v("#")]),e._v(" Example Configuraitons")]),e._v(" "),t("h3",{attrs:{id:"default"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#default"}},[e._v("#")]),e._v(" Default")]),e._v(" "),t("p",[e._v("Selects the best frame grabber for the platform the ARE is running on. (Linux: FFmpeg, Mac OSX: OpenCV, Windows: VideoInput)")]),e._v(" "),t("p",[e._v("Configuration")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:Default")]),e._v(" "),t("li",[e._v("cameraSelection:0")])]),e._v(" "),t("h3",{attrs:{id:"opencv"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#opencv"}},[e._v("#")]),e._v(" OpenCV")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:OpenCV")]),e._v(" "),t("li",[e._v("cameraSelection:0")])]),e._v(" "),t("h3",{attrs:{id:"videoinput-windows-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#videoinput-windows-only"}},[e._v("#")]),e._v(" VideoInput (Windows only)")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:VideoInput")]),e._v(" "),t("li",[e._v("cameraSelection:0")])]),e._v(" "),t("h3",{attrs:{id:"ffmpeg-linux-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ffmpeg-linux-only"}},[e._v("#")]),e._v(" FFmpeg (Linux only)")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:FFmpeg")]),e._v(" "),t("li",[e._v("frameGrabberFormat (optional): e.g. vfwcap or dshow")]),e._v(" "),t("li",[e._v("cameraSelection (device name or device number): e.g. /dev/video0 or 0 (will be mapped to /dev/video0)")])]),e._v(" "),t("h3",{attrs:{id:"mjpeg-stream-of-smartphone-camera"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mjpeg-stream-of-smartphone-camera"}},[e._v("#")]),e._v(" MJPEG stream of SmartPhone camera")]),e._v(" "),t("p",[e._v("Install the following Android app on your smartphone and start streaming the front camera: "),t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.vinternete.camerastream",target:"_blank",rel:"noopener noreferrer"}},[e._v("Camera Stream - WiFi IP Webcam (Web Host LLC)"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Enter the http url displayed at your smartphone and add /video to the url")]),e._v(" "),t("p",[e._v("e.g.")]),e._v(" "),t("p",[e._v("http://192.168.1.100:8080/video")]),e._v(" "),t("p",[e._v("Set the cameraSelection property of the XFacetrackerLK plugin to this url.")]),e._v(" "),t("p",[e._v("Configuration")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:IPCamera")]),e._v(" "),t("li",[e._v("cameraSelection:http://192.168.1.100:8080/video")])])])}),[],!1,null,null,null);t.default=i.exports},315:function(e,t){e.exports="data:image/jpeg;base64,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oc0juKqwysZG4udcjKd3TbT22WxxenZA4xOJe8CN2Y23PhY8Nt1Zrdyitc2SwVt0qoqJwT5IsFvtkdhqiueHWdHTX8qUi1xxbGD5x69w9haOu5HsKdeapIs0gQs69czz7GDxUmrGw7D44ImxRNDY2DK0Do6b8STqTxJWSsKIiICIiAiIgIiICIiAiIgIiICIiAiIgLDxHB4JxaaNkg4XGov0O3t7isxEHDVfI7hrzdvPxdTJbjwkDlequSmhkbEHunPNRNhaQ9ou1rnOBIy2vdx3Ls0QcG/kcoLHK+pa62hzsNu7JqteeRVv0t/qW/fUmIrojH8io+lu9QP5i9/Iv/zZ9QP5ik1E2RF7uRd3CrHfAf5ivUvIrFrz1TK4/J5tjGAdubNf2KSkTRHJ5Fab6RUW46Q+/Ks7GOSqnqah0z5pmhwYMjRHoGRtYPKcDwaF3CJo5XCOTTD6c3EZld0yuLxp+po32LqWtAFhoN3/AML1FAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB/9k="}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[281],{1273:function(e,t,a){"use strict";a.r(t);var r=a(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"xfacetrackerlk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#xfacetrackerlk"}},[e._v("#")]),e._v(" XFacetrackerLK")]),e._v(" "),t("h3",{attrs:{id:"component-type-sensor-subcategory-computer-vision"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-sensor-subcategory-computer-vision"}},[e._v("#")]),e._v(" Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("OS: Windows (x86, x64), Linux (x86, x64, RPi3), Mac OSX")]),e._v(" "),t("p",[e._v("This component provides a cross-platform face tracking computer vision algorithm which puts out estimated movement of a user’s nose and chin in x and y coordinates. The underlying mechanism builds upon the "),t("a",{attrs:{href:"https://github.com/bytedeco/javacv",target:"_blank",rel:"noopener noreferrer"}},[e._v("JavaCV library"),t("OutboundLink")],1),e._v(" for frame grabbing and computer vision processing. In particular a trained cascade of haar-like features is used in combination with a Lukas Kanade optical flow algorithm to track a face and its movement. The x- and y- coordinates can be used in camera-mouse configurations or to enable selection or control tasks. The values are only provided if a face can be tracked by the algorithm. Note that the x- and y- values represent relative movement in pixels and have to be accumulated (e.g. via the integrate component) to generate e.g. absolute mouse positions.")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available (this can be any webcam or a camera which is available as image acquisition device via the operating system). The picture below shows the Logitech Webcam 9000 Pro. Also the camera device of a Kinect sensor or PS3Eye should work. Furthermore, a video stream of an IP camera can be used for tracking.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(315),alt:"Logitech Webcam 9000 Pro",title:"Logitech Webcam 9000 Pro"}}),t("br"),e._v("\nLogitech Webcam 9000 Pro")]),e._v(" "),t("h3",{attrs:{id:"note-for-raspberry-pi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#note-for-raspberry-pi"}},[e._v("#")]),e._v(" Note for Raspberry Pi")]),e._v(" "),t("p",[e._v("The plugin can be used on a Raspberry Pi 3 (tested with Raspbian Jessie) with USB cameras, the Kinect camera or the "),t("a",{attrs:{href:"https://www.raspberrypi.org/products/camera-module-v2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Raspberry Pi camera module"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("In order for the raspi cam to work, the following steps are necessary:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Enable the camera with")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" raspi-config\n")])])])]),e._v(" "),t("li",[t("p",[e._v("Add the v4l driver for the camera, to make it accessible as /dev/videoXX device:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" modprobe bcm2835-v4l2 "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("max_video_width")]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("2592")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("max_video_height")]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("1944")]),e._v("\n")])])])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("noseX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("noseY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s chin with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s chin with respect to the previous image frame.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("init:")]),e._v(" if this event is triggered, the face recognition procedure is initiated. This can be useful if the correct face position has been lost due to drifting of the LK algorithm.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings")]),e._v(" an incoming event displays the settings window for the camera device (only on Windows), where parameters like image brightness or contrast can be adjusted.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("frameGrabber[string, combobox selection]:")]),e._v(" Name of FrameGrabber to use (Default, VideoInput, OpenCV, FFmpeg, OpenKinect, PS3Eye, IPCamera).")]),e._v(" "),t("li",[t("strong",[e._v("frameGrabberFormat[string]:")]),e._v(" Format for grabber, e.g. FFmpeg: ‘dshow’ (default), ‘vfwcap’, ‘gdigrab’.")]),e._v(" "),t("li",[t("strong",[e._v("deviceList [string, combobox selection]:")]),e._v(" List of available devices, if supported by grabber")]),e._v(" "),t("li",[t("strong",[e._v("cameraSelection [string]:")]),e._v(" The camera device to be used - use camdIdx e.g. ‘0’ (VideoInput, OpenCV, OpenKinect, PS3Eye), or camName e.g. ‘video=Integrated Camera’ or ‘desktop’ (FFmpeg), stream-url for IPCamera.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" This selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include 160x120, 320x240, 640x480, 800x600, 1024x768 and 1600x1200.")]),e._v(" "),t("li",[t("strong",[e._v("frameRate [integer]:")]),e._v(" The frame rate to use for frame grabbing. In case of 0 or a negative value, the maximum frame rate will be used.")]),e._v(" "),t("li",[t("strong",[e._v("titleVideoFrameWindow [string]:")]),e._v(" The title of the window showing the video frame.")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" if selected, the GUI window will be shown.")]),e._v(" "),t("li",[t("strong",[e._v("enableOverlaySettings [boolean]:")]),e._v(" if selected, the video frame shows the current frame rate and device name as overlayed text.")])]),e._v(" "),t("h2",{attrs:{id:"example-configuraitons"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-configuraitons"}},[e._v("#")]),e._v(" Example Configuraitons")]),e._v(" "),t("h3",{attrs:{id:"default"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#default"}},[e._v("#")]),e._v(" Default")]),e._v(" "),t("p",[e._v("Selects the best frame grabber for the platform the ARE is running on. (Linux: FFmpeg, Mac OSX: OpenCV, Windows: VideoInput)")]),e._v(" "),t("p",[e._v("Configuration")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:Default")]),e._v(" "),t("li",[e._v("cameraSelection:0")])]),e._v(" "),t("h3",{attrs:{id:"opencv"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#opencv"}},[e._v("#")]),e._v(" OpenCV")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:OpenCV")]),e._v(" "),t("li",[e._v("cameraSelection:0")])]),e._v(" "),t("h3",{attrs:{id:"videoinput-windows-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#videoinput-windows-only"}},[e._v("#")]),e._v(" VideoInput (Windows only)")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:VideoInput")]),e._v(" "),t("li",[e._v("cameraSelection:0")])]),e._v(" "),t("h3",{attrs:{id:"ffmpeg-linux-only"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ffmpeg-linux-only"}},[e._v("#")]),e._v(" FFmpeg (Linux only)")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:FFmpeg")]),e._v(" "),t("li",[e._v("frameGrabberFormat (optional): e.g. vfwcap or dshow")]),e._v(" "),t("li",[e._v("cameraSelection (device name or device number): e.g. /dev/video0 or 0 (will be mapped to /dev/video0)")])]),e._v(" "),t("h3",{attrs:{id:"mjpeg-stream-of-smartphone-camera"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mjpeg-stream-of-smartphone-camera"}},[e._v("#")]),e._v(" MJPEG stream of SmartPhone camera")]),e._v(" "),t("p",[e._v("Install the following Android app on your smartphone and start streaming the front camera: "),t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.vinternete.camerastream",target:"_blank",rel:"noopener noreferrer"}},[e._v("Camera Stream - WiFi IP Webcam (Web Host LLC)"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Enter the http url displayed at your smartphone and add /video to the url")]),e._v(" "),t("p",[e._v("e.g.")]),e._v(" "),t("p",[e._v("http://192.168.1.100:8080/video")]),e._v(" "),t("p",[e._v("Set the cameraSelection property of the XFacetrackerLK plugin to this url.")]),e._v(" "),t("p",[e._v("Configuration")]),e._v(" "),t("ul",[t("li",[e._v("frameGrabber:IPCamera")]),e._v(" "),t("li",[e._v("cameraSelection:http://192.168.1.100:8080/video")])])])}),[],!1,null,null,null);t.default=i.exports},315:function(e,t){e.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhASEBUSEhQQEhAWFBQSFBYVEg8UFRgVFBAVFRYQFxIXGyYeFxkkGRcUHy8gIycpLCwsFh4xNTAqNSYrLCkBCQoKDgwOFA8PFyweHRwpKSovKTUpKSkpNS41KTUuLzUvMSkpNSkqLCwpNSwsLCouKSwtMi8pNSwpNiwpKSwpNf/AABEIAMIBAwMBIgACEQEDEQH/xAAcAAEAAQUBAQAAAAAAAAAAAAAABwIDBAUGAQj/xABPEAABAwIDAwcHBgsGBQUBAAABAAIDBBEFEiEGMUEHE1FhcYGRIjJSk6Gx0UJTVHLB0hQWFyMkYoKSs9PwNEODo7LCJWR0lKIzY+Hj8RX/xAAYAQEBAQEBAAAAAAAAAAAAAAAAAQIDBP/EACcRAQADAAEDAwMFAQAAAAAAAAABAhEDITFBEjJREyKxYXGR4fAE/9oADAMBAAIRAxEAPwCcUREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEVqSpY3znNb2kD3ryOsjd5r2O7HNPuKC8iIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICtVFSyNpe9zWMaLuc4hrQOkk7li43jcNJA6ed2SNo14kk7mNHFxO4L50295SZ615zEx04P5uEHTqe8/Kd17hw67gknafluhjuykYJSP7192x/st0c7vt3qMca5VqyYnPUSkejEebZ2WZa/fdcW0TVDw1oLidwF1Imy3Iq+YB1RIWA65WgX73H7LqjjXbVkm5Zm63OufcVfp9rmg+VF3teB/tU10nIjhMbbyAu0JJdI7cLXOmXTUKqq5DMJkByB7D0tkd9uZTYEb4PylPiI5qpnh/VeS5ngczfcpFwHli3CqYC0/3sPvdGT7Qe5cTtPyDyRAvpZecA1yPs13c69j32Uc56ilkLHhzHA2c1wNu8H/APVe6PsLDcUhnjEkL2yMPFpv3EbweorKXzNsrtI9rs0MslPLpfLdzHdtgfBwt1rvoOULE2jz6SXrc1t/Bjx7lMVLaKKDyl4j0UXg7+Yn5SMR/wCS8D/NTE1K6KKhyhYkfoXh/wDYvfx8xQ8aPwb/ADEw1KiKKXbeYp6VJ4M++vPx6xX0qX91n30w1K6KJ/x4xX06b9xn3k/HXFfTg9XH95MNSwiij8cMW+cg9XH8U/GzF/nI/VRJhqV0UTnazFuMsY/wovgsWXb7EWedVU4PQ5tOPZomGpiRRJRcrlUzWWOCZnExuLT4guHsXbbObf0dYQxjjHMf7uSzXH6p3O7jfqUxXSoiICIiAiIgIiIC8c6wuvVHfLBtqympH0rHH8JmaG6fJjcSHEngS0OA7UEY8qe3pragtY79EhJbEODzuMx7eHQO0rgqDD5KqUMaCSSrVXIS4NH9EqUOTrA2xRc44fnH+Ibw7L7/AAW4RttldkoqZo0DpOLre5dnHIcuUAm+mgufDj2LFo6durnODY2gve5xsGtaLucTwAH9arhNquUd8mZlM401KNC8eTNIOku3saeDW69J4BKJAqsdigJ510Ubnb+cnax2pv5rTcDqsrmF7Q0kjgY3Qlw3ZJb8COO/eV89vxZl9GFx4kkC/XcqqPFWDUtcz9YG9u8blMV9M1dbp0Lg9r9mIqthDgA+3kvA1B+0dS5vZPlEkhLWTuM9IdCd7mD0geIHRvUoVVE0sa9hD43gOY4WIIIv7kR831+HzUcxjfdrhqCDoRwcDxBHFZ0W2tc1uVtRUAdHOyW8LqRtttnRUQOsBzsYdIw21LRq+Pwu8fVPpKGnggkHeNFVhu5Nr6w755vWP+KtN2oqwbiecf4j/itPdLqK6Bm21eN1VU+tk+KyG8oWJDdV1PrX/FcvdXaaFz3Brd5/q6TkdViJmch0Mm32InfV1XrpB9qpG1OJO1E9a4dUs59xRzKak0kBln3lgsMv1nWOU/qgE9JCx5Nsp/kthYOgMze15JXH12t7a/z0en6XHTpyW6/ERqqXaiuBs6oqgeuace8q0dqKz6RUeul+8rkW1RdpNGx7TvsLew3HuXlfhMb2c9TG7flM4jptx7vBT6kxOXjP18E8FbRM8VvVnjtP9rR2jqvn5/Wy/FUnaGp+en9bJ8Vqrpdd3lbF2NTnfLL6x/xVl1dId73n9p3xWJdLqjKZVOBuCQ7pBN/Heu22TqhBzdZVB/NnnBTZHMD3SxjSaxGsYcQAfSFzcBctsxg/4TUMiJyRnM+R/oQxtzSyfuggdZVzaDGjVTl4GSFoEUMYvljhZoyMb+FyTbeSoPoPkt25jrKcQvke6rjb5fOZMz230kGXeBoDx3X3rul8h4Di81NMyaJ2WRjgWm4tppY8Cy1wem5X1NsvtBHW0sdQzTMPKbfVrxo5h7D7LHipI2yIigIiICIiAV80cq9UZcTqH/JEghb2RRsaf/LN4r6XXzJyhR+W5/F89a49orJW/YFYHH4JBnlJPYO17g3/AEl57lLeEy2AA7FGuxVPmmI36g+EUxUv7O4Tme2+7ML9l1pJaXbfaAcyKSN2rnkzW9GJ1mxntkzO/ZaoqrJHTShrfNG7oA9JdNtC0tqKq/nNfMP8x5XP4VSXjc7pAHdmsUHsNPGBo1rv1n3N/qtHDrVz8EadbNafSZcW+s08FcibYncLbr9A4WCy5gxpZZ7ZMzWklocLFw1jNwNRuNtFBgNiMLgfkOOVw4Bx3PHQCph5Jcf5yKShkNy0GSG/RqSzuN/FRHiFS1zMvEjTudoV0/J/X81iVOb2Bc1ruxz2A+9BIGLy5XBwtcG9um3DsOoUH7V0HM1csY3Bxt2XNj4WUsYviwc8jjckdlzxUZbczF9W5x35Yx4RMVSHOoi8Vaere4bLzFO6b+8ccrOo8D3C57bLQra4kf0eEcLvPfZi48vX01+Zeng+2L38xH5nGsc4k31JJ7SSfeV3WMcmn4LRMfK6aSvmcGxU8LA4A2zPDrAuflbvtaxI3jVcPTzlj2vFrtc1wvuu1wIv1aKZdqeUikfSRVUD43zEmN9M8kPyStBkYbatLXxxODxp5PG66PMiXEaGOFrGEyiq8ozMfEYxHuyR+V5TnWuSbAagC+pTCMRMMgPyTo4dXT2hbLF8elmhMnOwhrskDqcMGaOOJtosj5A5zmZRYuDr387eCeeUmsWiYny1S80tFq94bHHKUMlOXRrvKHfvHj71r1tcbPkRHjlP+lq1SxwzM0jXX/oiI5LZ/t6i9VK9XVwdfs9EY8Pr5xvywUjT0CR/OSW7coHeubj6Tv8AbxHUT2BdVSH/AIFVW4V9OXfVdBIB7bLlQNPh2X7/AAHaoLkTzc629Led3F3E9Q1U1cg+JuDqinJ8ktbO0aaEHI46aXILL29HhuULRDUWvcHhYW+xvapd5H4SzEB+tSOJtu8p0bgf1vrGxNjfcLpRNqIiyoiIgIiIBXzbylx2nkj4sqaod0sgmb7JF9JKCOW7BZI6szhruZmawl9jlErWlhYTuDsrWnr16CrAjvYiqDKxl9ztD3nKfBrnHuU+4VSAOiefNvr0DMCQeq2vcCvm4O5uUO4XzdoO9vvC+gNh8ejqaYNdZxAFxwzCxDrjUX0dp6VuCqOL5TsJ5jEZHEfm5hzo6PLvnH72ZcBRVHMOdE++XUtPS0/1719AbV4QzEIDC8hlTGbxOOguRrFmJuQbDU8cp7YaxXApWXbPG4ZDbNbzT0Ho9x4INS+QE3Fz1t1uOzpVt5tqbtG7M7S3Tlb0qs4UPkkj6rrexUnC9bkk9bnXVGJHeWUACzRbuaPiuw2SpXPqOcaNGA2+tw9uU/sla/DNn5JLNiY6zvlW87rHT27h7FJ+BbNiniDGgOl0z6kWzaXvbh8T0oOdOGPcXONw0XHhv+xRtj0+ad/GziP69imTa2ujpKYi4z20HEu4DvPsBUI1Ubg45rh1ze++99boQxl4qiF5ZFeLcsZztIQNXxOzW/VtY+yx7itPZZOH1zonhw7x0hc+SszGx3h34bxWZi3aYyWXhFRTBj2zg3zse2zMw8mKZtiQ4HLnfG4jiGnqW9hr8NjaJAxpu5gyZc7rCQmVzmGQjIQGWY61tBrq5amfCmTfnKci51dGdLHq6OwrWyYbM3QxyD9lx9oSvJW3nr8JfgvTxsfMdm/jxbDmFrmRWc0C5MZeHeQ4Fti+zTmsb66G2lrHSGFss9om5WOym2th5Az21OmbNbXoVyi2eqJSA2Nw63Aj2bz3BbWWSGiYWMIkqjoXCxaztO644NHHU7rLN+SPbXrLdOGY+7k6V/P7NVj0oMmQfIGXv4ju0HctbZVO11O9eWXSlYrWIceS/rtNvksi9smVbYdfsnIZaSupRq58EdSwdLqV4LgOvKHLQCK/WOPgOPDducQrmAYq+mnjnZq6N2a3pNIs+M9rf61XQbR4M2N7ZYPKo52maA2Bs06uhIOl2HybAE7j0rI0NNT5j1A77EtBtYAkCzLktFwDvUy8j9MX1s0ljaODm9QAQ6SRps4elZhBJNyRc9AiuKPKel3a9xF9bXNszDuI081fRHJxs0aOiaHjLNJ+dkFvNJFmx9WVthbpuko6pERZUREQEREBabbDZ5tbRy07rAubdjj8mRurHdl9/UStyiD4+xLDXsc6J7S2WNzmlp3hwNnN9izNldpH0zxY6dBNgdb5eo3Jsesg6HSY+V7k9M4NbTNvM0fnmNGr2AaSADe9o3jiB1awXUUubym+dxHT19vvWoE44RtRHUNab2c08d7Ta2rTxF+5b6J8brE6uAyh2hdboJPnDqII6l87YXjb4XfKuNNDZwtwsdHDqPcQu2wjlAOgcQew2d+4dfC/aqiSZ9lMPlN30tOT0s5yEnrIjcB7F5BslQRm8dLTtPBzxJMR1gSOI9i5qHlAi+US36wLfeq5OUWDgcx6gT7lMHWijjbcjR5HnaX6uGg6gFqMSxuCjjJc4F5HSSTp0nW2ns8OIxflLdqGWb1u3/ui58bLia/HZZXXu4uvo4+df9UDd7T1qo6+kxmGevDqp1rXdGx1g1ruDpL7nW3N4WF9dBsMY2CgqiZIpGtedSWlrmk9JF9/YVxOGbLF3lTycwzfa2aQ/s3AHee5bN+F0DPN/CXn0nSht+5jRbxRVU3JNVg+S6Jw7Xj/AGq2OSet4mEftP8Aur0NpvRm/wC4qPvJ+jehJ/3FR95B6OSas9KHxk+6vfyS1fpw+Mn3VQW0vzbu+eo++rYjpfmv82o++gyI+SqsabiSEHpDpB/tWwg2LxNosJ6c9rc3vYtUyOi4wNP+LUffVeSh+js9ZU/zFm1K27xrdeS9PbMw2NVsRicgyuqY8p3taXMae0MaL96155Kan5yHxf8AdVB/A/o8f79R/MXofR/R4v35/wCYkVivaEtebTszr38ldT85B4v+CfksqfnIfF/3V6ZaL6LB4z/fXhqKP6LT/wCd99aZe/ksn+dhHe74J+TNw86op294+0hefhNH9FpvCX76ux1tKDpSUh7WPPszIMSTZKjiPl10Wb0Y28449QaxxN1k0087IzSRRungdK2eMSscJGPaCZCI4yXBrm3uBY3F7BbKlgqpzalpC0H5mmDG97w0C3aV2ezHJJMXtmrH83lcHCOJ133BuM0o0br6Nz1hQW+Tjk4i50Vb3sliaQ6BjQbXOoc7hZvADjrpaxltUsjA3AAXJ0AGpNyVUsqIiICIiAiIgIiIBUZbe8kLKguqKPLHObufGdI5DvJHoPPgerUqTUQfJWK4O+KQxVEb45W7w4Fru2/EdeoWvfhZ+S4Ht0PwX1rjGAU1UzJURRyt4ZhqOtrt7T2ELgsV5C6VxJp5poD6LgJWd17O9pWtEDR0tQ3zQ/8AZd8CsiPCKuTTJK76zgB4uNlKUvIfXtPkT0rx188w+GV3vVqfkkxGJhe6WlDRa9nzE6kD5sdKajhqXYeS155oYW+i086/wb5I/eWWynpoNIWuc/dndYvPZbRvd7Vfnw8tfle5zgDY5R7gTr4hUQgXIAIHSRa/tVHQbA7LsrqlzJ3PaxrDJlYQC6zmjKXcPO4LY4xsi6nfLmhLKdhJbIynZIObvo50zruGm+5CyOSF36c8dMD/AOJGpN2rbehqv+nm/hOU3qIQZRUR+U/1bfirow6h9KT1Y+K1VOdFltWkZww2g9KT1Q+KuDCsP9KX1Q+KwWlXAVMGYMKw/wBOX1Tfivf/AOXh/py+qb8ViBUyFMGypcCo5HZYnTSPsTlbBmNhvNgdy7TZvZtsNLUPkhDTzbgzPG0Ps1jiXWOrbk8fRXPcl4viB6oJP9cYUl7RPtR1B6IJf4TlJVB1JG3ILhvgELG66N8AvKYkN3XPQr7or7ugnW7dBe+p0vpuvrcW1WoRkbNwh1bTtsCDNHpYcHX+xTi2Fo3ADuChfYlmbEacdDnH92J5+xTWsysPLL1EWVEREBERAREQEREBERAREQEREBa7aH+zP/Z/iNWxWBjjb08n1SfDX7EEB40PzjvrH3rBadFn49/6rvrFa1jl0ZdjyTyf8Rt0xSf7T9iljaf+xVP/AE838JyhDYfHYaSvZNO7JDkka52VzrXYbaNBJ1twUm7ScoOHfgTvz4/SYJxB+bn8vR0dvN8ny9PKssT3VDtM7RZjXLApjostrltGQ0qsOWOHKsPQXw5USOVIeqJXoOv5KP7c/qp3fxYlIW2MmXD6k/8AsvHi232qL+TXGqenrJHTyxwtdAWtdI5rWl3OsOW542B8F223+09J+BTwNngM7mNtGJGF5D3MIOUG9i037Csz3VF8DtFS9ytwv8lUvkWoR0nJ0L4lH1NlP+U4fapnUO8ljM2IX9GGQ/8AkwfapiWJ7rAiIooiIgIiICIiAiIgIiICIiAiIgK1Vw543M9Jrm+ItdXUQfOm0bXNme1wIcHEOHQQdQtQxymblD5PjV3np7CoA8ppIAkAGmvB43XOh3G1rqGamllhkMUscjJBva5rg7tt0da3qPGwc44NV7GHtfDSsG+BkrDoR5T6qSTsPklh06VTSThrrrZYjTsYyK++ZnPm/wAm80rA0dWVjT2kqDWQP0CyWyK1M9lwGA/FGsd0e1vxVhGQJFWJFjhjug+Lfiqgx3QfZ8VRkCRW5pFRld0H2K1KSN+iCn8BMzso4AlZOOMY+o5xpzDmqdtxuuykiY4doc0juKqwysZG4udcjKd3TbT22WxxenZA4xOJe8CN2Y23PhY8Nt1Zrdyitc2SwVt0qoqJwT5IsFvtkdhqiueHWdHTX8qUi1xxbGD5x69w9haOu5HsKdeapIs0gQs69czz7GDxUmrGw7D44ImxRNDY2DK0Do6b8STqTxJWSsKIiICIiAiIgIiICIiAiIgIiICIiAiIgLDxHB4JxaaNkg4XGov0O3t7isxEHDVfI7hrzdvPxdTJbjwkDlequSmhkbEHunPNRNhaQ9ou1rnOBIy2vdx3Ls0QcG/kcoLHK+pa62hzsNu7JqteeRVv0t/qW/fUmIrojH8io+lu9QP5i9/Iv/zZ9QP5ik1E2RF7uRd3CrHfAf5ivUvIrFrz1TK4/J5tjGAdubNf2KSkTRHJ5Fab6RUW46Q+/Ks7GOSqnqah0z5pmhwYMjRHoGRtYPKcDwaF3CJo5XCOTTD6c3EZld0yuLxp+po32LqWtAFhoN3/AML1FAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB/9k="}}]); \ No newline at end of file diff --git a/assets/js/282.03bfce1b.js b/assets/js/282.0b267136.js similarity index 95% rename from assets/js/282.03bfce1b.js rename to assets/js/282.0b267136.js index 9f0471f369..49e03dada9 100644 --- a/assets/js/282.03bfce1b.js +++ b/assets/js/282.0b267136.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[282],{1276:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"camera-mouse-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#camera-mouse-solution"}},[e._v("#")]),e._v(" Camera Mouse Solution")]),e._v(" "),t("h2",{attrs:{id:"objective"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[e._v("#")]),e._v(" Objective")]),e._v(" "),t("p",[e._v("Mouse control (moving mouse cursor, clicking and dragging) by head movements.")]),e._v(" "),t("h2",{attrs:{id:"description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[e._v("#")]),e._v(" Description")]),e._v(" "),t("p",[e._v("By moving the head up/down or left/right the mouse cursor should move accordingly. A left click is performed by dwelling (stopping movement and waiting for some time). To do a right, double or drag click select the respective button in the ARE GUI and move the cursor to the location where the click should be performed at. The camera device, the mouse speed and other settings can be changed by clicking onto the "),t("code",[e._v("Settings")]),e._v(" button. Additionally, external switches can be configured for clicking and an on-screen keyboard of choice can be defined.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(860),alt:"Face with tracking marks."}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Integrated Webcam or USB camera")]),e._v(" "),t("li",[e._v("AsTeRICS installed and ARE running")]),e._v(" "),t("li",[e._v("OS: Windows, Linux (incl. RPi), Mac OSX")])]),e._v(" "),t("h2",{attrs:{id:"related-videos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#related-videos"}},[e._v("#")]),e._v(" Related Videos")]),e._v(" "),t("Video",{attrs:{code:"P9qJAWegkFM"}}),e._v(" "),t("h2",{attrs:{id:"major-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[e._v("#")]),e._v(" Major Plugins")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"/plugins/sensors/XFacetrackerLK"}},[e._v("XFacetrackerLK")])]),e._v(" "),t("li",[t("a",{attrs:{href:"/plugins/actuators/Mouse"}},[e._v("Mouse")])])]),e._v(" "),t("h2",{attrs:{id:"related-tutorials"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#related-tutorials"}},[e._v("#")]),e._v(" Related Tutorials")]),e._v(" "),t("p",[t("a",{attrs:{href:"/customize/Model-Creation"}},[e._v("Model Creation - Camera Mouse Simple")])])],1)}),[],!1,null,null,null);t.default=s.exports},860:function(e,t,a){e.exports=a.p+"assets/img/camera-mouse-tracked-face.5e64e466.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[282],{1276:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"camera-mouse-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#camera-mouse-solution"}},[e._v("#")]),e._v(" Camera Mouse Solution")]),e._v(" "),t("h2",{attrs:{id:"objective"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[e._v("#")]),e._v(" Objective")]),e._v(" "),t("p",[e._v("Mouse control (moving mouse cursor, clicking and dragging) by head movements.")]),e._v(" "),t("h2",{attrs:{id:"description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[e._v("#")]),e._v(" Description")]),e._v(" "),t("p",[e._v("By moving the head up/down or left/right the mouse cursor should move accordingly. A left click is performed by dwelling (stopping movement and waiting for some time). To do a right, double or drag click select the respective button in the ARE GUI and move the cursor to the location where the click should be performed at. The camera device, the mouse speed and other settings can be changed by clicking onto the "),t("code",[e._v("Settings")]),e._v(" button. Additionally, external switches can be configured for clicking and an on-screen keyboard of choice can be defined.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(861),alt:"Face with tracking marks."}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Integrated Webcam or USB camera")]),e._v(" "),t("li",[e._v("AsTeRICS installed and ARE running")]),e._v(" "),t("li",[e._v("OS: Windows, Linux (incl. RPi), Mac OSX")])]),e._v(" "),t("h2",{attrs:{id:"related-videos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#related-videos"}},[e._v("#")]),e._v(" Related Videos")]),e._v(" "),t("Video",{attrs:{code:"P9qJAWegkFM"}}),e._v(" "),t("h2",{attrs:{id:"major-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[e._v("#")]),e._v(" Major Plugins")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"/plugins/sensors/XFacetrackerLK"}},[e._v("XFacetrackerLK")])]),e._v(" "),t("li",[t("a",{attrs:{href:"/plugins/actuators/Mouse"}},[e._v("Mouse")])])]),e._v(" "),t("h2",{attrs:{id:"related-tutorials"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#related-tutorials"}},[e._v("#")]),e._v(" Related Tutorials")]),e._v(" "),t("p",[t("a",{attrs:{href:"/customize/Model-Creation"}},[e._v("Model Creation - Camera Mouse Simple")])])],1)}),[],!1,null,null,null);t.default=s.exports},861:function(e,t,a){e.exports=a.p+"assets/img/camera-mouse-tracked-face.5e64e466.png"}}]); \ No newline at end of file diff --git a/assets/js/283.14665658.js b/assets/js/283.a3c9b40d.js similarity index 89% rename from assets/js/283.14665658.js rename to assets/js/283.a3c9b40d.js index f5fa0eb55b..607f01317e 100644 --- a/assets/js/283.14665658.js +++ b/assets/js/283.a3c9b40d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[283],{1279:function(t,a,e){"use strict";e.r(a);var s=e(2),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"head-sound-solution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#head-sound-solution"}},[t._v("#")]),t._v(" Head Sound Solution")]),t._v(" "),a("h2",{attrs:{id:"objective"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),a("p",[t._v("Generate sounds according to head movement.")]),t._v(" "),a("h2",{attrs:{id:"description"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[t._v("#")]),t._v(" Description")]),t._v(" "),a("p",[t._v("By moving the head left/right, the tone scale should go up and down accordingly. Additionally, by moving the head up/down, the volume can be changed.")]),t._v(" "),a("p",[a("img",{attrs:{src:e(861),alt:"ARE GUI with tone scale and graph for tone scale and volume."}})]),t._v(" "),a("h2",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),a("ul",[a("li",[t._v("Integrated Webcam or USB camera")]),t._v(" "),a("li",[t._v("AsTeRICS installed and ARE running")]),t._v(" "),a("li",[t._v("OS: Windows, Linux (incl. RPi), Mac OSX")])]),t._v(" "),a("h2",{attrs:{id:"major-plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[t._v("#")]),t._v(" Major Plugins")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"/plugins/sensors/XFacetrackerLK"}},[t._v("XFacetrackerLK")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/plugins/actuators/MidiPlayer"}},[t._v("MidiPlayer")])])])])}),[],!1,null,null,null);a.default=r.exports},861:function(t,a,e){t.exports=e.p+"assets/img/headsound.9bcac6dc.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[283],{1277:function(t,a,e){"use strict";e.r(a);var s=e(2),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"head-sound-solution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#head-sound-solution"}},[t._v("#")]),t._v(" Head Sound Solution")]),t._v(" "),a("h2",{attrs:{id:"objective"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),a("p",[t._v("Generate sounds according to head movement.")]),t._v(" "),a("h2",{attrs:{id:"description"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[t._v("#")]),t._v(" Description")]),t._v(" "),a("p",[t._v("By moving the head left/right, the tone scale should go up and down accordingly. Additionally, by moving the head up/down, the volume can be changed.")]),t._v(" "),a("p",[a("img",{attrs:{src:e(862),alt:"ARE GUI with tone scale and graph for tone scale and volume."}})]),t._v(" "),a("h2",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),a("ul",[a("li",[t._v("Integrated Webcam or USB camera")]),t._v(" "),a("li",[t._v("AsTeRICS installed and ARE running")]),t._v(" "),a("li",[t._v("OS: Windows, Linux (incl. RPi), Mac OSX")])]),t._v(" "),a("h2",{attrs:{id:"major-plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[t._v("#")]),t._v(" Major Plugins")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"/plugins/sensors/XFacetrackerLK"}},[t._v("XFacetrackerLK")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/plugins/actuators/MidiPlayer"}},[t._v("MidiPlayer")])])])])}),[],!1,null,null,null);a.default=r.exports},862:function(t,a,e){t.exports=e.p+"assets/img/headsound.9bcac6dc.png"}}]); \ No newline at end of file diff --git a/assets/js/289.48723d25.js b/assets/js/289.b3b8f52d.js similarity index 98% rename from assets/js/289.48723d25.js rename to assets/js/289.b3b8f52d.js index a6ea0e0101..f5b87b5976 100644 --- a/assets/js/289.48723d25.js +++ b/assets/js/289.b3b8f52d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[289],{924:function(e,t,s){"use strict";s.r(t);var r=s(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey},scopedSlots:e._u([{key:"jumbotron",fn:function(){return[t("Header",[e._v("AsTeRICS")]),e._v(" "),t("Subtitle",[e._v("Create Customized Low-Cost Assistive Technologies for People with Disabilities.")]),e._v(" "),t("ActionGroup",[t("Label",[e._v("Are you looking for special solutions to use a computer, control your environment or play games?")]),e._v(" "),t("Actions",[t("Action",{attrs:{path:"/solutions/"}},[e._v("Discover Solutions")]),e._v(" "),t("Action",{attrs:{path:"/get-started/",dark:""}},[e._v("Get Started")])],1)],1)]},proxy:!0}])},[t("h2",{attrs:{id:"use-cases"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#use-cases"}},[e._v("#")]),e._v(" Use Cases")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Computer Control",media:"/assets/img/harry-shutterstock_213119035.jpg"}},[e._v("Control your computer by switches, head movements or eyetracking, depending on your capabilities.")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Environment Control",media:"/assets/img/smart-home-shutterstock_304964420.jpg"}},[e._v("Switch on/off lights or control your TV and stereo.")]),e._v(" "),t("UseCase",{attrs:{title:"Alternative and Augmentative Communication",media:"/assets/img/AsTeRICS-Ergo_Grid_en-1-768x592.jpg"}},[e._v("Create your own communication grid and use it on all your devices.")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Gaming & Toys",media:"https://www.youtube.com/watch?v=JwL_zS3fpnU"}},[e._v("Emulate mouse, keyboard or joystick for playing games or remote control toy helicopters or cars.")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Music",media:"https://www.youtube.com/watch?v=w7oz9YqMK6Q"}},[e._v("Generate sounds or play adapted music instruments.")]),e._v(" "),t("h2",{attrs:{id:"why-asterics"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-asterics"}},[e._v("#")]),e._v(" Why AsTeRICS?")]),e._v(" "),t("p",[e._v("There are many Assistive Technologies available on the market, but in many cases they are too expensive or not suitable for a certain combination of disabilities.")]),e._v(" "),t("p",[t("strong",[e._v("AsTeRICS")])]),e._v(" "),t("ul",[t("li",[e._v("provides support for many consumer devices which can be used as input devices (e.g. switches, eye-tracker, webcam, …).")]),e._v(" "),t("li",[e._v("let’s you combine several input devices depending on your capabilities (e.g. 2 switches + 1 eye-tracker).")]),e._v(" "),t("li",[e._v("provides support for many use cases (e.g. computer control, environmental control).")]),e._v(" "),t("li",[e._v("has more than 160 plugins.")]),e._v(" "),t("li",[e._v("allows easily customizing existing solutions or designing new ones.")]),e._v(" "),t("li",[e._v("is Open Source, which means that it is free forever and others can contribute to the framework.")])]),e._v(" "),t("h2",{attrs:{id:"partners-funding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#partners-funding"}},[e._v("#")]),e._v(" Partners & Funding")]),e._v(" "),t("p",[e._v("The AsTeRICS project was funded by international and national research grants. AsTeRICS was initiated by "),t("a",{attrs:{href:"https://www.ki-i.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("KI-I Linz"),t("OutboundLink")],1),e._v(" and the "),t("a",{attrs:{href:"https://www.technikum-wien.at/",target:"_blank",rel:"noopener noreferrer"}},[e._v("UAS Technikum Wien"),t("OutboundLink")],1),e._v(". The creation of this web page was funded by the City of Vienna, MA23, in course of the project "),t("a",{attrs:{href:"https://hub.studyathome.technikum-wien.at/",target:"_blank",rel:"noopener noreferrer"}},[t("strong",[e._v("StudyATHome Internationally")]),t("OutboundLink")],1),e._v(" (Grant Nr. 22-07). Please read the "),t("RouterLink",{attrs:{to:"/get-involved/About-us.html"}},[e._v("About Us")]),e._v(" section for a full list of contributions.")],1),e._v(" "),t("Funding",[t("Partner",{attrs:{media:"/assets/img/ma23-logo.svg",alt:"MA23, City of Vienna - Logo",href:"#partners-funding"}}),e._v(" "),t("Partner",{attrs:{media:"/assets/img/fhtw-logo.svg",alt:"UAS Technikum Wien - Logo",href:"#partners-funding",scale:"0.7"}})],1),e._v(" "),t("Funding",[t("Partner",{attrs:{media:"/assets/img/torades-logo.png",alt:"ToRaDes - Project Logo",href:"#partners-funding"}}),e._v(" "),t("Partner",{attrs:{media:"/assets/img/ki-i-logo.png",alt:"KI-I",href:"#partners-funding"}}),e._v(" "),t("Partner",{attrs:{media:"/assets/img/StudyATHome-logo.svg",alt:"StudyATHome Internationally - Project Logo",href:"#partners-funding",scale:"0.9"}})],1),e._v(" "),t("p"),e._v(" "),t("h2",{attrs:{id:"asterics-project-web-page"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-project-web-page"}},[e._v("#")]),e._v(" AsTeRICS Project Web Page")]),e._v(" "),t("p",[e._v("This is a newly created web page to present AsTeRICS technologies and corresponding documentation. If you are looking for the web page of the original AsTeRICS project, please go to "),t("a",{attrs:{href:"https://project.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://project.asterics.eu"),t("OutboundLink")],1),e._v(".")])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[289],{923:function(e,t,s){"use strict";s.r(t);var r=s(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey},scopedSlots:e._u([{key:"jumbotron",fn:function(){return[t("Header",[e._v("AsTeRICS")]),e._v(" "),t("Subtitle",[e._v("Create Customized Low-Cost Assistive Technologies for People with Disabilities.")]),e._v(" "),t("ActionGroup",[t("Label",[e._v("Are you looking for special solutions to use a computer, control your environment or play games?")]),e._v(" "),t("Actions",[t("Action",{attrs:{path:"/solutions/"}},[e._v("Discover Solutions")]),e._v(" "),t("Action",{attrs:{path:"/get-started/",dark:""}},[e._v("Get Started")])],1)],1)]},proxy:!0}])},[t("h2",{attrs:{id:"use-cases"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#use-cases"}},[e._v("#")]),e._v(" Use Cases")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Computer Control",media:"/assets/img/harry-shutterstock_213119035.jpg"}},[e._v("Control your computer by switches, head movements or eyetracking, depending on your capabilities.")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Environment Control",media:"/assets/img/smart-home-shutterstock_304964420.jpg"}},[e._v("Switch on/off lights or control your TV and stereo.")]),e._v(" "),t("UseCase",{attrs:{title:"Alternative and Augmentative Communication",media:"/assets/img/AsTeRICS-Ergo_Grid_en-1-768x592.jpg"}},[e._v("Create your own communication grid and use it on all your devices.")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Gaming & Toys",media:"https://www.youtube.com/watch?v=JwL_zS3fpnU"}},[e._v("Emulate mouse, keyboard or joystick for playing games or remote control toy helicopters or cars.")]),e._v(" "),t("UseCase",{attrs:{title:"Accessible Music",media:"https://www.youtube.com/watch?v=w7oz9YqMK6Q"}},[e._v("Generate sounds or play adapted music instruments.")]),e._v(" "),t("h2",{attrs:{id:"why-asterics"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-asterics"}},[e._v("#")]),e._v(" Why AsTeRICS?")]),e._v(" "),t("p",[e._v("There are many Assistive Technologies available on the market, but in many cases they are too expensive or not suitable for a certain combination of disabilities.")]),e._v(" "),t("p",[t("strong",[e._v("AsTeRICS")])]),e._v(" "),t("ul",[t("li",[e._v("provides support for many consumer devices which can be used as input devices (e.g. switches, eye-tracker, webcam, …).")]),e._v(" "),t("li",[e._v("let’s you combine several input devices depending on your capabilities (e.g. 2 switches + 1 eye-tracker).")]),e._v(" "),t("li",[e._v("provides support for many use cases (e.g. computer control, environmental control).")]),e._v(" "),t("li",[e._v("has more than 160 plugins.")]),e._v(" "),t("li",[e._v("allows easily customizing existing solutions or designing new ones.")]),e._v(" "),t("li",[e._v("is Open Source, which means that it is free forever and others can contribute to the framework.")])]),e._v(" "),t("h2",{attrs:{id:"partners-funding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#partners-funding"}},[e._v("#")]),e._v(" Partners & Funding")]),e._v(" "),t("p",[e._v("The AsTeRICS project was funded by international and national research grants. AsTeRICS was initiated by "),t("a",{attrs:{href:"https://www.ki-i.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("KI-I Linz"),t("OutboundLink")],1),e._v(" and the "),t("a",{attrs:{href:"https://www.technikum-wien.at/",target:"_blank",rel:"noopener noreferrer"}},[e._v("UAS Technikum Wien"),t("OutboundLink")],1),e._v(". The creation of this web page was funded by the City of Vienna, MA23, in course of the project "),t("a",{attrs:{href:"https://hub.studyathome.technikum-wien.at/",target:"_blank",rel:"noopener noreferrer"}},[t("strong",[e._v("StudyATHome Internationally")]),t("OutboundLink")],1),e._v(" (Grant Nr. 22-07). Please read the "),t("RouterLink",{attrs:{to:"/get-involved/About-us.html"}},[e._v("About Us")]),e._v(" section for a full list of contributions.")],1),e._v(" "),t("Funding",[t("Partner",{attrs:{media:"/assets/img/ma23-logo.svg",alt:"MA23, City of Vienna - Logo",href:"#partners-funding"}}),e._v(" "),t("Partner",{attrs:{media:"/assets/img/fhtw-logo.svg",alt:"UAS Technikum Wien - Logo",href:"#partners-funding",scale:"0.7"}})],1),e._v(" "),t("Funding",[t("Partner",{attrs:{media:"/assets/img/torades-logo.png",alt:"ToRaDes - Project Logo",href:"#partners-funding"}}),e._v(" "),t("Partner",{attrs:{media:"/assets/img/ki-i-logo.png",alt:"KI-I",href:"#partners-funding"}}),e._v(" "),t("Partner",{attrs:{media:"/assets/img/StudyATHome-logo.svg",alt:"StudyATHome Internationally - Project Logo",href:"#partners-funding",scale:"0.9"}})],1),e._v(" "),t("p"),e._v(" "),t("h2",{attrs:{id:"asterics-project-web-page"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-project-web-page"}},[e._v("#")]),e._v(" AsTeRICS Project Web Page")]),e._v(" "),t("p",[e._v("This is a newly created web page to present AsTeRICS technologies and corresponding documentation. If you are looking for the web page of the original AsTeRICS project, please go to "),t("a",{attrs:{href:"https://project.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://project.asterics.eu"),t("OutboundLink")],1),e._v(".")])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/290.37520c01.js b/assets/js/290.05de3171.js similarity index 96% rename from assets/js/290.37520c01.js rename to assets/js/290.05de3171.js index 4b225e3133..706c1f05d7 100644 --- a/assets/js/290.37520c01.js +++ b/assets/js/290.05de3171.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[290],{923:function(t,o,e){"use strict";e.r(o);var s=e(2),i=Object(s.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"tutorials"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#tutorials"}},[t._v("#")]),t._v(" Tutorials")]),t._v(" "),o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),o("p",[t._v("If you are an "),o("strong",[t._v("occupational therapist")]),t._v(" or an "),o("strong",[t._v("assistive technology professional")]),t._v(" or simply want to "),o("strong",[t._v("customize")]),t._v(" or "),o("strong",[t._v("create")]),t._v(" new solutions, this is the right place for you.")]),t._v(" "),o("p",[t._v("In this section you will find tutorials about model creation and editing.")])]),t._v(" "),o("p",[t._v("If you would like to use a solution for a dedicated person with disabilities, go to the "),o("RouterLink",{attrs:{to:"/solutions/"}},[t._v("solutions")]),t._v(" page and start experimenting with solutions of the needed use case. Some solutions directly provide a settings page by clicking the "),o("code",[t._v("Settings")]),t._v(" button. In case of the camera mouse this allows to configure the camera device, the mouse speed and other settings. Otherwise you will have to edit the underlying model directly. This can be done by clicking the "),o("code",[t._v("Edit")]),t._v(" button.")],1),t._v(" "),o("h2",{attrs:{id:"go-to"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#go-to"}},[t._v("#")]),t._v(" Go to")]),t._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"./model/Model-Customization"}},[o("strong",[t._v("Model Customization")])]),t._v(" to learn how to modify a given model and adapt single properties.")]),t._v(" "),o("li",[o("a",{attrs:{href:"./model/Model-Creation"}},[o("strong",[t._v("Model Creation")])]),t._v(" to learn how to create a new model.")])])])}),[],!1,null,null,null);o.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[290],{925:function(t,o,e){"use strict";e.r(o);var s=e(2),i=Object(s.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"tutorials"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#tutorials"}},[t._v("#")]),t._v(" Tutorials")]),t._v(" "),o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),o("p",[t._v("If you are an "),o("strong",[t._v("occupational therapist")]),t._v(" or an "),o("strong",[t._v("assistive technology professional")]),t._v(" or simply want to "),o("strong",[t._v("customize")]),t._v(" or "),o("strong",[t._v("create")]),t._v(" new solutions, this is the right place for you.")]),t._v(" "),o("p",[t._v("In this section you will find tutorials about model creation and editing.")])]),t._v(" "),o("p",[t._v("If you would like to use a solution for a dedicated person with disabilities, go to the "),o("RouterLink",{attrs:{to:"/solutions/"}},[t._v("solutions")]),t._v(" page and start experimenting with solutions of the needed use case. Some solutions directly provide a settings page by clicking the "),o("code",[t._v("Settings")]),t._v(" button. In case of the camera mouse this allows to configure the camera device, the mouse speed and other settings. Otherwise you will have to edit the underlying model directly. This can be done by clicking the "),o("code",[t._v("Edit")]),t._v(" button.")],1),t._v(" "),o("h2",{attrs:{id:"go-to"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#go-to"}},[t._v("#")]),t._v(" Go to")]),t._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"./model/Model-Customization"}},[o("strong",[t._v("Model Customization")])]),t._v(" to learn how to modify a given model and adapt single properties.")]),t._v(" "),o("li",[o("a",{attrs:{href:"./model/Model-Creation"}},[o("strong",[t._v("Model Creation")])]),t._v(" to learn how to create a new model.")])])])}),[],!1,null,null,null);o.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/291.bbd2c21c.js b/assets/js/291.f164a1e0.js similarity index 90% rename from assets/js/291.bbd2c21c.js rename to assets/js/291.f164a1e0.js index 723366b913..ca0418b42e 100644 --- a/assets/js/291.bbd2c21c.js +++ b/assets/js/291.f164a1e0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[291],{925:function(t,s,e){"use strict";e.r(s);var i=e(2),a=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"bioelectrical-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bioelectrical-input"}},[this._v("#")]),this._v(" Bioelectrical Input")]),this._v(" "),t("h2",{attrs:{id:"emg-based-mouse-click"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#emg-based-mouse-click"}},[this._v("#")]),this._v(" EMG-based Mouse Click")]),this._v(" "),t("p",[this._v("…")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[291],{924:function(t,s,e){"use strict";e.r(s);var i=e(2),a=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"bioelectrical-input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bioelectrical-input"}},[this._v("#")]),this._v(" Bioelectrical Input")]),this._v(" "),t("h2",{attrs:{id:"emg-based-mouse-click"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#emg-based-mouse-click"}},[this._v("#")]),this._v(" EMG-based Mouse Click")]),this._v(" "),t("p",[this._v("…")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/292.7d7a148d.js b/assets/js/292.cd0f9fd5.js similarity index 99% rename from assets/js/292.7d7a148d.js rename to assets/js/292.cd0f9fd5.js index ea629f44ad..3d9120db48 100644 --- a/assets/js/292.7d7a148d.js +++ b/assets/js/292.cd0f9fd5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[292],{928:function(e,t,a){"use strict";a.r(t);var o=a(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gaming-toys-music"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gaming-toys-music"}},[e._v("#")]),e._v(" Gaming, Toys & Music")]),e._v(" "),t("p",[e._v("AsTeRICS can be used to control computer games, music programs or infrared-controlled lights and toys. The keyboard input of a game or a music program can be substituted by another input modality (e.g. head movement, eye gaze, switch press,…) which emulates a key press. Similarily, a toy can be controlled by adapting an input modality to an RC or infrared command.")]),e._v(" "),t("h2",{attrs:{id:"head-movement-to-smiley-tutorial"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#head-movement-to-smiley-tutorial"}},[e._v("#")]),e._v(" Head Movement to Smiley Tutorial")]),e._v(" "),t("p",[e._v("In a first tutorial, you will learn how to map up/down head movements to a discrete number between 1 and 4. The number will than be mapped to one of 4 image paths and the selected image will be shown in the ImageBox widget depending on the head movement.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137794267-4b207741-a95c-40ed-9237-cdd9473f159c.gif",alt:"Demo showing selected smiley image (from angry to happy) depending on head movement"}})]),e._v(" "),t("p",[e._v("Later this tutorial can be used as a basis for other use cases as well, simply by exchanging the input signal (e.g. Use an air pressure or sip/puff value instead of head movements) or by exchanging the action (e.g. Send cursor keys "),t("kbd",[e._v("UP")]),e._v("/"),t("kbd",[e._v("DOWN")]),e._v(" or send a certain Infrared command instead of showing an image).")]),e._v(" "),t("h3",{attrs:{id:"model-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-description"}},[e._v("#")]),e._v(" Model Description")]),e._v(" "),t("p",[e._v("Below you can see the model used for this tutorial. You can "),t("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/tutorial/B_HeadMovement_MappedTo_SmileyImage.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("download"),t("OutboundLink")],1),e._v(" and open it in the "),t("strong",[e._v("ACS program")]),e._v(" or directly "),t("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/tutorial/B_HeadMovement_MappedTo_SmileyImage.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("open it in the "),t("strong",[e._v("WebACS")]),t("OutboundLink")],1),e._v(" web application.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/149799674-39c65c41-7873-4fe2-ab23-e369548ed78b.png",alt:"Head-Smiley-Control-Model"}})]),e._v(" "),t("ol",[t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/sensors/XFacetrackerLK.html"}},[e._v("XFacetrackerLK")]),e._v(" plugin opens the first camera device with a resolution of 320x240 pixels, tracks the head movements and sends the relative movement in y-direction to the Integrate plugin.")],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/Integrate.html"}},[e._v("Integrate")]),e._v(" plugin integrates the relative movements with minimum and maximum values set to "),t("strong",[e._v("0 and 240")]),e._v(" respectively (same as camera resolution). "),t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137796282-a2a080aa-d32a-4693-bfe8-af4a75dfadec.png",alt:"Head-Smiley-Control-Integrate-Properties"}})],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/SignalTranslation.html"}},[e._v("SignalTranslation")]),e._v(" plugin translates the values between "),t("strong",[e._v("0 and 240")]),e._v(" to values between "),t("strong",[e._v("1.00 and 4.00")]),e._v(". "),t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137796551-1629aea6-a031-4143-9502-7d2c2862ccbd.png",alt:"Head-Smiley-Control-SignalTranslator-Properties"}})],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/Quantizer.html"}},[e._v("Quantizer")]),e._v(" plugin creates a quantized (integer) number by rounding to the nearest integer number.")],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/StringDispatcher.html"}},[e._v("StringDispatcher")]),e._v(" plugin has predefined Strings (paths to image files) which are sent to the output port depending on the input number (1-4). "),t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137797248-d663214b-8529-4493-858e-2bac85f129ae.png",alt:"Head-Smiley-Control-StringDispatcher-Properties"}})],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/actuators/TextDisplay.html"}},[e._v("TextDisplay")]),e._v(" widget shows the quantized number in a text box for debugging purposes only.")],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/actuators/ImageBox.html"}},[e._v("ImageBox")]),e._v(" widget shows the image which path was received at the input port.")],1)]),e._v(" "),t("h2",{attrs:{id:"gaming"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gaming"}},[e._v("#")]),e._v(" Gaming")]),e._v(" "),t("p",[e._v("Many games can be controlled by keyboard shortcuts e.g. "),t("kbd",[e._v("a")]),e._v(","),t("kbd",[e._v("s")]),e._v(","),t("kbd",[e._v("d")]),e._v(","),t("kbd",[e._v("f")]),e._v(" or "),t("kbd",[e._v("left")]),e._v(","),t("kbd",[e._v("right")]),e._v(","),t("kbd",[e._v("up")]),e._v(","),t("kbd",[e._v("down")]),e._v(".\nYou can now use the "),t("a",{attrs:{href:"#head-movement-to-smiley-tutorial"}},[e._v("Head Movement to Smiley Tutorial")]),e._v(" and simply map the head up/down movement to a keyboard key by using they "),t("RouterLink",{attrs:{to:"/plugins/actuators/Keyboard.html"}},[e._v("Keyboard")]),e._v(" plugin.")],1),e._v(" "),t("p",[e._v("Simply exchange the slot Strings in the StringDispatcher plugin by the key strings or special key code strings (e.g. "),t("code",[e._v("{UP}")]),e._v(" for a cursor up key press emulation).")]),e._v(" "),t("h2",{attrs:{id:"sound-and-voice"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sound-and-voice"}},[e._v("#")]),e._v(" Sound and Voice")]),e._v(" "),t("p",[e._v("Instead of showing smiley images you can use the "),t("RouterLink",{attrs:{to:"/plugins/actuators/MidiPlayer.html"}},[e._v("MidiPlayer")]),e._v(" to create midi tones. In this case directly send the output value of the Quantizer plugin to the input port "),t("code",[e._v("pitch")]),e._v(".")],1),e._v(" "),t("p",[e._v("If you want to generate voice, set the slot strings of the StringDispatcher plugin to the words and sentences you would like to synthesize. You must then connect one of the voice generation plugins (e.g. "),t("RouterLink",{attrs:{to:"/plugins/processors/SpeechProcessor.html"}},[e._v("SpeechProcessor")]),e._v(", "),t("RouterLink",{attrs:{to:"/plugins/actuators/SyntheticVoice.html"}},[e._v("SyntheticVoice")]),e._v(", "),t("RouterLink",{attrs:{to:"/plugins/actuators/PicoTTS.html"}},[e._v("PicoTTS")]),e._v(" to it.")],1),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("project kissenklang")]),e._v(" uses a blood pressure cuff to create sounds using the "),t("RouterLink",{attrs:{to:"/plugins/actuators/MidiPlayer.html"}},[e._v("MidiPlayer")]),e._v(" plugin.")],1),e._v(" "),t("h2",{attrs:{id:"light"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#light"}},[e._v("#")]),e._v(" Light")]),e._v(" "),t("p",[e._v("If you would like to control an infrared-controlled light bulb, you can use the "),t("RouterLink",{attrs:{to:"/plugins/actuators/IRTrans.html"}},[e._v("IRTrans")]),e._v(" plugin and set the slot strings of the StringDispatcher plugin to the action strings of the respective infrared commands (e.g. "),t("code",[e._v("@IRTRANS: snd luminea-bulb,red")]),e._v(").")],1),e._v(" "),t("p",[e._v("Likewise you could use the "),t("RouterLink",{attrs:{to:"/plugins/actuators/PhilipsHue.html"}},[e._v("PhilipsHue")]),e._v(" plugin to control a Hue bulb depending on the head movement by setting the respective action string (e.g. "),t("code",[e._v('{"hue": 0, "sat": 254}')]),e._v(").")],1),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("project kissenklang")]),e._v(" uses a blood pressure cuff to control a light bulb via infrared commands sent by the "),t("RouterLink",{attrs:{to:"/plugins/actuators/IRTrans.html"}},[e._v("IRTrans")]),e._v(" plugin.")],1),e._v(" "),t("h2",{attrs:{id:"toys"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#toys"}},[e._v("#")]),e._v(" Toys")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("project kissenklang")]),e._v(" uses a blood pressure cuff to control a toy robot via infrared commands sent by the "),t("RouterLink",{attrs:{to:"/plugins/actuators/IRTrans.html"}},[e._v("IRTrans")]),e._v(" plugin.")],1),e._v(" "),t("p",[e._v("The following tutorial documents a "),t("a",{attrs:{href:"https://www.ki-i.at/helicopter/",target:"_blank",rel:"noopener noreferrer"}},[e._v("toy helicopter controlled with muscle signals"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"example-projects"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-projects"}},[e._v("#")]),e._v(" Example Projects")]),e._v(" "),t("h3",{attrs:{id:"blood-pressure-cuff-sound-and-toy-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("#")]),e._v(" Blood Pressure Cuff Sound and Toy Control")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://github.com/asterics/unikate-kissenschalter",target:"_blank",rel:"noopener noreferrer"}},[e._v("project Kissenklang"),t("OutboundLink")],1),e._v(" used a consumer blood pressure cuff and the "),t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("button interface FABI"),t("OutboundLink")],1),e._v(" to create sounds according to the pressure value of the cuff or to control various items like toy robots, soap bubble machine or infrared lights.")]),e._v(" "),t("h4",{attrs:{id:"demovideo-kissenklang"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#demovideo-kissenklang"}},[e._v("#")]),e._v(" Demovideo Kissenklang")]),e._v(" "),t("UseCase",{attrs:{title:"Kissenklang Demovideo",media:"https://youtu.be/5d4WYjJhgug"}},[e._v("Demo of Kissenklang generating sounds according to the pressure value of the blood pressure cuff.")])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[292],{927:function(e,t,a){"use strict";a.r(t);var o=a(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gaming-toys-music"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gaming-toys-music"}},[e._v("#")]),e._v(" Gaming, Toys & Music")]),e._v(" "),t("p",[e._v("AsTeRICS can be used to control computer games, music programs or infrared-controlled lights and toys. The keyboard input of a game or a music program can be substituted by another input modality (e.g. head movement, eye gaze, switch press,…) which emulates a key press. Similarily, a toy can be controlled by adapting an input modality to an RC or infrared command.")]),e._v(" "),t("h2",{attrs:{id:"head-movement-to-smiley-tutorial"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#head-movement-to-smiley-tutorial"}},[e._v("#")]),e._v(" Head Movement to Smiley Tutorial")]),e._v(" "),t("p",[e._v("In a first tutorial, you will learn how to map up/down head movements to a discrete number between 1 and 4. The number will than be mapped to one of 4 image paths and the selected image will be shown in the ImageBox widget depending on the head movement.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137794267-4b207741-a95c-40ed-9237-cdd9473f159c.gif",alt:"Demo showing selected smiley image (from angry to happy) depending on head movement"}})]),e._v(" "),t("p",[e._v("Later this tutorial can be used as a basis for other use cases as well, simply by exchanging the input signal (e.g. Use an air pressure or sip/puff value instead of head movements) or by exchanging the action (e.g. Send cursor keys "),t("kbd",[e._v("UP")]),e._v("/"),t("kbd",[e._v("DOWN")]),e._v(" or send a certain Infrared command instead of showing an image).")]),e._v(" "),t("h3",{attrs:{id:"model-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-description"}},[e._v("#")]),e._v(" Model Description")]),e._v(" "),t("p",[e._v("Below you can see the model used for this tutorial. You can "),t("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/tutorial/B_HeadMovement_MappedTo_SmileyImage.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("download"),t("OutboundLink")],1),e._v(" and open it in the "),t("strong",[e._v("ACS program")]),e._v(" or directly "),t("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/tutorial/B_HeadMovement_MappedTo_SmileyImage.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("open it in the "),t("strong",[e._v("WebACS")]),t("OutboundLink")],1),e._v(" web application.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/149799674-39c65c41-7873-4fe2-ab23-e369548ed78b.png",alt:"Head-Smiley-Control-Model"}})]),e._v(" "),t("ol",[t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/sensors/XFacetrackerLK.html"}},[e._v("XFacetrackerLK")]),e._v(" plugin opens the first camera device with a resolution of 320x240 pixels, tracks the head movements and sends the relative movement in y-direction to the Integrate plugin.")],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/Integrate.html"}},[e._v("Integrate")]),e._v(" plugin integrates the relative movements with minimum and maximum values set to "),t("strong",[e._v("0 and 240")]),e._v(" respectively (same as camera resolution). "),t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137796282-a2a080aa-d32a-4693-bfe8-af4a75dfadec.png",alt:"Head-Smiley-Control-Integrate-Properties"}})],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/SignalTranslation.html"}},[e._v("SignalTranslation")]),e._v(" plugin translates the values between "),t("strong",[e._v("0 and 240")]),e._v(" to values between "),t("strong",[e._v("1.00 and 4.00")]),e._v(". "),t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137796551-1629aea6-a031-4143-9502-7d2c2862ccbd.png",alt:"Head-Smiley-Control-SignalTranslator-Properties"}})],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/Quantizer.html"}},[e._v("Quantizer")]),e._v(" plugin creates a quantized (integer) number by rounding to the nearest integer number.")],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/processors/StringDispatcher.html"}},[e._v("StringDispatcher")]),e._v(" plugin has predefined Strings (paths to image files) which are sent to the output port depending on the input number (1-4). "),t("img",{attrs:{src:"https://user-images.githubusercontent.com/4621810/137797248-d663214b-8529-4493-858e-2bac85f129ae.png",alt:"Head-Smiley-Control-StringDispatcher-Properties"}})],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/actuators/TextDisplay.html"}},[e._v("TextDisplay")]),e._v(" widget shows the quantized number in a text box for debugging purposes only.")],1),e._v(" "),t("li",[e._v("The "),t("RouterLink",{attrs:{to:"/plugins/actuators/ImageBox.html"}},[e._v("ImageBox")]),e._v(" widget shows the image which path was received at the input port.")],1)]),e._v(" "),t("h2",{attrs:{id:"gaming"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gaming"}},[e._v("#")]),e._v(" Gaming")]),e._v(" "),t("p",[e._v("Many games can be controlled by keyboard shortcuts e.g. "),t("kbd",[e._v("a")]),e._v(","),t("kbd",[e._v("s")]),e._v(","),t("kbd",[e._v("d")]),e._v(","),t("kbd",[e._v("f")]),e._v(" or "),t("kbd",[e._v("left")]),e._v(","),t("kbd",[e._v("right")]),e._v(","),t("kbd",[e._v("up")]),e._v(","),t("kbd",[e._v("down")]),e._v(".\nYou can now use the "),t("a",{attrs:{href:"#head-movement-to-smiley-tutorial"}},[e._v("Head Movement to Smiley Tutorial")]),e._v(" and simply map the head up/down movement to a keyboard key by using they "),t("RouterLink",{attrs:{to:"/plugins/actuators/Keyboard.html"}},[e._v("Keyboard")]),e._v(" plugin.")],1),e._v(" "),t("p",[e._v("Simply exchange the slot Strings in the StringDispatcher plugin by the key strings or special key code strings (e.g. "),t("code",[e._v("{UP}")]),e._v(" for a cursor up key press emulation).")]),e._v(" "),t("h2",{attrs:{id:"sound-and-voice"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sound-and-voice"}},[e._v("#")]),e._v(" Sound and Voice")]),e._v(" "),t("p",[e._v("Instead of showing smiley images you can use the "),t("RouterLink",{attrs:{to:"/plugins/actuators/MidiPlayer.html"}},[e._v("MidiPlayer")]),e._v(" to create midi tones. In this case directly send the output value of the Quantizer plugin to the input port "),t("code",[e._v("pitch")]),e._v(".")],1),e._v(" "),t("p",[e._v("If you want to generate voice, set the slot strings of the StringDispatcher plugin to the words and sentences you would like to synthesize. You must then connect one of the voice generation plugins (e.g. "),t("RouterLink",{attrs:{to:"/plugins/processors/SpeechProcessor.html"}},[e._v("SpeechProcessor")]),e._v(", "),t("RouterLink",{attrs:{to:"/plugins/actuators/SyntheticVoice.html"}},[e._v("SyntheticVoice")]),e._v(", "),t("RouterLink",{attrs:{to:"/plugins/actuators/PicoTTS.html"}},[e._v("PicoTTS")]),e._v(" to it.")],1),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("project kissenklang")]),e._v(" uses a blood pressure cuff to create sounds using the "),t("RouterLink",{attrs:{to:"/plugins/actuators/MidiPlayer.html"}},[e._v("MidiPlayer")]),e._v(" plugin.")],1),e._v(" "),t("h2",{attrs:{id:"light"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#light"}},[e._v("#")]),e._v(" Light")]),e._v(" "),t("p",[e._v("If you would like to control an infrared-controlled light bulb, you can use the "),t("RouterLink",{attrs:{to:"/plugins/actuators/IRTrans.html"}},[e._v("IRTrans")]),e._v(" plugin and set the slot strings of the StringDispatcher plugin to the action strings of the respective infrared commands (e.g. "),t("code",[e._v("@IRTRANS: snd luminea-bulb,red")]),e._v(").")],1),e._v(" "),t("p",[e._v("Likewise you could use the "),t("RouterLink",{attrs:{to:"/plugins/actuators/PhilipsHue.html"}},[e._v("PhilipsHue")]),e._v(" plugin to control a Hue bulb depending on the head movement by setting the respective action string (e.g. "),t("code",[e._v('{"hue": 0, "sat": 254}')]),e._v(").")],1),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("project kissenklang")]),e._v(" uses a blood pressure cuff to control a light bulb via infrared commands sent by the "),t("RouterLink",{attrs:{to:"/plugins/actuators/IRTrans.html"}},[e._v("IRTrans")]),e._v(" plugin.")],1),e._v(" "),t("h2",{attrs:{id:"toys"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#toys"}},[e._v("#")]),e._v(" Toys")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("project kissenklang")]),e._v(" uses a blood pressure cuff to control a toy robot via infrared commands sent by the "),t("RouterLink",{attrs:{to:"/plugins/actuators/IRTrans.html"}},[e._v("IRTrans")]),e._v(" plugin.")],1),e._v(" "),t("p",[e._v("The following tutorial documents a "),t("a",{attrs:{href:"https://www.ki-i.at/helicopter/",target:"_blank",rel:"noopener noreferrer"}},[e._v("toy helicopter controlled with muscle signals"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"example-projects"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-projects"}},[e._v("#")]),e._v(" Example Projects")]),e._v(" "),t("h3",{attrs:{id:"blood-pressure-cuff-sound-and-toy-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blood-pressure-cuff-sound-and-toy-control"}},[e._v("#")]),e._v(" Blood Pressure Cuff Sound and Toy Control")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://github.com/asterics/unikate-kissenschalter",target:"_blank",rel:"noopener noreferrer"}},[e._v("project Kissenklang"),t("OutboundLink")],1),e._v(" used a consumer blood pressure cuff and the "),t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("button interface FABI"),t("OutboundLink")],1),e._v(" to create sounds according to the pressure value of the cuff or to control various items like toy robots, soap bubble machine or infrared lights.")]),e._v(" "),t("h4",{attrs:{id:"demovideo-kissenklang"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#demovideo-kissenklang"}},[e._v("#")]),e._v(" Demovideo Kissenklang")]),e._v(" "),t("UseCase",{attrs:{title:"Kissenklang Demovideo",media:"https://youtu.be/5d4WYjJhgug"}},[e._v("Demo of Kissenklang generating sounds according to the pressure value of the blood pressure cuff.")])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/295.769ec7d8.js b/assets/js/295.a2466f46.js similarity index 97% rename from assets/js/295.769ec7d8.js rename to assets/js/295.a2466f46.js index 4bc199294e..076da6434e 100644 --- a/assets/js/295.769ec7d8.js +++ b/assets/js/295.a2466f46.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[295],{934:function(e,t,a){"use strict";a.r(t);var i=a(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"other-use-cases-and-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-use-cases-and-information"}},[e._v("#")]),e._v(" Other Use Cases and Information")]),e._v(" "),t("h2",{attrs:{id:"complete-asterics-user-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#complete-asterics-user-manual"}},[e._v("#")]),e._v(" Complete AsTeRICS User Manual")]),e._v(" "),t("p",[e._v("Here you can find the .pdf version of the original "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/raw/master/Documentation/UserManual.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("UserManual"),t("OutboundLink")],1),e._v(" with more comprehensive information about:")]),e._v(" "),t("ul",[t("li",[e._v("the model creation process")]),e._v(" "),t("li",[e._v("more use cases and demo models (e.g. game accessibility and utilizing bioelectric signals)")]),e._v(" "),t("li",[e._v("hardware interfacing options")]),e._v(" "),t("li",[e._v("short overview on important plugins")])]),e._v(" "),t("p",[e._v("(Please note that this manual is not constantly updated and might contain outdated information).")]),e._v(" "),t("h2",{attrs:{id:"diy-guides"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#diy-guides"}},[e._v("#")]),e._v(" DIY Guides")]),e._v(" "),t("p",[e._v("Here you can find some "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/Documentation/DIYGuides",target:"_blank",rel:"noopener noreferrer"}},[e._v("DIY-guides"),t("OutboundLink")],1),e._v(" for HW and SW solutions using AsTeRICS, including:")]),e._v(" "),t("ul",[t("li",[e._v("using AsTeRICS, an Arduino microcontroller and a pressure sensor for building a sip-and-puff device")]),e._v(" "),t("li",[e._v("building a proximity switch")]),e._v(" "),t("li",[e._v("building a head-mounted eye-tracker")]),e._v(" "),t("li",[e._v("building an EOG sensor")]),e._v(" "),t("li",[e._v("mouse/keyboard/joystick emualtion (eg. for play station control) with the HID-actuator")]),e._v(" "),t("li",[e._v("and more!")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[295],{935:function(e,t,a){"use strict";a.r(t);var i=a(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"other-use-cases-and-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-use-cases-and-information"}},[e._v("#")]),e._v(" Other Use Cases and Information")]),e._v(" "),t("h2",{attrs:{id:"complete-asterics-user-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#complete-asterics-user-manual"}},[e._v("#")]),e._v(" Complete AsTeRICS User Manual")]),e._v(" "),t("p",[e._v("Here you can find the .pdf version of the original "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/raw/master/Documentation/UserManual.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("UserManual"),t("OutboundLink")],1),e._v(" with more comprehensive information about:")]),e._v(" "),t("ul",[t("li",[e._v("the model creation process")]),e._v(" "),t("li",[e._v("more use cases and demo models (e.g. game accessibility and utilizing bioelectric signals)")]),e._v(" "),t("li",[e._v("hardware interfacing options")]),e._v(" "),t("li",[e._v("short overview on important plugins")])]),e._v(" "),t("p",[e._v("(Please note that this manual is not constantly updated and might contain outdated information).")]),e._v(" "),t("h2",{attrs:{id:"diy-guides"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#diy-guides"}},[e._v("#")]),e._v(" DIY Guides")]),e._v(" "),t("p",[e._v("Here you can find some "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/Documentation/DIYGuides",target:"_blank",rel:"noopener noreferrer"}},[e._v("DIY-guides"),t("OutboundLink")],1),e._v(" for HW and SW solutions using AsTeRICS, including:")]),e._v(" "),t("ul",[t("li",[e._v("using AsTeRICS, an Arduino microcontroller and a pressure sensor for building a sip-and-puff device")]),e._v(" "),t("li",[e._v("building a proximity switch")]),e._v(" "),t("li",[e._v("building a head-mounted eye-tracker")]),e._v(" "),t("li",[e._v("building an EOG sensor")]),e._v(" "),t("li",[e._v("mouse/keyboard/joystick emualtion (eg. for play station control) with the HID-actuator")]),e._v(" "),t("li",[e._v("and more!")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/296.f0aee286.js b/assets/js/296.e15007b1.js similarity index 99% rename from assets/js/296.f0aee286.js rename to assets/js/296.e15007b1.js index c84404dcda..be75e7c805 100644 --- a/assets/js/296.f0aee286.js +++ b/assets/js/296.e15007b1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[296],{936:function(e,t,o){"use strict";o.r(t);var a=o(2),r=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"asterics-packaging-environment-ape"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-packaging-environment-ape"}},[e._v("#")]),e._v(" AsTeRICS Packaging Environment (APE)")]),e._v(" "),t("p",[e._v("The APE let’s you select a set of AsTeRICS model files and create a downstripped (minimum size) version of the ARE including plugins, configuration files and data files to execute the models. Optionally, the APE allows the creation of native installers for Windows, Linux incl. Raspberry Pi and Mac OSX using "),t("a",{attrs:{href:"http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGIBBCI",target:"_blank",rel:"noopener noreferrer"}},[e._v("JavaFX packaging technology"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"ape-consists-of-two-major-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ape-consists-of-two-major-elements"}},[e._v("#")]),e._v(" APE consists of two major elements")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#ape-copy-commandline-tool"}},[t("strong",[e._v("APE-copy command line tool")])]),e._v(": a commandine tool to create a downstripped version of the ARE based on provided model files")]),e._v(" "),t("li",[t("a",{attrs:{href:"#build-infrastructure-and-native-installer-creation"}},[t("strong",[e._v("Build infrastructure")])]),e._v(": a "),t("a",{attrs:{href:"template"}},[e._v("template")]),e._v(" project directory including an "),t("a",{attrs:{href:"https://ant.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ant"),t("OutboundLink")],1),e._v(" build file and a property file "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(". The build file contains the target "),t("code",[e._v("ant APE-copy")]),e._v(" which provides the functionality of the APE-copy commandline tool and the target "),t("code",[e._v("APE deploy")]),e._v(" to trigger the creation of "),t("strong",[e._v("native installer")]),e._v(" and "),t("strong",[e._v("native launcher")]),e._v(" for a dedicated target platform.")])]),e._v(" "),t("h2",{attrs:{id:"important-terms"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#important-terms"}},[e._v("#")]),e._v(" Important Terms")]),e._v(" "),t("p",[e._v("The term "),t("code",[e._v("APE.baseURI")]),e._v(" refers to the location of "),t("code",[e._v("APE.jar")]),e._v(" and the "),t("code",[e._v("APE-copy")]),e._v(" command, which is in the folder "),t("code",[e._v("APE")]),e._v(" parallel to the "),t("code",[e._v("ARE")]),e._v(" folder of an AsTeRICS installation. The "),t("code",[e._v("APE.baseURI")]),e._v(" folder also contains the build infrastructure to create the native installers and contains the default project directory ("),t("code",[e._v("APE.projectDir=/defProjectDir")]),e._v(") and the default build directory ("),t("code",[e._v("APE.buildDir=/defProjectDir/build")]),e._v("). "),t("code",[e._v("APE.models")]),e._v(" refers to file and directory paths containing model files to use. Finally, "),t("code",[e._v("ARE.baseURI")]),e._v(" refers to the location of the ARE that is used as the source for the extracted ARE versions.")]),e._v(" "),t("h2",{attrs:{id:"dependencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dependencies"}},[e._v("#")]),e._v(" Dependencies")]),e._v(" "),t("p",[e._v("The commandline tool APE-copy only needs a Java Runtime Environment. In order to use the ant build targets and create native installers you also need "),t("strong",[e._v("ant")]),e._v(" and a "),t("strong",[e._v("Java Development Kit 8")]),e._v(".")]),e._v(" "),t("ul",[t("li",[e._v("Install the ["),t("strong",[e._v("Java Development Kit 8 (32-bit)")]),e._v("] (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)\n"),t("ul",[t("li",[e._v("Verify the java installation by opening a command shell and entering "),t("code",[e._v("javac -version")]),e._v(". In case of trouble, ensure to set “JAVA_HOME” to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable “Path”")])])]),e._v(" "),t("li",[e._v("Install the ["),t("strong",[e._v("apache ant build framework (version >= 1.9.1)")]),e._v("] (http://ant.apache.org/bindownload.cgi)\n"),t("ul",[t("li",[e._v("Ensure to set “ANT_HOME” to the folder where you installed ant and add the ant bin path to the Environment Variable “Path”")])])]),e._v(" "),t("li",[t("strong",[e._v("Only for native installer creation")]),e._v(": Install installer-specific toolkits like [InnoSetup >= 5] (http://www.jrsoftware.org/isdl.php) (.exe), "),t("a",{attrs:{href:"http://wixtoolset.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("WiX toolset >= 3.0"),t("OutboundLink")],1),e._v(" (.msi) or [debian packaging tools] (https://wiki.debian.org/PackageManagement) (.deb) depending on the required target platform. You must run the installer build process on the target platform of the installer. For more details, read the [JavaFX packaging tutorial] (https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1324980)")])]),e._v(" "),t("h2",{attrs:{id:"ape-copy-commandline-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ape-copy-commandline-tool"}},[e._v("#")]),e._v(" APE-copy commandline tool")]),e._v(" "),t("p",[e._v("Check the "),t("a",{attrs:{href:"#dependencies"}},[e._v("dependencies")]),e._v(" before you start.")]),e._v(" "),t("p",[e._v("To start APE-copy, call")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("APE-copy[.bat|.sh] -DAPE.models= [[-DAPE.buildDir=] [-DARE.baseURI=] [-DAPE.projectDir=/custom/bin/ARE/models")]),e._v(" is automatically added to the parameter.")]),e._v(" "),t("li",[t("strong",[e._v("APE.buildDir")]),e._v(": The path to the build (output) folder. The downsized ARE is copied to that folder. The path can be relative or absolute where a relative path is resolved against the APE directory. By default, the "),t("code",[e._v("build")]),e._v(" subfolder of the project directory ("),t("code",[e._v("APE.projectDir")]),e._v(") is used.")]),e._v(" "),t("li",[t("strong",[e._v("ARE.baseURI")]),e._v(": The path to the ARE installation. This can be the path to the "),t("code",[e._v("bin/ARE")]),e._v(" folder of a development version (cloned git repository) or the "),t("code",[e._v("ARE")]),e._v(" path of an installed AsTeRICS release (>= 2.8). The path can be relative or absolute where a relative path is resolved against the APE directory. By default, the parallel ```ARE`` folder is used.")]),e._v(" "),t("li",[t("strong",[e._v("APE.projectDir")]),e._v(": The path of the project directory to use. If the directory does not exist it is automatically created by copying the "),t("a",{attrs:{href:"#simplified-folder-structure"}},[t("code",[e._v("template")])]),e._v(" directory to the project directory. The given project directory must contain the "),t("code",[e._v("APE.properties")]),e._v(" file, which contains default project-specific property values that can be overridden by the commandline switches of APE-copy. Additionally, the files and resources in the subfolder "),t("code",[e._v("custom")]),e._v(" are finally copied to the target build directory ("),t("code",[e._v("APE.buildDir")]),e._v("). Read more about [customization of the ARE] here. By default, the project directory "),t("code",[e._v("APE.projectDir=/defProjectDir")]),e._v(" is used.")]),e._v(" "),t("li",[t("strong",[e._v("APE.logLevel")]),e._v(": You can specify the verbosity of the console output of the APE-copy command. Additionally, the log messages of the command execution are logged to the "),t("code",[e._v("/tmp")])])]),e._v(" "),t("h3",{attrs:{id:"example-usages-of-the-ape-copy-commandline-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-usages-of-the-ape-copy-commandline-tool"}},[e._v("#")]),e._v(" Example usages of the APE-copy commandline tool")]),e._v(" "),t("p",[e._v("You should be able to copy/paste the example commands below as long as you replace the placeholder with real values. The examples use windows path notations.")]),e._v(" "),t("p",[t("strong",[e._v("Note for Linux, Mac OSX")]),e._v(": On Linux and Mac OSX you must use "),t("code",[e._v("APE-copy.sh")]),e._v(" and slashify (’/’ instead of ‘’) the paths.")]),e._v(" "),t("h4",{attrs:{id:"one-model-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file"}},[e._v("#")]),e._v(" One model file")]),e._v(" "),t("p",[e._v("Create a downstripped ARE package of the model file "),t("code",[e._v("ImageDemo.acs")]),e._v(" located in the "),t("code",[e._v("ARE/models")]),e._v(" folder.\nBy default, the result is written to the folder "),t("code",[e._v("/merged")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nAPE-copy -DAPE.models=../ARE/models/ImageDemo.acs\n")])])]),t("h4",{attrs:{id:"several-model-files-folder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#several-model-files-folder"}},[e._v("#")]),e._v(" Several model files/folder")]),e._v(" "),t("p",[e._v("When specifying a folder, all contained model files (recursively) will be used. Several file or folder URIs can be seperated by a ‘"),t("strong",[e._v(";")]),e._v("’. Relative and absolute URIs can be mixed. By default, the result is written to the folder "),t("code",[e._v("/merged")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nAPE-copy -DAPE.models=../ARE/models/ImageDemo.acs;../ARE/models/eyetracking;D:/MyModelFiles/\n")])])]),t("h4",{attrs:{id:"one-model-file-custom-build-folder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-custom-build-folder"}},[e._v("#")]),e._v(" One model file, custom build folder")]),e._v(" "),t("p",[e._v("You can specify a custom build folder with the property "),t("code",[e._v("APE.buildDir")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nAPE-copy -DAPE.models=../ARE/models/ImageDemo.acs -DAPE.buildDir=C:\\ImageDemo\n")])])]),t("h2",{attrs:{id:"build-infrastructure-and-native-installer-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#build-infrastructure-and-native-installer-creation"}},[e._v("#")]),e._v(" Build infrastructure and native installer creation")]),e._v(" "),t("p",[e._v("The tool APE-copy is only used to copy the required resources for a given model file to a certain location, but APE also provides a full build infrastructure ("),t("code",[e._v("APE.projectDir=/defProjectDir")]),e._v(") that let’s you")]),e._v(" "),t("ul",[t("li",[e._v("configure the properties for APE-copy and the creation of native installers in a single file ("),t("code",[e._v("/APE.properties")]),e._v(")")]),e._v(" "),t("li",[e._v("replace single files/resources (images, model files, component and services jars and the respective configurations,…) of the ARE installation with custom files of the folder "),t("code",[e._v("/custom")])]),e._v(" "),t("li",[e._v("customize the installer creation by providing drop-in resources and installer-specific files in the folder "),t("code",[e._v("/package/linux")]),e._v(", "),t("code",[e._v("/package/windows")]),e._v(" or "),t("code",[e._v("/package/macosx")])]),e._v(" "),t("li",[e._v("trigger the creation of a native installer by using the provided ant build file at "),t("code",[e._v("/build.xml")])])]),e._v(" "),t("h3",{attrs:{id:"simplified-folder-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#simplified-folder-structure"}},[e._v("#")]),e._v(" Simplified folder structure")]),e._v(" "),t("p",[e._v("Subsequently you can see the simplified folder structure of an APE-based project, which contains an ant build file ("),t("strong",[t("code",[e._v("build.xml")])]),e._v("), a property-based configuration file ("),t("strong",[t("code",[e._v("APE.properties")])]),e._v("), the "),t("strong",[t("code",[e._v("custom/bin/ARE")])]),e._v(" folder to store the solution-specific files (e.g. model files), a "),t("strong",[t("code",[e._v("build")])]),e._v(" folder and a "),t("strong",[t("code",[e._v("package")])]),e._v(" folder for native installer customization.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("build\n |- merged\n |- deploy\ncustom\n |- bin/ARE\n |- data\n |- images\n |- LICENSE\n |- models\n |- .acs\n |- ...\n |-profile\npackage\n |- linux\n |- windows\n |- macosx\nAPE.properties\nbuild.xml\n")])])]),t("h3",{attrs:{id:"general-workflow-for-using-the-build-infrastructure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-workflow-for-using-the-build-infrastructure"}},[e._v("#")]),e._v(" General workflow for using the build infrastructure")]),e._v(" "),t("p",[e._v("If you want to start a new project based on AsTeRICS functionality, you would normally")]),e._v(" "),t("ol",[t("li",[e._v("Use the subfolder "),t("code",[e._v("defProjectDir")]),e._v(" directly or copy the "),t("a",{attrs:{href:"template"}},[e._v("template")]),e._v(" project directory to your project repository location.")]),e._v(" "),t("li",[e._v("Edit "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(" and set the location of the AsTeRICS ARE ("),t("code",[e._v("ARE.baseURI")]),e._v(") to use for APE-copy. You only have to set "),t("code",[e._v("ARE.baseURI")]),e._v(" if you use a project directory not within the AsTeRICS APE directory.")]),e._v(" "),t("li",[e._v("Create your AsTeRICS solution and save all needed resources (model files, images, configuration files,…) to the "),t("code",[e._v("custom/bin/ARE")]),e._v(" folder.")]),e._v(" "),t("li",[e._v("Call "),t("code",[e._v("ant APE-copy")]),e._v(" to create the extracted ARE solution or "),t("code",[e._v("ant deploy")]),e._v(" to create a native installer for a certain target platform")])]),e._v(" "),t("p",[e._v("Many Integrated Development Environments (IDE) like Eclipse support the ant build system. So you can use your favourite IDE to edit and build the project.")]),e._v(" "),t("h3",{attrs:{id:"example-usages-of-the-build-infrastructure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-usages-of-the-build-infrastructure"}},[e._v("#")]),e._v(" Example usages of the build infrastructure")]),e._v(" "),t("p",[e._v("Check the "),t("a",{attrs:{href:"#dependencies"}},[e._v("dependencies")]),e._v(" before you start.")]),e._v(" "),t("h4",{attrs:{id:"one-model-file-ant-ape-copy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-ant-ape-copy"}},[e._v("#")]),e._v(" One model file, ant APE-copy")]),e._v(" "),t("p",[e._v("Copy the model file "),t("code",[e._v("/models/ImageDemo.acs")]),e._v(" to the location "),t("code",[e._v("/custom/bin/ARE/models")]),e._v(" or edit the "),t("code",[e._v("APE.models")]),e._v(" property in the file "),t("code",[e._v("/APE.properties")]),e._v(". Then execute the following commands:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nant APE-copy\n")])])]),t("p",[e._v("The extracted ARE version can be found at "),t("code",[e._v("/build/merged/")]),e._v(", to test it, execute")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd build/merged/bin/ARE\nstart.bat\n")])])]),t("h4",{attrs:{id:"one-model-file-windows-exe-installer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-windows-exe-installer"}},[e._v("#")]),e._v(" One model file, windows .exe installer")]),e._v(" "),t("p",[e._v("To create a native .exe installer [InnoSetup >= 5] (http://www.jrsoftware.org/isdl.php) must be installed and the build process must be run on a Windows system.")]),e._v(" "),t("p",[e._v("Copy the model file "),t("code",[e._v("/models/ImageDemo.acs")]),e._v(" to the location "),t("code",[e._v("/custom/bin/ARE/models")]),e._v(" or edit the "),t("code",[e._v("APE.models")]),e._v(" property in the file "),t("code",[e._v("/APE.properties")]),e._v(". Then execute the following commands:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nant deploy\n")])])]),t("p",[e._v("By default, all supported installer types for the currently running platform are created and stored at "),t("code",[e._v("/deploy/bundles")]),e._v("\nThis can be changed by setting the property "),t("code",[e._v("fx.deploy.nativeBundles")]),e._v(" to another value like "),t("code",[e._v("msi")])]),e._v(" "),t("h4",{attrs:{id:"one-model-file-linux-debian-package"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-linux-debian-package"}},[e._v("#")]),e._v(" One model file, Linux debian package")]),e._v(" "),t("p",[e._v("To create a debian installer the [debian packaging tools] (https://wiki.debian.org/PackageManagement) must be installed and the build process must be run on a debian-based Linux.")]),e._v(" "),t("p",[e._v("Copy the model file "),t("code",[e._v("/models/ImageDemo.acs")]),e._v(" to the location "),t("code",[e._v("/custom/bin/ARE/models")]),e._v(" or edit the "),t("code",[e._v("APE.models")]),e._v(" property in the file "),t("code",[e._v("/APE.properties")]),e._v(". Then execute the following commands:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nant deploy\n")])])]),t("p",[e._v("By default, all supported installer types for the currently running platform are created and stored at "),t("code",[e._v("/deploy/bundles")]),e._v("\nThis can be changed by setting the property "),t("code",[e._v("fx.deploy.nativeBundles")]),e._v(" to another value like "),t("code",[e._v("deb")]),e._v(". On Linux, although also a .rpm package could be created by JavaFX packaging technology, APE only supports debian packages because the ARE needs some postinstall and prerm operations in order to run on Linux.")]),e._v(" "),t("h4",{attrs:{id:"one-model-file-mac-osx-dmg-installer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-mac-osx-dmg-installer"}},[e._v("#")]),e._v(" One model file, Mac OSX dmg installer")]),e._v(" "),t("p",[e._v("Run one of the above examples on Mac OSX to create a .dmg installer. The .dmg packaging dependencies should already be contained in your Mac OSX version.")]),e._v(" "),t("h3",{attrs:{id:"properties-for-copying-extraction-behaviour-of-ape"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties-for-copying-extraction-behaviour-of-ape"}},[e._v("#")]),e._v(" Properties for copying/extraction behaviour of APE")]),e._v(" "),t("p",[e._v("To change the behaviour of the ARE extraction with APE-copy, edit the following properties of "),t("a",{attrs:{href:"template/APE.properties"}},[e._v("APE.properties")])]),e._v(" "),t("ul",[t("li",[e._v("``APE.models```: Defines model files and folder containing model files to use")]),e._v(" "),t("li",[t("code",[e._v("APE.dataCopyMode")]),e._v(": Define if all the data files of the "),t("code",[e._v("/data")]),e._v(" folder should be copied or just some.")]),e._v(" "),t("li",[t("code",[e._v("APE.servicesFiles")]),e._v(": Define if optional service configuration files should be used.")])]),e._v(" "),t("h3",{attrs:{id:"properties-for-installer-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties-for-installer-creation"}},[e._v("#")]),e._v(" Properties for installer creation")]),e._v(" "),t("p",[e._v("The provided build files only support a subset of the whole functionality of "),t("a",{attrs:{href:"https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/javafx_ant_task_reference.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("JavaFX packaging"),t("OutboundLink")],1),e._v(".\nTo change the behaviour of the installer creation, consider the following properties in "),t("a",{attrs:{href:"template/APE.properties"}},[e._v("APE.properties")])]),e._v(" "),t("ul",[t("li",[t("code",[e._v("fx.deploy.nativeBundles")]),e._v(": To define installer type to create")]),e._v(" "),t("li",[t("code",[e._v("fx.application.*")]),e._v(" and "),t("code",[e._v("fx.info.*")]),e._v(": To describe meta information of your application")]),e._v(" "),t("li",[t("code",[e._v("fx.preferences.*")]),e._v(": To define the desktop integration of the application")]),e._v(" "),t("li",[t("code",[e._v("APE.embedJava")]),e._v(" and "),t("code",[e._v("fx.platform.basedir")]),e._v(": To embed a Java Runtime Environment into your native installer. The embedded java is linked to the native application launcher. If it is not embedded the default system java is used (only on Windows and Mac OSX).")])]),e._v(" "),t("h3",{attrs:{id:"are-customization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-customization"}},[e._v("#")]),e._v(" ARE customization")]),e._v(" "),t("p",[e._v("The ARE can be customized by replacing single files/resources (images, model files, component and services jars and the respective configurations,…) of the ARE installation with custom files of the folder "),t("code",[e._v("/custom/bin/ARE")]),e._v(". You only must ensure to use the same relative file paths.")]),e._v(" "),t("h4",{attrs:{id:"skipping-non-used-are-services"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#skipping-non-used-are-services"}},[e._v("#")]),e._v(" Skipping non-used ARE services")]),e._v(" "),t("p",[e._v("If you want to exclude some of the ARE services (e.g. "),t("code",[e._v("javacv-*.jar")]),e._v(" or "),t("code",[e._v("cimcommunication*")]),e._v(".jar), simply copy the services configuration files of "),t("code",[e._v("/profile/*.ini")]),e._v(" to the "),t("code",[e._v("/custom/bin/ARE/profile")]),e._v(" folder and edit them. You can exclude a service by commenting it out (prepending #) in the respective .ini file.")]),e._v(" "),t("h3",{attrs:{id:"installer-customization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installer-customization"}},[e._v("#")]),e._v(" Installer customization")]),e._v(" "),t("p",[e._v("If you want to customize installer-specific configuration files (.e.g .iss for .exe installer) or add your own application icon. Use the respective platform-specific subfolder in the "),t("a",{attrs:{href:"template/package"}},[e._v("package")]),e._v(" folder. There you can place replacement files for the default ones. To find out the supported files, that can be replaced, enable verbosity by setting "),t("code",[e._v("fx.deploy.verbose=true")]),e._v(" in the "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(" file.")]),e._v(" "),t("p",[e._v("Summurized, the following steps are necessary:")]),e._v(" "),t("ol",[t("li",[e._v("Enable verbose mode in "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(": "),t("code",[e._v("fx.deploy.verbose=true")])]),e._v(" "),t("li",[e._v("Run "),t("code",[e._v("ant deploy")])]),e._v(" "),t("li",[e._v("Copy the resources (e.g. .iss or icon files) from the temp folder of the installer creation to the "),t("a",{attrs:{href:"template/package"}},[e._v("package/")]),e._v(" folder")]),e._v(" "),t("li",[e._v("Edit the custom files")]),e._v(" "),t("li",[e._v("Rerun "),t("code",[e._v("ant deploy")])])]),e._v(" "),t("p",[e._v("If you want to know more, read "),t("a",{attrs:{href:"https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGICFDB",target:"_blank",rel:"noopener noreferrer"}},[e._v("Customizing the Package Using Drop-In Resources"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"ant-build-files"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ant-build-files"}},[e._v("#")]),e._v(" ant build files")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("template")]),e._v(" directory contains two ant build files: "),t("a",{attrs:{href:"template/build.xml"}},[e._v("build.xml")]),e._v(" and "),t("a",{attrs:{href:"template/imported.xml"}},[e._v("imported.xml")]),e._v(". The file "),t("code",[e._v("build.xml")]),e._v(" contains some targets left for customization of the deployment build process. The targets "),t("code",[e._v("before-deploy, before-deploy-windows, before-deploy-linux and before-deploy-macosx")]),e._v(" are called after the "),t("code",[e._v("APE-copy")]),e._v(" target and before the "),t("code",[e._v("deploy")]),e._v(" target. This way generic and platform-specific task can be added before the installer creation is triggered. You can use it to delete files which are not needed for a certain target platform (e.g. ARE.exe on Linux or javacv-*-macosx on Windows).\nThe second build-file "),t("code",[e._v("imported.xml")]),e._v(" contains the internal targets and should not be modified except you really know, what you do.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[296],{934:function(e,t,o){"use strict";o.r(t);var a=o(2),r=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"asterics-packaging-environment-ape"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-packaging-environment-ape"}},[e._v("#")]),e._v(" AsTeRICS Packaging Environment (APE)")]),e._v(" "),t("p",[e._v("The APE let’s you select a set of AsTeRICS model files and create a downstripped (minimum size) version of the ARE including plugins, configuration files and data files to execute the models. Optionally, the APE allows the creation of native installers for Windows, Linux incl. Raspberry Pi and Mac OSX using "),t("a",{attrs:{href:"http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGIBBCI",target:"_blank",rel:"noopener noreferrer"}},[e._v("JavaFX packaging technology"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"ape-consists-of-two-major-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ape-consists-of-two-major-elements"}},[e._v("#")]),e._v(" APE consists of two major elements")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#ape-copy-commandline-tool"}},[t("strong",[e._v("APE-copy command line tool")])]),e._v(": a commandine tool to create a downstripped version of the ARE based on provided model files")]),e._v(" "),t("li",[t("a",{attrs:{href:"#build-infrastructure-and-native-installer-creation"}},[t("strong",[e._v("Build infrastructure")])]),e._v(": a "),t("a",{attrs:{href:"template"}},[e._v("template")]),e._v(" project directory including an "),t("a",{attrs:{href:"https://ant.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ant"),t("OutboundLink")],1),e._v(" build file and a property file "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(". The build file contains the target "),t("code",[e._v("ant APE-copy")]),e._v(" which provides the functionality of the APE-copy commandline tool and the target "),t("code",[e._v("APE deploy")]),e._v(" to trigger the creation of "),t("strong",[e._v("native installer")]),e._v(" and "),t("strong",[e._v("native launcher")]),e._v(" for a dedicated target platform.")])]),e._v(" "),t("h2",{attrs:{id:"important-terms"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#important-terms"}},[e._v("#")]),e._v(" Important Terms")]),e._v(" "),t("p",[e._v("The term "),t("code",[e._v("APE.baseURI")]),e._v(" refers to the location of "),t("code",[e._v("APE.jar")]),e._v(" and the "),t("code",[e._v("APE-copy")]),e._v(" command, which is in the folder "),t("code",[e._v("APE")]),e._v(" parallel to the "),t("code",[e._v("ARE")]),e._v(" folder of an AsTeRICS installation. The "),t("code",[e._v("APE.baseURI")]),e._v(" folder also contains the build infrastructure to create the native installers and contains the default project directory ("),t("code",[e._v("APE.projectDir=/defProjectDir")]),e._v(") and the default build directory ("),t("code",[e._v("APE.buildDir=/defProjectDir/build")]),e._v("). "),t("code",[e._v("APE.models")]),e._v(" refers to file and directory paths containing model files to use. Finally, "),t("code",[e._v("ARE.baseURI")]),e._v(" refers to the location of the ARE that is used as the source for the extracted ARE versions.")]),e._v(" "),t("h2",{attrs:{id:"dependencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dependencies"}},[e._v("#")]),e._v(" Dependencies")]),e._v(" "),t("p",[e._v("The commandline tool APE-copy only needs a Java Runtime Environment. In order to use the ant build targets and create native installers you also need "),t("strong",[e._v("ant")]),e._v(" and a "),t("strong",[e._v("Java Development Kit 8")]),e._v(".")]),e._v(" "),t("ul",[t("li",[e._v("Install the ["),t("strong",[e._v("Java Development Kit 8 (32-bit)")]),e._v("] (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)\n"),t("ul",[t("li",[e._v("Verify the java installation by opening a command shell and entering "),t("code",[e._v("javac -version")]),e._v(". In case of trouble, ensure to set “JAVA_HOME” to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable “Path”")])])]),e._v(" "),t("li",[e._v("Install the ["),t("strong",[e._v("apache ant build framework (version >= 1.9.1)")]),e._v("] (http://ant.apache.org/bindownload.cgi)\n"),t("ul",[t("li",[e._v("Ensure to set “ANT_HOME” to the folder where you installed ant and add the ant bin path to the Environment Variable “Path”")])])]),e._v(" "),t("li",[t("strong",[e._v("Only for native installer creation")]),e._v(": Install installer-specific toolkits like [InnoSetup >= 5] (http://www.jrsoftware.org/isdl.php) (.exe), "),t("a",{attrs:{href:"http://wixtoolset.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("WiX toolset >= 3.0"),t("OutboundLink")],1),e._v(" (.msi) or [debian packaging tools] (https://wiki.debian.org/PackageManagement) (.deb) depending on the required target platform. You must run the installer build process on the target platform of the installer. For more details, read the [JavaFX packaging tutorial] (https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1324980)")])]),e._v(" "),t("h2",{attrs:{id:"ape-copy-commandline-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ape-copy-commandline-tool"}},[e._v("#")]),e._v(" APE-copy commandline tool")]),e._v(" "),t("p",[e._v("Check the "),t("a",{attrs:{href:"#dependencies"}},[e._v("dependencies")]),e._v(" before you start.")]),e._v(" "),t("p",[e._v("To start APE-copy, call")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("APE-copy[.bat|.sh] -DAPE.models= [[-DAPE.buildDir=] [-DARE.baseURI=] [-DAPE.projectDir=/custom/bin/ARE/models")]),e._v(" is automatically added to the parameter.")]),e._v(" "),t("li",[t("strong",[e._v("APE.buildDir")]),e._v(": The path to the build (output) folder. The downsized ARE is copied to that folder. The path can be relative or absolute where a relative path is resolved against the APE directory. By default, the "),t("code",[e._v("build")]),e._v(" subfolder of the project directory ("),t("code",[e._v("APE.projectDir")]),e._v(") is used.")]),e._v(" "),t("li",[t("strong",[e._v("ARE.baseURI")]),e._v(": The path to the ARE installation. This can be the path to the "),t("code",[e._v("bin/ARE")]),e._v(" folder of a development version (cloned git repository) or the "),t("code",[e._v("ARE")]),e._v(" path of an installed AsTeRICS release (>= 2.8). The path can be relative or absolute where a relative path is resolved against the APE directory. By default, the parallel ```ARE`` folder is used.")]),e._v(" "),t("li",[t("strong",[e._v("APE.projectDir")]),e._v(": The path of the project directory to use. If the directory does not exist it is automatically created by copying the "),t("a",{attrs:{href:"#simplified-folder-structure"}},[t("code",[e._v("template")])]),e._v(" directory to the project directory. The given project directory must contain the "),t("code",[e._v("APE.properties")]),e._v(" file, which contains default project-specific property values that can be overridden by the commandline switches of APE-copy. Additionally, the files and resources in the subfolder "),t("code",[e._v("custom")]),e._v(" are finally copied to the target build directory ("),t("code",[e._v("APE.buildDir")]),e._v("). Read more about [customization of the ARE] here. By default, the project directory "),t("code",[e._v("APE.projectDir=/defProjectDir")]),e._v(" is used.")]),e._v(" "),t("li",[t("strong",[e._v("APE.logLevel")]),e._v(": You can specify the verbosity of the console output of the APE-copy command. Additionally, the log messages of the command execution are logged to the "),t("code",[e._v("/tmp")])])]),e._v(" "),t("h3",{attrs:{id:"example-usages-of-the-ape-copy-commandline-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-usages-of-the-ape-copy-commandline-tool"}},[e._v("#")]),e._v(" Example usages of the APE-copy commandline tool")]),e._v(" "),t("p",[e._v("You should be able to copy/paste the example commands below as long as you replace the placeholder with real values. The examples use windows path notations.")]),e._v(" "),t("p",[t("strong",[e._v("Note for Linux, Mac OSX")]),e._v(": On Linux and Mac OSX you must use "),t("code",[e._v("APE-copy.sh")]),e._v(" and slashify (’/’ instead of ‘’) the paths.")]),e._v(" "),t("h4",{attrs:{id:"one-model-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file"}},[e._v("#")]),e._v(" One model file")]),e._v(" "),t("p",[e._v("Create a downstripped ARE package of the model file "),t("code",[e._v("ImageDemo.acs")]),e._v(" located in the "),t("code",[e._v("ARE/models")]),e._v(" folder.\nBy default, the result is written to the folder "),t("code",[e._v("/merged")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nAPE-copy -DAPE.models=../ARE/models/ImageDemo.acs\n")])])]),t("h4",{attrs:{id:"several-model-files-folder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#several-model-files-folder"}},[e._v("#")]),e._v(" Several model files/folder")]),e._v(" "),t("p",[e._v("When specifying a folder, all contained model files (recursively) will be used. Several file or folder URIs can be seperated by a ‘"),t("strong",[e._v(";")]),e._v("’. Relative and absolute URIs can be mixed. By default, the result is written to the folder "),t("code",[e._v("/merged")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nAPE-copy -DAPE.models=../ARE/models/ImageDemo.acs;../ARE/models/eyetracking;D:/MyModelFiles/\n")])])]),t("h4",{attrs:{id:"one-model-file-custom-build-folder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-custom-build-folder"}},[e._v("#")]),e._v(" One model file, custom build folder")]),e._v(" "),t("p",[e._v("You can specify a custom build folder with the property "),t("code",[e._v("APE.buildDir")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nAPE-copy -DAPE.models=../ARE/models/ImageDemo.acs -DAPE.buildDir=C:\\ImageDemo\n")])])]),t("h2",{attrs:{id:"build-infrastructure-and-native-installer-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#build-infrastructure-and-native-installer-creation"}},[e._v("#")]),e._v(" Build infrastructure and native installer creation")]),e._v(" "),t("p",[e._v("The tool APE-copy is only used to copy the required resources for a given model file to a certain location, but APE also provides a full build infrastructure ("),t("code",[e._v("APE.projectDir=/defProjectDir")]),e._v(") that let’s you")]),e._v(" "),t("ul",[t("li",[e._v("configure the properties for APE-copy and the creation of native installers in a single file ("),t("code",[e._v("/APE.properties")]),e._v(")")]),e._v(" "),t("li",[e._v("replace single files/resources (images, model files, component and services jars and the respective configurations,…) of the ARE installation with custom files of the folder "),t("code",[e._v("/custom")])]),e._v(" "),t("li",[e._v("customize the installer creation by providing drop-in resources and installer-specific files in the folder "),t("code",[e._v("/package/linux")]),e._v(", "),t("code",[e._v("/package/windows")]),e._v(" or "),t("code",[e._v("/package/macosx")])]),e._v(" "),t("li",[e._v("trigger the creation of a native installer by using the provided ant build file at "),t("code",[e._v("/build.xml")])])]),e._v(" "),t("h3",{attrs:{id:"simplified-folder-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#simplified-folder-structure"}},[e._v("#")]),e._v(" Simplified folder structure")]),e._v(" "),t("p",[e._v("Subsequently you can see the simplified folder structure of an APE-based project, which contains an ant build file ("),t("strong",[t("code",[e._v("build.xml")])]),e._v("), a property-based configuration file ("),t("strong",[t("code",[e._v("APE.properties")])]),e._v("), the "),t("strong",[t("code",[e._v("custom/bin/ARE")])]),e._v(" folder to store the solution-specific files (e.g. model files), a "),t("strong",[t("code",[e._v("build")])]),e._v(" folder and a "),t("strong",[t("code",[e._v("package")])]),e._v(" folder for native installer customization.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("build\n |- merged\n |- deploy\ncustom\n |- bin/ARE\n |- data\n |- images\n |- LICENSE\n |- models\n |- .acs\n |- ...\n |-profile\npackage\n |- linux\n |- windows\n |- macosx\nAPE.properties\nbuild.xml\n")])])]),t("h3",{attrs:{id:"general-workflow-for-using-the-build-infrastructure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-workflow-for-using-the-build-infrastructure"}},[e._v("#")]),e._v(" General workflow for using the build infrastructure")]),e._v(" "),t("p",[e._v("If you want to start a new project based on AsTeRICS functionality, you would normally")]),e._v(" "),t("ol",[t("li",[e._v("Use the subfolder "),t("code",[e._v("defProjectDir")]),e._v(" directly or copy the "),t("a",{attrs:{href:"template"}},[e._v("template")]),e._v(" project directory to your project repository location.")]),e._v(" "),t("li",[e._v("Edit "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(" and set the location of the AsTeRICS ARE ("),t("code",[e._v("ARE.baseURI")]),e._v(") to use for APE-copy. You only have to set "),t("code",[e._v("ARE.baseURI")]),e._v(" if you use a project directory not within the AsTeRICS APE directory.")]),e._v(" "),t("li",[e._v("Create your AsTeRICS solution and save all needed resources (model files, images, configuration files,…) to the "),t("code",[e._v("custom/bin/ARE")]),e._v(" folder.")]),e._v(" "),t("li",[e._v("Call "),t("code",[e._v("ant APE-copy")]),e._v(" to create the extracted ARE solution or "),t("code",[e._v("ant deploy")]),e._v(" to create a native installer for a certain target platform")])]),e._v(" "),t("p",[e._v("Many Integrated Development Environments (IDE) like Eclipse support the ant build system. So you can use your favourite IDE to edit and build the project.")]),e._v(" "),t("h3",{attrs:{id:"example-usages-of-the-build-infrastructure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-usages-of-the-build-infrastructure"}},[e._v("#")]),e._v(" Example usages of the build infrastructure")]),e._v(" "),t("p",[e._v("Check the "),t("a",{attrs:{href:"#dependencies"}},[e._v("dependencies")]),e._v(" before you start.")]),e._v(" "),t("h4",{attrs:{id:"one-model-file-ant-ape-copy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-ant-ape-copy"}},[e._v("#")]),e._v(" One model file, ant APE-copy")]),e._v(" "),t("p",[e._v("Copy the model file "),t("code",[e._v("/models/ImageDemo.acs")]),e._v(" to the location "),t("code",[e._v("/custom/bin/ARE/models")]),e._v(" or edit the "),t("code",[e._v("APE.models")]),e._v(" property in the file "),t("code",[e._v("/APE.properties")]),e._v(". Then execute the following commands:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nant APE-copy\n")])])]),t("p",[e._v("The extracted ARE version can be found at "),t("code",[e._v("/build/merged/")]),e._v(", to test it, execute")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd build/merged/bin/ARE\nstart.bat\n")])])]),t("h4",{attrs:{id:"one-model-file-windows-exe-installer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-windows-exe-installer"}},[e._v("#")]),e._v(" One model file, windows .exe installer")]),e._v(" "),t("p",[e._v("To create a native .exe installer [InnoSetup >= 5] (http://www.jrsoftware.org/isdl.php) must be installed and the build process must be run on a Windows system.")]),e._v(" "),t("p",[e._v("Copy the model file "),t("code",[e._v("/models/ImageDemo.acs")]),e._v(" to the location "),t("code",[e._v("/custom/bin/ARE/models")]),e._v(" or edit the "),t("code",[e._v("APE.models")]),e._v(" property in the file "),t("code",[e._v("/APE.properties")]),e._v(". Then execute the following commands:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nant deploy\n")])])]),t("p",[e._v("By default, all supported installer types for the currently running platform are created and stored at "),t("code",[e._v("/deploy/bundles")]),e._v("\nThis can be changed by setting the property "),t("code",[e._v("fx.deploy.nativeBundles")]),e._v(" to another value like "),t("code",[e._v("msi")])]),e._v(" "),t("h4",{attrs:{id:"one-model-file-linux-debian-package"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-linux-debian-package"}},[e._v("#")]),e._v(" One model file, Linux debian package")]),e._v(" "),t("p",[e._v("To create a debian installer the [debian packaging tools] (https://wiki.debian.org/PackageManagement) must be installed and the build process must be run on a debian-based Linux.")]),e._v(" "),t("p",[e._v("Copy the model file "),t("code",[e._v("/models/ImageDemo.acs")]),e._v(" to the location "),t("code",[e._v("/custom/bin/ARE/models")]),e._v(" or edit the "),t("code",[e._v("APE.models")]),e._v(" property in the file "),t("code",[e._v("/APE.properties")]),e._v(". Then execute the following commands:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("cd \nant deploy\n")])])]),t("p",[e._v("By default, all supported installer types for the currently running platform are created and stored at "),t("code",[e._v("/deploy/bundles")]),e._v("\nThis can be changed by setting the property "),t("code",[e._v("fx.deploy.nativeBundles")]),e._v(" to another value like "),t("code",[e._v("deb")]),e._v(". On Linux, although also a .rpm package could be created by JavaFX packaging technology, APE only supports debian packages because the ARE needs some postinstall and prerm operations in order to run on Linux.")]),e._v(" "),t("h4",{attrs:{id:"one-model-file-mac-osx-dmg-installer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-model-file-mac-osx-dmg-installer"}},[e._v("#")]),e._v(" One model file, Mac OSX dmg installer")]),e._v(" "),t("p",[e._v("Run one of the above examples on Mac OSX to create a .dmg installer. The .dmg packaging dependencies should already be contained in your Mac OSX version.")]),e._v(" "),t("h3",{attrs:{id:"properties-for-copying-extraction-behaviour-of-ape"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties-for-copying-extraction-behaviour-of-ape"}},[e._v("#")]),e._v(" Properties for copying/extraction behaviour of APE")]),e._v(" "),t("p",[e._v("To change the behaviour of the ARE extraction with APE-copy, edit the following properties of "),t("a",{attrs:{href:"template/APE.properties"}},[e._v("APE.properties")])]),e._v(" "),t("ul",[t("li",[e._v("``APE.models```: Defines model files and folder containing model files to use")]),e._v(" "),t("li",[t("code",[e._v("APE.dataCopyMode")]),e._v(": Define if all the data files of the "),t("code",[e._v("/data")]),e._v(" folder should be copied or just some.")]),e._v(" "),t("li",[t("code",[e._v("APE.servicesFiles")]),e._v(": Define if optional service configuration files should be used.")])]),e._v(" "),t("h3",{attrs:{id:"properties-for-installer-creation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties-for-installer-creation"}},[e._v("#")]),e._v(" Properties for installer creation")]),e._v(" "),t("p",[e._v("The provided build files only support a subset of the whole functionality of "),t("a",{attrs:{href:"https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/javafx_ant_task_reference.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("JavaFX packaging"),t("OutboundLink")],1),e._v(".\nTo change the behaviour of the installer creation, consider the following properties in "),t("a",{attrs:{href:"template/APE.properties"}},[e._v("APE.properties")])]),e._v(" "),t("ul",[t("li",[t("code",[e._v("fx.deploy.nativeBundles")]),e._v(": To define installer type to create")]),e._v(" "),t("li",[t("code",[e._v("fx.application.*")]),e._v(" and "),t("code",[e._v("fx.info.*")]),e._v(": To describe meta information of your application")]),e._v(" "),t("li",[t("code",[e._v("fx.preferences.*")]),e._v(": To define the desktop integration of the application")]),e._v(" "),t("li",[t("code",[e._v("APE.embedJava")]),e._v(" and "),t("code",[e._v("fx.platform.basedir")]),e._v(": To embed a Java Runtime Environment into your native installer. The embedded java is linked to the native application launcher. If it is not embedded the default system java is used (only on Windows and Mac OSX).")])]),e._v(" "),t("h3",{attrs:{id:"are-customization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-customization"}},[e._v("#")]),e._v(" ARE customization")]),e._v(" "),t("p",[e._v("The ARE can be customized by replacing single files/resources (images, model files, component and services jars and the respective configurations,…) of the ARE installation with custom files of the folder "),t("code",[e._v("/custom/bin/ARE")]),e._v(". You only must ensure to use the same relative file paths.")]),e._v(" "),t("h4",{attrs:{id:"skipping-non-used-are-services"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#skipping-non-used-are-services"}},[e._v("#")]),e._v(" Skipping non-used ARE services")]),e._v(" "),t("p",[e._v("If you want to exclude some of the ARE services (e.g. "),t("code",[e._v("javacv-*.jar")]),e._v(" or "),t("code",[e._v("cimcommunication*")]),e._v(".jar), simply copy the services configuration files of "),t("code",[e._v("/profile/*.ini")]),e._v(" to the "),t("code",[e._v("/custom/bin/ARE/profile")]),e._v(" folder and edit them. You can exclude a service by commenting it out (prepending #) in the respective .ini file.")]),e._v(" "),t("h3",{attrs:{id:"installer-customization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installer-customization"}},[e._v("#")]),e._v(" Installer customization")]),e._v(" "),t("p",[e._v("If you want to customize installer-specific configuration files (.e.g .iss for .exe installer) or add your own application icon. Use the respective platform-specific subfolder in the "),t("a",{attrs:{href:"template/package"}},[e._v("package")]),e._v(" folder. There you can place replacement files for the default ones. To find out the supported files, that can be replaced, enable verbosity by setting "),t("code",[e._v("fx.deploy.verbose=true")]),e._v(" in the "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(" file.")]),e._v(" "),t("p",[e._v("Summurized, the following steps are necessary:")]),e._v(" "),t("ol",[t("li",[e._v("Enable verbose mode in "),t("a",{attrs:{href:"template/APE.properties"}},[t("code",[e._v("APE.properties")])]),e._v(": "),t("code",[e._v("fx.deploy.verbose=true")])]),e._v(" "),t("li",[e._v("Run "),t("code",[e._v("ant deploy")])]),e._v(" "),t("li",[e._v("Copy the resources (e.g. .iss or icon files) from the temp folder of the installer creation to the "),t("a",{attrs:{href:"template/package"}},[e._v("package/")]),e._v(" folder")]),e._v(" "),t("li",[e._v("Edit the custom files")]),e._v(" "),t("li",[e._v("Rerun "),t("code",[e._v("ant deploy")])])]),e._v(" "),t("p",[e._v("If you want to know more, read "),t("a",{attrs:{href:"https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGICFDB",target:"_blank",rel:"noopener noreferrer"}},[e._v("Customizing the Package Using Drop-In Resources"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"ant-build-files"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ant-build-files"}},[e._v("#")]),e._v(" ant build files")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("template")]),e._v(" directory contains two ant build files: "),t("a",{attrs:{href:"template/build.xml"}},[e._v("build.xml")]),e._v(" and "),t("a",{attrs:{href:"template/imported.xml"}},[e._v("imported.xml")]),e._v(". The file "),t("code",[e._v("build.xml")]),e._v(" contains some targets left for customization of the deployment build process. The targets "),t("code",[e._v("before-deploy, before-deploy-windows, before-deploy-linux and before-deploy-macosx")]),e._v(" are called after the "),t("code",[e._v("APE-copy")]),e._v(" target and before the "),t("code",[e._v("deploy")]),e._v(" target. This way generic and platform-specific task can be added before the installer creation is triggered. You can use it to delete files which are not needed for a certain target platform (e.g. ARE.exe on Linux or javacv-*-macosx on Windows).\nThe second build-file "),t("code",[e._v("imported.xml")]),e._v(" contains the internal targets and should not be modified except you really know, what you do.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/297.14d845d3.js b/assets/js/297.28666c1a.js similarity index 96% rename from assets/js/297.14d845d3.js rename to assets/js/297.28666c1a.js index 3f42228a3b..ef65da0836 100644 --- a/assets/js/297.14d845d3.js +++ b/assets/js/297.28666c1a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[297],{935:function(a,e,t){"use strict";t.r(e);var r=t(2),s=Object(r.a)({},(function(){var a=this,e=a._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"are-middleware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-middleware"}},[a._v("#")]),a._v(" ARE Middleware")]),a._v(" "),e("p",[a._v("The ARE middleware is responsible for executing a model and transfering data and events from one plugin to a subsequent one.\nThe ARE provides many services and utils which should be used when developing code for the ARE middleware or ARE plugins.")]),a._v(" "),e("h2",{attrs:{id:"logging"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging"}},[a._v("#")]),a._v(" Logging")]),a._v(" "),e("h2",{attrs:{id:"model-execution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#model-execution"}},[a._v("#")]),a._v(" Model execution")]),a._v(" "),e("h3",{attrs:{id:"event-propagation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-propagation"}},[a._v("#")]),a._v(" Event propagation")]),a._v(" "),e("h3",{attrs:{id:"data-propagation-conversion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-propagation-conversion"}},[a._v("#")]),a._v(" Data propagation & conversion")]),a._v(" "),e("h2",{attrs:{id:"are-threading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-threading"}},[a._v("#")]),a._v(" ARE Threading")]),a._v(" "),e("h3",{attrs:{id:"threading-concept"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#threading-concept"}},[a._v("#")]),a._v(" Threading concept")]),a._v(" "),e("h3",{attrs:{id:"thread-pool"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#thread-pool"}},[a._v("#")]),a._v(" Thread pool")]),a._v(" "),e("h2",{attrs:{id:"are-desktop-gui"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-desktop-gui"}},[a._v("#")]),a._v(" ARE Desktop (GUI)")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[297],{936:function(a,e,t){"use strict";t.r(e);var r=t(2),s=Object(r.a)({},(function(){var a=this,e=a._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"are-middleware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-middleware"}},[a._v("#")]),a._v(" ARE Middleware")]),a._v(" "),e("p",[a._v("The ARE middleware is responsible for executing a model and transfering data and events from one plugin to a subsequent one.\nThe ARE provides many services and utils which should be used when developing code for the ARE middleware or ARE plugins.")]),a._v(" "),e("h2",{attrs:{id:"logging"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging"}},[a._v("#")]),a._v(" Logging")]),a._v(" "),e("h2",{attrs:{id:"model-execution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#model-execution"}},[a._v("#")]),a._v(" Model execution")]),a._v(" "),e("h3",{attrs:{id:"event-propagation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-propagation"}},[a._v("#")]),a._v(" Event propagation")]),a._v(" "),e("h3",{attrs:{id:"data-propagation-conversion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-propagation-conversion"}},[a._v("#")]),a._v(" Data propagation & conversion")]),a._v(" "),e("h2",{attrs:{id:"are-threading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-threading"}},[a._v("#")]),a._v(" ARE Threading")]),a._v(" "),e("h3",{attrs:{id:"threading-concept"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#threading-concept"}},[a._v("#")]),a._v(" Threading concept")]),a._v(" "),e("h3",{attrs:{id:"thread-pool"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#thread-pool"}},[a._v("#")]),a._v(" Thread pool")]),a._v(" "),e("h2",{attrs:{id:"are-desktop-gui"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#are-desktop-gui"}},[a._v("#")]),a._v(" ARE Desktop (GUI)")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/30.182d9f74.js b/assets/js/30.c184393c.js similarity index 96% rename from assets/js/30.182d9f74.js rename to assets/js/30.c184393c.js index a4a41f3a34..4987bd53d9 100644 --- a/assets/js/30.182d9f74.js +++ b/assets/js/30.c184393c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{1018:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"keyboard-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-control"}},[e._v("#")]),e._v(" Keyboard Control")]),e._v(" "),t("p",[e._v("The AsTeRICS Configuration Suite is fully accessible by keyboard. The following sections describe the usage in the different parts of the ACS.")]),e._v(" "),t("h2",{attrs:{id:"menus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#menus"}},[e._v("#")]),e._v(" Menus")]),e._v(" "),t("p",[e._v("The whole ACS is fully accessible by keyboard. The menu items of the ACS menus can be acessed pressing the "),t("em",[e._v("Alt")]),e._v("-key, followed by the keys, being displayed. Screenshot 1 shows the menu after pressing "),t("em",[e._v("Alt")]),e._v(", Screenshot 2 shows the System menu after pressing "),t("em",[e._v("Alt")]),e._v(" folowed by pressing "),t("em",[e._v("Y")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:n(466),alt:"Screenshot: The menu after pressing Alt",title:"Screenshot: The menu after pressing Alt"}})]),e._v(" "),t("p",[e._v("Screenshot: The menu after pressing "),t("em",[e._v("Alt")])]),e._v(" "),t("p",[t("img",{attrs:{src:n(467),alt:"Screenshot: The menu after pressing Alt folowed by pressing Y",title:"Screenshot: The menu after pressing Alt folowed by pressing Y"}})]),e._v(" "),t("p",[e._v("Screenshot: The menu after pressing "),t("em",[e._v("Alt")]),e._v(" followed by pressing "),t("em",[e._v("Y")])]),e._v(" "),t("h2",{attrs:{id:"the-drawing-area"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-drawing-area"}},[e._v("#")]),e._v(" The Drawing Area")]),e._v(" "),t("p",[e._v("The drawing area can be reached, pressing "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("D")]),e._v(", the focus will be on the first element. The focus between the elements can be changed using the "),t("em",[e._v("Tab")]),e._v(" key or the Arrow keys. Elements can be selected using the "),t("em",[e._v("Space")]),e._v(" Key, multiple elements can be selected, pressing "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("Space")]),e._v(". Pressing the "),t("em",[e._v("App")]),e._v(" Key (also called Context Menu key) opens the context menu. Screenshot 3 shows a selected component with the opend context menu.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(468),alt:"Screenshot: Component with opend context menu",title:"Screenshot: Component with opend context menu"}})]),e._v(" "),t("p",[e._v("Screenshot: Component with opend context menu")]),e._v(" "),t("h3",{attrs:{id:"the-context-menu"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-context-menu"}},[e._v("#")]),e._v(" The Context Menu")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Add Channel")]),e._v(" creates a new channel. An output port must be selected to initiate a new channel.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Connect Channel")]),e._v(" sets the end point of the new channel. Select an empty input port to finish the channel")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Drop Channel")]),e._v(" deletes an initiated but unfinished channel")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Add Event Channel")]),e._v(" creates a new event channel. An event trigger must be selected to initiate a new event channel.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Connect Event Channel")]),e._v(" sets the end point of the new event channel. Select an event listener to finish the event channel. Afterwards, the events must be set in the Event Editor")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Drop Event Channel")]),e._v(" deletes an initiated but unfinished event channel")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Move Selection")]),e._v(" moves the selected elements on the drawing area by using the arrow keys. The move operation can be stopped by pressing "),t("em",[e._v("Enter")]),e._v(".")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Delete Selection")]),e._v(" deletes the selected components, channels and event channels.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Properties")]),e._v(" sets the focus to the Property Editor")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Show Component Status")]),e._v(" displays a component status window.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Remove Conflict Marker")]),e._v(" removes the marker, indicating a version conflict between the component collection of the ARE and the ACS.")])])]),e._v(" "),t("h2",{attrs:{id:"the-gui-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-gui-editor"}},[e._v("#")]),e._v(" The GUI Editor")]),e._v(" "),t("p",[e._v("Accessing the GUI Editor is quite similar to the Drawing area. Using the "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("G")]),e._v(" key combination sets the focus on the first element. The "),t("em",[e._v("App")]),e._v(" Key (also called Context Menu key) opens the context menu, offering the options of:")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Resize")]),e._v(" chnages the width and hight of the GUI element by using the arrow keys.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Stop Resize")]),e._v(" stops the resize operation. This function will automatically be called if the focus is set to any other element (e.g by pressing the "),t("em",[e._v("Tab")]),e._v(" or the "),t("em",[e._v("App")]),e._v(" key).")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Move")]),e._v(" moves the GUI element on the GUI area by using the arrow keys.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Stop Move")]),e._v(" stops the move operation. This function will automatically be called if the focus is set to any other element (e.g by pressing the "),t("em",[e._v("Tab")]),e._v(" or the "),t("em",[e._v("App")]),e._v(" key).")])])]),e._v(" "),t("h2",{attrs:{id:"property-and-port-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#property-and-port-editor"}},[e._v("#")]),e._v(" Property and Port Editor")]),e._v(" "),t("p",[t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("G")]),e._v(" sets the focus to the property editor tab. Using the "),t("em",[e._v("Tab")]),e._v(" key sets the focus to the property editor, using the arrow keys allows to navigate to the other tabs (input and output ports, event triggers and listeners). Within the property editor, navigation will be handled using the "),t("em",[e._v("Tab")]),e._v(" key to select and edit the different properties. Within the input and output ports, the list of ports can be navigated using the arrow keys (so shown in screenshot 4).")]),e._v(" "),t("p",[t("img",{attrs:{src:n(469),alt:"Screenshot: Port Editor with opend and closed output ports",title:"Screenshot: Port Editor with opend and closed output ports"}})]),e._v(" "),t("p",[e._v("Screenshot: Port Editor with opend and closed output ports")]),e._v(" "),t("h2",{attrs:{id:"event-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-editor"}},[e._v("#")]),e._v(" Event Editor")]),e._v(" "),t("p",[e._v("With the Event Editor (reachable with the shortcut "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("E")]),e._v("), events within an event channel will be set. Once again, the navigation will be handled using the "),t("em",[e._v("Tab")]),e._v(" key. When a combobox is in focus, the value can be changed using the up an down arrow keys. Furthermore, the combobox can be opend using the "),t("em",[e._v("Enter")]),e._v(" key. Screenshot 5 shows the event editor with an opend combo box.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(470),alt:"Screenshot: Event Editor with opend combobox",title:"Screenshot: Event Editor with opend combobox"}})]),e._v(" "),t("p",[e._v("Screenshot: Event Editor with opend combobox")]),e._v(" "),t("h2",{attrs:{id:"keyboard-shortcuts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-shortcuts"}},[e._v("#")]),e._v(" Keyboard Shortcuts")]),e._v(" "),t("p",[e._v("Keyboard Shortcuts")]),e._v(" "),t("p",[e._v("Key")]),e._v(" "),t("p",[e._v("Command")]),e._v(" "),t("p",[e._v("F1")]),e._v(" "),t("p",[e._v("Open Help window")]),e._v(" "),t("p",[e._v("F5")]),e._v(" "),t("p",[e._v("Start the model")]),e._v(" "),t("p",[e._v("F6")]),e._v(" "),t("p",[e._v("Pause the model")]),e._v(" "),t("p",[e._v("F7")]),e._v(" "),t("p",[e._v("Stop the model")]),e._v(" "),t("p",[e._v("Ctrl + A")]),e._v(" "),t("p",[e._v("Select all elements in the drawing area")]),e._v(" "),t("p",[e._v("Ctrl + C")]),e._v(" "),t("p",[e._v("Copy all selected elements to the clipboard")]),e._v(" "),t("p",[e._v("Ctrl + X")]),e._v(" "),t("p",[e._v("Cut out all selected elements and copy them to the clipboard")]),e._v(" "),t("p",[e._v("Ctrl + V")]),e._v(" "),t("p",[e._v("Paste the elements from the clipcoard to the drawing area")]),e._v(" "),t("p",[e._v("Ctrl + Z")]),e._v(" "),t("p",[e._v("Undo last operation")]),e._v(" "),t("p",[e._v("Ctrl + Y")]),e._v(" "),t("p",[e._v("Redo last operation (after Undo)")]),e._v(" "),t("p",[e._v("Ctrl + S")]),e._v(" "),t("p",[e._v("Save the drawing")]),e._v(" "),t("p",[e._v("Del")]),e._v(" "),t("p",[e._v("Delete the selected elements")]),e._v(" "),t("p",[e._v("Ctrl + +")]),e._v(" "),t("p",[e._v("Zoom in")]),e._v(" "),t("p",[e._v("Ctrl + -")]),e._v(" "),t("p",[e._v("Zoom out")]),e._v(" "),t("p",[e._v("Ctrl + D")]),e._v(" "),t("p",[e._v("Set focus on the drawing area")]),e._v(" "),t("p",[e._v("Ctrl + G")]),e._v(" "),t("p",[e._v("Set focus on the GUI area")]),e._v(" "),t("p",[e._v("Ctrl + P")]),e._v(" "),t("p",[e._v("Set focus on the Property editor")]),e._v(" "),t("p",[e._v("Ctrl + E")]),e._v(" "),t("p",[e._v("Set focus on the Event editor")]),e._v(" "),t("p",[e._v("Alt")]),e._v(" "),t("p",[e._v("Display keyboard shortcuts of the menu elements")]),e._v(" "),t("p",[e._v("Tab")]),e._v(" "),t("p",[e._v("Navigate to the next element (in several areas)")]),e._v(" "),t("p",[e._v("Arrow Keys")]),e._v(" "),t("p",[e._v("Move Focus in several areas, also move in scroll areas")]),e._v(" "),t("p",[e._v("Alt + F4")]),e._v(" "),t("p",[e._v("Close the ACS")])])}),[],!1,null,null,null);t.default=s.exports},466:function(e,t,n){e.exports=n.p+"assets/img/keyboard-menu1.038c9a85.png"},467:function(e,t,n){e.exports=n.p+"assets/img/keyboard-menu2.e58dda53.png"},468:function(e,t,n){e.exports=n.p+"assets/img/keyboard-contextmenu.36dfb622.png"},469:function(e,t,n){e.exports=n.p+"assets/img/keyboard-output_ports.d1399fb9.png"},470:function(e,t){e.exports="data:image/png;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{1015:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"keyboard-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-control"}},[e._v("#")]),e._v(" Keyboard Control")]),e._v(" "),t("p",[e._v("The AsTeRICS Configuration Suite is fully accessible by keyboard. The following sections describe the usage in the different parts of the ACS.")]),e._v(" "),t("h2",{attrs:{id:"menus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#menus"}},[e._v("#")]),e._v(" Menus")]),e._v(" "),t("p",[e._v("The whole ACS is fully accessible by keyboard. The menu items of the ACS menus can be acessed pressing the "),t("em",[e._v("Alt")]),e._v("-key, followed by the keys, being displayed. Screenshot 1 shows the menu after pressing "),t("em",[e._v("Alt")]),e._v(", Screenshot 2 shows the System menu after pressing "),t("em",[e._v("Alt")]),e._v(" folowed by pressing "),t("em",[e._v("Y")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:n(464),alt:"Screenshot: The menu after pressing Alt",title:"Screenshot: The menu after pressing Alt"}})]),e._v(" "),t("p",[e._v("Screenshot: The menu after pressing "),t("em",[e._v("Alt")])]),e._v(" "),t("p",[t("img",{attrs:{src:n(465),alt:"Screenshot: The menu after pressing Alt folowed by pressing Y",title:"Screenshot: The menu after pressing Alt folowed by pressing Y"}})]),e._v(" "),t("p",[e._v("Screenshot: The menu after pressing "),t("em",[e._v("Alt")]),e._v(" followed by pressing "),t("em",[e._v("Y")])]),e._v(" "),t("h2",{attrs:{id:"the-drawing-area"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-drawing-area"}},[e._v("#")]),e._v(" The Drawing Area")]),e._v(" "),t("p",[e._v("The drawing area can be reached, pressing "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("D")]),e._v(", the focus will be on the first element. The focus between the elements can be changed using the "),t("em",[e._v("Tab")]),e._v(" key or the Arrow keys. Elements can be selected using the "),t("em",[e._v("Space")]),e._v(" Key, multiple elements can be selected, pressing "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("Space")]),e._v(". Pressing the "),t("em",[e._v("App")]),e._v(" Key (also called Context Menu key) opens the context menu. Screenshot 3 shows a selected component with the opend context menu.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(466),alt:"Screenshot: Component with opend context menu",title:"Screenshot: Component with opend context menu"}})]),e._v(" "),t("p",[e._v("Screenshot: Component with opend context menu")]),e._v(" "),t("h3",{attrs:{id:"the-context-menu"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-context-menu"}},[e._v("#")]),e._v(" The Context Menu")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Add Channel")]),e._v(" creates a new channel. An output port must be selected to initiate a new channel.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Connect Channel")]),e._v(" sets the end point of the new channel. Select an empty input port to finish the channel")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Drop Channel")]),e._v(" deletes an initiated but unfinished channel")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Add Event Channel")]),e._v(" creates a new event channel. An event trigger must be selected to initiate a new event channel.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Connect Event Channel")]),e._v(" sets the end point of the new event channel. Select an event listener to finish the event channel. Afterwards, the events must be set in the Event Editor")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Drop Event Channel")]),e._v(" deletes an initiated but unfinished event channel")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Move Selection")]),e._v(" moves the selected elements on the drawing area by using the arrow keys. The move operation can be stopped by pressing "),t("em",[e._v("Enter")]),e._v(".")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Delete Selection")]),e._v(" deletes the selected components, channels and event channels.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Properties")]),e._v(" sets the focus to the Property Editor")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Show Component Status")]),e._v(" displays a component status window.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Remove Conflict Marker")]),e._v(" removes the marker, indicating a version conflict between the component collection of the ARE and the ACS.")])])]),e._v(" "),t("h2",{attrs:{id:"the-gui-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-gui-editor"}},[e._v("#")]),e._v(" The GUI Editor")]),e._v(" "),t("p",[e._v("Accessing the GUI Editor is quite similar to the Drawing area. Using the "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("G")]),e._v(" key combination sets the focus on the first element. The "),t("em",[e._v("App")]),e._v(" Key (also called Context Menu key) opens the context menu, offering the options of:")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Resize")]),e._v(" chnages the width and hight of the GUI element by using the arrow keys.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Stop Resize")]),e._v(" stops the resize operation. This function will automatically be called if the focus is set to any other element (e.g by pressing the "),t("em",[e._v("Tab")]),e._v(" or the "),t("em",[e._v("App")]),e._v(" key).")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Move")]),e._v(" moves the GUI element on the GUI area by using the arrow keys.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Stop Move")]),e._v(" stops the move operation. This function will automatically be called if the focus is set to any other element (e.g by pressing the "),t("em",[e._v("Tab")]),e._v(" or the "),t("em",[e._v("App")]),e._v(" key).")])])]),e._v(" "),t("h2",{attrs:{id:"property-and-port-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#property-and-port-editor"}},[e._v("#")]),e._v(" Property and Port Editor")]),e._v(" "),t("p",[t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("G")]),e._v(" sets the focus to the property editor tab. Using the "),t("em",[e._v("Tab")]),e._v(" key sets the focus to the property editor, using the arrow keys allows to navigate to the other tabs (input and output ports, event triggers and listeners). Within the property editor, navigation will be handled using the "),t("em",[e._v("Tab")]),e._v(" key to select and edit the different properties. Within the input and output ports, the list of ports can be navigated using the arrow keys (so shown in screenshot 4).")]),e._v(" "),t("p",[t("img",{attrs:{src:n(467),alt:"Screenshot: Port Editor with opend and closed output ports",title:"Screenshot: Port Editor with opend and closed output ports"}})]),e._v(" "),t("p",[e._v("Screenshot: Port Editor with opend and closed output ports")]),e._v(" "),t("h2",{attrs:{id:"event-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-editor"}},[e._v("#")]),e._v(" Event Editor")]),e._v(" "),t("p",[e._v("With the Event Editor (reachable with the shortcut "),t("em",[e._v("Ctrl")]),e._v("+"),t("em",[e._v("E")]),e._v("), events within an event channel will be set. Once again, the navigation will be handled using the "),t("em",[e._v("Tab")]),e._v(" key. When a combobox is in focus, the value can be changed using the up an down arrow keys. Furthermore, the combobox can be opend using the "),t("em",[e._v("Enter")]),e._v(" key. Screenshot 5 shows the event editor with an opend combo box.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(468),alt:"Screenshot: Event Editor with opend combobox",title:"Screenshot: Event Editor with opend combobox"}})]),e._v(" "),t("p",[e._v("Screenshot: Event Editor with opend combobox")]),e._v(" "),t("h2",{attrs:{id:"keyboard-shortcuts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#keyboard-shortcuts"}},[e._v("#")]),e._v(" Keyboard Shortcuts")]),e._v(" "),t("p",[e._v("Keyboard Shortcuts")]),e._v(" "),t("p",[e._v("Key")]),e._v(" "),t("p",[e._v("Command")]),e._v(" "),t("p",[e._v("F1")]),e._v(" "),t("p",[e._v("Open Help window")]),e._v(" "),t("p",[e._v("F5")]),e._v(" "),t("p",[e._v("Start the model")]),e._v(" "),t("p",[e._v("F6")]),e._v(" "),t("p",[e._v("Pause the model")]),e._v(" "),t("p",[e._v("F7")]),e._v(" "),t("p",[e._v("Stop the model")]),e._v(" "),t("p",[e._v("Ctrl + A")]),e._v(" "),t("p",[e._v("Select all elements in the drawing area")]),e._v(" "),t("p",[e._v("Ctrl + C")]),e._v(" "),t("p",[e._v("Copy all selected elements to the clipboard")]),e._v(" "),t("p",[e._v("Ctrl + X")]),e._v(" "),t("p",[e._v("Cut out all selected elements and copy them to the clipboard")]),e._v(" "),t("p",[e._v("Ctrl + V")]),e._v(" "),t("p",[e._v("Paste the elements from the clipcoard to the drawing area")]),e._v(" "),t("p",[e._v("Ctrl + Z")]),e._v(" "),t("p",[e._v("Undo last operation")]),e._v(" "),t("p",[e._v("Ctrl + Y")]),e._v(" "),t("p",[e._v("Redo last operation (after Undo)")]),e._v(" "),t("p",[e._v("Ctrl + S")]),e._v(" "),t("p",[e._v("Save the drawing")]),e._v(" "),t("p",[e._v("Del")]),e._v(" "),t("p",[e._v("Delete the selected elements")]),e._v(" "),t("p",[e._v("Ctrl + +")]),e._v(" "),t("p",[e._v("Zoom in")]),e._v(" "),t("p",[e._v("Ctrl + -")]),e._v(" "),t("p",[e._v("Zoom out")]),e._v(" "),t("p",[e._v("Ctrl + D")]),e._v(" "),t("p",[e._v("Set focus on the drawing area")]),e._v(" "),t("p",[e._v("Ctrl + G")]),e._v(" "),t("p",[e._v("Set focus on the GUI area")]),e._v(" "),t("p",[e._v("Ctrl + P")]),e._v(" "),t("p",[e._v("Set focus on the Property editor")]),e._v(" "),t("p",[e._v("Ctrl + E")]),e._v(" "),t("p",[e._v("Set focus on the Event editor")]),e._v(" "),t("p",[e._v("Alt")]),e._v(" "),t("p",[e._v("Display keyboard shortcuts of the menu elements")]),e._v(" "),t("p",[e._v("Tab")]),e._v(" "),t("p",[e._v("Navigate to the next element (in several areas)")]),e._v(" "),t("p",[e._v("Arrow Keys")]),e._v(" "),t("p",[e._v("Move Focus in several areas, also move in scroll areas")]),e._v(" "),t("p",[e._v("Alt + F4")]),e._v(" "),t("p",[e._v("Close the ACS")])])}),[],!1,null,null,null);t.default=s.exports},464:function(e,t,n){e.exports=n.p+"assets/img/keyboard-menu1.038c9a85.png"},465:function(e,t,n){e.exports=n.p+"assets/img/keyboard-menu2.e58dda53.png"},466:function(e,t,n){e.exports=n.p+"assets/img/keyboard-contextmenu.36dfb622.png"},467:function(e,t,n){e.exports=n.p+"assets/img/keyboard-output_ports.d1399fb9.png"},468:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAADmCAYAAAAp49n8AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wJFAsjDi4HYcoAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR42u3df3xT5b0H8M9JoA5cBWmvVKA/CCQ4uqu1yI9oFVxJB+xiyxXRimmhimWJq2VekIujXLqNIW53rKyR6pVfBeZFlDq8KD1UihYKSiNOK9i0odXJimsdbOKk0Jz7R3oOSZq0SSmQJp83r7xITk5O0pOT8znf50nOI+w9UieBiIjID/3ONH7AtUBERP6Fxqn+Oq4FIiLyLzTUKhXXAhER+RkaaoYGERGx0iAiot4ODZVKUG6sXpQJ+4kPldv5v/wfjE2+85q/yMo3/oBTTfV42LwcAPDlF0342WPTA36dn1gP4Vh1hbIcb8+zvfjnyu0p/5aJJH0q/li6Dkt/+wduLUQUsn6Z90Cnac8UvdJNpSEAqzbsxdDh8VfuheU/iMcWrwnoObYX/xwv7T0BANi/ezu2/r5QuS1PU6tS8In1EKyH9uGRJwq8LketUkEQBPiqrlSCgEeeKMC9Mx92m/7h4bfx6bHDQRGgRERXSsHvXwUAFD5xv7LP7BwaarVLZghQq1VwndbbAn2O2pqDMOb9lzL/1t8XYtM+m9s8UzOMzp2+SgWVIPhcdnf3Cx0ryPP+O1LSYD0o4l/H382tioiC0ryp2i7v99xvdtr/uewbBUHwui/sVGkIggCVoHJLl5VPzMb98/Px/XEpAIB9r2917qjTH8HHNVV4dnE2AGD02Nux4vc73R4j35f95EpMTX8EK5+YjYbjx/B0tgFT0x9B9pMrsfKJ2aj/xPlbkaef26w8j+yDQ/swLsUAtUqFj2uqMDX9Ea/p93FNFZ57eh4AoOKP2/Dclgp8XFMFANj8uxWYmv4IxqUYuq00vKXrrePvxnNPz8O8/EJumUQUlErfboDxB6N83tf9Af2lfZ/g0jrTKTRc+zQAYHFWqnL9N1vfxuycRaipKsetHUfZB8Uy/HjZb1BrPQjrQRHbKu0AALFsKyr+uA2GjEcAAK9uXIttlXY0/7kRTz3yA6TNMmKl5VWsMN2PHy/7DWJGJOCjo1UYqUvESsurPv+QRlstpj+QA5VKwOkvmjBipA6er1nesS/99RbUVJUrO/da60FsWlugvMaPjlZBEOD18XJoblpbgM2/W+FM7vxC5e8ZPfZ2fHmqCTEjErh1ElFQ2lZpx9wpmk7T/OW5b/S2r/SoNIC12/cjZsRIZdrwOA1W/0cWHv3pL9D855PQjPk+hsdpUFtzEGLZVohlW5V502YZO/oNAPMz/w21SoXhcRpoE2/HX081IWbESAgCoFY5j/ZjhsVCLNuK2JFjkDbL6GNHfmn+4XEj8f675T4rBbVKcKskVIKAnEU/V2673r/ht8tRvqsUAJCz6OdIm2VU5vf2WlxfBxFRsHr5nUY8dE+Cct1frvtOwUerS+fQgACVStVpxh/OykJtzUG8985eTLxnGtQqFVQqAY899Qv8cFaWlzLHfTmut12vD48bhVeqPsPeXVvw0D0JWP7bbUpF421ZQ4fFoXxXKRY89UsfzUvO5SuhoXL/w13vX/DULzstx3P+rv4mIqJg9UrVZwHN//SjPwIALFsw0236sgUz8exL/+cRGq4dHQKgVqk7dX7cl/k4dv/vizhp+xi5S37VUYGMwsonMzFj9nwvkeWxHNfbXp5jxuz5GB43CkfeeQu3T5ritijNLf+K1tOnMCJ+NEbEj8a0+7PxzMIMrH5xtzLPC79ehsf/YxVUKhUE1aXOHJXg3rHteb+30HGd31VdrRUj4kdzaySikPPrTW8p1xfPn47nNr7pc95OlYZ5zqWO6NzFv8KM2fMwIn4UTn76Me6d/oBypJ08aQpyF/8K/64frsy/ct3LSJowueOoXPCoNJy3753+AMxzUjBj9jxMnDwNK37ykPL414/8pdMLjNfcguY/NyK5I0x+vGQ19uzc5Pa8z+88CLVKheRJU7DyyUy89epmPL/zYKcSS6USnN+e8lEtCIKAkuf+Ey/8ehkAYMz3x2HNS2/g2HsHMGP2PFYZRBQWutrXCbvfbw76U6PPHB+D3e83X7Pnf/7ZpdBPmY6kiZO5NRFRSFuUlYbfbin3HRp7ar4M+tB445WN+KzhBExLn73qz/3BkQMofX41/nvTm9yaiCjsCXuPtXAQJiIi8gtPWEhERP5XGqdb2lhpEBGRX1hmEBERQ4OIiBgaRETE0CAioj4bGu3tF7lmKKy0t1/E31pP4e9nmrn9U1hu//7q522iWt2Pa5HCilrdDwMHDuT2T2G7/V9WaBCFJUHgOiDqBvs0iIiIoUFERL2PzVNEMrZOEfVOpTFj2t0YGh3R6TJj2t2w2+uV61eb/NxLl+TxnaReSg3vyeFt+/f8fFzONjw0OgIbN6y/on/dgcp9Xf4dALB0SR6GRkfgQOU+v/cLdnt9j17Hxg3rlee7nM+xvIxAXwddwdDY89a7ON3ShtVrigAAq9cU4XRLG/a89a4yz6233n5VX/jQ6AjoJ4zlO0hXzbg7JuJ0Sxuq3/tE2Wn2ZGfpukN+wuQc+fJ0Sxvm5yy8Kn+H/Pk93dKmfJY8d7ixcQl+L0+jGa2sj0DXyeo1RRh3x0TleiA2blh/VcKWehAa3W0wroFytZxuacOOnXv4DtLVKDQ6bfPj7piImqNHAlr8m3v+2GlaoMvobXIAvrDe/YBQDgJ/Dibliulq/y3zcxbidEubEjrUR0LDs4lILhVdm7RcS1DPoxrP+1yXKS/jWjR9EXW1zdccPeJ1Z+Xa3OS6TS9dkqccEc+ZPUPZ7l0rZ7kC8WwOlj8vcqUi3y8v0/PzJh/xy7e7amqSw0F+bZ5NPZ6fT9cje9fmKbnqrzl6RJnm+Vh/KgLPz763JjTq46Hhy9NLVyhHIRs3rEf1e58olYF8VCNv9K4lv2u7Zs3RI52awYiuXKHh/OeLvEPUTxiLcXdM9LpdypW3ayW8ccN6rF5TpDQ/7di5Rzmid62cJ0+ZiqVL8lBz9Aiq3/tEOYrWTxjbqfnIs7p/YM5cZf6ao0fw9NIVymfq2dUru/y7fR2pH6jcp7z2rprPNJrRynPJTXgazWi3ZrBxd0wMuM/C9W9kE1QYhIZnm6hGM7rTNHlDcO2f+NOfPnArP4mCpXlK3iF2dyAjHy3PmT0DAPDpiU/8fgkbN6zHuDsmKhXAA3PmAgA+/6zRLSB8VQyunz9/mpjkMPQWHHJz2uQpUwEA02fcF/AqlasNuenK385quY9U/hsCWYfUR0PDX64fRFYV1NctXZIH/YSxWL2mSDn6DmZy01Vvf5FFDk65JYEHgAyNXguMmqNHlA3Xbq/32f4ayFcBia4VuVKen7PQrToAgDG3dP9tv/k5C1Fz9IhyRP7Kjm1uR/u9Ta6GvH2RRX698mfOW0e+r0pH/tvl5bq2IFwO9nGEeWjseetdjLtjIubMnhHwV2hdy3+5M5CBQpdFEC77/FNPL12hbJ+efQny0bbcEe6N/BVU/YSxSrNOb1csrh3UcqXvK8Dkvoih0RHd7vhXrylS+n1i4xLcHtvVa5GbrgLt85A/9/Lj9RPG8kszV+NjwjHCiZzaLn4NAIjo912uDC8OVO7DnNkzsGPnnitW+RBDg4ihESLkisFXZULhgScsJLp0DAWegOoSz9+cMDCIlQaRa6XRfs5Zaaiv58ogYqVBREQMDSIiYmgQERFDg4iIGBpERMTQICIi6i40JDi4ZiisyNu8ShC4/VPYbv/+6OdtosAChMKMABV/n0Fhvf33ODQqK3ZxDRIRhaEpqbN6VmlkZMxCRER/rkEKG21tF1BWtgtjxozB3r178dBDDyE2NhaCwNOKUOiSJAktLS147bXXcOONN/as0gDAwKCwI2/zFRUVePDBBxETE4Ovv/6aK4ZC3g033IAHH3wQ5eXlPQ8NonDV3NyM2NhYBgaFjfPnz2PQoEF+z8/QIHJx4cIFCIIASeJ5PIm84dekiDwwMIjbPCsNooA4HPytBhErDaIeHHUNGTIEDQ0Nfj02LS0NL730ktu0xYsXo7KykiuWWGlYLBYAgMlkCuhxNpsNWVlZqK6u5rtFQf8ham1t7faDVVlZifvvvx9r1qyBJEmd5vU2jagvYvMUkZfACHQHP3nyZLS0tKCyshJ2u93t8fLyGBoUCpWG381Ter0egiBAEASIogiLxQKz2Qyz2az8AEq+LggC9Hq98liz2QyLxQJBEGA2m6HT6XD48GFlWUTBGBryJTo6GpIkoaGhAdOmTcNLL72E6OhoREdHo6GhodP8nhdvy5QkCfv371eW47qsadOmKdf379+PadOmKY9ZsmSJX8/JCy+SJKGwsNBtG5MvhYWFXrfTXqs0RFFEcnKyW3OSwWBQrsvNU8XFxSguLlaCQhRFZb7S0lLlheXn57N5ioLWxYsXcfbsWbdpZ8+exT/+8Q8cPXoUM2fORH19PbZt24aioiKsXLlSme/cuXP49ttv3R5//vx5nDt3zm1aVVUV5s2bh/r6egBAY2MjJk6ciPr6eowZMwbHjx9HVFQUysrKcPHiRXz44YdISEjAhg0bsGzZsk6vj8ib7OxsfPnll3j55ZeVaQ899BCys7PdtqHrr/f/vGt+hUZCQgIsFgsSExO77L+w2WzQ6XTK7cTERCU0CgsL+Q5Sn6k0PL895XA44HA4kJSUhMzMTDgcDuj1euzatcttXvmxno/3XObJkyexceNGZVpcXBzmzp2Ld999F1OnToUoirjzzjtRW1uL9PR0fP7553A4HJg7dy6/2UV+i4yMxNKlS2Gz2VBTUwONRoNFixYhMjKy03bbq81TWq1WWaivJiU5MORSR644iPoah8PhtXnJs/nKV3OWr+Yof+e58847sW3bNjQ2NiI9PR133XUXRFHEwYMHkZqaymYXXgK6DBgwAEVFRZgwYQLWr1+PwYMHd5onkAORgDrCTSYTtFotysrK3Jqn5PJ60qRJyu3S0lIYjUbugSikKg3X+zxvuwZBd9Pi4uKQk5OD48ePAwCampqwfft2LF++HA6HA5mZmdi4cSOys7MRGxuL2tpa1NbW4uWXX2alQQEbMmQINm/erGy33rb5Xg0NURSRlpbW6QkMBgN0Oh3MZjMkSUJBQYHSKd5VM5ZWq1WqlvLy8k4BRHStQ6Orr8x6+//QoUN47LHHlPkLCwuxfPlyZGZmAgAeffRR5b7MzEwsX74cy5cvx/e+9z1l+ptvvqksMzU1FevWrUNcXBwkScJ9992H+vp6fgOLrtg27y/hdEub29yVFbswZ84crkUKOzt27EB1dTVWrFiBL774giuEwsbw4cNRXl7e8/E0iMKZ3OxEFE7bvL8YGkQuVCqV128/EYUynrCQqIduvvlmNDU1YdCgQTh37hxXCIW8AQMG4Kuvvrq80Gh3OKBW8VyGFD7aOyqLiRMn4u2338b06dMRExPDFUMh78yZMzhw4IDfAzF57QgnIqLw409HOMsJIiLym9fmqYyMWYiI6M+1Q2Gjre0Cysp24YxqMF7Yewy6G1VI+l481GoeV1Hoam93oP6zL/GnU1/jp6kjex4aDAwKN/I2/4fKj6C7UcAPp6ZgcPRNXDEU8sbcBsR88BGA8z0PDaJw9bdvJUwfl4DB0TdhyNCbuUIoLBim3Yy/HNzt17ysvYlcy3UJbJIiYmgQERFDg4iIGBpERBSCoWGxWGCxWAJ+nM1mcxtDnIiIWGkQEdE1VLJqOe4ZMbDTpWTV8isfGnq9HoIgKMO9WiwWmM1mmM1mZeAl+bogCG6VhNlshsVigSAIMJvN0Ol0OHz4sM+hY4mI6PI9bH4K983NcZt239wcPGx+qsfL9HvkvuTkZFRXVyvTXEfbk0fpKy4uVsYGN5vNEEVRma+0tFQ5/W5+fj6ysrLclkcULM60SfjyWwfOf9POlUF9W/9I3L94FepOHMeJmmoM1+hwX14Bvu4fia97uH37FRoJCQmwWCxITEzschhXm80GnU6n3E5MTFRCo7CwkG8g9QnO8bydl+amBiz64e3KfX848Xd8dGg/VuWkAwC0t41H4f9WQNz+IjYUOo/eDA8vQE7Bb7giKShEfGcgnvzdFqz7aQ4W/GIdrh80BA5H5/Ez/G128is0tFotJElSmpi8jestB4ZcTfSkg5woGDgkCe0dl3+J02Dr8bPKfe2ShLH6KZ2m/SDzMfwg8zG3aUTBIjLqJizb/EaX22avhobMZDJBq9WirKysU2g0NjZi0qRJyu3S0lIYjUa+W9QHQwNwOCS0O7jjp/Dh7xkH/e7TSEtLcyvfAWe/hk6ng9lshiRJKCgoUDrFu2rG0mq1AOCzaiG6liSpIziYGUQ9Cw2DweB1DFm52Urmq2Nb7hx3xU5wCt5Kw4F2yaGM5kdEAYYGUXiFhvPSzkqDiKFB1BVBrjTYp0HE0CDqzo3fAZpPtWCoToKD34CiMPGF7QSiLic02h0OqFU8wwiFD7n/wnBbAt6oaUCUzQbdkKFcMRTyTtlO4MjB95B09wj/qvHTLW1uh1OVFbu4FomIwtCU1Fk9qzSIwhXPhUYMjR6ERkbGLERE9OcapLDR1nYBZWXOKvvFF1/kCqGws2DBAr/m89pxwcCgcMNtnsg/7O0mIiKGBhERMTSIiOgKaW9vh8Ph8HraKIYGERG5OXfua5w//y0uXrzoMzgYGkREBAA43fwXfNXain/+8xufwXFZv9OQB1rq6jToRETUN9jt9RgyJArDMAL9+/eHWq1WhrtgpUFERG6am0/hq69a8c0353DhwgWvlYbfoaHX6yEIAgRBgCiKsFgsMJvNMJvNbkkkzyMIgtuQr3q9HqIoKveZzWa+QxT0Wm0ViFe26RTYAdjFEmU7jtfnoRVAhSVPmZZiLuGKoz7pwoULaG9vVzrEvfF75L7k5GS3gZNcR9uTm6c8R+LT6/XQarXK7YKCAiW55BDhqH0UzKK0qWjyPNoy5EKSct0mpZqKIJmKuMIo5PlVaSQkJMBisbhVDp5sNhtMJpNbCBQWFqKsrEy5vWXLFp/3ERFRiISG67CucvMUERExNLpkMplQXl7utULQarWwWCxugVJQUICMjAzldlf3ERFR8PO7TyMtLU25LVcdBoMBOp0OZrMZkiShrq4OOp1Oma+4uNituaq2tlbpNPe8j4iIQiQ0DAaD169euTZbebvtKT8/H8XFxVzrRER9FH+nQUREDA0iIup9V224V9ffeBARUQhVGu0+fglIFKq4zRNdRqXx6s6dXDNEAAA7UoR7sbLOilRtVDfztiJPnwwYN6DIlKpMLTGnABlbkGvQXFqqWIK1ttEoMqXCLpbg3oJaWKuL0NUz2MUSZJUBVcW5fFsouCoNIpJpUCU1dRsYzvNRJeMW46OBP4MhF03dBAZRUFcaGRmzEBHRn2uHwkZb2wWUle3qebR0nI/KLpbghI3rk8Ks0mBgULjxvc3bkdJxdttWWwX0+jzsUM5oG48KW+tlP7ddLHE7M26JOUU5Y26hxQJ9x5l0O9/vfF1E1zw0iMi7U4fXoQrpkCQJ+4rTsWKtf/1/C9NGuQ0bMCptodf5Kix5WGVNRoskQZIkDK3djlMu9x+0LAQytkCSJKw3AWstFXxTiKFBFKyGTfoJVnR0cicZ0tFurYU/tcb68gZIHUEgSRIaytd7na++1oplhflK/8bs/JUY5nL/Xab1Soe6IcMIa2093xRiaBCFp1bUWtsxOmEQVwUxNIioO1FIN453a/LauXaFW/MUEUODKATIQ8COSluIdeapEAQBeT3ob0g1rUCydZXS93E68WG35imia0043dLmdlrayopdmDNnzlV7AXq9Hlu2bIFWq+W7QdfUjh07IIoiXnzxxaAKI/6gj66GBQsWYOSoRAwbNgIazWjE3DwMkZE3QK1Ws9Ig6htasbZgFYwZHHeGgoffoSEIAiwWCwRBgM1mU6bJF3maKIrKNL1erzzebDYr0+WxxvV6PQ4fPqwM5EQU7uRmLuclGjBucDv9CFGfCQ2ZJEnQarUQBEH5+mBdXR2ysrIAOIdxraurgyRJypltzWYzMjIylPlLS0ths9lQXV2NSZMmoa6ujoMzEUH+Zfmlr+a6nsOKKBgEdGp0k8kEAG6Vhqfk5GTodDq3EfysVqtSXcgaGxvZj0FEFOqVhmzSpEluR0RySBQXF0OSpE7NU3L1IV84PjgRUZiEhlarxeHDhyGKos955BCx2WxITk7G2rVrubaJiMK10qirq0NaWprSaSd3ZOv1emWa0WiEVqtFcXExrFarW8e5zGg0siOcgpgdKX6dmLAVefp4Zfv2PAFhieh+akG7WKL8jsMuliDe46SEXl+Jx4kNia4Fv/s0XPso5GrDcxrge1hXX9NNJpPSV0IUfJzjaXQbLeJOJBbuh2TQQB6MqUQ0+PXNJ40hF01sraVQrzSIyH3HfykgopBuTEet7SRXDDE0iMJLz8bTqK89hXRDkn/PwPE0iKFBFJr8GU/DLpagFAa3IWI5ngaFdGi0OxxcMxRW/N3muxtPwy6W4N6CWrzuca4ojqdBocJrR/irO3dyzRAFSA4Ma3URonq0BOd4Gun5HE+D+lBoTEmdxbVCYaur3x5d2cAAXMfTSO2oVJzjaSTzjaGgwT4NosvmPBvtZ4fXIdql38Lztxn+4HgaFOw6jadBFM6eWWrieBoUljieBlGIVDAcT4OCCUODKIhwPA0Kdv24CoiCh3M8DTZFESsNIiJiaBAREUODiIiIoUEUKP/G02i1VSDex280OJ4GhRJ2hBN1yb/xNIA4WCUJUR0BkqzLgkGqgj/fe+J4GsTQIAozUVqty/WRiOUqoRDF5imiLgU+noZdFAGTEf7+uoLjaRBDgyhEdTWehrwz93baD46nQQwNojDU1XgaucVVkCQJWzLQqQrheBrE0CAirzSGXKw3xaK+8WyAj3SOpzE6geNpEEODKKTZbDaXW3aUWj7vwc7/0ngaMud4GkQMDaKQ8vba+S59FvdiZZ3VbYxwf3E8DQp2HE+DyAXH06BwxfE0iPo8jqdBwYehQRREOJ4GBTv+IpwoiHA8DWKlQUREDA0iImJoEBERMTSIesa/8TScWpGnj1fGyZB5G0+DiKFBFJKc42l090M957eeknGL8VGuMmJoEFE30WLIhSQ1YZp2KFcGMTSIwlfg42n4vWS332TIy2pFnl6vLNdzKNgS8+zLek4ihgbRVdTVeBqBBsaotFI0dJwqvaVuA3J06bAjConJauUMuWKZiGF4H8dsrXCeCLEZI3twTisihgbRNdDVeBqBOGmrxfryLcroflHaVCwzAaJohyHDiNIyEYAdonUYFhnHo77xLFptJxETwIiARFcCfxFOFGQ0BgOQloWj+aNxqzEdqQYgd62I0Ym1MGTkcwURKw2icDNSm4iFaVnKGN+ttgqssgAGgwaABkZTDDaufQ13GZIQpU3CMOsm/Kz0VMf9RAwNoj5N7tQelbYQ68xTIQiC2+81XMcITzGXQGPIxb7iZIzqmBaty8GGuteVpidDhgFvWNVI0kZBHpxJnWxg0xRdcxxPg8hFsI2nQXS1cDwNIiLqdQwNIiLyG789ReRh2Mz/Uv4/tZvXeT08rv8oxr/PB/s0iFw8s9SED8azT4PCizM0vmCfBlFPP0BE4Vhd+4OhQUTEAyW/52WfBlE3R10VjwMVB4BVn3b9uJ3ZQMJ1zutnzwCpO5zXn58DoBn48Ttct9T3sdIg6uaoK/WF7gNjxj3AX08Cd7zgvPxtAPD8PVyX1DcPlBgaRFfYnnfcKwlrK/AvN3C9UN88UGJoEF3GUVfF48AMAIljgLezgef+DTj6uPOybIz3ZcQOBKy27qsTeTmuy9qZfen6jHuAg9lAYsdjnp/j+zmJrgaGBlEAR13XXQeMhLMJ6rVTQOpt3sNAh66btGbcAxTeAhR0NGdlHwB+NNkZTn/9JxDbMQDgzBjgPID0jqDQDQaOfcr3iK7sgRJDg6iXnD8PrHjDef11GyAMuFQFyGHwzEggb0fXy0m6AXj/BLCn43btp8CfzgAz7wF2NwO6jh9axQ8AalqdIZI4Bjh/5tJjiHpL66FNDA2iq3HUBS+B8fhmoPYynn/POwAGA7ljgNZWYJMNiI8B0rVAUzPfH+p9/7AdYGgQ9VRPftwXaGAc+zsw/hZncxTgrCJuHQzs7uhMrzsDpN0GHLc5q5BvBgBToy7dT9SbErI3+j0vf6dB1AtyRjr7OzY/fmna+ycufaNq/C3A0Vuc1+XfcCTdABQ+DhR2zP/agUtNT7ubnSH0ekf/hbUVSB3Ipim6MloPbQL6+zcvzz1F5ILnnqJw1Lh5PmaN7cdzTxH1BM89ReGGzVNEvRgePG02r4fD9dt5anSiwHG4VwpXHO6ViIh6HUODiIgYGkRExNAgusrsSBHiUWFr7XKuVlsF4gUBQselRLQr95WYU9xuE/Vl/PYUUZc0qJKa/JgvDlZJQlRHgCTrsmCQqqDhCiSGBhF5itJqXa6PRCxXCYUoNk8RdcmOFCEF9o4KQq/Pww5LXkczlPdmK7soAiZjt1WGXSxRmrMuLasVeXq9sly7WIJ4fR7kZykxz+62qYyIoUEUJE4dXocqpEOSJOwrTseKtTuV+0rMKRAEAVllQFVxbreBMSqtFA2SBEmS0FK3ATm6dNgRhcRkNeobzwIAxDIRw/A+jtlaAdhRamnGSG0U3whiaBD1BcMm/QQrTKkAgCRDOtqttUoVkFtcBUmSsCUDPqsQ2UlbLdaXb1GqkShtKpaZAFG0w5BhRGmZCMAO0ToMi4zjUd94Fq22k4jxo4IhYmgQ9SEaQy7Wm2KVaiHwxxsASymO2k7iVmM6Ug3pEMtEHBNfhyHDwBVMDA2ivs5mcx0Q3I5Sy+cYnTDI5/wjtYlYmJYF+Yu4rbYKrLIABoMGgAZGUww2rn0NdxmSEKVNwjDrJvys9FTH/UQMDaI+7e218106te/FyjorUl36HhamjVLuTzGXQGPIxb7iZIzqmJstAMoAAAFVSURBVBaty8GGuteVpidDhgFvWNVI0kYBiEK6cTzUyQY2TdE1xxMWErngCQspXPGEhURE1OsYGkRE5Df+IpzIS5lORN6xT4OoG+3t7fjmm3M4fboZjY0N+LK5Ge2Odq4YCjlqlRo3xcQgIWEUhg6NwcCB13fq02ClQdQNlUqFiIgIREZG4qabYhDRPwIOh4MrhkJyWx984xBERkYiIiICKlXnHgyGBlF35bggoF+//oiMvMH5oRp0IxwSQ4NCMDQEFQYMHIDrr/8u+vXrD0EQGBpEPT0Cu+6676Bfv3747ncjIUls1aXQPEBSq9VQq/t5rTIYGkQBfphUKhX69+f6oNDf3n1haBD10oeJKCyqbq4CIiJiaBAREUODiIgYGkRExNAgIiKGBhERMTSIiIgYGkRExNAgIiKGBhERMTSIiIihQUREDA0iIiKGBhERMTSIiOjK+38UEe8O9sA+9AAAAABJRU5ErkJggg=="}}]); \ No newline at end of file diff --git a/assets/js/300.386efd19.js b/assets/js/300.ce2f0795.js similarity index 91% rename from assets/js/300.386efd19.js rename to assets/js/300.ce2f0795.js index 5d46f9570c..b3d5e005e3 100644 --- a/assets/js/300.386efd19.js +++ b/assets/js/300.ce2f0795.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[300],{939:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-webserver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver"}},[e._v("#")]),e._v(" ARE Webserver")]),e._v(" "),t("p",[e._v("The ARE provides a webserver with the document root at")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE/web/\n")])])]),t("p",[e._v("Then you can open the start page by")]),e._v(" "),t("p",[e._v("http://localhost:8081/")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[300],{944:function(e,t,a){"use strict";a.r(t);var r=a(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-webserver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver"}},[e._v("#")]),e._v(" ARE Webserver")]),e._v(" "),t("p",[e._v("The ARE provides a webserver with the document root at")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE/web/\n")])])]),t("p",[e._v("Then you can open the start page by")]),e._v(" "),t("p",[e._v("http://localhost:8081/")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/301.b2195b5d.js b/assets/js/301.467c731a.js similarity index 92% rename from assets/js/301.b2195b5d.js rename to assets/js/301.467c731a.js index 85815de717..9e10394229 100644 --- a/assets/js/301.b2195b5d.js +++ b/assets/js/301.467c731a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[301],{943:function(t,e,s){"use strict";s.r(e);var o=s(2),n=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"at-solutions-demos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#at-solutions-demos"}},[this._v("#")]),this._v(" AT Solutions Demos")]),this._v(" "),t("p",[this._v("Show github project search results here?\nWith preview??\nHow to open Web UI of AT solution (embedded or external tab?)")]),this._v(" "),t("p",[t("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuSolutionDemos",target:"_blank",rel:"noopener noreferrer"}},[this._v("List of AT solution demos"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[301],{940:function(t,e,s){"use strict";s.r(e);var o=s(2),n=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"at-solutions-demos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#at-solutions-demos"}},[this._v("#")]),this._v(" AT Solutions Demos")]),this._v(" "),t("p",[this._v("Show github project search results here?\nWith preview??\nHow to open Web UI of AT solution (embedded or external tab?)")]),this._v(" "),t("p",[t("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuSolutionDemos",target:"_blank",rel:"noopener noreferrer"}},[this._v("List of AT solution demos"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/302.995f6169.js b/assets/js/302.764dd69c.js similarity index 85% rename from assets/js/302.995f6169.js rename to assets/js/302.764dd69c.js index a611b6b762..b2f16574a0 100644 --- a/assets/js/302.995f6169.js +++ b/assets/js/302.764dd69c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[302],{944:function(t,s,n){"use strict";n.r(s);var o=n(2),a=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"at-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#at-solution"}},[this._v("#")]),this._v(" AT Solution")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[302],{942:function(t,s,n){"use strict";n.r(s);var o=n(2),a=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"at-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#at-solution"}},[this._v("#")]),this._v(" AT Solution")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/303.56240ea3.js b/assets/js/303.a1b0be60.js similarity index 85% rename from assets/js/303.56240ea3.js rename to assets/js/303.a1b0be60.js index 65783fb7fb..10e5bc5e98 100644 --- a/assets/js/303.56240ea3.js +++ b/assets/js/303.a1b0be60.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[303],{948:function(t,s,i){"use strict";i.r(s);var n=i(2),e=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"coding-guidelines"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#coding-guidelines"}},[this._v("#")]),this._v(" Coding Guidelines")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[303],{943:function(t,s,i){"use strict";i.r(s);var n=i(2),e=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"coding-guidelines"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#coding-guidelines"}},[this._v("#")]),this._v(" Coding Guidelines")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/304.6dc9cfd3.js b/assets/js/304.d5f0d8b1.js similarity index 99% rename from assets/js/304.6dc9cfd3.js rename to assets/js/304.d5f0d8b1.js index 7609ac9117..3f7cc5341e 100644 --- a/assets/js/304.6dc9cfd3.js +++ b/assets/js/304.d5f0d8b1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[304],{949:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"plugin-tutorial"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plugin-tutorial"}},[t._v("#")]),t._v(" Plugin Tutorial")]),t._v(" "),s("h2",{attrs:{id:"step-by-step-implementation-averager-processor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#step-by-step-implementation-averager-processor"}},[t._v("#")]),t._v(" Step-by-Step implementation: Averager processor")]),t._v(" "),s("p",[t._v("In the following, the implementation on a simpe “averager” component is described. This component realizes some simple processing functionality: It collects its most recent input from one input port and produces its average at one output port. The number of samples to be stored and used for the computation of the average is controlled by a property.")]),t._v(" "),s("p",[t._v("The component shall have a single input port (named “in_1”), a single output port (named “out_1), and a single property (named “buffer-size”) which has the type “integer” and the default value “50”.")]),t._v(" "),s("p",[t._v("Using the PluginCreationWizard, the bundle descriptor, the Manifest file, the build script and the skeleton for the JAVA-code can be generated (see section3.1).")]),t._v(" "),s("p",[t._v("Then the actual Java-Code which implements the plugin’s functionality can be added.")]),t._v(" "),s("p",[t._v("The functionality of this component is quite simple: It takes as input integer values, which are queued in a buffer in a first in, first out order (FIFO). Whenever a new value is added, the average of the buffer value is computed and provided in the output. The size of the buffer is controlled by the “buffer-size” property. A possible implementation is shown below.")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" buffer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"buffer-size"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("equalsIgnoreCase")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" oldValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("instanceof")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// truncate unnecessary tail elements")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Invalid property value for "')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" oldValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n\n\n \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addFirst")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("float")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0f")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Math")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("round")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("InputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("byteArrayToInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n outputPort1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToByteArray")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("OutputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeOutputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The implementation details above build upon the code which is generated by the AsTeRICS PluginCreationWizard tool. Specifically, the above methods belong to the class of the desired “Averager” plugin, which extends and implements the abstract class “AbstractRuntimeComponentInstance”. This class provides some standard implementation of the lifecycle support methods.")])]),t._v(" "),s("p",[t._v("The implementations of the input and output ports implement or override that of the “IRuntimeInputPort” and “DefaultRuntimeOutputPort” respectively. In the first case, the “receiveData” method is overridden so that the input bytes are converted to an integer, then processed using the local, private method “addInt”, and finally delegated to the output port. The latter has actually no implementation. A dummy implementation is used to illustrated overriding the “sendData” method, although this could be avoided altogether.")]),t._v(" "),s("p",[t._v("The private method “addInt” realized the core functionality of the averager component. Finally, the get/set property value methods are implemented to allow for getting/setting the value of the “buffer-size” property, in a straightforward manner.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[304],{948:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"plugin-tutorial"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plugin-tutorial"}},[t._v("#")]),t._v(" Plugin Tutorial")]),t._v(" "),s("h2",{attrs:{id:"step-by-step-implementation-averager-processor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#step-by-step-implementation-averager-processor"}},[t._v("#")]),t._v(" Step-by-Step implementation: Averager processor")]),t._v(" "),s("p",[t._v("In the following, the implementation on a simpe “averager” component is described. This component realizes some simple processing functionality: It collects its most recent input from one input port and produces its average at one output port. The number of samples to be stored and used for the computation of the average is controlled by a property.")]),t._v(" "),s("p",[t._v("The component shall have a single input port (named “in_1”), a single output port (named “out_1), and a single property (named “buffer-size”) which has the type “integer” and the default value “50”.")]),t._v(" "),s("p",[t._v("Using the PluginCreationWizard, the bundle descriptor, the Manifest file, the build script and the skeleton for the JAVA-code can be generated (see section3.1).")]),t._v(" "),s("p",[t._v("Then the actual Java-Code which implements the plugin’s functionality can be added.")]),t._v(" "),s("p",[t._v("The functionality of this component is quite simple: It takes as input integer values, which are queued in a buffer in a first in, first out order (FIFO). Whenever a new value is added, the average of the buffer value is computed and provided in the output. The size of the buffer is controlled by the “buffer-size” property. A possible implementation is shown below.")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" buffer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"buffer-size"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("equalsIgnoreCase")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" oldValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("instanceof")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// truncate unnecessary tail elements")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Invalid property value for "')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" oldValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n\n\n \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addFirst")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("float")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0f")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Math")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("round")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("InputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("byteArrayToInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n outputPort1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToByteArray")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("OutputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeOutputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The implementation details above build upon the code which is generated by the AsTeRICS PluginCreationWizard tool. Specifically, the above methods belong to the class of the desired “Averager” plugin, which extends and implements the abstract class “AbstractRuntimeComponentInstance”. This class provides some standard implementation of the lifecycle support methods.")])]),t._v(" "),s("p",[t._v("The implementations of the input and output ports implement or override that of the “IRuntimeInputPort” and “DefaultRuntimeOutputPort” respectively. In the first case, the “receiveData” method is overridden so that the input bytes are converted to an integer, then processed using the local, private method “addInt”, and finally delegated to the output port. The latter has actually no implementation. A dummy implementation is used to illustrated overriding the “sendData” method, although this could be avoided altogether.")]),t._v(" "),s("p",[t._v("The private method “addInt” realized the core functionality of the averager component. Finally, the get/set property value methods are implemented to allow for getting/setting the value of the “buffer-size” property, in a straightforward manner.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/305.d4c73fcc.js b/assets/js/305.ac58fd5f.js similarity index 92% rename from assets/js/305.d4c73fcc.js rename to assets/js/305.ac58fd5f.js index d6b0bc94a3..c1de4fa020 100644 --- a/assets/js/305.d4c73fcc.js +++ b/assets/js/305.ac58fd5f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[305],{950:function(t,e,o){"use strict";o.r(e);var s=o(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"develop"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#develop"}},[t._v("#")]),t._v(" Develop")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("If you are a "),e("strong",[t._v("developer")]),t._v(" or an AT expert with "),e("strong",[t._v("technical background")]),t._v(", this is the right place for you.")]),t._v(" "),e("p",[t._v("In this section, you will find information for developing AsTeRICS or elements of it like plugins or AT solutions.")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[305],{953:function(t,e,o){"use strict";o.r(e);var s=o(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"develop"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#develop"}},[t._v("#")]),t._v(" Develop")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("If you are a "),e("strong",[t._v("developer")]),t._v(" or an AT expert with "),e("strong",[t._v("technical background")]),t._v(", this is the right place for you.")]),t._v(" "),e("p",[t._v("In this section, you will find information for developing AsTeRICS or elements of it like plugins or AT solutions.")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/306.622c29f3.js b/assets/js/306.1b1eaee1.js similarity index 90% rename from assets/js/306.622c29f3.js rename to assets/js/306.1b1eaee1.js index 5fee3fa1d6..96261d137e 100644 --- a/assets/js/306.622c29f3.js +++ b/assets/js/306.1b1eaee1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[306],{951:function(t,s,r){"use strict";r.r(s);var e=r(2),a=Object(e.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"rest-java-client-library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rest-java-client-library"}},[this._v("#")]),this._v(" REST Java Client library")]),this._v(" "),t("p",[this._v("The source code can be found "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/ARE_RestAPIlibraries/JavaLibrary"}},[this._v("here")]),this._v(".")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[306],{949:function(t,s,r){"use strict";r.r(s);var e=r(2),a=Object(e.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"rest-java-client-library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rest-java-client-library"}},[this._v("#")]),this._v(" REST Java Client library")]),this._v(" "),t("p",[this._v("The source code can be found "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/ARE_RestAPIlibraries/JavaLibrary"}},[this._v("here")]),this._v(".")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/307.cae44194.js b/assets/js/307.1bec56a1.js similarity index 91% rename from assets/js/307.cae44194.js rename to assets/js/307.1bec56a1.js index ba0739080e..5f2774819d 100644 --- a/assets/js/307.cae44194.js +++ b/assets/js/307.1bec56a1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[307],{952:function(t,s,r){"use strict";r.r(s);var a=r(2),e=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"javascript-rest-api-client-library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#javascript-rest-api-client-library"}},[this._v("#")]),this._v(" Javascript REST API client library")]),this._v(" "),t("p",[this._v("The source code can be found "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"}},[this._v("here")]),this._v(".")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[307],{950:function(t,s,r){"use strict";r.r(s);var a=r(2),e=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"javascript-rest-api-client-library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#javascript-rest-api-client-library"}},[this._v("#")]),this._v(" Javascript REST API client library")]),this._v(" "),t("p",[this._v("The source code can be found "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"}},[this._v("here")]),this._v(".")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/308.73da3210.js b/assets/js/308.b1a53b12.js similarity index 91% rename from assets/js/308.73da3210.js rename to assets/js/308.b1a53b12.js index 135dff7ff2..f83b39dd07 100644 --- a/assets/js/308.73da3210.js +++ b/assets/js/308.b1a53b12.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[308],{953:function(t,a,n){"use strict";n.r(a);var i=n(2),e=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"javascript-model-manipulation-and-deployment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#javascript-model-manipulation-and-deployment"}},[this._v("#")]),this._v(" Javascript model manipulation and deployment")]),this._v(" "),t("ul",[t("li",[this._v("Javascript libraries for model manipulation and model deployment:\n"),t("ul",[t("li",[t("StaticLink",{attrs:{href:"APIs/js-modelManipulation_webAppUtils/index.html",text:"Model manipulation and deployment"}})],1)])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[308],{951:function(t,a,n){"use strict";n.r(a);var i=n(2),e=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"javascript-model-manipulation-and-deployment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#javascript-model-manipulation-and-deployment"}},[this._v("#")]),this._v(" Javascript model manipulation and deployment")]),this._v(" "),t("ul",[t("li",[this._v("Javascript libraries for model manipulation and model deployment:\n"),t("ul",[t("li",[t("StaticLink",{attrs:{href:"APIs/js-modelManipulation_webAppUtils/index.html",text:"Model manipulation and deployment"}})],1)])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/309.6ebdb863.js b/assets/js/309.4a0d4d1d.js similarity index 97% rename from assets/js/309.6ebdb863.js rename to assets/js/309.4a0d4d1d.js index e868a61bfa..d7b3dfd704 100644 --- a/assets/js/309.6ebdb863.js +++ b/assets/js/309.4a0d4d1d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[309],{955:function(t,e,a){"use strict";a.r(e);var r=a(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"rest-api"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-api"}},[t._v("#")]),t._v(" REST API")]),t._v(" "),e("h2",{attrs:{id:"general-information"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#general-information"}},[t._v("#")]),t._v(" General Information")]),t._v(" "),e("p",[t._v("The ARE provides a REST API with several functionalities. The base REST URI is:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://localhost:8081/rest/\n")])])]),e("p",[t._v("or")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("https://localhost:8083/rest/\n")])])]),e("p",[t._v("In order to get a list of all available rest methods use:\nhttp://localhost:8081/rest/restfunctions")]),t._v(" "),e("h2",{attrs:{id:"rest-api-links"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-api-links"}},[t._v("#")]),t._v(" REST API Links")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/#submenuRest",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST demo"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"./asterics-wiki/api/REST-API"}},[t._v("REST Tutorial")])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper 2"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Java Client Wrapper"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[309],{952:function(t,e,a){"use strict";a.r(e);var r=a(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"rest-api"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-api"}},[t._v("#")]),t._v(" REST API")]),t._v(" "),e("h2",{attrs:{id:"general-information"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#general-information"}},[t._v("#")]),t._v(" General Information")]),t._v(" "),e("p",[t._v("The ARE provides a REST API with several functionalities. The base REST URI is:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://localhost:8081/rest/\n")])])]),e("p",[t._v("or")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("https://localhost:8083/rest/\n")])])]),e("p",[t._v("In order to get a list of all available rest methods use:\nhttp://localhost:8081/rest/restfunctions")]),t._v(" "),e("h2",{attrs:{id:"rest-api-links"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-api-links"}},[t._v("#")]),t._v(" REST API Links")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/#submenuRest",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST demo"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"./asterics-wiki/api/REST-API"}},[t._v("REST Tutorial")])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper 2"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Java Client Wrapper"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/31.cd90df22.js b/assets/js/31.4b6a9279.js similarity index 99% rename from assets/js/31.cd90df22.js rename to assets/js/31.4b6a9279.js index 7f57107512..fd03b7e99f 100644 --- a/assets/js/31.cd90df22.js +++ b/assets/js/31.4b6a9279.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{1127:function(t,e,n){"use strict";n.r(e);var o=n(2),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"amazonechocontrol"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#amazonechocontrol"}},[t._v("#")]),t._v(" AmazonEchoControl")]),t._v(" "),e("p",[t._v("Component Type: Processors (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("This plugin is based on the openHAB plugin, but is only used to control the "),e("a",{attrs:{href:"https://www.openhab.org/addons/bindings/amazonechocontrol/",target:"_blank",rel:"noopener noreferrer"}},[t._v("AmazonEchoControl binding"),e("OutboundLink")],1),t._v(" from openHAB.")]),t._v(" "),e("p",[t._v("See the "),e("a",{attrs:{href:"https://www.openhab.org/docs/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB documentation"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("This component uses the provided "),e("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API of openHAB"),e("OutboundLink")],1),t._v(" to read and write the state of different nodes (called items) within the openHAB system.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The plugin expects")]),t._v(" "),e("ul",[e("li",[t._v("a functional "),e("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB installation"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.amazon.de/b?ie=UTF8&node=14100226031",target:"_blank",rel:"noopener noreferrer"}},[t._v("Amazon Echo or similar device"),e("OutboundLink")],1)])]),t._v(" "),e("h3",{attrs:{id:"installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),e("p",[t._v("To run openHAB without password authentication, start openHAB with this command:")]),t._v(" "),e("h4",{attrs:{id:"linux-and-macos"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linux-and-macos"}},[t._v("#")]),t._v(" Linux and macOS")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[t._v("./start_debug.sh\n")])])]),e("p",[t._v("or on a debian-based system this should be:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" openhab-cli start\n")])])]),e("h4",{attrs:{id:"windows"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[t._v("#")]),t._v(" Windows")]),t._v(" "),e("p",[t._v("in the openHAB folder, double click on")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[t._v("start_debug.bat\n")])])]),e("p",[t._v("After installing and running openHAB, start the browser and use "),e("a",{attrs:{href:"https://localhost:8080",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://localhost:8080"),e("OutboundLink")],1),t._v(" for HTTP or "),e("a",{attrs:{href:"https://localhost:8443",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://localhost:8443"),e("OutboundLink")],1),t._v(" for HTTPS.")]),t._v(" "),e("p",[t._v("See the ("),e("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB installation guide"),e("OutboundLink")],1),t._v(").")]),t._v(" "),e("h4",{attrs:{id:"initial-setup-of-openhab"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup-of-openhab"}},[t._v("#")]),t._v(" Initial Setup of openHAB")]),t._v(" "),e("p",[t._v("Before this plugin can be used, the openHAB must be initialized and the AmazonEchoControl binding must be installed. The following steps, based on the "),e("a",{attrs:{href:"https://www.openhab.org/docs/tutorial/1sttimesetup.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB first-time setup"),e("OutboundLink")],1),t._v(", must be done")]),t._v(" "),e("h3",{attrs:{id:"connect-amazon-account"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#connect-amazon-account"}},[t._v("#")]),t._v(" Connect Amazon Account")]),t._v(" "),e("ol",[e("li",[t._v("Select "),e("strong",[t._v("Standard (recommended setup)")]),t._v(", this step can take a while")]),t._v(" "),e("li",[t._v("Select the "),e("strong",[t._v("PAPER UI")])]),t._v(" "),e("li",[t._v("Go to "),e("strong",[t._v("Add-ons")]),t._v(" in the control panel and on Tab "),e("strong",[t._v("BINDINGS")]),t._v(" and search for "),e("strong",[t._v("Amazon Echo Control Binding")]),t._v(" and click install.")]),t._v(" "),e("li",[t._v("Go to "),e("strong",[t._v("Configuration")]),t._v(" and click on "),e("strong",[t._v("Things")]),t._v(" and click on "),e("code",[t._v("Amazon Echo Control Binding")]),t._v(".")]),t._v(" "),e("li",[t._v("Click on "),e("strong",[t._v("Amazon Account")]),t._v(" and accept it by pressing on the tick\n"),e("img",{attrs:{src:n(685),alt:"Screenshot Amazon Account Thing Creation"}})]),t._v(" "),e("li",[t._v("After that, use this link to connect openHAB with your "),e("strong",[t._v("Amazon Account")]),t._v(" ("),e("a",{attrs:{href:"http://localhost:8080/amazonechocontrol/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8080/amazonechocontrol/"),e("OutboundLink")],1),t._v(").")]),t._v(" "),e("li",[t._v("Back in the "),e("strong",[t._v("Configuration")]),t._v(" menu click on "),e("strong",[t._v("Things")]),t._v(", the account should be online.")])]),t._v(" "),e("p",[t._v("if not, follow the instruction at: "),e("a",{attrs:{href:"https://www.openhab.org/addons/bindings/amazonechocontrol/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB: AmazonEchoControl-Binding"),e("OutboundLink")],1)]),t._v(" "),e("p",[e("img",{attrs:{src:n(686),alt:"Screenshot: Amazon Account Online",title:"Screenshot: Amazon Account Online"}})]),t._v(" "),e("h5",{attrs:{id:"setup-amazon-device"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#setup-amazon-device"}},[t._v("#")]),t._v(" Setup Amazon Device")]),t._v(" "),e("p",[t._v("The Amazon device must be setup within your "),e("a",{attrs:{href:"https://alexa.amazon.de",target:"_blank",rel:"noopener noreferrer"}},[t._v("amazon alexa account"),e("OutboundLink")],1),t._v(" or using the amazon alexa app.")]),t._v(" "),e("ol",{attrs:{start:"9"}},[e("li",[t._v("Switch on "),e("strong",[t._v("Simple Mode")]),t._v(" in "),e("strong",[t._v("Configuration/System")])]),t._v(" "),e("li",[t._v("If everything worked, go to "),e("strong",[t._v("Inbox")]),t._v(" and accept the new "),e("strong",[t._v("Things")]),t._v(".")]),t._v(" "),e("li",[t._v("The things will show up in the "),e("strong",[t._v("Control")]),t._v(" area.")]),t._v(" "),e("li",[t._v("Link all channels to make them available as items\n"),e("img",{attrs:{src:n(687),alt:"Screenshot of how to link amazon echo channels"}})])]),t._v(" "),e("h2",{attrs:{id:"amazonechocontrol-plugin"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#amazonechocontrol-plugin"}},[t._v("#")]),t._v(" AmazonEchoControl Plugin")]),t._v(" "),e("p",[e("img",{attrs:{src:n(688),alt:"Screenshot: AmazonEchoControl Plugin",title:"Screenshot: AmazonEchoControl Plugin"}})]),t._v(" "),e("h4",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("jsonCommand [string]:")]),t._v(" Set a new state of an item, e.g. "),e("code",[t._v('{"ItemSuffix": "player", "value": "PLAY"}')]),t._v("."),e("br"),t._v("\nThe field itemSuffix represents the suffix (from the last "),e("code",[t._v("_")]),t._v(" to the end of the item id) of an item only. The value represents the new state of the item. The itemsuffix has to be written lowercase and the value has to be written in uppercase. For a list of available items, see (http://localhost:8080/rest/items).\n_ "),e("strong",[t._v("Examples:")]),t._v("\n_ "),e("code",[t._v('{"ItemSuffix": "musicProviderId", "value": "SPOTIFY"}')]),t._v(" for changing the provider\n_ "),e("code",[t._v('{"ItemSuffix": "volume", "value": "50"}')]),t._v(" for changing the volume\n_ "),e("code",[t._v('{"ItemSuffix": "playMusicVoiceCommand", "value": "Yesterday from the Beatles"}')]),t._v(" for listening to a new song")])]),t._v(" "),e("h4",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("currentState:")]),t._v(" The current state of the item, which was changed with the latest "),e("strong",[t._v("jsonCommand")]),t._v(".")]),t._v(" "),e("li",[e("strong",[t._v("currentTitle:")]),t._v(" The title of the current song playing.")]),t._v(" "),e("li",[e("strong",[t._v("cmdResponse:")]),t._v(" The response of the latest "),e("strong",[t._v("jsonCommand")]),t._v(". Shows "),e("strong",[t._v("OK")]),t._v(" if the cmd was correct or "),e("strong",[t._v("ERROR")]),t._v(" if it was not (plus a more detailed error message)")])]),t._v(" "),e("h4",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("p",[e("img",{attrs:{src:n(689),alt:"Screenshot: List of Eventlistener names and their meaning. The listener names are playerPlay, playerPause, playerNext, playerPrevious, volumeMute, volume30, weather, tellStory, traffic, singASong, flashBriefing",title:"Screenshot: AmazonEchoControl Eventlistener"}})]),t._v(" "),e("h4",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("p",[t._v("This plugin has two event triggers:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("turnedOn:")]),t._v(" Sent, when the music starts")]),t._v(" "),e("li",[e("strong",[t._v("turnedOff:")]),t._v(" Sent, when the music is paused/stopped.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("updaterate [integer]:")]),t._v(" Time in milliseconds, which will ellapse between each status update. Default: 1s (1000ms)")]),t._v(" "),e("li",[e("strong",[t._v("hostname [string]:")]),t._v(" Hostname to connect to. It is possible to use a hostname, an IP adress or a FQDN")]),t._v(" "),e("li",[e("strong",[t._v("port [string]:")]),t._v(" Port of the openHAB installation. Defaults: 8080 for HTTP, 8443 for HTTPS. Please take care of any blocking firewall.")]),t._v(" "),e("li",[e("strong",[t._v("protocol:")]),t._v(" Protocol to connect to openHAB. Either http or https may be used (recommended: https).")]),t._v(" "),e("li",[e("strong",[t._v("lazyCertificates [boolean]:")]),t._v(" If this property is set, any SSL related certificate check will be removed for the given hostname. This affects the whole ARE.")]),t._v(" "),e("li",[e("strong",[t._v("username [string]:")]),t._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the username here.")]),t._v(" "),e("li",[e("strong",[t._v("password [string]:")]),t._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the password here.")])]),t._v(" "),e("h2",{attrs:{id:"additional-hints"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#additional-hints"}},[t._v("#")]),t._v(" Additional hints")]),t._v(" "),e("ul",[e("li",[t._v("The model will stop with an error message, if one of the item names in the properties is not found.")]),t._v(" "),e("li",[t._v("There is no feedback for checking a successful state change. E.g.: if your write to a read-only item (temperature sensor), nothing will happen")]),t._v(" "),e("li",[t._v("Use the "),e("em",[t._v("lazyCertificates")]),t._v(" property with care, it will disable a major part of the SSL handshaking for the whole Java session. It should be limited to the given hostname only, but without warranty.")]),t._v(" "),e("li",[t._v("The username/password combination from the properties is saved in PLAINTEXT in the model file, so handle it with care.")])])])}),[],!1,null,null,null);e.default=a.exports},685:function(t,e,n){t.exports=n.p+"assets/img/amazonechocontrol-addthing-amazonaccount.071ee87a.png"},686:function(t,e,n){t.exports=n.p+"assets/img/amazonaccount.c8dd444d.JPG"},687:function(t,e,n){t.exports=n.p+"assets/img/amazonechocontrol-linkchannels.0c69eef9.png"},688:function(t,e){t.exports="data:image/png;base64,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"},689:function(t,e,n){t.exports=n.p+"assets/img/amazonechocontrol_eventlistener.1e5b29fc.PNG"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{1126:function(t,e,n){"use strict";n.r(e);var o=n(2),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"amazonechocontrol"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#amazonechocontrol"}},[t._v("#")]),t._v(" AmazonEchoControl")]),t._v(" "),e("p",[t._v("Component Type: Processors (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("This plugin is based on the openHAB plugin, but is only used to control the "),e("a",{attrs:{href:"https://www.openhab.org/addons/bindings/amazonechocontrol/",target:"_blank",rel:"noopener noreferrer"}},[t._v("AmazonEchoControl binding"),e("OutboundLink")],1),t._v(" from openHAB.")]),t._v(" "),e("p",[t._v("See the "),e("a",{attrs:{href:"https://www.openhab.org/docs/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB documentation"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("This component uses the provided "),e("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API of openHAB"),e("OutboundLink")],1),t._v(" to read and write the state of different nodes (called items) within the openHAB system.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The plugin expects")]),t._v(" "),e("ul",[e("li",[t._v("a functional "),e("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB installation"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.amazon.de/b?ie=UTF8&node=14100226031",target:"_blank",rel:"noopener noreferrer"}},[t._v("Amazon Echo or similar device"),e("OutboundLink")],1)])]),t._v(" "),e("h3",{attrs:{id:"installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),e("p",[t._v("To run openHAB without password authentication, start openHAB with this command:")]),t._v(" "),e("h4",{attrs:{id:"linux-and-macos"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linux-and-macos"}},[t._v("#")]),t._v(" Linux and macOS")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[t._v("./start_debug.sh\n")])])]),e("p",[t._v("or on a debian-based system this should be:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" openhab-cli start\n")])])]),e("h4",{attrs:{id:"windows"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[t._v("#")]),t._v(" Windows")]),t._v(" "),e("p",[t._v("in the openHAB folder, double click on")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[t._v("start_debug.bat\n")])])]),e("p",[t._v("After installing and running openHAB, start the browser and use "),e("a",{attrs:{href:"https://localhost:8080",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://localhost:8080"),e("OutboundLink")],1),t._v(" for HTTP or "),e("a",{attrs:{href:"https://localhost:8443",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://localhost:8443"),e("OutboundLink")],1),t._v(" for HTTPS.")]),t._v(" "),e("p",[t._v("See the ("),e("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB installation guide"),e("OutboundLink")],1),t._v(").")]),t._v(" "),e("h4",{attrs:{id:"initial-setup-of-openhab"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup-of-openhab"}},[t._v("#")]),t._v(" Initial Setup of openHAB")]),t._v(" "),e("p",[t._v("Before this plugin can be used, the openHAB must be initialized and the AmazonEchoControl binding must be installed. The following steps, based on the "),e("a",{attrs:{href:"https://www.openhab.org/docs/tutorial/1sttimesetup.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB first-time setup"),e("OutboundLink")],1),t._v(", must be done")]),t._v(" "),e("h3",{attrs:{id:"connect-amazon-account"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#connect-amazon-account"}},[t._v("#")]),t._v(" Connect Amazon Account")]),t._v(" "),e("ol",[e("li",[t._v("Select "),e("strong",[t._v("Standard (recommended setup)")]),t._v(", this step can take a while")]),t._v(" "),e("li",[t._v("Select the "),e("strong",[t._v("PAPER UI")])]),t._v(" "),e("li",[t._v("Go to "),e("strong",[t._v("Add-ons")]),t._v(" in the control panel and on Tab "),e("strong",[t._v("BINDINGS")]),t._v(" and search for "),e("strong",[t._v("Amazon Echo Control Binding")]),t._v(" and click install.")]),t._v(" "),e("li",[t._v("Go to "),e("strong",[t._v("Configuration")]),t._v(" and click on "),e("strong",[t._v("Things")]),t._v(" and click on "),e("code",[t._v("Amazon Echo Control Binding")]),t._v(".")]),t._v(" "),e("li",[t._v("Click on "),e("strong",[t._v("Amazon Account")]),t._v(" and accept it by pressing on the tick\n"),e("img",{attrs:{src:n(685),alt:"Screenshot Amazon Account Thing Creation"}})]),t._v(" "),e("li",[t._v("After that, use this link to connect openHAB with your "),e("strong",[t._v("Amazon Account")]),t._v(" ("),e("a",{attrs:{href:"http://localhost:8080/amazonechocontrol/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8080/amazonechocontrol/"),e("OutboundLink")],1),t._v(").")]),t._v(" "),e("li",[t._v("Back in the "),e("strong",[t._v("Configuration")]),t._v(" menu click on "),e("strong",[t._v("Things")]),t._v(", the account should be online.")])]),t._v(" "),e("p",[t._v("if not, follow the instruction at: "),e("a",{attrs:{href:"https://www.openhab.org/addons/bindings/amazonechocontrol/",target:"_blank",rel:"noopener noreferrer"}},[t._v("openHAB: AmazonEchoControl-Binding"),e("OutboundLink")],1)]),t._v(" "),e("p",[e("img",{attrs:{src:n(686),alt:"Screenshot: Amazon Account Online",title:"Screenshot: Amazon Account Online"}})]),t._v(" "),e("h5",{attrs:{id:"setup-amazon-device"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#setup-amazon-device"}},[t._v("#")]),t._v(" Setup Amazon Device")]),t._v(" "),e("p",[t._v("The Amazon device must be setup within your "),e("a",{attrs:{href:"https://alexa.amazon.de",target:"_blank",rel:"noopener noreferrer"}},[t._v("amazon alexa account"),e("OutboundLink")],1),t._v(" or using the amazon alexa app.")]),t._v(" "),e("ol",{attrs:{start:"9"}},[e("li",[t._v("Switch on "),e("strong",[t._v("Simple Mode")]),t._v(" in "),e("strong",[t._v("Configuration/System")])]),t._v(" "),e("li",[t._v("If everything worked, go to "),e("strong",[t._v("Inbox")]),t._v(" and accept the new "),e("strong",[t._v("Things")]),t._v(".")]),t._v(" "),e("li",[t._v("The things will show up in the "),e("strong",[t._v("Control")]),t._v(" area.")]),t._v(" "),e("li",[t._v("Link all channels to make them available as items\n"),e("img",{attrs:{src:n(687),alt:"Screenshot of how to link amazon echo channels"}})])]),t._v(" "),e("h2",{attrs:{id:"amazonechocontrol-plugin"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#amazonechocontrol-plugin"}},[t._v("#")]),t._v(" AmazonEchoControl Plugin")]),t._v(" "),e("p",[e("img",{attrs:{src:n(688),alt:"Screenshot: AmazonEchoControl Plugin",title:"Screenshot: AmazonEchoControl Plugin"}})]),t._v(" "),e("h4",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("jsonCommand [string]:")]),t._v(" Set a new state of an item, e.g. "),e("code",[t._v('{"ItemSuffix": "player", "value": "PLAY"}')]),t._v("."),e("br"),t._v("\nThe field itemSuffix represents the suffix (from the last "),e("code",[t._v("_")]),t._v(" to the end of the item id) of an item only. The value represents the new state of the item. The itemsuffix has to be written lowercase and the value has to be written in uppercase. For a list of available items, see (http://localhost:8080/rest/items).\n_ "),e("strong",[t._v("Examples:")]),t._v("\n_ "),e("code",[t._v('{"ItemSuffix": "musicProviderId", "value": "SPOTIFY"}')]),t._v(" for changing the provider\n_ "),e("code",[t._v('{"ItemSuffix": "volume", "value": "50"}')]),t._v(" for changing the volume\n_ "),e("code",[t._v('{"ItemSuffix": "playMusicVoiceCommand", "value": "Yesterday from the Beatles"}')]),t._v(" for listening to a new song")])]),t._v(" "),e("h4",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("currentState:")]),t._v(" The current state of the item, which was changed with the latest "),e("strong",[t._v("jsonCommand")]),t._v(".")]),t._v(" "),e("li",[e("strong",[t._v("currentTitle:")]),t._v(" The title of the current song playing.")]),t._v(" "),e("li",[e("strong",[t._v("cmdResponse:")]),t._v(" The response of the latest "),e("strong",[t._v("jsonCommand")]),t._v(". Shows "),e("strong",[t._v("OK")]),t._v(" if the cmd was correct or "),e("strong",[t._v("ERROR")]),t._v(" if it was not (plus a more detailed error message)")])]),t._v(" "),e("h4",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("p",[e("img",{attrs:{src:n(689),alt:"Screenshot: List of Eventlistener names and their meaning. The listener names are playerPlay, playerPause, playerNext, playerPrevious, volumeMute, volume30, weather, tellStory, traffic, singASong, flashBriefing",title:"Screenshot: AmazonEchoControl Eventlistener"}})]),t._v(" "),e("h4",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("p",[t._v("This plugin has two event triggers:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("turnedOn:")]),t._v(" Sent, when the music starts")]),t._v(" "),e("li",[e("strong",[t._v("turnedOff:")]),t._v(" Sent, when the music is paused/stopped.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("updaterate [integer]:")]),t._v(" Time in milliseconds, which will ellapse between each status update. Default: 1s (1000ms)")]),t._v(" "),e("li",[e("strong",[t._v("hostname [string]:")]),t._v(" Hostname to connect to. It is possible to use a hostname, an IP adress or a FQDN")]),t._v(" "),e("li",[e("strong",[t._v("port [string]:")]),t._v(" Port of the openHAB installation. Defaults: 8080 for HTTP, 8443 for HTTPS. Please take care of any blocking firewall.")]),t._v(" "),e("li",[e("strong",[t._v("protocol:")]),t._v(" Protocol to connect to openHAB. Either http or https may be used (recommended: https).")]),t._v(" "),e("li",[e("strong",[t._v("lazyCertificates [boolean]:")]),t._v(" If this property is set, any SSL related certificate check will be removed for the given hostname. This affects the whole ARE.")]),t._v(" "),e("li",[e("strong",[t._v("username [string]:")]),t._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the username here.")]),t._v(" "),e("li",[e("strong",[t._v("password [string]:")]),t._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the password here.")])]),t._v(" "),e("h2",{attrs:{id:"additional-hints"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#additional-hints"}},[t._v("#")]),t._v(" Additional hints")]),t._v(" "),e("ul",[e("li",[t._v("The model will stop with an error message, if one of the item names in the properties is not found.")]),t._v(" "),e("li",[t._v("There is no feedback for checking a successful state change. E.g.: if your write to a read-only item (temperature sensor), nothing will happen")]),t._v(" "),e("li",[t._v("Use the "),e("em",[t._v("lazyCertificates")]),t._v(" property with care, it will disable a major part of the SSL handshaking for the whole Java session. It should be limited to the given hostname only, but without warranty.")]),t._v(" "),e("li",[t._v("The username/password combination from the properties is saved in PLAINTEXT in the model file, so handle it with care.")])])])}),[],!1,null,null,null);e.default=a.exports},685:function(t,e,n){t.exports=n.p+"assets/img/amazonechocontrol-addthing-amazonaccount.071ee87a.png"},686:function(t,e,n){t.exports=n.p+"assets/img/amazonaccount.c8dd444d.JPG"},687:function(t,e,n){t.exports=n.p+"assets/img/amazonechocontrol-linkchannels.0c69eef9.png"},688:function(t,e){t.exports="data:image/png;base64,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"},689:function(t,e,n){t.exports=n.p+"assets/img/amazonechocontrol_eventlistener.1e5b29fc.PNG"}}]); \ No newline at end of file diff --git a/assets/js/311.2c94ed87.js b/assets/js/311.4e9336ae.js similarity index 85% rename from assets/js/311.2c94ed87.js rename to assets/js/311.4e9336ae.js index 0958e8effa..af7abd0fb2 100644 --- a/assets/js/311.2c94ed87.js +++ b/assets/js/311.4e9336ae.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[311],{956:function(t,s,n){"use strict";n.r(s);var i=n(2),e=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"unit-testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#unit-testing"}},[this._v("#")]),this._v(" Unit Testing")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[311],{955:function(t,s,n){"use strict";n.r(s);var i=n(2),e=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"unit-testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#unit-testing"}},[this._v("#")]),this._v(" Unit Testing")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/313.1ba60539.js b/assets/js/313.2c8882a9.js similarity index 99% rename from assets/js/313.1ba60539.js rename to assets/js/313.2c8882a9.js index 6cce54f868..e8f75f500f 100644 --- a/assets/js/313.1ba60539.js +++ b/assets/js/313.2c8882a9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[313],{958:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"rest-api-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rest-api-tutorial"}},[t._v("#")]),t._v(" REST API Tutorial")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the AsTeRICS REST API with the Javascript library provided with AsTeRICS 3.0.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("To allow remote communication with the AsTeRICS Runtime Environment (ARE), the ARE REST API was developed. It allows manipulation of resources through a set of HTTP methods such as GET, POST, PUT and DELETE.\nApart from the regular REST functions, an event mechanism through "),a("a",{attrs:{href:"https://www.w3schools.com/html/html5_serversentevents.asp",target:"_blank",rel:"noopener noreferrer"}},[t._v("Server Sent Events (SSE)"),a("OutboundLink")],1),t._v(" is provided. With this mechanism, ARE can broadcast messages to anyone who subscribes and inform when an event occurs.\nThe API uses HTTP status codes to declare an error in a call. Specifically, when an error occurs, the response will contain a 500 HTTP status code (Internal Server Error) with an ARE-produced error message inside the HTTP response body.")]),t._v(" "),a("p",[t._v("The base URI for REST operations is:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("http://localhost:8081/rest/\n")])])]),a("p",[t._v("or")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("https://localhost:8083/rest/\n")])])]),a("p",[a("em",[t._v("The default port number is 8081, but can be overridden in the file "),a("code",[t._v("ARE/areProperties")])])]),t._v(" "),a("p",[t._v("In order to get a list of all available REST methods, use the "),a("code",[t._v("restfunctions")]),t._v(" http://localhost:8081/rest/restfunctions call.")]),t._v(" "),a("p",[t._v("There are client libraries facilitating the function calls for "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("Javascript"),a("OutboundLink")],1),t._v(" and "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed and ARE running"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("areCommunicator.js, JSMap.js and jquery-3.2.1.min.js libraries"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"example-1-model-start-stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-model-start-stop"}},[t._v("#")]),t._v(" Example 1 - Model start/stop")]),t._v(" "),a("p",[t._v("In this example you will learn how to stop and start the currently deployed ARE model.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-start_stop-model.html")]),t._v(" somewhere on your hard drive.")]),t._v(" "),a("li",[t._v("Open the file in a browser.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//stopModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STARTED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STOPPED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Stop model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-model-upload"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-model-upload"}},[t._v("#")]),t._v(" Example 2 - Model upload")]),t._v(" "),a("p",[t._v("This examples shows how a model (XML string) can be uploaded to the ARE.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-upload-model.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//uploadModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelInXML "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"UMmodel"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("uploadModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Deploys the model given as a parameter "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Upload model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("UMmodel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Open the following "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/v3.0/bin/ARE/models/ImageDemo.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("model file"),a("OutboundLink")],1),t._v(" with a text editor and copy and paste the model xml string into the given field.")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Upload Model")])])]),t._v(" "),a("h2",{attrs:{id:"example-3-change-plugin-property-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-change-plugin-property-values"}},[t._v("#")]),t._v(" Example 3 - Change plugin property values")]),t._v(" "),a("p",[t._v("This example show how to parametrize a model by overriding default property values of plugins in a model. We use the default autostart model (ARE/models/autostart.acs) of the ARE, which is deployed and started automatically upon startup. The model contains a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/TextDisplay.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("TextDisplay plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("TextDisplay.1")]),t._v(" and a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/CellBoard.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("CellBoard plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("CellBoard.1")]),t._v(". With the function "),a("code",[t._v("setRuntimeComponentProperties")]),t._v(" you can provide a JSON string with plugin property key/value pairs.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-change-property-values.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The JSON object must be sent as JSON string, the keys and values must be Strings as well.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stringify")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the default property of the plugin with id TextDisplay.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"TextDisplay.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"default"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"title"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Change the cellText1 and cellText2 properties of the plugin with id CellBoard.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"CellBoard.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimeComponentProperties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the ARE could be reached and the method call was successful, the success callback is called.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The variable data contains an array with key/value pairs of properties which could be set successfully.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the length of the array == 0, no property could be set successfully. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" errorMsg"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The property settings could not be applied."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorMsg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'The following properties could be set: '")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Change parameter values for title, cellText1 and cellText2 and click onto "),a("code",[t._v("Apply Settings")])]),t._v(" "),a("li",[t._v("Not all plugin properties can be changed live, so to ensure that the changes are active stop and start the model.")])]),t._v(" "),a("h2",{attrs:{id:"example-4-send-data-to-input-port"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-send-data-to-input-port"}},[t._v("#")]),t._v(" Example 4 - Send data to input port")]),t._v(" "),a("p",[t._v("In this example you will learn how to send data to an input port of a plugin. We will use the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and send absolute coordinates to the input ports (mouseX, mouseY) to change the absolute mouse position.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and an "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/EditBox.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("EditBox plugin"),a("OutboundLink")],1),t._v(", where the output port is connected to "),a("code",[t._v("mouseX")]),t._v(" and "),a("code",[t._v("mouseIn")]),t._v(" of the Mouse plugin (see pic below). The EditBox plugin is a workaround for the known "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/230",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue #230"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("p",[a("img",{attrs:{src:"images/Mouse.JPG",alt:"Mouse plugin"}})]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-send-data-to-input-port.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Fetch values of input fields and send them to the input ports mouseX and mouseY of the Mouse plugin instance with id Mouse.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseX'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseY'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter X coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("x-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Y coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("y-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Enter values for X and Y coordinate of the Mouse and press "),a("code",[t._v("Apply Settings")]),t._v(".")])]),t._v(" "),a("h2",{attrs:{id:"example-5-trigger-event-listener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5-trigger-event-listener"}},[t._v("#")]),t._v(" Example 5 - Trigger event listener")]),t._v(" "),a("p",[t._v("In this example you will learn how to trigger an event listener of a plugin. The "),a("a",{attrs:{href:"(http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm)"}},[t._v("Mouse plugin")]),t._v(" has event listener for triggering a mouse click (leftClick, middleClick, rightClick). The example triggers the "),a("code",[t._v("rightClick")]),t._v(" event listener.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-trigger-event-listener.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("triggerEvent")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rightClick'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Generate right click "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"5"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Click on the button "),a("code",[t._v("Generate right click")])])]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/REST_API.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("Complete REST API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuRest",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API demo page"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper 2"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Java Client Wrapper"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[313],{956:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"rest-api-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rest-api-tutorial"}},[t._v("#")]),t._v(" REST API Tutorial")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the AsTeRICS REST API with the Javascript library provided with AsTeRICS 3.0.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("To allow remote communication with the AsTeRICS Runtime Environment (ARE), the ARE REST API was developed. It allows manipulation of resources through a set of HTTP methods such as GET, POST, PUT and DELETE.\nApart from the regular REST functions, an event mechanism through "),a("a",{attrs:{href:"https://www.w3schools.com/html/html5_serversentevents.asp",target:"_blank",rel:"noopener noreferrer"}},[t._v("Server Sent Events (SSE)"),a("OutboundLink")],1),t._v(" is provided. With this mechanism, ARE can broadcast messages to anyone who subscribes and inform when an event occurs.\nThe API uses HTTP status codes to declare an error in a call. Specifically, when an error occurs, the response will contain a 500 HTTP status code (Internal Server Error) with an ARE-produced error message inside the HTTP response body.")]),t._v(" "),a("p",[t._v("The base URI for REST operations is:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("http://localhost:8081/rest/\n")])])]),a("p",[t._v("or")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("https://localhost:8083/rest/\n")])])]),a("p",[a("em",[t._v("The default port number is 8081, but can be overridden in the file "),a("code",[t._v("ARE/areProperties")])])]),t._v(" "),a("p",[t._v("In order to get a list of all available REST methods, use the "),a("code",[t._v("restfunctions")]),t._v(" http://localhost:8081/rest/restfunctions call.")]),t._v(" "),a("p",[t._v("There are client libraries facilitating the function calls for "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("Javascript"),a("OutboundLink")],1),t._v(" and "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed and ARE running"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("areCommunicator.js, JSMap.js and jquery-3.2.1.min.js libraries"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"example-1-model-start-stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-model-start-stop"}},[t._v("#")]),t._v(" Example 1 - Model start/stop")]),t._v(" "),a("p",[t._v("In this example you will learn how to stop and start the currently deployed ARE model.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-start_stop-model.html")]),t._v(" somewhere on your hard drive.")]),t._v(" "),a("li",[t._v("Open the file in a browser.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//stopModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STARTED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STOPPED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Stop model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-model-upload"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-model-upload"}},[t._v("#")]),t._v(" Example 2 - Model upload")]),t._v(" "),a("p",[t._v("This examples shows how a model (XML string) can be uploaded to the ARE.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-upload-model.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//uploadModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelInXML "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"UMmodel"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("uploadModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Deploys the model given as a parameter "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Upload model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("UMmodel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Open the following "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/v3.0/bin/ARE/models/ImageDemo.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("model file"),a("OutboundLink")],1),t._v(" with a text editor and copy and paste the model xml string into the given field.")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Upload Model")])])]),t._v(" "),a("h2",{attrs:{id:"example-3-change-plugin-property-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-change-plugin-property-values"}},[t._v("#")]),t._v(" Example 3 - Change plugin property values")]),t._v(" "),a("p",[t._v("This example show how to parametrize a model by overriding default property values of plugins in a model. We use the default autostart model (ARE/models/autostart.acs) of the ARE, which is deployed and started automatically upon startup. The model contains a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/TextDisplay.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("TextDisplay plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("TextDisplay.1")]),t._v(" and a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/CellBoard.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("CellBoard plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("CellBoard.1")]),t._v(". With the function "),a("code",[t._v("setRuntimeComponentProperties")]),t._v(" you can provide a JSON string with plugin property key/value pairs.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-change-property-values.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The JSON object must be sent as JSON string, the keys and values must be Strings as well.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stringify")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the default property of the plugin with id TextDisplay.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"TextDisplay.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"default"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"title"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Change the cellText1 and cellText2 properties of the plugin with id CellBoard.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"CellBoard.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimeComponentProperties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the ARE could be reached and the method call was successful, the success callback is called.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The variable data contains an array with key/value pairs of properties which could be set successfully.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the length of the array == 0, no property could be set successfully. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" errorMsg"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The property settings could not be applied."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorMsg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'The following properties could be set: '")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Change parameter values for title, cellText1 and cellText2 and click onto "),a("code",[t._v("Apply Settings")])]),t._v(" "),a("li",[t._v("Not all plugin properties can be changed live, so to ensure that the changes are active stop and start the model.")])]),t._v(" "),a("h2",{attrs:{id:"example-4-send-data-to-input-port"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-send-data-to-input-port"}},[t._v("#")]),t._v(" Example 4 - Send data to input port")]),t._v(" "),a("p",[t._v("In this example you will learn how to send data to an input port of a plugin. We will use the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and send absolute coordinates to the input ports (mouseX, mouseY) to change the absolute mouse position.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and an "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/EditBox.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("EditBox plugin"),a("OutboundLink")],1),t._v(", where the output port is connected to "),a("code",[t._v("mouseX")]),t._v(" and "),a("code",[t._v("mouseIn")]),t._v(" of the Mouse plugin (see pic below). The EditBox plugin is a workaround for the known "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/230",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue #230"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("p",[a("img",{attrs:{src:"images/Mouse.JPG",alt:"Mouse plugin"}})]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-send-data-to-input-port.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Fetch values of input fields and send them to the input ports mouseX and mouseY of the Mouse plugin instance with id Mouse.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseX'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseY'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter X coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("x-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Y coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("y-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Enter values for X and Y coordinate of the Mouse and press "),a("code",[t._v("Apply Settings")]),t._v(".")])]),t._v(" "),a("h2",{attrs:{id:"example-5-trigger-event-listener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5-trigger-event-listener"}},[t._v("#")]),t._v(" Example 5 - Trigger event listener")]),t._v(" "),a("p",[t._v("In this example you will learn how to trigger an event listener of a plugin. The "),a("a",{attrs:{href:"(http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm)"}},[t._v("Mouse plugin")]),t._v(" has event listener for triggering a mouse click (leftClick, middleClick, rightClick). The example triggers the "),a("code",[t._v("rightClick")]),t._v(" event listener.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-trigger-event-listener.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("triggerEvent")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rightClick'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Generate right click "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"5"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Click on the button "),a("code",[t._v("Generate right click")])])]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/REST_API.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("Complete REST API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuRest",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API demo page"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Javascript Client Wrapper 2"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST Java Client Wrapper"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/314.51b100bf.js b/assets/js/314.89b09ecf.js similarity index 97% rename from assets/js/314.51b100bf.js rename to assets/js/314.89b09ecf.js index f2525c7d7a..680e9a5e92 100644 --- a/assets/js/314.51b100bf.js +++ b/assets/js/314.89b09ecf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[314],{959:function(t,e,a){"use strict";a.r(e);var s=a(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"rest-demos-with-javascript-client-library"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-demos-with-javascript-client-library"}},[t._v("#")]),t._v(" REST demos with Javascript client library")]),t._v(" "),e("p",[t._v("The ARE provides a REST API with several functionalities. The base REST URI is:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://localhost:8081/rest/\n")])])]),e("p",[t._v("In order to get a list of all available rest methods use: "),e("StaticLink",{attrs:{href:"http://localhost:8081/rest/restfunctions",target:"_blank",text:"http://localhost:8081/rest/restfunctions"}})],1),t._v(" "),e("h2",{attrs:{id:"examples"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("p",[t._v("One way to use the REST API ist to use the Javascript library "),e("a",{attrs:{target:"_blank",href:"./javascript/areCommunicator.js"}},[t._v("areCommunicator.js")]),t._v(". Use the following links to navigate to examples using this library:")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/are_repository.html",text:"ARE Repository"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("REST methods to interact with the ARE model repository (list, store, delete).")]),t._v(" "),e("ul",[e("li",[t._v('"/>:\n')])]),t._v(" "),e("p",[t._v("Interact with data channels and event channels of the ARE model.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/runtime_model_components.html",text:"ARE Model Components"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Interact with components of the current ARE model.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/runtime_model_deployment.html",text:"ARE Model Deployment"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Deploy and upload ARE models.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/runtime_model_state.html",text:"ARE Model State"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Get information and change the state of the current ARE model.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/sse.html",text:"Server Sent Events"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Subscribe to server sent events (SSE) of the current ARE model.")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[314],{958:function(t,e,a){"use strict";a.r(e);var s=a(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"rest-demos-with-javascript-client-library"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-demos-with-javascript-client-library"}},[t._v("#")]),t._v(" REST demos with Javascript client library")]),t._v(" "),e("p",[t._v("The ARE provides a REST API with several functionalities. The base REST URI is:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://localhost:8081/rest/\n")])])]),e("p",[t._v("In order to get a list of all available rest methods use: "),e("StaticLink",{attrs:{href:"http://localhost:8081/rest/restfunctions",target:"_blank",text:"http://localhost:8081/rest/restfunctions"}})],1),t._v(" "),e("h2",{attrs:{id:"examples"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("p",[t._v("One way to use the REST API ist to use the Javascript library "),e("a",{attrs:{target:"_blank",href:"./javascript/areCommunicator.js"}},[t._v("areCommunicator.js")]),t._v(". Use the following links to navigate to examples using this library:")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/are_repository.html",text:"ARE Repository"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("REST methods to interact with the ARE model repository (list, store, delete).")]),t._v(" "),e("ul",[e("li",[t._v('"/>:\n')])]),t._v(" "),e("p",[t._v("Interact with data channels and event channels of the ARE model.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/runtime_model_components.html",text:"ARE Model Components"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Interact with components of the current ARE model.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/runtime_model_deployment.html",text:"ARE Model Deployment"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Deploy and upload ARE models.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/runtime_model_state.html",text:"ARE Model State"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Get information and change the state of the current ARE model.")]),t._v(" "),e("ul",[e("li",[e("StaticLink",{attrs:{href:"demos/clientExample/sse.html",text:"Server Sent Events"}}),t._v(":\n")],1)]),t._v(" "),e("p",[t._v("Subscribe to server sent events (SSE) of the current ARE model.")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/315.2f5dd7bf.js b/assets/js/315.9be4dac4.js similarity index 98% rename from assets/js/315.2f5dd7bf.js rename to assets/js/315.9be4dac4.js index dbc2aff64c..f95a08fd77 100644 --- a/assets/js/315.2f5dd7bf.js +++ b/assets/js/315.9be4dac4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[315],{960:function(e,t,s){"use strict";s.r(t);var a=s(2),r=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-webserver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver"}},[e._v("#")]),e._v(" ARE Webserver")]),e._v(" "),t("p",[e._v("The ARE provides a webserver with the document root at")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE/web/\n")])])]),t("p",[e._v("If you start the ARE, you can open the start page of the webserver by")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("http://localhost:8081/\n")])])]),t("p",[e._v("or")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("https://localhost:8083/\n")])])]),t("h2",{attrs:{id:"document-root-subpath-definitions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#document-root-subpath-definitions"}},[e._v("#")]),e._v(" Document root subpath definitions")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("/ or /index.html")]),e._v(": Landing page of the webserver. This URL provides some general informations about AsTeRICS and should link to the WebACS, REST demos and model demos. Can be overridden in case of an APE project. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("rest/")]),e._v(": This is the base path of the "),t("RouterLink",{attrs:{to:"/develop/are-remote-apis/REST-API.html"}},[e._v("REST interface")]),e._v(".\n("),t("em",[e._v("read, write")]),e._v(")")],1),e._v(" "),t("li",[t("strong",[e._v("ws/")]),e._v(": This is the base path of the websocket functionality. "),t("em",[e._v("(read, write)")])]),e._v(" "),t("li",[t("strong",[e._v("data/")]),e._v(": Reserved for providing access to the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/data"),t("OutboundLink")],1),e._v(" folder containing model data files, plugin config files, plugin images,… ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("models/")]),e._v(": Reserved for providing access to "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/models/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/models"),t("OutboundLink")],1),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("modelSettings/")]),e._v(": Reserved for static or dynamically generated settings dialogs of a model targeted for end users (users with disabilities or care takers, personal assistents, occupational therapists,…) ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("componentCollections/")]),e._v(": Reserved for providing various component collections describing the set of plugins available on an ARE installation. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps")]),e._v("/: Reserved for web applications. Could be used to extend web functionality by (optional) web applications. ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("WebACS/")]),e._v(": Base URL of the webbased AsTeRICS Configuration Suite "),t("a",{attrs:{href:"https://github.com/asterics/WebACS",target:"_blank",rel:"noopener noreferrer"}},[e._v("(WebACS)"),t("OutboundLink")],1),e._v(" including help of WebACS "),t("strong",[e._v("without plugin help files")]),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")])]),e._v(" "),t("h2",{attrs:{id:"physical-folder-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#physical-folder-structure"}},[e._v("#")]),e._v(" Physical folder structure")]),e._v(" "),t("p",[e._v("The virtual paths are represented by the following physical folder structure on the ARE:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE\n |-data/\n |-models/\n |-web/\n |index.html\n |-modelSettings/\n |-componentCollections/\n |-WebACS/\n |-webapps/\n")])])]),t("p",[e._v("The subpaths "),t("em",[e._v("rest/")]),e._v(" and "),t("em",[e._v("ws/")]),e._v(" are only virtual paths needed for the REST API and websocket functionalities.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[315],{959:function(e,t,s){"use strict";s.r(t);var a=s(2),r=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-webserver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-webserver"}},[e._v("#")]),e._v(" ARE Webserver")]),e._v(" "),t("p",[e._v("The ARE provides a webserver with the document root at")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE/web/\n")])])]),t("p",[e._v("If you start the ARE, you can open the start page of the webserver by")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("http://localhost:8081/\n")])])]),t("p",[e._v("or")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("https://localhost:8083/\n")])])]),t("h2",{attrs:{id:"document-root-subpath-definitions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#document-root-subpath-definitions"}},[e._v("#")]),e._v(" Document root subpath definitions")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("/ or /index.html")]),e._v(": Landing page of the webserver. This URL provides some general informations about AsTeRICS and should link to the WebACS, REST demos and model demos. Can be overridden in case of an APE project. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("rest/")]),e._v(": This is the base path of the "),t("RouterLink",{attrs:{to:"/develop/are-remote-apis/REST-API.html"}},[e._v("REST interface")]),e._v(".\n("),t("em",[e._v("read, write")]),e._v(")")],1),e._v(" "),t("li",[t("strong",[e._v("ws/")]),e._v(": This is the base path of the websocket functionality. "),t("em",[e._v("(read, write)")])]),e._v(" "),t("li",[t("strong",[e._v("data/")]),e._v(": Reserved for providing access to the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/data"),t("OutboundLink")],1),e._v(" folder containing model data files, plugin config files, plugin images,… ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("models/")]),e._v(": Reserved for providing access to "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/models/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/models"),t("OutboundLink")],1),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("modelSettings/")]),e._v(": Reserved for static or dynamically generated settings dialogs of a model targeted for end users (users with disabilities or care takers, personal assistents, occupational therapists,…) ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("componentCollections/")]),e._v(": Reserved for providing various component collections describing the set of plugins available on an ARE installation. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps")]),e._v("/: Reserved for web applications. Could be used to extend web functionality by (optional) web applications. ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("WebACS/")]),e._v(": Base URL of the webbased AsTeRICS Configuration Suite "),t("a",{attrs:{href:"https://github.com/asterics/WebACS",target:"_blank",rel:"noopener noreferrer"}},[e._v("(WebACS)"),t("OutboundLink")],1),e._v(" including help of WebACS "),t("strong",[e._v("without plugin help files")]),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")])]),e._v(" "),t("h2",{attrs:{id:"physical-folder-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#physical-folder-structure"}},[e._v("#")]),e._v(" Physical folder structure")]),e._v(" "),t("p",[e._v("The virtual paths are represented by the following physical folder structure on the ARE:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE\n |-data/\n |-models/\n |-web/\n |index.html\n |-modelSettings/\n |-componentCollections/\n |-WebACS/\n |-webapps/\n")])])]),t("p",[e._v("The subpaths "),t("em",[e._v("rest/")]),e._v(" and "),t("em",[e._v("ws/")]),e._v(" are only virtual paths needed for the REST API and websocket functionalities.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/317.9ccede3e.js b/assets/js/317.7103d31f.js similarity index 99% rename from assets/js/317.9ccede3e.js rename to assets/js/317.7103d31f.js index 7ba7ad8c36..dd97e4956a 100644 --- a/assets/js/317.9ccede3e.js +++ b/assets/js/317.7103d31f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[317],{962:function(e,r,t){"use strict";t.r(r);var n=t(2),a=Object(n.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"tools-and-libraries"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tools-and-libraries"}},[e._v("#")]),e._v(" Tools and libraries")]),e._v(" "),r("p",[e._v("This chapter is about tools, libraries and technologies that are used in AsTeRICS Grid project:")]),e._v(" "),r("ol",[r("li",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html#tools"}},[e._v("Tools")])],1),e._v(" "),r("li",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html#javascript-libraries"}},[e._v("Javascript libaries")])],1)]),e._v(" "),r("p",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),r("h2",{attrs:{id:"tools"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tools"}},[e._v("#")]),e._v(" Tools")]),e._v(" "),r("p",[e._v("This section is about tools that are used for development, dependency management and releasing.")]),e._v(" "),r("h3",{attrs:{id:"node-package-manager-npm"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#node-package-manager-npm"}},[e._v("#")]),e._v(" Node package manager (npm)")]),e._v(" "),r("p",[e._v("The "),r("a",{attrs:{href:"https://www.npmjs.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("node package manager (npm)"),r("OutboundLink")],1),e._v(" is used for managing Javascript dependencies and running various tasks related to the project. The npm configuration file is "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h4",{attrs:{id:"npm-dependencies"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#npm-dependencies"}},[e._v("#")]),e._v(" npm dependencies")]),e._v(" "),r("p",[e._v("The configuration file "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(" includes the key "),r("code",[e._v("dependencies")]),e._v(" which include dependencies that are used in order to run AsTeRICS Grid:")]),e._v(" "),r("ul",[r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/sen-su/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("@sensu/superlogin"),r("OutboundLink")],1)]),e._v(": framework providing user management in connection to "),r("a",{attrs:{href:"http://couchdb.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CouchDB"),r("OutboundLink")],1),e._v(", the database backend used by AsTeRICS Grid")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/cors",target:"_blank",rel:"noopener noreferrer"}},[e._v("cors"),r("OutboundLink")],1)]),e._v(": CORS handler for HTTP requests, used by superlogin")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/morgan",target:"_blank",rel:"noopener noreferrer"}},[e._v("morgan"),r("OutboundLink")],1)]),e._v(": logger for HTTP requests, used by superlogin")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/superlogin-client",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin-client"),r("OutboundLink")],1)]),e._v(": Javascript client for a superlogin instance running on a server")])]),e._v(" "),r("p",[e._v("The other listed dependencies are "),r("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html#javascript-libraries"}},[e._v("Javascript libraries")]),e._v(".")],1),e._v(" "),r("h4",{attrs:{id:"npm-dev-dependencies"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#npm-dev-dependencies"}},[e._v("#")]),e._v(" npm dev-dependencies")]),e._v(" "),r("p",[e._v("The configuration file "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(" includes the key "),r("code",[e._v("dev-dependencies")]),e._v(" which include dependencies that are used for development of AsTeRICS Grid. These are the most important ones:")]),e._v(" "),r("ul",[r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/webpack",target:"_blank",rel:"noopener noreferrer"}},[e._v("webpack"),r("OutboundLink")],1)]),e._v(": framework using for bundling javascript, vue and css resources")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/webpack-dev-server",target:"_blank",rel:"noopener noreferrer"}},[e._v("webpack-dev-server"),r("OutboundLink")],1)]),e._v(": local http server for development of the application")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/babel-core",target:"_blank",rel:"noopener noreferrer"}},[e._v("babel-core"),r("OutboundLink")],1)]),e._v(": framework for transpiling Javascript sources with newer language features to Javascript that is compatible with older browsers.")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/jest",target:"_blank",rel:"noopener noreferrer"}},[e._v("jest"),r("OutboundLink")],1)]),e._v(": Unit testing framework for javascript")])]),e._v(" "),r("h3",{attrs:{id:"webpack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#webpack"}},[e._v("#")]),e._v(" Webpack")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://webpack.js.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Webpack"),r("OutboundLink")],1),e._v(" is used in order to bundling the Javascript sources to a single and minified bundle file. The configuration file for webpack is "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/webpack.config.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("webpack.config.js"),r("OutboundLink")],1),e._v(". It may seem complicated at first sight, but basically it’s configuring 3 things:")]),e._v(" "),r("ol",[r("li",[r("strong",[e._v("Bundling of all sources")]),e._v(" from the "),r("code",[e._v("src/")]),e._v(" folder to one minified file in "),r("code",[e._v("app/build/")]),e._v(" and "),r("code",[e._v("app/build_lecagy")]),e._v(". This bundling is configured by the two objects "),r("code",[e._v("configNormal")]),e._v(" and "),r("code",[e._v("configLegacy")]),e._v(" that are returned at the end of the script.")]),e._v(" "),r("li",[r("strong",[e._v("Generating the appcache.manifest file")]),e._v(" for offline support. This is done by using the "),r("a",{attrs:{href:"https://www.npmjs.com/package/appcache-webpack-plugin",target:"_blank",rel:"noopener noreferrer"}},[e._v("appcache-webpack-plugin"),r("OutboundLink")],1),e._v(" and listing all needed resources in it’s configuration.")]),e._v(" "),r("li",[r("strong",[e._v("Configuring the development webserver")]),e._v(": this is done by the property object returned in the function "),r("code",[e._v("getDevServer()")])])]),e._v(" "),r("h2",{attrs:{id:"javascript-libraries"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#javascript-libraries"}},[e._v("#")]),e._v(" Javascript libraries")]),e._v(" "),r("p",[e._v("This section is about Javascript libraries that are used within the AsTeRICS Grid project. They can be found in two locations:")]),e._v(" "),r("ol",[r("li",[e._v("As dependency listed within "),r("code",[e._v("dependencies")]),e._v(" in the "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(" configuration file")]),e._v(" "),r("li",[e._v("As external library included in the "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/app/lib",target:"_blank",rel:"noopener noreferrer"}},[e._v("app/lib/ folder"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("These are the Javascript libraries that are used:")]),e._v(" "),r("ul",[r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/file-saver",target:"_blank",rel:"noopener noreferrer"}},[e._v("file-saver"),r("OutboundLink")],1)]),e._v(": library for downloading files within a web-application")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/lz-string",target:"_blank",rel:"noopener noreferrer"}},[e._v("lz-string"),r("OutboundLink")],1)]),e._v(": library for string compression, used for imported default dictionaries*")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/navigo",target:"_blank",rel:"noopener noreferrer"}},[e._v("navigo"),r("OutboundLink")],1)]),e._v(": javascript routing library based on URL hash")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/predictionary",target:"_blank",rel:"noopener noreferrer"}},[e._v("predictionary"),r("OutboundLink")],1)]),e._v(": javascript word prediction library")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue"),r("OutboundLink")],1)]),e._v(": javascript single-page application framework")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/ruyadorno/dom-i18n",target:"_blank",rel:"noopener noreferrer"}},[e._v("dom-i18n"),r("OutboundLink")],1)]),e._v(": easy to use DOM-internationalization library")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://jquery.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("jQuery"),r("OutboundLink")],1)]),e._v(": library for document traversal and manipulation, needed for jQueryUI")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://jqueryui.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("jQueryUI"),r("OutboundLink")],1)]),e._v(": library for user interface interactions, needed for jQuery contextMenu and GridList")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://swisnl.github.io/jQuery-contextMenu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("jQuery contextMenu"),r("OutboundLink")],1)]),e._v(": jQuery plugin for right-click context menus, used in AsTeRICS Grid e.g. for edit menu of a grid element")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/klues/grid",target:"_blank",rel:"noopener noreferrer"}},[e._v("GridList"),r("OutboundLink")],1)]),e._v(": jQueryUI based library for creation of a dynamic, draggable grid")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/pimterry/loglevel",target:"_blank",rel:"noopener noreferrer"}},[e._v("loglevel"),r("OutboundLink")],1)]),e._v(": javascript logging library")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://objectmodel.js.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ObjectModel"),r("OutboundLink")],1)]),e._v(": library for dynamic type checking, see data models in "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/js/model",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/model/"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://pouchdb.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PouchDB"),r("OutboundLink")],1)]),e._v(": library for accessing "),r("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("IndexedDB"),r("OutboundLink")],1),e._v(" and synchronization with a remote "),r("a",{attrs:{href:"http://couchdb.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CouchDB"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/bitwiseshiftleft/sjcl",target:"_blank",rel:"noopener noreferrer"}},[e._v("sjcl"),r("OutboundLink")],1)]),e._v(": crypto library published by Stanford University that is used for encryption of user configuration")])]),e._v(" "),r("p",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/01_structure.html"}},[e._v("← Previous Chapter")]),e._v(" "),r("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html"}},[e._v("Next Chapter →")])],1),e._v(" "),r("p",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[317],{964:function(e,r,t){"use strict";t.r(r);var n=t(2),a=Object(n.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"tools-and-libraries"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tools-and-libraries"}},[e._v("#")]),e._v(" Tools and libraries")]),e._v(" "),r("p",[e._v("This chapter is about tools, libraries and technologies that are used in AsTeRICS Grid project:")]),e._v(" "),r("ol",[r("li",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html#tools"}},[e._v("Tools")])],1),e._v(" "),r("li",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html#javascript-libraries"}},[e._v("Javascript libaries")])],1)]),e._v(" "),r("p",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),r("h2",{attrs:{id:"tools"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tools"}},[e._v("#")]),e._v(" Tools")]),e._v(" "),r("p",[e._v("This section is about tools that are used for development, dependency management and releasing.")]),e._v(" "),r("h3",{attrs:{id:"node-package-manager-npm"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#node-package-manager-npm"}},[e._v("#")]),e._v(" Node package manager (npm)")]),e._v(" "),r("p",[e._v("The "),r("a",{attrs:{href:"https://www.npmjs.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("node package manager (npm)"),r("OutboundLink")],1),e._v(" is used for managing Javascript dependencies and running various tasks related to the project. The npm configuration file is "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h4",{attrs:{id:"npm-dependencies"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#npm-dependencies"}},[e._v("#")]),e._v(" npm dependencies")]),e._v(" "),r("p",[e._v("The configuration file "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(" includes the key "),r("code",[e._v("dependencies")]),e._v(" which include dependencies that are used in order to run AsTeRICS Grid:")]),e._v(" "),r("ul",[r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/sen-su/superlogin",target:"_blank",rel:"noopener noreferrer"}},[e._v("@sensu/superlogin"),r("OutboundLink")],1)]),e._v(": framework providing user management in connection to "),r("a",{attrs:{href:"http://couchdb.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CouchDB"),r("OutboundLink")],1),e._v(", the database backend used by AsTeRICS Grid")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/cors",target:"_blank",rel:"noopener noreferrer"}},[e._v("cors"),r("OutboundLink")],1)]),e._v(": CORS handler for HTTP requests, used by superlogin")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/morgan",target:"_blank",rel:"noopener noreferrer"}},[e._v("morgan"),r("OutboundLink")],1)]),e._v(": logger for HTTP requests, used by superlogin")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/superlogin-client",target:"_blank",rel:"noopener noreferrer"}},[e._v("superlogin-client"),r("OutboundLink")],1)]),e._v(": Javascript client for a superlogin instance running on a server")])]),e._v(" "),r("p",[e._v("The other listed dependencies are "),r("RouterLink",{attrs:{to:"/develop/asterics-grid/02_tools.html#javascript-libraries"}},[e._v("Javascript libraries")]),e._v(".")],1),e._v(" "),r("h4",{attrs:{id:"npm-dev-dependencies"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#npm-dev-dependencies"}},[e._v("#")]),e._v(" npm dev-dependencies")]),e._v(" "),r("p",[e._v("The configuration file "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(" includes the key "),r("code",[e._v("dev-dependencies")]),e._v(" which include dependencies that are used for development of AsTeRICS Grid. These are the most important ones:")]),e._v(" "),r("ul",[r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/webpack",target:"_blank",rel:"noopener noreferrer"}},[e._v("webpack"),r("OutboundLink")],1)]),e._v(": framework using for bundling javascript, vue and css resources")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/webpack-dev-server",target:"_blank",rel:"noopener noreferrer"}},[e._v("webpack-dev-server"),r("OutboundLink")],1)]),e._v(": local http server for development of the application")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/babel-core",target:"_blank",rel:"noopener noreferrer"}},[e._v("babel-core"),r("OutboundLink")],1)]),e._v(": framework for transpiling Javascript sources with newer language features to Javascript that is compatible with older browsers.")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/jest",target:"_blank",rel:"noopener noreferrer"}},[e._v("jest"),r("OutboundLink")],1)]),e._v(": Unit testing framework for javascript")])]),e._v(" "),r("h3",{attrs:{id:"webpack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#webpack"}},[e._v("#")]),e._v(" Webpack")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://webpack.js.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Webpack"),r("OutboundLink")],1),e._v(" is used in order to bundling the Javascript sources to a single and minified bundle file. The configuration file for webpack is "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/webpack.config.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("webpack.config.js"),r("OutboundLink")],1),e._v(". It may seem complicated at first sight, but basically it’s configuring 3 things:")]),e._v(" "),r("ol",[r("li",[r("strong",[e._v("Bundling of all sources")]),e._v(" from the "),r("code",[e._v("src/")]),e._v(" folder to one minified file in "),r("code",[e._v("app/build/")]),e._v(" and "),r("code",[e._v("app/build_lecagy")]),e._v(". This bundling is configured by the two objects "),r("code",[e._v("configNormal")]),e._v(" and "),r("code",[e._v("configLegacy")]),e._v(" that are returned at the end of the script.")]),e._v(" "),r("li",[r("strong",[e._v("Generating the appcache.manifest file")]),e._v(" for offline support. This is done by using the "),r("a",{attrs:{href:"https://www.npmjs.com/package/appcache-webpack-plugin",target:"_blank",rel:"noopener noreferrer"}},[e._v("appcache-webpack-plugin"),r("OutboundLink")],1),e._v(" and listing all needed resources in it’s configuration.")]),e._v(" "),r("li",[r("strong",[e._v("Configuring the development webserver")]),e._v(": this is done by the property object returned in the function "),r("code",[e._v("getDevServer()")])])]),e._v(" "),r("h2",{attrs:{id:"javascript-libraries"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#javascript-libraries"}},[e._v("#")]),e._v(" Javascript libraries")]),e._v(" "),r("p",[e._v("This section is about Javascript libraries that are used within the AsTeRICS Grid project. They can be found in two locations:")]),e._v(" "),r("ol",[r("li",[e._v("As dependency listed within "),r("code",[e._v("dependencies")]),e._v(" in the "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/package.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("package.json"),r("OutboundLink")],1),e._v(" configuration file")]),e._v(" "),r("li",[e._v("As external library included in the "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/app/lib",target:"_blank",rel:"noopener noreferrer"}},[e._v("app/lib/ folder"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("These are the Javascript libraries that are used:")]),e._v(" "),r("ul",[r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/file-saver",target:"_blank",rel:"noopener noreferrer"}},[e._v("file-saver"),r("OutboundLink")],1)]),e._v(": library for downloading files within a web-application")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/lz-string",target:"_blank",rel:"noopener noreferrer"}},[e._v("lz-string"),r("OutboundLink")],1)]),e._v(": library for string compression, used for imported default dictionaries*")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/navigo",target:"_blank",rel:"noopener noreferrer"}},[e._v("navigo"),r("OutboundLink")],1)]),e._v(": javascript routing library based on URL hash")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/predictionary",target:"_blank",rel:"noopener noreferrer"}},[e._v("predictionary"),r("OutboundLink")],1)]),e._v(": javascript word prediction library")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://www.npmjs.com/package/vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue"),r("OutboundLink")],1)]),e._v(": javascript single-page application framework")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/ruyadorno/dom-i18n",target:"_blank",rel:"noopener noreferrer"}},[e._v("dom-i18n"),r("OutboundLink")],1)]),e._v(": easy to use DOM-internationalization library")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://jquery.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("jQuery"),r("OutboundLink")],1)]),e._v(": library for document traversal and manipulation, needed for jQueryUI")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://jqueryui.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("jQueryUI"),r("OutboundLink")],1)]),e._v(": library for user interface interactions, needed for jQuery contextMenu and GridList")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://swisnl.github.io/jQuery-contextMenu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("jQuery contextMenu"),r("OutboundLink")],1)]),e._v(": jQuery plugin for right-click context menus, used in AsTeRICS Grid e.g. for edit menu of a grid element")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/klues/grid",target:"_blank",rel:"noopener noreferrer"}},[e._v("GridList"),r("OutboundLink")],1)]),e._v(": jQueryUI based library for creation of a dynamic, draggable grid")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/pimterry/loglevel",target:"_blank",rel:"noopener noreferrer"}},[e._v("loglevel"),r("OutboundLink")],1)]),e._v(": javascript logging library")]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://objectmodel.js.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ObjectModel"),r("OutboundLink")],1)]),e._v(": library for dynamic type checking, see data models in "),r("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/tree/master/src/js/model",target:"_blank",rel:"noopener noreferrer"}},[e._v("src/js/model/"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://pouchdb.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PouchDB"),r("OutboundLink")],1)]),e._v(": library for accessing "),r("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("IndexedDB"),r("OutboundLink")],1),e._v(" and synchronization with a remote "),r("a",{attrs:{href:"http://couchdb.apache.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CouchDB"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("strong",[r("a",{attrs:{href:"https://github.com/bitwiseshiftleft/sjcl",target:"_blank",rel:"noopener noreferrer"}},[e._v("sjcl"),r("OutboundLink")],1)]),e._v(": crypto library published by Stanford University that is used for encryption of user configuration")])]),e._v(" "),r("p",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/01_structure.html"}},[e._v("← Previous Chapter")]),e._v(" "),r("RouterLink",{attrs:{to:"/develop/asterics-grid/03_grid.html"}},[e._v("Next Chapter →")])],1),e._v(" "),r("p",[r("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/319.c32dfbff.js b/assets/js/319.b25611ce.js similarity index 99% rename from assets/js/319.c32dfbff.js rename to assets/js/319.b25611ce.js index 323206adbb..8c064a30f6 100644 --- a/assets/js/319.c32dfbff.js +++ b/assets/js/319.b25611ce.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[319],{968:function(e,t,i){"use strict";i.r(t);var a=i(2),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"internationalization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#internationalization"}},[e._v("#")]),e._v(" Internationalization")]),e._v(" "),t("p",[e._v("This chapter is about internationalization (translation of elements) in AsTeRICS Grid which can be done in three ways:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#dom-i18n"}},[e._v("dom-i18n")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#i18nservice-js"}},[e._v("i18nService.js")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#vue-js-filter"}},[e._v("Vue.js filter")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"dom-i18n"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dom-i18n"}},[e._v("#")]),e._v(" dom-i18n")]),e._v(" "),t("p",[e._v("The library "),t("a",{attrs:{href:"https://github.com/ruyadorno/dom-i18n",target:"_blank",rel:"noopener noreferrer"}},[e._v("dom-i18n"),t("OutboundLink")],1),e._v(" provides an very easy to use possibility for adding translations to an HTML site. Wherever possible it’s used within AsTeRICS Grid. The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/views/aboutView.vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("aboutView.vue"),t("OutboundLink")],1),e._v(" shows it’s usage within a Vue component:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Usage within HTML: "),t("code",[e._v('

      About AsTeRICS Grid // Über das AsTeRICS Grid

      ')])]),e._v(" "),t("ul",[t("li",[e._v("property "),t("code",[e._v("data-i18n")]),e._v(" on an HTML element indicates that the content of this "),t("code",[e._v("h2")]),e._v(" tag is internationalized")]),e._v(" "),t("li",[e._v('content in different languages is placed directly within the HTML element, separated by " // "')]),e._v(" "),t("li",[e._v("first language is English, second German")])])]),e._v(" "),t("li",[t("p",[e._v("For displaying only the content of the correct language, in the Javascript part of the component this code has to be executed (see "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/views/aboutView.vue#L88",target:"_blank",rel:"noopener noreferrer"}},[e._v("aboutView.vue:88"),t("OutboundLink")],1),e._v("):")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("mounted() {\n i18nService.initDomI18n();\n}\n")])])]),t("ul",[t("li",[e._v("the "),t("code",[e._v("mounted()")]),e._v(" function is called by Vue.js after initialization of the component")]),e._v(" "),t("li",[t("code",[e._v("i18nService.initDomI18n()")]),e._v(" initializes the dom-i18n library for this component, showing only the translations of correct language")]),e._v(" "),t("li",[e._v("if it’s a dynamic Vue.js component it’s maybe necessary to call "),t("code",[e._v("i18nService.initDomI18n()")]),e._v(" also in the Vue.js "),t("code",[e._v("updated()")]),e._v(" method which is called after each view update")])])])]),e._v(" "),t("p",[e._v("The dom-i18n library is initialized in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/service/i18nService.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("i18nService.js"),t("OutboundLink")],1),e._v(". There it would be possible to add additional languages by adding it to the "),t("code",[e._v("language")]),e._v(" property within the "),t("code",[e._v("i18nService.initDomI18n()")]),e._v(" method.")]),e._v(" "),t("h2",{attrs:{id:"i18nservice-js"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#i18nservice-js"}},[e._v("#")]),e._v(" i18nService.js")]),e._v(" "),t("p",[e._v("If a translation is needed in a piece of Javascript code, the method "),t("code",[e._v("i18nService.translate(key)")]),e._v(" can be used. The "),t("code",[e._v("key")]),e._v(" property to pass and it’s translations are also defined in "),t("code",[e._v("i18nService")]),e._v(". It’s also possible to pass parameters to the "),t("code",[e._v("translate")]),e._v(" method which are inserted in "),t("code",[e._v("{?}")]),e._v(" placeholders in the translated strings.")]),e._v(" "),t("h3",{attrs:{id:"usage-example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage-example"}},[e._v("#")]),e._v(" Usage example")]),e._v(" "),t("p",[e._v("In order to ask the user a translated question with parameter this code can be used:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("if (confirm(i18nService.translate('CONFIRM_DELETE_GRID', 'My grid'))) {\n // delete grid\n}\n")])])]),t("p",[e._v("These could be the defined translations within "),t("code",[e._v("i18nService.js")]),e._v(":")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("i18nService.translations['en']['CONFIRM_DELETE_GRID'] = 'Do you really want to delete the grid \"{?}\"?'\ni18nService.translations['de']['CONFIRM_DELETE_GRID'] = 'Möchten Sie das Grid \"{?}\" wirklich löschen?'\n")])])]),t("p",[e._v("The result will be a confirmation dialog containing:")]),e._v(" "),t("ul",[t("li",[e._v("non-german browser setting: "),t("em",[e._v("Do you really want to delete the grid “My grid”?")])]),e._v(" "),t("li",[e._v("german browser setting: "),t("em",[e._v("Möchten Sie das Grid “My grid” wirklich löschen?")])])]),e._v(" "),t("h2",{attrs:{id:"vue-js-filter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#vue-js-filter"}},[e._v("#")]),e._v(" Vue.js filter")]),e._v(" "),t("div",{pre:!0},[t("p",[e._v("There is also an implemented Vue.js filter for translation which uses the "),t("code",[e._v("i18nService.translate()")]),e._v(" method. It’s implemented in "),t("a",{pre:!0,attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/vuePluginManager.js#L39",target:"_blank",rel:"noopener noreferrer"}},[e._v("vuePluginManager.js#initFilters()"),t("OutboundLink",{pre:!0})],1),e._v(". General usage is a pipe within any double curly braces expression, for instance "),t("code",[e._v("{{ variableToTranslate | translate }}")]),e._v(". A real use-case could look like this:")])]),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('
    • \n {{action.modelName | translate}}\n
    • \n')])])]),t("p",[e._v("This piece of Vue.js code iterates over the array "),t("code",[e._v("actions")]),e._v(" of the object "),t("code",[e._v("gridElement")]),e._v(" and generates a "),t("code",[e._v("span")]),e._v(" with a translated version of the "),t("code",[e._v("modelName")]),e._v(" of each action as content.")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("a",{attrs:{href:""}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[319],{967:function(e,t,i){"use strict";i.r(t);var a=i(2),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"internationalization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#internationalization"}},[e._v("#")]),e._v(" Internationalization")]),e._v(" "),t("p",[e._v("This chapter is about internationalization (translation of elements) in AsTeRICS Grid which can be done in three ways:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#dom-i18n"}},[e._v("dom-i18n")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#i18nservice-js"}},[e._v("i18nService.js")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/07_i18n.html#vue-js-filter"}},[e._v("Vue.js filter")])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"dom-i18n"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dom-i18n"}},[e._v("#")]),e._v(" dom-i18n")]),e._v(" "),t("p",[e._v("The library "),t("a",{attrs:{href:"https://github.com/ruyadorno/dom-i18n",target:"_blank",rel:"noopener noreferrer"}},[e._v("dom-i18n"),t("OutboundLink")],1),e._v(" provides an very easy to use possibility for adding translations to an HTML site. Wherever possible it’s used within AsTeRICS Grid. The file "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/views/aboutView.vue",target:"_blank",rel:"noopener noreferrer"}},[e._v("aboutView.vue"),t("OutboundLink")],1),e._v(" shows it’s usage within a Vue component:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Usage within HTML: "),t("code",[e._v('

      About AsTeRICS Grid // Über das AsTeRICS Grid

      ')])]),e._v(" "),t("ul",[t("li",[e._v("property "),t("code",[e._v("data-i18n")]),e._v(" on an HTML element indicates that the content of this "),t("code",[e._v("h2")]),e._v(" tag is internationalized")]),e._v(" "),t("li",[e._v('content in different languages is placed directly within the HTML element, separated by " // "')]),e._v(" "),t("li",[e._v("first language is English, second German")])])]),e._v(" "),t("li",[t("p",[e._v("For displaying only the content of the correct language, in the Javascript part of the component this code has to be executed (see "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/vue-components/views/aboutView.vue#L88",target:"_blank",rel:"noopener noreferrer"}},[e._v("aboutView.vue:88"),t("OutboundLink")],1),e._v("):")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("mounted() {\n i18nService.initDomI18n();\n}\n")])])]),t("ul",[t("li",[e._v("the "),t("code",[e._v("mounted()")]),e._v(" function is called by Vue.js after initialization of the component")]),e._v(" "),t("li",[t("code",[e._v("i18nService.initDomI18n()")]),e._v(" initializes the dom-i18n library for this component, showing only the translations of correct language")]),e._v(" "),t("li",[e._v("if it’s a dynamic Vue.js component it’s maybe necessary to call "),t("code",[e._v("i18nService.initDomI18n()")]),e._v(" also in the Vue.js "),t("code",[e._v("updated()")]),e._v(" method which is called after each view update")])])])]),e._v(" "),t("p",[e._v("The dom-i18n library is initialized in "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/service/i18nService.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("i18nService.js"),t("OutboundLink")],1),e._v(". There it would be possible to add additional languages by adding it to the "),t("code",[e._v("language")]),e._v(" property within the "),t("code",[e._v("i18nService.initDomI18n()")]),e._v(" method.")]),e._v(" "),t("h2",{attrs:{id:"i18nservice-js"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#i18nservice-js"}},[e._v("#")]),e._v(" i18nService.js")]),e._v(" "),t("p",[e._v("If a translation is needed in a piece of Javascript code, the method "),t("code",[e._v("i18nService.translate(key)")]),e._v(" can be used. The "),t("code",[e._v("key")]),e._v(" property to pass and it’s translations are also defined in "),t("code",[e._v("i18nService")]),e._v(". It’s also possible to pass parameters to the "),t("code",[e._v("translate")]),e._v(" method which are inserted in "),t("code",[e._v("{?}")]),e._v(" placeholders in the translated strings.")]),e._v(" "),t("h3",{attrs:{id:"usage-example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage-example"}},[e._v("#")]),e._v(" Usage example")]),e._v(" "),t("p",[e._v("In order to ask the user a translated question with parameter this code can be used:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("if (confirm(i18nService.translate('CONFIRM_DELETE_GRID', 'My grid'))) {\n // delete grid\n}\n")])])]),t("p",[e._v("These could be the defined translations within "),t("code",[e._v("i18nService.js")]),e._v(":")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("i18nService.translations['en']['CONFIRM_DELETE_GRID'] = 'Do you really want to delete the grid \"{?}\"?'\ni18nService.translations['de']['CONFIRM_DELETE_GRID'] = 'Möchten Sie das Grid \"{?}\" wirklich löschen?'\n")])])]),t("p",[e._v("The result will be a confirmation dialog containing:")]),e._v(" "),t("ul",[t("li",[e._v("non-german browser setting: "),t("em",[e._v("Do you really want to delete the grid “My grid”?")])]),e._v(" "),t("li",[e._v("german browser setting: "),t("em",[e._v("Möchten Sie das Grid “My grid” wirklich löschen?")])])]),e._v(" "),t("h2",{attrs:{id:"vue-js-filter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#vue-js-filter"}},[e._v("#")]),e._v(" Vue.js filter")]),e._v(" "),t("div",{pre:!0},[t("p",[e._v("There is also an implemented Vue.js filter for translation which uses the "),t("code",[e._v("i18nService.translate()")]),e._v(" method. It’s implemented in "),t("a",{pre:!0,attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/blob/master/src/js/vue/vuePluginManager.js#L39",target:"_blank",rel:"noopener noreferrer"}},[e._v("vuePluginManager.js#initFilters()"),t("OutboundLink",{pre:!0})],1),e._v(". General usage is a pipe within any double curly braces expression, for instance "),t("code",[e._v("{{ variableToTranslate | translate }}")]),e._v(". A real use-case could look like this:")])]),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('
    • \n {{action.modelName | translate}}\n
    • \n')])])]),t("p",[e._v("This piece of Vue.js code iterates over the array "),t("code",[e._v("actions")]),e._v(" of the object "),t("code",[e._v("gridElement")]),e._v(" and generates a "),t("code",[e._v("span")]),e._v(" with a translated version of the "),t("code",[e._v("modelName")]),e._v(" of each action as content.")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/06_data_storage.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("a",{attrs:{href:""}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/develop/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/323.1bbb976d.js b/assets/js/323.b0865784.js similarity index 99% rename from assets/js/323.1bbb976d.js rename to assets/js/323.b0865784.js index 73884d7bdb..8cb19554a4 100644 --- a/assets/js/323.1bbb976d.js +++ b/assets/js/323.b0865784.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[323],{972:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"rest-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rest-tutorial"}},[t._v("#")]),t._v(" REST Tutorial")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the AsTeRICS REST API with the Javascript library provided with AsTeRICS 3.0.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("To allow remote communication with the AsTeRICS Runtime Environment (ARE), the ARE REST API was developed. It allows manipulation of resources through a set of HTTP methods such as GET, POST, PUT and DELETE.\nApart from the regular REST functions, an event mechanism through "),a("a",{attrs:{href:"https://www.w3schools.com/html/html5_serversentevents.asp",target:"_blank",rel:"noopener noreferrer"}},[t._v("Server Sent Events (SSE)"),a("OutboundLink")],1),t._v(" is provided. With this mechanism, ARE can broadcast messages to anyone who subscribes and inform when an event occurs.\nThe API uses HTTP status codes to declare an error in a call. Specifically, when an error occurs, the response will contain a 500 HTTP status code (Internal Server Error) with an ARE-produced error message inside the HTTP response body.")]),t._v(" "),a("p",[t._v("The base URI for REST operations is:")]),t._v(" "),a("p",[a("code",[t._v("http://:8081/rest/")])]),t._v(" "),a("p",[a("em",[t._v("The default port number is 8081, but can be overridden in the file "),a("code",[t._v("ARE/areProperties")])])]),t._v(" "),a("p",[t._v("In order to get a list of all available REST methods use the REST method "),a("code",[t._v("http://localhost:8081/rest/restfunctions")])]),t._v(" "),a("p",[t._v("There are client libraries facilitating the function calls for "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("Javascript"),a("OutboundLink")],1),t._v(" and "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed and ARE running"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("areCommunicator.js, JSMap.js and jquery-3.2.1.min.js libraries"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"example-1-model-start-stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-model-start-stop"}},[t._v("#")]),t._v(" Example 1 - Model start/stop")]),t._v(" "),a("p",[t._v("In this example you will learn how to stop and start the currently deployed ARE model.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-start_stop-model.html")]),t._v(" somewhere on your hard drive.")]),t._v(" "),a("li",[t._v("Open the file in a browser.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//stopModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STARTED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STOPPED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Stop model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-model-upload"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-model-upload"}},[t._v("#")]),t._v(" Example 2 - Model upload")]),t._v(" "),a("p",[t._v("This examples shows how a model (XML string) can be uploaded to the ARE.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-upload-model.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//uploadModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelInXML "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"UMmodel"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("uploadModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Deploys the model given as a parameter "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Upload model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("UMmodel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Open the following "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/v3.0/bin/ARE/models/ImageDemo.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("model file"),a("OutboundLink")],1),t._v(" with a text editor and copy and paste the model xml string into the given field.")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Upload Model")])])]),t._v(" "),a("h2",{attrs:{id:"example-3-change-plugin-property-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-change-plugin-property-values"}},[t._v("#")]),t._v(" Example 3 - Change plugin property values")]),t._v(" "),a("p",[t._v("This example show how to parametrize a model by overriding default property values of plugins in a model. We use the default autostart model (ARE/models/autostart.acs) of the ARE, which is deployed and started automatically upon startup. The model contains a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/TextDisplay.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("TextDisplay plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("TextDisplay.1")]),t._v(" and a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/CellBoard.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("CellBoard plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("CellBoard.1")]),t._v(". With the function "),a("code",[t._v("setRuntimeComponentProperties")]),t._v(" you can provide a JSON string with plugin property key/value pairs.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-change-property-values.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The JSON object must be sent as JSON string, the keys and values must be Strings as well.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stringify")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the default property of the plugin with id TextDisplay.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"TextDisplay.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"default"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"title"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Change the cellText1 and cellText2 properties of the plugin with id CellBoard.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"CellBoard.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimeComponentProperties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the ARE could be reached and the method call was successful, the success callback is called.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The variable data contains an array with key/value pairs of properties which could be set successfully.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the length of the array == 0, no property could be set successfully. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" errorMsg"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The property settings could not be applied."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorMsg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'The following properties could be set: '")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Change parameter values for title, cellText1 and cellText2 and click onto "),a("code",[t._v("Apply Settings")])]),t._v(" "),a("li",[t._v("Not all plugin properties can be changed live, so to ensure that the changes are active stop and start the model.")])]),t._v(" "),a("h2",{attrs:{id:"example-4-send-data-to-input-port"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-send-data-to-input-port"}},[t._v("#")]),t._v(" Example 4 - Send data to input port")]),t._v(" "),a("p",[t._v("In this example you will learn how to send data to an input port of a plugin. We will use the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and send absolute coordinates to the input ports (mouseX, mouseY) to change the absolute mouse position.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and an "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/EditBox.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("EditBox plugin"),a("OutboundLink")],1),t._v(", where the output port is connected to "),a("code",[t._v("mouseX")]),t._v(" and "),a("code",[t._v("mouseIn")]),t._v(" of the Mouse plugin (see pic below). The EditBox plugin is a workaround for the known "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/230",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue #230"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("p",[a("img",{attrs:{src:"developer_guide/api/images/Mouse.JPG",alt:"Mouse plugin"}})]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-send-data-to-input-port.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Fetch values of input fields and send them to the input ports mouseX and mouseY of the Mouse plugin instance with id Mouse.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseX'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseY'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter X coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("x-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Y coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("y-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Enter values for X and Y coordinate of the Mouse and press "),a("code",[t._v("Apply Settings")]),t._v(".")])]),t._v(" "),a("h2",{attrs:{id:"example-5-trigger-event-listener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5-trigger-event-listener"}},[t._v("#")]),t._v(" Example 5 - Trigger event listener")]),t._v(" "),a("p",[t._v("In this example you will learn how to trigger an event listener of a plugin. The "),a("a",{attrs:{href:"(http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm)"}},[t._v("Mouse plugin")]),t._v(" has event listener for triggering a mouse click (leftClick, middleClick, rightClick). The example triggers the "),a("code",[t._v("rightClick")]),t._v(" event listener.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-trigger-event-listener.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("triggerEvent")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rightClick'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Generate right click "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"5"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Click on the button "),a("code",[t._v("Generate right click")])])]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/REST_API.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("Complete REST API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuRest",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API demo page"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API client libraries"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[323],{968:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"rest-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rest-tutorial"}},[t._v("#")]),t._v(" REST Tutorial")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the AsTeRICS REST API with the Javascript library provided with AsTeRICS 3.0.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("To allow remote communication with the AsTeRICS Runtime Environment (ARE), the ARE REST API was developed. It allows manipulation of resources through a set of HTTP methods such as GET, POST, PUT and DELETE.\nApart from the regular REST functions, an event mechanism through "),a("a",{attrs:{href:"https://www.w3schools.com/html/html5_serversentevents.asp",target:"_blank",rel:"noopener noreferrer"}},[t._v("Server Sent Events (SSE)"),a("OutboundLink")],1),t._v(" is provided. With this mechanism, ARE can broadcast messages to anyone who subscribes and inform when an event occurs.\nThe API uses HTTP status codes to declare an error in a call. Specifically, when an error occurs, the response will contain a 500 HTTP status code (Internal Server Error) with an ARE-produced error message inside the HTTP response body.")]),t._v(" "),a("p",[t._v("The base URI for REST operations is:")]),t._v(" "),a("p",[a("code",[t._v("http://:8081/rest/")])]),t._v(" "),a("p",[a("em",[t._v("The default port number is 8081, but can be overridden in the file "),a("code",[t._v("ARE/areProperties")])])]),t._v(" "),a("p",[t._v("In order to get a list of all available REST methods use the REST method "),a("code",[t._v("http://localhost:8081/rest/restfunctions")])]),t._v(" "),a("p",[t._v("There are client libraries facilitating the function calls for "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("Javascript"),a("OutboundLink")],1),t._v(" and "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/JavaLibrary",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed and ARE running"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("areCommunicator.js, JSMap.js and jquery-3.2.1.min.js libraries"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"example-1-model-start-stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-model-start-stop"}},[t._v("#")]),t._v(" Example 1 - Model start/stop")]),t._v(" "),a("p",[t._v("In this example you will learn how to stop and start the currently deployed ARE model.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-start_stop-model.html")]),t._v(" somewhere on your hard drive.")]),t._v(" "),a("li",[t._v("Open the file in a browser.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//stopModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model stop/start"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("START_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STARTED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("STOP_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Changes the state of the deployed model to STOPPED "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Stop model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-model-upload"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-model-upload"}},[t._v("#")]),t._v(" Example 2 - Model upload")]),t._v(" "),a("p",[t._v("This examples shows how a model (XML string) can be uploaded to the ARE.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-upload-model.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//uploadModel")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelInXML "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"UMmodel"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("uploadModel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Model upload"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("UPLOAD_MODEL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Deploys the model given as a parameter "),a("span",{pre:!0,attrs:{class:"token entity",title:" "}},[t._v(" ")]),t._v("Ouput: alert"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Upload model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("modelInXML"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("UMmodel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Open the following "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/v3.0/bin/ARE/models/ImageDemo.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("model file"),a("OutboundLink")],1),t._v(" with a text editor and copy and paste the model xml string into the given field.")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Upload Model")])])]),t._v(" "),a("h2",{attrs:{id:"example-3-change-plugin-property-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-change-plugin-property-values"}},[t._v("#")]),t._v(" Example 3 - Change plugin property values")]),t._v(" "),a("p",[t._v("This example show how to parametrize a model by overriding default property values of plugins in a model. We use the default autostart model (ARE/models/autostart.acs) of the ARE, which is deployed and started automatically upon startup. The model contains a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/TextDisplay.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("TextDisplay plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("TextDisplay.1")]),t._v(" and a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/CellBoard.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("CellBoard plugin"),a("OutboundLink")],1),t._v(" with id "),a("code",[t._v("CellBoard.1")]),t._v(". With the function "),a("code",[t._v("setRuntimeComponentProperties")]),t._v(" you can provide a JSON string with plugin property key/value pairs.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-change-property-values.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The JSON object must be sent as JSON string, the keys and values must be Strings as well.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stringify")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the default property of the plugin with id TextDisplay.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"TextDisplay.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"default"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"title"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Change the cellText1 and cellText2 properties of the plugin with id CellBoard.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"CellBoard.1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cellText2"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimeComponentProperties")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the ARE could be reached and the method call was successful, the success callback is called.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//The variable data contains an array with key/value pairs of properties which could be set successfully.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the length of the array == 0, no property could be set successfully. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" errorMsg"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The property settings could not be applied."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("errorMsg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'The following properties could be set: '")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" propertyMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Change property values"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SET_RUNTIME_COMPONENT_PROPERTIES")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Cell Text 2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("cellText2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Change parameter values for title, cellText1 and cellText2 and click onto "),a("code",[t._v("Apply Settings")])]),t._v(" "),a("li",[t._v("Not all plugin properties can be changed live, so to ensure that the changes are active stop and start the model.")])]),t._v(" "),a("h2",{attrs:{id:"example-4-send-data-to-input-port"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-send-data-to-input-port"}},[t._v("#")]),t._v(" Example 4 - Send data to input port")]),t._v(" "),a("p",[t._v("In this example you will learn how to send data to an input port of a plugin. We will use the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and send absolute coordinates to the input ports (mouseX, mouseY) to change the absolute mouse position.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(" and an "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/EditBox.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("EditBox plugin"),a("OutboundLink")],1),t._v(", where the output port is connected to "),a("code",[t._v("mouseX")]),t._v(" and "),a("code",[t._v("mouseIn")]),t._v(" of the Mouse plugin (see pic below). The EditBox plugin is a workaround for the known "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/230",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue #230"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("p",[a("img",{attrs:{src:"developer_guide/api/images/Mouse.JPG",alt:"Mouse plugin"}})]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-send-data-to-input-port.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Fetch values of input fields and send them to the input ports mouseX and mouseY of the Mouse plugin instance with id Mouse.1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseX'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendDataToInputPort")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseY'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y-coordinate"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Send Data to Input Ports"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("SEND_DATA_TO_INPUT_PORT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Apply Settings "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter X coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("x-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Enter Y coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("y-coordinate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Enter values for X and Y coordinate of the Mouse and press "),a("code",[t._v("Apply Settings")]),t._v(".")])]),t._v(" "),a("h2",{attrs:{id:"example-5-trigger-event-listener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5-trigger-event-listener"}},[t._v("#")]),t._v(" Example 5 - Trigger event listener")]),t._v(" "),a("p",[t._v("In this example you will learn how to trigger an event listener of a plugin. The "),a("a",{attrs:{href:"(http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm)"}},[t._v("Mouse plugin")]),t._v(" has event listener for triggering a mouse click (leftClick, middleClick, rightClick). The example triggers the "),a("code",[t._v("rightClick")]),t._v(" event listener.")]),t._v(" "),a("ol",[a("li",[t._v("Start the ARE (ARE.exe|start.bat|start.sh)")]),t._v(" "),a("li",[t._v("Open the "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/?areBaseURI=http://localhost:8081",target:"_blank",rel:"noopener noreferrer"}},[t._v("WebACS"),a("OutboundLink")],1),t._v(" and create a model with a "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&actuators/Mouse.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mouse plugin"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("li",[t._v("Deploy and start the model")]),t._v(" "),a("li",[t._v("Copy and paste the following HTML/Javascript snippet into a text editor, save it as "),a("code",[t._v("restapi-trigger-event-listener.html")]),t._v(" somewhere on your hard drive.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("html")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Content-Type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/html; charset=UTF-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- Include areCommunicator.js library and it's dependencies, you could also include jquery directly from their page. --\x3e")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.rawgit.com/asterics/AsTeRICS/v3.0/ARE_RestAPIlibraries/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v(" \n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* This is an example of how to use the ARE Javascipt framework for the communication\n with the ARE Restful Services.\n \n The location of the server should be defined with the 'setBaseURI()' method.\n \n A success-callback function and an error-callback function should be passed as an argument\n for every function.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("triggerEvent")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("defaultSuccessCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultErrorCallback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mouse.1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rightClick'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Callback functions to be called in case of success or error.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultSuccessCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" HTTPstatus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Success message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultErrorCallback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("HTTPstatus"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" AREerrorMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alert")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error message: "')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("AREerrorMessage"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n ")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("body")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("content"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("REST client - Trigger event listener"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TRIGGER_EVENT")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Generate right click "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"5"}},[a("li",[t._v("Open the file in a browser.")]),t._v(" "),a("li",[t._v("Click on the button "),a("code",[t._v("Generate right click")])])]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/REST_API.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("Complete REST API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuRest",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API demo page"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/",target:"_blank",rel:"noopener noreferrer"}},[t._v("REST API client libraries"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/324.92f642a4.js b/assets/js/324.675c5d48.js similarity index 99% rename from assets/js/324.92f642a4.js rename to assets/js/324.675c5d48.js index 32edebec73..2eed1f7525 100644 --- a/assets/js/324.92f642a4.js +++ b/assets/js/324.675c5d48.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[324],{973:function(t,s,a){"use strict";a.r(s);var e=a(2),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"objective"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),s("p",[t._v("In this tutorial you will learn how to use the class ResourceRegistry, which is a central repository that must be used to compose resource URIs and fetch and store resource contents from within plugins and the whole ARE.")]),t._v(" "),s("h1",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),s("p",[t._v("The idea is to generically implement the fetching of resources to enable the same approach for the whole AsTeRICS framework. This way all plugins, services and other classes will be able to also support several URI schemes (e.g. file, http, jar,…). Furthermore base URIs can be reconfigured depending on platform specific or usecase specific requirements (e.g. readonly plugin respository hosted on a webserver). Currently only one file based repository URI ("),s("code",[t._v("ARE baseURI")]),t._v(") is supported. Later maybe the repository URIs could also be an http-URL and the plugin resources directly fetched from there.")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("ARE baseURI")]),t._v(" is set to the location of the ARE.jar file by default, but can be set to another location by the method "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L852",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("public void setAREBaseURI(URI areBaseURI)")]),s("OutboundLink")],1),t._v(" programmatically.")]),t._v(" "),s("h2",{attrs:{id:"main-benefits-of-class-resourceregistry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#main-benefits-of-class-resourceregistry"}},[t._v("#")]),t._v(" Main benefits of class ResourceRegistry")]),t._v(" "),s("ul",[s("li",[t._v("Abstraction of ARE folder structure: So if folder structure changes models are not affected.")]),t._v(" "),s("li",[t._v("Centralized dealing with platform specific problems ("),s("code",[t._v("\\")]),t._v(", "),s("code",[t._v("/")]),t._v(", conversion between URI encoded path and file path,…)")]),t._v(" "),s("li",[t._v("Dealing with relative and absolute file paths.")]),t._v(" "),s("li",[t._v("By using URI syntax for describing the path of a resource, resources can be of different protocol types (file, http, …)")]),t._v(" "),s("li",[t._v("Many utility methods for checking resource existence and conversion between several types (File, String, URI,…)")]),t._v(" "),s("li",[t._v("Convinience methods for fetching resource contents or storing contents, ensuring proper encoding (UTF-8) and exception handling.")]),t._v(" "),s("li",[t._v("Centralized implementation of searching strategies for resources, e.g. Search in user home directory first and if not found search in ARE installation directory. (not supported yet)")]),t._v(" "),s("li",[t._v("Configurable base URIs depending on resource type (not supported yet)")])]),t._v(" "),s("h2",{attrs:{id:"resource-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resource-types"}},[t._v("#")]),t._v(" Resource types")]),t._v(" "),s("p",[t._v("As part of the abstraction, class ResourceRegistry provides several resource types ("),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L482",target:"_blank",rel:"noopener noreferrer"}},[t._v("RES_TYPE enum"),s("OutboundLink")],1),t._v("), which are then mapped to real folders (or maybe later to http-URLs depending on the supported ARE baseURI protocols).")]),t._v(" "),s("p",[t._v("As of AsTeRICS 3.0, these are:")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("MODEL")]),t._v(": Mapped to "),s("code",[t._v("/models/")])]),t._v(" "),s("li",[s("strong",[t._v("DATA")]),t._v(": Four step approach to search for a data file in either "),s("code",[t._v("/models/")]),t._v(" or "),s("code",[t._v("/data/")]),t._v(" or a subfolder of it.")]),t._v(" "),s("li",[s("strong",[t._v("JAR")]),t._v(": Mapped to "),s("code",[t._v("/")])]),t._v(" "),s("li",[s("strong",[t._v("PROFILE")]),t._v(": Mapped to "),s("code",[t._v("/profile/")])]),t._v(" "),s("li",[s("strong",[t._v("STORAGE")]),t._v(": Mapped to "),s("code",[t._v("/storage/")])]),t._v(" "),s("li",[s("strong",[t._v("LICENSE")]),t._v(": Mapped to "),s("code",[t._v("/LICENSE/")])]),t._v(" "),s("li",[s("strong",[t._v("IMAGE")]),t._v(": Mapped to "),s("code",[t._v("/images/")])]),t._v(" "),s("li",[s("strong",[t._v("TMP")]),t._v(": Mapped to "),s("code",[t._v("/tmp/")])]),t._v(" "),s("li",[s("strong",[t._v("WEB_DOCUMENT_ROOT")]),t._v(": Mapped to "),s("code",[t._v("/web/")])]),t._v(" "),s("li",[s("strong",[t._v("ANY")]),t._v(": Mapped to "),s("code",[t._v("/")])])]),t._v(" "),s("h1",{attrs:{id:"prerequisites"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("Java IDE ("),s("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),s("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),s("li",[s("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),s("OutboundLink")],1)])]),t._v(" "),s("h1",{attrs:{id:"preparation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),s("p",[t._v("This tutorial demonstrates how to use the API of class ResourceRegistry in general. The tutorial does not show how to create an "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),s("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),s("ol",[s("li",[t._v("Start Eclipse")]),t._v(" "),s("li",[t._v("Create a new Java project ("),s("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),s("li",[t._v("Add the following libraries to the build configuration ("),s("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),s("ul",[s("li",[s("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),s("p",[s("img",{attrs:{src:"developer_guide/api/images/BuildPath.JPG",alt:"Build path dialog with external libraries"}})]),t._v(" "),s("ol",{attrs:{start:"4"}},[s("li",[t._v("Create a main class "),s("code",[t._v("ResourceRegistryExamples")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RES_TYPE")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistryExamples")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don't call these two lines if you are using the class ResourceRegistry from within the ARE (plugin).")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setOSGIMode(false) defines that we are using it as a library.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setOSGIMode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setAREBaseURI(URI ...) sets the location of the ARE.jar file, which will be set automatically when used within")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the ARE. If you are on Linux use the respective path of /bin/ARE")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAREBaseURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"C:\\\\Program Files (x86)\\\\AsTeRICS\\\\ARE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Define variables for our examples.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")]),t._v(" myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h1",{attrs:{id:"example-1-getting-resource-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-1-getting-resource-uri"}},[t._v("#")]),t._v(" Example 1 - Getting resource URI")]),t._v(" "),s("h2",{attrs:{id:"get-model-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-model-uri"}},[t._v("#")]),t._v(" Get model URI")]),t._v(" "),s("p",[t._v("To get the URI of a model file normally located at "),s("code",[t._v("/models/")]),t._v(" or a subpath of it, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"grids\\\\eyeX_Environment\\\\eyeX_Environment.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This returns a valid URI if one can be constructed. The method does not check for resource existence.")]),t._v(" "),s("h2",{attrs:{id:"get-uri-of-a-data-file"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-uri-of-a-data-file"}},[t._v("#")]),t._v(" Get URI of a data file")]),t._v(" "),s("p",[t._v("To get the URIs of files with resource type data, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures/slide7.jpg"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//slashes may be \\\\ or / and even mixed up. The paths may contain spaces")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures\\\\symbols//walk the dog.png"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To indicate that a data file is in a plugin-specific subpath of the data folder, use the overridden getResource method ")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//and provide the componentTypeId")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"haarcascade_frontalface_alt.xml"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"facetrackerLK"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If you provide an absolute URI/URL it is returned as is, withou resolving it against the ARE baseURI.")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h1",{attrs:{id:"example-2-getting-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2-getting-resource-content"}},[t._v("#")]),t._v(" Example 2 - Getting resource content")]),t._v(" "),s("p",[t._v("To get the contents of a resource as a String, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("ANY")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("When reading the resource content, character encoding is guessed best effort using the class "),s("a",{attrs:{href:"https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/input/BOMInputStream.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("BOMInputStream"),s("OutboundLink")],1),t._v(", with or without "),s("code",[t._v("ByteOrderMark")])]),t._v(" "),s("h1",{attrs:{id:"example-3-storing-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-3-storing-resource-content"}},[t._v("#")]),t._v(" Example 3 - Storing resource content")]),t._v(" "),s("p",[t._v("To store contents to a resource location, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"My new test data to save."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("storeResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"saveddata/testFile.txt"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("The method automatically creates missing directories in the path (if supported by the used protocol, e.g. file://) and ensures proper "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L94",target:"_blank",rel:"noopener noreferrer"}},[t._v("UTF8 character encoding"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h1",{attrs:{id:"example-4-getting-a-resource-list"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-4-getting-a-resource-list"}},[t._v("#")]),t._v(" Example 4 - Getting a resource list")]),t._v(" "),s("p",[t._v("To get a list of models or data files, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all model resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getModelList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all data resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" dataList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDataList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the element's type must be of String, you can convert it")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelListAsStrings"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toStringList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelList"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("The parameter of "),s("code",[t._v("getModelList")]),t._v(" or "),s("code",[t._v("getDataList")]),t._v(" defines, if the paths should be relative or absolute.")]),t._v(" "),s("h1",{attrs:{id:"references"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L53",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class ResourceRegistry"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/test/java/eu/asterics/mw/services/TestResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Unit tests with usage examples"),s("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[324],{972:function(t,s,a){"use strict";a.r(s);var e=a(2),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"objective"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),s("p",[t._v("In this tutorial you will learn how to use the class ResourceRegistry, which is a central repository that must be used to compose resource URIs and fetch and store resource contents from within plugins and the whole ARE.")]),t._v(" "),s("h1",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),s("p",[t._v("The idea is to generically implement the fetching of resources to enable the same approach for the whole AsTeRICS framework. This way all plugins, services and other classes will be able to also support several URI schemes (e.g. file, http, jar,…). Furthermore base URIs can be reconfigured depending on platform specific or usecase specific requirements (e.g. readonly plugin respository hosted on a webserver). Currently only one file based repository URI ("),s("code",[t._v("ARE baseURI")]),t._v(") is supported. Later maybe the repository URIs could also be an http-URL and the plugin resources directly fetched from there.")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("ARE baseURI")]),t._v(" is set to the location of the ARE.jar file by default, but can be set to another location by the method "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L852",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("public void setAREBaseURI(URI areBaseURI)")]),s("OutboundLink")],1),t._v(" programmatically.")]),t._v(" "),s("h2",{attrs:{id:"main-benefits-of-class-resourceregistry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#main-benefits-of-class-resourceregistry"}},[t._v("#")]),t._v(" Main benefits of class ResourceRegistry")]),t._v(" "),s("ul",[s("li",[t._v("Abstraction of ARE folder structure: So if folder structure changes models are not affected.")]),t._v(" "),s("li",[t._v("Centralized dealing with platform specific problems ("),s("code",[t._v("\\")]),t._v(", "),s("code",[t._v("/")]),t._v(", conversion between URI encoded path and file path,…)")]),t._v(" "),s("li",[t._v("Dealing with relative and absolute file paths.")]),t._v(" "),s("li",[t._v("By using URI syntax for describing the path of a resource, resources can be of different protocol types (file, http, …)")]),t._v(" "),s("li",[t._v("Many utility methods for checking resource existence and conversion between several types (File, String, URI,…)")]),t._v(" "),s("li",[t._v("Convinience methods for fetching resource contents or storing contents, ensuring proper encoding (UTF-8) and exception handling.")]),t._v(" "),s("li",[t._v("Centralized implementation of searching strategies for resources, e.g. Search in user home directory first and if not found search in ARE installation directory. (not supported yet)")]),t._v(" "),s("li",[t._v("Configurable base URIs depending on resource type (not supported yet)")])]),t._v(" "),s("h2",{attrs:{id:"resource-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resource-types"}},[t._v("#")]),t._v(" Resource types")]),t._v(" "),s("p",[t._v("As part of the abstraction, class ResourceRegistry provides several resource types ("),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L482",target:"_blank",rel:"noopener noreferrer"}},[t._v("RES_TYPE enum"),s("OutboundLink")],1),t._v("), which are then mapped to real folders (or maybe later to http-URLs depending on the supported ARE baseURI protocols).")]),t._v(" "),s("p",[t._v("As of AsTeRICS 3.0, these are:")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("MODEL")]),t._v(": Mapped to "),s("code",[t._v("/models/")])]),t._v(" "),s("li",[s("strong",[t._v("DATA")]),t._v(": Four step approach to search for a data file in either "),s("code",[t._v("/models/")]),t._v(" or "),s("code",[t._v("/data/")]),t._v(" or a subfolder of it.")]),t._v(" "),s("li",[s("strong",[t._v("JAR")]),t._v(": Mapped to "),s("code",[t._v("/")])]),t._v(" "),s("li",[s("strong",[t._v("PROFILE")]),t._v(": Mapped to "),s("code",[t._v("/profile/")])]),t._v(" "),s("li",[s("strong",[t._v("STORAGE")]),t._v(": Mapped to "),s("code",[t._v("/storage/")])]),t._v(" "),s("li",[s("strong",[t._v("LICENSE")]),t._v(": Mapped to "),s("code",[t._v("/LICENSE/")])]),t._v(" "),s("li",[s("strong",[t._v("IMAGE")]),t._v(": Mapped to "),s("code",[t._v("/images/")])]),t._v(" "),s("li",[s("strong",[t._v("TMP")]),t._v(": Mapped to "),s("code",[t._v("/tmp/")])]),t._v(" "),s("li",[s("strong",[t._v("WEB_DOCUMENT_ROOT")]),t._v(": Mapped to "),s("code",[t._v("/web/")])]),t._v(" "),s("li",[s("strong",[t._v("ANY")]),t._v(": Mapped to "),s("code",[t._v("/")])])]),t._v(" "),s("h1",{attrs:{id:"prerequisites"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("Java IDE ("),s("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),s("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),s("li",[s("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),s("OutboundLink")],1)])]),t._v(" "),s("h1",{attrs:{id:"preparation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),s("p",[t._v("This tutorial demonstrates how to use the API of class ResourceRegistry in general. The tutorial does not show how to create an "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),s("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),s("ol",[s("li",[t._v("Start Eclipse")]),t._v(" "),s("li",[t._v("Create a new Java project ("),s("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),s("li",[t._v("Add the following libraries to the build configuration ("),s("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),s("ul",[s("li",[s("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),s("li",[s("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),s("p",[s("img",{attrs:{src:"developer_guide/api/images/BuildPath.JPG",alt:"Build path dialog with external libraries"}})]),t._v(" "),s("ol",{attrs:{start:"4"}},[s("li",[t._v("Create a main class "),s("code",[t._v("ResourceRegistryExamples")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("io"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("util"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token import"}},[s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("services"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RES_TYPE")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistryExamples")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don't call these two lines if you are using the class ResourceRegistry from within the ARE (plugin).")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setOSGIMode(false) defines that we are using it as a library.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setOSGIMode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// setAREBaseURI(URI ...) sets the location of the ARE.jar file, which will be set automatically when used within")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the ARE. If you are on Linux use the respective path of /bin/ARE")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAREBaseURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("File")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"C:\\\\Program Files (x86)\\\\AsTeRICS\\\\ARE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toURI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Define variables for our examples.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URI")]),t._v(" myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h1",{attrs:{id:"example-1-getting-resource-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-1-getting-resource-uri"}},[t._v("#")]),t._v(" Example 1 - Getting resource URI")]),t._v(" "),s("h2",{attrs:{id:"get-model-uri"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-model-uri"}},[t._v("#")]),t._v(" Get model URI")]),t._v(" "),s("p",[t._v("To get the URI of a model file normally located at "),s("code",[t._v("/models/")]),t._v(" or a subpath of it, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"grids\\\\eyeX_Environment\\\\eyeX_Environment.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This returns a valid URI if one can be constructed. The method does not check for resource existence.")]),t._v(" "),s("h2",{attrs:{id:"get-uri-of-a-data-file"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-uri-of-a-data-file"}},[t._v("#")]),t._v(" Get URI of a data file")]),t._v(" "),s("p",[t._v("To get the URIs of files with resource type data, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures/slide7.jpg"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//slashes may be \\\\ or / and even mixed up. The paths may contain spaces")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pictures\\\\symbols//walk the dog.png"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To indicate that a data file is in a plugin-specific subpath of the data folder, use the overridden getResource method ")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//and provide the componentTypeId")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"haarcascade_frontalface_alt.xml"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"facetrackerLK"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If you provide an absolute URI/URL it is returned as is, withou resolving it against the ARE baseURI.")]),t._v("\n myURI "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myURI: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" myURI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h1",{attrs:{id:"example-2-getting-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2-getting-resource-content"}},[t._v("#")]),t._v(" Example 2 - Getting resource content")]),t._v(" "),s("p",[t._v("To get the contents of a resource as a String, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CameraMouse.acs"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MODEL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResourceContentAsString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/wiki/asterics/AsTeRICS/Fetching-resources-with-class-ResourceRegistry.md"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("ANY")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("out"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// TODO Auto-generated catch block")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("When reading the resource content, character encoding is guessed best effort using the class "),s("a",{attrs:{href:"https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/input/BOMInputStream.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("BOMInputStream"),s("OutboundLink")],1),t._v(", with or without "),s("code",[t._v("ByteOrderMark")])]),t._v(" "),s("h1",{attrs:{id:"example-3-storing-resource-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-3-storing-resource-content"}},[t._v("#")]),t._v(" Example 3 - Storing resource content")]),t._v(" "),s("p",[t._v("To store contents to a resource location, use")]),t._v(" "),s("div",{staticClass:"language-Java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n contents "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"My new test data to save."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("storeResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contents"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"saveddata/testFile.txt"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RES_TYPE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DATA")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IOException")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URISyntaxException")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("The method automatically creates missing directories in the path (if supported by the used protocol, e.g. file://) and ensures proper "),s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L94",target:"_blank",rel:"noopener noreferrer"}},[t._v("UTF8 character encoding"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h1",{attrs:{id:"example-4-getting-a-resource-list"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-4-getting-a-resource-list"}},[t._v("#")]),t._v(" Example 4 - Getting a resource list")]),t._v(" "),s("p",[t._v("To get a list of models or data files, use")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all model resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getModelList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Returns the URIs of all data resources")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("URI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" dataList"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDataList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//If the element's type must be of String, you can convert it")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" modelListAsStrings"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ResourceRegistry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getInstance")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toStringList")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelList"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("The parameter of "),s("code",[t._v("getModelList")]),t._v(" or "),s("code",[t._v("getDataList")]),t._v(" defines, if the paths should be relative or absolute.")]),t._v(" "),s("h1",{attrs:{id:"references"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/main/java/eu/asterics/mw/services/ResourceRegistry.java#L53",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class ResourceRegistry"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/ARE/middleware/src/test/java/eu/asterics/mw/services/TestResourceRegistry.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Unit tests with usage examples"),s("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/325.b193240d.js b/assets/js/325.5a20ee36.js similarity index 99% rename from assets/js/325.b193240d.js rename to assets/js/325.5a20ee36.js index c32b5a980c..ea2f5d0c4d 100644 --- a/assets/js/325.b193240d.js +++ b/assets/js/325.5a20ee36.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[325],{974:function(t,a,e){"use strict";e.r(a);var s=e(2),n=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"at-solution-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at-solution-tutorial"}},[t._v("#")]),t._v(" AT Solution Tutorial")]),t._v(" "),a("p",[t._v("In this tutorial you will learn how to use the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1),t._v(" to create your own AT-related software project.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("The AsTeRICS Packaging Environment (APE) provides the possibility to maintain an AsTeRICS solution as a dedicated software project, that can be hosted anywhere and also versioned as a git repository.\nAs an AsTeRICS solution not always consists of just one model file but also of config files, images, or web applications, APE provides a template repository, which acts as a starting point for a solution. The repository can be downloaded, cloned or forked as any other git repository. There are also other "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1),t._v(" derived from that repository.")]),t._v(" "),a("p",[t._v("Before starting the tutorial, have a look at the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/blob/master/README.md#folder-structure",target:"_blank",rel:"noopener noreferrer"}},[t._v("folder structure"),a("OutboundLink")],1),t._v(" of the template repository.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("p",[t._v("You need at least")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("JAVA_HOME")]),t._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[a("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[t._v("apache ant build framework (version >= 1.9.1)"),a("OutboundLink")],1)])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("ANT_HOME")]),t._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v3.0/Setup_AsTeRICS_3_0_1.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0.1"),a("OutboundLink")],1),t._v(" installed "),a("strong",[t._v("or")]),t._v(" a snapshot of "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS"),a("OutboundLink")],1),t._v(" cloned to a parallel folder of the project.")]),t._v(" "),a("li",[t._v("A copy of the template repository (see "),a("a",{attrs:{href:"#download--clone-template-repository"}},[t._v("Download / Clone template repository")])])]),t._v(" "),a("p",[t._v("You can use an IDE for Java and Web Developers, e.g. "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(". See "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" for details.")]),t._v(" "),a("h2",{attrs:{id:"download-clone-template-repository"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-clone-template-repository"}},[t._v("#")]),t._v(" Download / Clone template repository")]),t._v(" "),a("p",[t._v("You can either clone the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/",target:"_blank",rel:"noopener noreferrer"}},[t._v("template repository"),a("OutboundLink")],1),t._v(" or download it as a zipped file.")]),t._v(" "),a("p",[t._v("You might also want to start based on an existing "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution example"),a("OutboundLink")],1),t._v(" by downloading or forking it, if your application is similar to one of them.")]),t._v(" "),a("h2",{attrs:{id:"example-1-run-project"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-run-project"}},[t._v("#")]),t._v(" Example 1 - Run project")]),t._v(" "),a("p",[t._v("The template repository already contains a default autostart model at "),a("code",[t._v("custom/bin/ARE/models/autostart.acs")]),t._v(", which opens the ARE webserver startpage with the system default browser.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("ant run\n")])])]),a("p",[t._v("For subsequent runs use the targets "),a("code",[t._v("APE-copy")]),t._v(" and "),a("code",[t._v("run-quick")]),t._v(" to speed up the starting.")]),t._v(" "),a("p",[t._v("If you want use "),a("code",[t._v("Eclipse")]),t._v(", please read the "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" instructions.")]),t._v(" "),a("h2",{attrs:{id:"example-2-edit-and-test-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-edit-and-test-model"}},[t._v("#")]),t._v(" Example 2 - Edit and test model")]),t._v(" "),a("p",[t._v("To edit and test the modifications immediately")]),t._v(" "),a("ol",[a("li",[t._v("Run project (see "),a("a",{attrs:{href:"#example-1---run-project"}},[t._v("Example 1")]),t._v(")")]),t._v(" "),a("li",[t._v("Double click onto model file. The ACS program should be started with the model file opened.")]),t._v(" "),a("li",[a("code",[t._v("Connect to ARE")])]),t._v(" "),a("li",[t._v("Modify model")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("TextArea.1")]),t._v(" and set "),a("code",[t._v("caption")]),t._v(" to "),a("code",[t._v("Hello World")])]),t._v(" "),a("li",[t._v("Upload and run model")]),t._v(" "),a("li",[t._v("To permanently save the modification, you "),a("strong",[t._v("must save the file with the ACS")]),t._v(" again, otherwise the modifications will be lost with the next run of the project.")])]),t._v(" "),a("h2",{attrs:{id:"asterics-model-web-application"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-model-web-application"}},[t._v("#")]),t._v(" AsTeRICS model + web application")]),t._v(" "),a("p",[t._v("In many cases you want to provide a better user interface or allow the user to parametrize your asterics solution without the need to edit the model in the ACS program. As the end user or relatives of end users might not be very technically skilled, you should provide easy configuration pages with high usability. This can be very easily achieved with web technologies.")]),t._v(" "),a("p",[t._v("The "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-webserver-document-root-specification",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS webserver document root specification"),a("OutboundLink")],1),t._v(" defines the folder structure and paths on the webserver.\nThe document root is set to the "),a("code",[t._v("ARE/web")]),t._v(" sub folder and the default start page is expected at "),a("code",[t._v("ARE/web/webapps/startpage")]),t._v(".")]),t._v(" "),a("p",[t._v("The default start page will be opened, if you start the ARE and open the URL "),a("code",[t._v("http://localhost:8081/")]),t._v(". The file "),a("code",[t._v("ARE/web/webapps/startpage/index.html")]),t._v(" contains the top and side menus and opens "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" as default iframe in the contens area.")]),t._v(" "),a("p",[t._v("You can override these pages by simply providing your own versions in the "),a("code",[t._v("custom/bin/ARE/web/webapps/startpage/")]),t._v(" folder of your project repository.\nIt is recommended to provide the actual web application in a parallel folder ("),a("code",[t._v("ARE/web/webapps/")]),t._v(") named as your project folder and redirect from within "),a("code",[t._v("start.html")]),t._v(" to "),a("code",[t._v("..//index.html")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"example-3-model-parametrization-through-web-page"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-model-parametrization-through-web-page"}},[t._v("#")]),t._v(" Example 3 - Model parametrization through web page")]),t._v(" "),a("p",[t._v("As mentioned above, a model should be made configurable in an intuitive way, not forcing the user to edit the model in the ACS program. To achieve this you can use HTML input widgets and bind them to associated model properties. This way the value between both will be automatically synchronized during page load and model start.")]),t._v(" "),a("p",[t._v("The folder "),a("code",[t._v("ARE/web/webapps//")]),t._v(" should be used to store all web application specific files like .html files and associated model files. This way the web application folder can also be put onto a webserver online and the web application be deployed to a running ARE instance from there.")]),t._v(" "),a("ol",[a("li",[t._v("Save this "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/sensors/ButtonGrid_test.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("ButtonGrid model file"),a("OutboundLink")],1),t._v(" to "),a("code",[t._v("ARE/web/webapps//models/")]),t._v(".")]),t._v(" "),a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and add/edit the following lines in the "),a("code",[t._v("head")]),t._v(" section of the file:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided from AsTeRICS 3.0 --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided by this repository, should be part of the framework later --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/webAppUtils.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/modelManipulation.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the base URI of the running ARE instance. ")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//You could also make this configurable by the user.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define path of model file on the webserver.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'webapps/asterics-solution-template/models/ButtonGrid_test.acs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Init window.onload function to automatically update all widgets with a model binding with the values of the currently deployed model.")]),t._v("\n\twindow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("onload"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("updateWidgetsFromDeployedModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\t\t\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("You must include "),a("code",[t._v("jquery")]),t._v(" as the only third party dependency, then "),a("code",[t._v("JSmap.js")]),t._v(" and "),a("code",[t._v("areCommunicator.js")]),t._v(" "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("(the REST API lib)"),a("OutboundLink")],1),t._v(". Additionally, you need "),a("code",[t._v("webAppUtils.js")]),t._v(" and "),a("code",[t._v("modelManipulation.js")]),t._v(" ("),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("see API documentation"),a("OutboundLink")],1),t._v(") for the automatic model binding and synchronization functionality.")]),t._v(" "),a("p",[t._v("In the script section you only need 3 lines for initialization. The first one ("),a("code",[t._v("setAREBaseURI")]),t._v(") defines the address of the ARE. The second one defines the path to the model file which should be deployed when clicking onto the "),a("code",[t._v("Start model")]),t._v(" button. Finally, the third line sets the "),a("code",[t._v("window.onload")]),t._v(" function to a function which automatically loads all property values which are defined with a model binding and updates the corresponding HTML widgets automatically.")]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Add two input widgets to parametrize the text of button1 and the background color of the Buttongrid:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provide your input widgets here --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("ButtonGrid parametrization"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Select background color: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("select")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "backgroundColor"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("black"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("selected")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("selected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("blue"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("cyan"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("3"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("darkgrey"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Set text of button 1: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Button1 text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Text Button1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Hello World"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "buttonCaption1"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])])]),a("p",[t._v("Note the "),a("strong",[t._v("data-asterics-model-binding-1")]),t._v(" attribute, it defines the binding to the plugin property of the corresponding model. So the combobox with id "),a("code",[t._v("background-color")]),t._v(" will change the background color of the plugin instance "),a("code",[t._v("ButtonGrid.1")]),t._v(".")]),t._v(" "),a("p",[t._v("Finally, there is a "),a("code",[t._v("Start Model")]),t._v(" button which calls the javascript function "),a("code",[t._v("applySettingsInXMLModelAndStart(modelFilePathOnWebserver)")]),t._v(" with a variable as parameter holding the path to the model file on the webserver hosting this page. This automatically downloads the model file from the webserver, update the plugin properties within the model file with the current values of the HTML widgets and deploys and starts the modified model.")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("applySettingsInXMLModelAndStart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Applies all settings and starts the model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start Model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-4-rename-web-application-folder-and-title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-rename-web-application-folder-and-title"}},[t._v("#")]),t._v(" Example 4 - Rename web application folder and title")]),t._v(" "),a("p",[t._v("The template repository already contains a template folder for a web application. You should rename it and change the redirection to the new folder.")]),t._v(" "),a("ol",[a("li",[t._v("Rename template folder ("),a("code",[t._v("ARE/web/webapps/asterics-solution-template")]),t._v(" ) to the name of your project folder.")]),t._v(" "),a("li",[t._v("Open "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" and change path to redirection to the name of your project folder.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v("\t"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("charset")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("utf-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("refresh"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0; URL=..//"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and change the title and first heading (h1) to")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n ...\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("header")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("inner"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Save files and run project")])]),t._v(" "),a("h2",{attrs:{id:"eclipse-installation-and-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-installation-and-setup"}},[t._v("#")]),t._v(" Eclipse installation and setup")]),t._v(" "),a("p",[t._v("As APE uses the ant build framework, the repository can also be used with your preferred IDE. Subsequently some recommendations of how to install and setup Eclipse for an asterics solution repository.")]),t._v(" "),a("ol",[a("li",[t._v("Install "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(" (Select "),a("strong",[t._v("same bitness")]),t._v(" as your JDK!! (x86 <-> x86 or x86_64 <-> x86_64))")])]),t._v(" "),a("h3",{attrs:{id:"eclipse-project-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-project-setup"}},[t._v("#")]),t._v(" Eclipse project setup")]),t._v(" "),a("ol",[a("li",[t._v("Click on "),a("code",[t._v("File/New/Project")])]),t._v(" "),a("li",[t._v("Then click on "),a("code",[t._v("Next")]),t._v(", uncheck "),a("code",[t._v("Use default location")]),t._v(" and browse to your asterics solution folder.")]),t._v(" "),a("li",[t._v("Set a "),a("code",[t._v("Project name")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Finish")])])]),t._v(" "),a("p",[t._v("Now you have an eclipse project with ant support.")]),t._v(" "),a("h4",{attrs:{id:"configure-editor-for-model-files-acs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure-editor-for-model-files-acs"}},[t._v("#")]),t._v(" Configure editor for model files (.acs)")]),t._v(" "),a("ol",[a("li",[t._v("Right click on model file, select "),a("code",[t._v("Open with/Other")])]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("External programs")]),t._v(" and browse to "),a("code",[t._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),t._v(" (Note: "),a("strong",[t._v("ACS.bat")]),t._v(")")]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("Use it for all `*.acs file")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Ok")])])]),t._v(" "),a("h3",{attrs:{id:"using-ant-within-eclipse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#using-ant-within-eclipse"}},[t._v("#")]),t._v(" Using ant within eclipse")]),t._v(" "),a("h4",{attrs:{id:"run-default-target"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[t._v("#")]),t._v(" Run default target")]),t._v(" "),a("p",[t._v("This is synonymous to "),a("code",[t._v("ant")]),t._v(" on the command line:")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (first entry)")])]),t._v(" "),a("h4",{attrs:{id:"run-selected-targets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[t._v("#")]),t._v(" Run selected targets")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (second entry)")]),t._v(" "),a("li",[t._v("Click onto targets to run")]),t._v(" "),a("li",[t._v("Select order of execution at the bottom")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Apply")]),t._v(" and "),a("code",[t._v("Run")])])]),t._v(" "),a("p",[t._v("From now on, the selected targets are the default ones for subsequent calls.")]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("webAppUtils.js and modelManipulation.js API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("the REST API lib"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://www.w3schools.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTML, CSS, Javascript documentation"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[325],{973:function(t,a,e){"use strict";e.r(a);var s=e(2),n=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"at-solution-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at-solution-tutorial"}},[t._v("#")]),t._v(" AT Solution Tutorial")]),t._v(" "),a("p",[t._v("In this tutorial you will learn how to use the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1),t._v(" to create your own AT-related software project.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("The AsTeRICS Packaging Environment (APE) provides the possibility to maintain an AsTeRICS solution as a dedicated software project, that can be hosted anywhere and also versioned as a git repository.\nAs an AsTeRICS solution not always consists of just one model file but also of config files, images, or web applications, APE provides a template repository, which acts as a starting point for a solution. The repository can be downloaded, cloned or forked as any other git repository. There are also other "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1),t._v(" derived from that repository.")]),t._v(" "),a("p",[t._v("Before starting the tutorial, have a look at the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/blob/master/README.md#folder-structure",target:"_blank",rel:"noopener noreferrer"}},[t._v("folder structure"),a("OutboundLink")],1),t._v(" of the template repository.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("p",[t._v("You need at least")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("JAVA_HOME")]),t._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[a("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[t._v("apache ant build framework (version >= 1.9.1)"),a("OutboundLink")],1)])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("ANT_HOME")]),t._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v3.0/Setup_AsTeRICS_3_0_1.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0.1"),a("OutboundLink")],1),t._v(" installed "),a("strong",[t._v("or")]),t._v(" a snapshot of "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS"),a("OutboundLink")],1),t._v(" cloned to a parallel folder of the project.")]),t._v(" "),a("li",[t._v("A copy of the template repository (see "),a("a",{attrs:{href:"#download--clone-template-repository"}},[t._v("Download / Clone template repository")])])]),t._v(" "),a("p",[t._v("You can use an IDE for Java and Web Developers, e.g. "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(". See "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" for details.")]),t._v(" "),a("h2",{attrs:{id:"download-clone-template-repository"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-clone-template-repository"}},[t._v("#")]),t._v(" Download / Clone template repository")]),t._v(" "),a("p",[t._v("You can either clone the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/",target:"_blank",rel:"noopener noreferrer"}},[t._v("template repository"),a("OutboundLink")],1),t._v(" or download it as a zipped file.")]),t._v(" "),a("p",[t._v("You might also want to start based on an existing "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution example"),a("OutboundLink")],1),t._v(" by downloading or forking it, if your application is similar to one of them.")]),t._v(" "),a("h2",{attrs:{id:"example-1-run-project"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-run-project"}},[t._v("#")]),t._v(" Example 1 - Run project")]),t._v(" "),a("p",[t._v("The template repository already contains a default autostart model at "),a("code",[t._v("custom/bin/ARE/models/autostart.acs")]),t._v(", which opens the ARE webserver startpage with the system default browser.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("ant run\n")])])]),a("p",[t._v("For subsequent runs use the targets "),a("code",[t._v("APE-copy")]),t._v(" and "),a("code",[t._v("run-quick")]),t._v(" to speed up the starting.")]),t._v(" "),a("p",[t._v("If you want use "),a("code",[t._v("Eclipse")]),t._v(", please read the "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" instructions.")]),t._v(" "),a("h2",{attrs:{id:"example-2-edit-and-test-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-edit-and-test-model"}},[t._v("#")]),t._v(" Example 2 - Edit and test model")]),t._v(" "),a("p",[t._v("To edit and test the modifications immediately")]),t._v(" "),a("ol",[a("li",[t._v("Run project (see "),a("a",{attrs:{href:"#example-1---run-project"}},[t._v("Example 1")]),t._v(")")]),t._v(" "),a("li",[t._v("Double click onto model file. The ACS program should be started with the model file opened.")]),t._v(" "),a("li",[a("code",[t._v("Connect to ARE")])]),t._v(" "),a("li",[t._v("Modify model")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("TextArea.1")]),t._v(" and set "),a("code",[t._v("caption")]),t._v(" to "),a("code",[t._v("Hello World")])]),t._v(" "),a("li",[t._v("Upload and run model")]),t._v(" "),a("li",[t._v("To permanently save the modification, you "),a("strong",[t._v("must save the file with the ACS")]),t._v(" again, otherwise the modifications will be lost with the next run of the project.")])]),t._v(" "),a("h2",{attrs:{id:"asterics-model-web-application"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-model-web-application"}},[t._v("#")]),t._v(" AsTeRICS model + web application")]),t._v(" "),a("p",[t._v("In many cases you want to provide a better user interface or allow the user to parametrize your asterics solution without the need to edit the model in the ACS program. As the end user or relatives of end users might not be very technically skilled, you should provide easy configuration pages with high usability. This can be very easily achieved with web technologies.")]),t._v(" "),a("p",[t._v("The "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-webserver-document-root-specification",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS webserver document root specification"),a("OutboundLink")],1),t._v(" defines the folder structure and paths on the webserver.\nThe document root is set to the "),a("code",[t._v("ARE/web")]),t._v(" sub folder and the default start page is expected at "),a("code",[t._v("ARE/web/webapps/startpage")]),t._v(".")]),t._v(" "),a("p",[t._v("The default start page will be opened, if you start the ARE and open the URL "),a("code",[t._v("http://localhost:8081/")]),t._v(". The file "),a("code",[t._v("ARE/web/webapps/startpage/index.html")]),t._v(" contains the top and side menus and opens "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" as default iframe in the contens area.")]),t._v(" "),a("p",[t._v("You can override these pages by simply providing your own versions in the "),a("code",[t._v("custom/bin/ARE/web/webapps/startpage/")]),t._v(" folder of your project repository.\nIt is recommended to provide the actual web application in a parallel folder ("),a("code",[t._v("ARE/web/webapps/")]),t._v(") named as your project folder and redirect from within "),a("code",[t._v("start.html")]),t._v(" to "),a("code",[t._v("..//index.html")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"example-3-model-parametrization-through-web-page"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-model-parametrization-through-web-page"}},[t._v("#")]),t._v(" Example 3 - Model parametrization through web page")]),t._v(" "),a("p",[t._v("As mentioned above, a model should be made configurable in an intuitive way, not forcing the user to edit the model in the ACS program. To achieve this you can use HTML input widgets and bind them to associated model properties. This way the value between both will be automatically synchronized during page load and model start.")]),t._v(" "),a("p",[t._v("The folder "),a("code",[t._v("ARE/web/webapps//")]),t._v(" should be used to store all web application specific files like .html files and associated model files. This way the web application folder can also be put onto a webserver online and the web application be deployed to a running ARE instance from there.")]),t._v(" "),a("ol",[a("li",[t._v("Save this "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/sensors/ButtonGrid_test.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("ButtonGrid model file"),a("OutboundLink")],1),t._v(" to "),a("code",[t._v("ARE/web/webapps//models/")]),t._v(".")]),t._v(" "),a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and add/edit the following lines in the "),a("code",[t._v("head")]),t._v(" section of the file:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided from AsTeRICS 3.0 --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided by this repository, should be part of the framework later --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/webAppUtils.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/modelManipulation.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the base URI of the running ARE instance. ")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//You could also make this configurable by the user.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define path of model file on the webserver.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'webapps/asterics-solution-template/models/ButtonGrid_test.acs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Init window.onload function to automatically update all widgets with a model binding with the values of the currently deployed model.")]),t._v("\n\twindow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("onload"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("updateWidgetsFromDeployedModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\t\t\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("You must include "),a("code",[t._v("jquery")]),t._v(" as the only third party dependency, then "),a("code",[t._v("JSmap.js")]),t._v(" and "),a("code",[t._v("areCommunicator.js")]),t._v(" "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("(the REST API lib)"),a("OutboundLink")],1),t._v(". Additionally, you need "),a("code",[t._v("webAppUtils.js")]),t._v(" and "),a("code",[t._v("modelManipulation.js")]),t._v(" ("),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("see API documentation"),a("OutboundLink")],1),t._v(") for the automatic model binding and synchronization functionality.")]),t._v(" "),a("p",[t._v("In the script section you only need 3 lines for initialization. The first one ("),a("code",[t._v("setAREBaseURI")]),t._v(") defines the address of the ARE. The second one defines the path to the model file which should be deployed when clicking onto the "),a("code",[t._v("Start model")]),t._v(" button. Finally, the third line sets the "),a("code",[t._v("window.onload")]),t._v(" function to a function which automatically loads all property values which are defined with a model binding and updates the corresponding HTML widgets automatically.")]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Add two input widgets to parametrize the text of button1 and the background color of the Buttongrid:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provide your input widgets here --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("ButtonGrid parametrization"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Select background color: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("select")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "backgroundColor"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("black"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("selected")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("selected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("blue"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("cyan"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("3"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("darkgrey"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Set text of button 1: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Button1 text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Text Button1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Hello World"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "buttonCaption1"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])])]),a("p",[t._v("Note the "),a("strong",[t._v("data-asterics-model-binding-1")]),t._v(" attribute, it defines the binding to the plugin property of the corresponding model. So the combobox with id "),a("code",[t._v("background-color")]),t._v(" will change the background color of the plugin instance "),a("code",[t._v("ButtonGrid.1")]),t._v(".")]),t._v(" "),a("p",[t._v("Finally, there is a "),a("code",[t._v("Start Model")]),t._v(" button which calls the javascript function "),a("code",[t._v("applySettingsInXMLModelAndStart(modelFilePathOnWebserver)")]),t._v(" with a variable as parameter holding the path to the model file on the webserver hosting this page. This automatically downloads the model file from the webserver, update the plugin properties within the model file with the current values of the HTML widgets and deploys and starts the modified model.")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("applySettingsInXMLModelAndStart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Applies all settings and starts the model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start Model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-4-rename-web-application-folder-and-title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-rename-web-application-folder-and-title"}},[t._v("#")]),t._v(" Example 4 - Rename web application folder and title")]),t._v(" "),a("p",[t._v("The template repository already contains a template folder for a web application. You should rename it and change the redirection to the new folder.")]),t._v(" "),a("ol",[a("li",[t._v("Rename template folder ("),a("code",[t._v("ARE/web/webapps/asterics-solution-template")]),t._v(" ) to the name of your project folder.")]),t._v(" "),a("li",[t._v("Open "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" and change path to redirection to the name of your project folder.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v("\t"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("charset")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("utf-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("refresh"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0; URL=..//"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and change the title and first heading (h1) to")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n ...\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("header")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("inner"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Save files and run project")])]),t._v(" "),a("h2",{attrs:{id:"eclipse-installation-and-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-installation-and-setup"}},[t._v("#")]),t._v(" Eclipse installation and setup")]),t._v(" "),a("p",[t._v("As APE uses the ant build framework, the repository can also be used with your preferred IDE. Subsequently some recommendations of how to install and setup Eclipse for an asterics solution repository.")]),t._v(" "),a("ol",[a("li",[t._v("Install "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(" (Select "),a("strong",[t._v("same bitness")]),t._v(" as your JDK!! (x86 <-> x86 or x86_64 <-> x86_64))")])]),t._v(" "),a("h3",{attrs:{id:"eclipse-project-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-project-setup"}},[t._v("#")]),t._v(" Eclipse project setup")]),t._v(" "),a("ol",[a("li",[t._v("Click on "),a("code",[t._v("File/New/Project")])]),t._v(" "),a("li",[t._v("Then click on "),a("code",[t._v("Next")]),t._v(", uncheck "),a("code",[t._v("Use default location")]),t._v(" and browse to your asterics solution folder.")]),t._v(" "),a("li",[t._v("Set a "),a("code",[t._v("Project name")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Finish")])])]),t._v(" "),a("p",[t._v("Now you have an eclipse project with ant support.")]),t._v(" "),a("h4",{attrs:{id:"configure-editor-for-model-files-acs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure-editor-for-model-files-acs"}},[t._v("#")]),t._v(" Configure editor for model files (.acs)")]),t._v(" "),a("ol",[a("li",[t._v("Right click on model file, select "),a("code",[t._v("Open with/Other")])]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("External programs")]),t._v(" and browse to "),a("code",[t._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),t._v(" (Note: "),a("strong",[t._v("ACS.bat")]),t._v(")")]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("Use it for all `*.acs file")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Ok")])])]),t._v(" "),a("h3",{attrs:{id:"using-ant-within-eclipse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#using-ant-within-eclipse"}},[t._v("#")]),t._v(" Using ant within eclipse")]),t._v(" "),a("h4",{attrs:{id:"run-default-target"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[t._v("#")]),t._v(" Run default target")]),t._v(" "),a("p",[t._v("This is synonymous to "),a("code",[t._v("ant")]),t._v(" on the command line:")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (first entry)")])]),t._v(" "),a("h4",{attrs:{id:"run-selected-targets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[t._v("#")]),t._v(" Run selected targets")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (second entry)")]),t._v(" "),a("li",[t._v("Click onto targets to run")]),t._v(" "),a("li",[t._v("Select order of execution at the bottom")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Apply")]),t._v(" and "),a("code",[t._v("Run")])])]),t._v(" "),a("p",[t._v("From now on, the selected targets are the default ones for subsequent calls.")]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("webAppUtils.js and modelManipulation.js API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("the REST API lib"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://www.w3schools.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTML, CSS, Javascript documentation"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/326.c36d9738.js b/assets/js/326.d7776080.js similarity index 99% rename from assets/js/326.c36d9738.js rename to assets/js/326.d7776080.js index a01d7bab85..1436b80354 100644 --- a/assets/js/326.c36d9738.js +++ b/assets/js/326.d7776080.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[326],{977:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("strong",[e._v("Note:")]),e._v(" Will be implemented with https://github.com/asterics/AsTeRICS/issues/163")]),e._v(" "),t("h1",{attrs:{id:"specification-of-the-asterics-webserver-document-root"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specification-of-the-asterics-webserver-document-root"}},[e._v("#")]),e._v(" Specification of the AsTeRICS webserver document root")]),e._v(" "),t("p",[e._v("This specification defines the paths/subpaths of the webserver document root, which was previously located at the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/data/webservice",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/data/webservice/"),t("OutboundLink")],1),e._v(" subfolder of an AsTeRICS installation.")]),e._v(" "),t("p",[e._v("The new location of the document root will be at "),t("code",[e._v("ARE/web")]),e._v(".")]),e._v(" "),t("p",[e._v("The goal is to prevent current or future namespace collisions between AsTeRICS web functionalities. Not all of the documented subpaths are already implemented.")]),e._v(" "),t("h2",{attrs:{id:"security-considerations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#security-considerations"}},[e._v("#")]),e._v(" Security considerations")]),e._v(" "),t("p",[e._v("Currently the AsTeRICS web functionality does not provide authentication and authorization functionality. There is no support for SSL encryption through https either. These requirements are planned for future releases. The parentheses in the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-webserver-document-root-specification/#subpath-definitions",target:"_blank",rel:"noopener noreferrer"}},[e._v("Subpath definitions"),t("OutboundLink")],1),e._v(" describe permission requirements for the respective path.")]),e._v(" "),t("h2",{attrs:{id:"virtual-subpath-definitions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#virtual-subpath-definitions"}},[e._v("#")]),e._v(" Virtual Subpath definitions")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("/ or /index.html")]),e._v(": Landing page of the webserver. This URL provides some general informations about AsTeRICS and should link to the WebACS, REST demos and model demos. Can be overridden in case of an APE project. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("rest/")]),e._v(": This is the base path of the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/REST_API.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("REST interface"),t("OutboundLink")],1),e._v(".\n("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("ws/")]),e._v(": This is the base path of the websocket functionality. "),t("em",[e._v("(read, write)")])]),e._v(" "),t("li",[t("strong",[e._v("data/")]),e._v(": Reserved for providing access to the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/data"),t("OutboundLink")],1),e._v(" folder containing model data files, plugin config files, plugin images,… ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("models/")]),e._v(": Reserved for providing access to "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/models/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/models"),t("OutboundLink")],1),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("modelSettings/")]),e._v(": Reserved for static or dynamically generated settings dialogs of a model targeted for end users (users with disabilities or care takers, personal assistents, occupational therapists,…) ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("help/")]),e._v(": Base URL of the help system. Only the generic help system without contents. The content is provided through the parallel path "),t("code",[e._v("../help_files/")]),e._v(" ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("help/help_files/")]),e._v(": Definition of content paths with files "),t("code",[e._v("helpPaths-hosted.json")]),e._v(" and "),t("code",[e._v("helpPaths-local.json")]),e._v(" and ARE, C#-ACS and Plugin help files, e.g. Plugins/actuators/FS20Sender.htm or ARE/Introduction.htm, see "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/45",target:"_blank",rel:"noopener noreferrer"}},[e._v("#45"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("componentCollections/")]),e._v(": Reserved for providing various component collections describing the set of plugins available on an ARE installation. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps")]),e._v("/: Reserved for web applications. Could be used to extend web functionality by (optional) web applications. ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps/WebACS/")]),e._v(": Base URL of the webbased AsTeRICS Configuration Suite "),t("a",{attrs:{href:"https://github.com/asterics/WebACS",target:"_blank",rel:"noopener noreferrer"}},[e._v("(WebACS)"),t("OutboundLink")],1),e._v(" including help of WebACS "),t("strong",[e._v("without plugin help files")]),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps/WebACS/help/help_files/")]),e._v(": Definition of content paths with files "),t("code",[e._v("helpPaths-hosted.json")]),e._v(" and "),t("code",[e._v("helpPaths-local.json")]),e._v(" and ARE, WebACS and Plugin help files, e.g. Plugins/actuators/FS20Sender.htm or ARE/Introduction.htm, see "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/45",target:"_blank",rel:"noopener noreferrer"}},[e._v("#45"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("webapps/AsTeRICS-Ergo")]),e._v("/: Reserved for the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Ergo",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Ergo"),t("OutboundLink")],1),e._v(" wizard based web application. ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps/CCCSD")]),e._v("/: Reserved for the Clinician/Consumer Custom Solution Development environment "),t("a",{attrs:{href:"https://github.com/asterics/CCCSD",target:"_blank",rel:"noopener noreferrer"}},[e._v("(CCCSD)"),t("OutboundLink")],1),e._v(" ("),t("em",[e._v("read, write")]),e._v(")")])]),e._v(" "),t("h2",{attrs:{id:"physical-folder-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#physical-folder-structure"}},[e._v("#")]),e._v(" Physical folder structure")]),e._v(" "),t("p",[e._v("The virtual paths are represented by the following physical folder structure on the ARE:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE\n |-data/\n |-models/\n |-web/\n |index.html\n |-modelSettings/\n |-componentCollections/\n |-help/\n |-help_files/\n |-helpPaths-hosted.json\n |-helpPaths-local.json\n |-webapps/\n |-WebACS/\n |-AsTeRICS-Ergo/\n")])])]),t("p",[e._v("The subpaths "),t("em",[e._v("rest/")]),e._v(" and "),t("em",[e._v("ws/")]),e._v(" are only virtual paths needed for the REST API and websocket functionalities.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[326],{974:function(e,t,s){"use strict";s.r(t);var r=s(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("strong",[e._v("Note:")]),e._v(" Will be implemented with https://github.com/asterics/AsTeRICS/issues/163")]),e._v(" "),t("h1",{attrs:{id:"specification-of-the-asterics-webserver-document-root"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specification-of-the-asterics-webserver-document-root"}},[e._v("#")]),e._v(" Specification of the AsTeRICS webserver document root")]),e._v(" "),t("p",[e._v("This specification defines the paths/subpaths of the webserver document root, which was previously located at the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/data/webservice",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/data/webservice/"),t("OutboundLink")],1),e._v(" subfolder of an AsTeRICS installation.")]),e._v(" "),t("p",[e._v("The new location of the document root will be at "),t("code",[e._v("ARE/web")]),e._v(".")]),e._v(" "),t("p",[e._v("The goal is to prevent current or future namespace collisions between AsTeRICS web functionalities. Not all of the documented subpaths are already implemented.")]),e._v(" "),t("h2",{attrs:{id:"security-considerations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#security-considerations"}},[e._v("#")]),e._v(" Security considerations")]),e._v(" "),t("p",[e._v("Currently the AsTeRICS web functionality does not provide authentication and authorization functionality. There is no support for SSL encryption through https either. These requirements are planned for future releases. The parentheses in the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-webserver-document-root-specification/#subpath-definitions",target:"_blank",rel:"noopener noreferrer"}},[e._v("Subpath definitions"),t("OutboundLink")],1),e._v(" describe permission requirements for the respective path.")]),e._v(" "),t("h2",{attrs:{id:"virtual-subpath-definitions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#virtual-subpath-definitions"}},[e._v("#")]),e._v(" Virtual Subpath definitions")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("/ or /index.html")]),e._v(": Landing page of the webserver. This URL provides some general informations about AsTeRICS and should link to the WebACS, REST demos and model demos. Can be overridden in case of an APE project. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("rest/")]),e._v(": This is the base path of the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/REST_API.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("REST interface"),t("OutboundLink")],1),e._v(".\n("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("ws/")]),e._v(": This is the base path of the websocket functionality. "),t("em",[e._v("(read, write)")])]),e._v(" "),t("li",[t("strong",[e._v("data/")]),e._v(": Reserved for providing access to the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/data"),t("OutboundLink")],1),e._v(" folder containing model data files, plugin config files, plugin images,… ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("models/")]),e._v(": Reserved for providing access to "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/master/bin/ARE/models/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/models"),t("OutboundLink")],1),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("modelSettings/")]),e._v(": Reserved for static or dynamically generated settings dialogs of a model targeted for end users (users with disabilities or care takers, personal assistents, occupational therapists,…) ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("help/")]),e._v(": Base URL of the help system. Only the generic help system without contents. The content is provided through the parallel path "),t("code",[e._v("../help_files/")]),e._v(" ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("help/help_files/")]),e._v(": Definition of content paths with files "),t("code",[e._v("helpPaths-hosted.json")]),e._v(" and "),t("code",[e._v("helpPaths-local.json")]),e._v(" and ARE, C#-ACS and Plugin help files, e.g. Plugins/actuators/FS20Sender.htm or ARE/Introduction.htm, see "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/45",target:"_blank",rel:"noopener noreferrer"}},[e._v("#45"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("componentCollections/")]),e._v(": Reserved for providing various component collections describing the set of plugins available on an ARE installation. ("),t("em",[e._v("readonly")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps")]),e._v("/: Reserved for web applications. Could be used to extend web functionality by (optional) web applications. ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps/WebACS/")]),e._v(": Base URL of the webbased AsTeRICS Configuration Suite "),t("a",{attrs:{href:"https://github.com/asterics/WebACS",target:"_blank",rel:"noopener noreferrer"}},[e._v("(WebACS)"),t("OutboundLink")],1),e._v(" including help of WebACS "),t("strong",[e._v("without plugin help files")]),e._v(". ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps/WebACS/help/help_files/")]),e._v(": Definition of content paths with files "),t("code",[e._v("helpPaths-hosted.json")]),e._v(" and "),t("code",[e._v("helpPaths-local.json")]),e._v(" and ARE, WebACS and Plugin help files, e.g. Plugins/actuators/FS20Sender.htm or ARE/Introduction.htm, see "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/issues/45",target:"_blank",rel:"noopener noreferrer"}},[e._v("#45"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("webapps/AsTeRICS-Ergo")]),e._v("/: Reserved for the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Ergo",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Ergo"),t("OutboundLink")],1),e._v(" wizard based web application. ("),t("em",[e._v("read, write")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("webapps/CCCSD")]),e._v("/: Reserved for the Clinician/Consumer Custom Solution Development environment "),t("a",{attrs:{href:"https://github.com/asterics/CCCSD",target:"_blank",rel:"noopener noreferrer"}},[e._v("(CCCSD)"),t("OutboundLink")],1),e._v(" ("),t("em",[e._v("read, write")]),e._v(")")])]),e._v(" "),t("h2",{attrs:{id:"physical-folder-structure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#physical-folder-structure"}},[e._v("#")]),e._v(" Physical folder structure")]),e._v(" "),t("p",[e._v("The virtual paths are represented by the following physical folder structure on the ARE:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("ARE\n |-data/\n |-models/\n |-web/\n |index.html\n |-modelSettings/\n |-componentCollections/\n |-help/\n |-help_files/\n |-helpPaths-hosted.json\n |-helpPaths-local.json\n |-webapps/\n |-WebACS/\n |-AsTeRICS-Ergo/\n")])])]),t("p",[e._v("The subpaths "),t("em",[e._v("rest/")]),e._v(" and "),t("em",[e._v("ws/")]),e._v(" are only virtual paths needed for the REST API and websocket functionalities.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/327.fc819c3d.js b/assets/js/327.4f6cfe45.js similarity index 99% rename from assets/js/327.fc819c3d.js rename to assets/js/327.4f6cfe45.js index 6bd3d105e5..1193b03691 100644 --- a/assets/js/327.fc819c3d.js +++ b/assets/js/327.4f6cfe45.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[327],{975:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"objective"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the APIs for computer vision tasks in AsTeRICS. The tutorial does not show how to create an "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),a("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),a("h1",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("AsTeRICS has several computer vision plugins (e.g. "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/XFacetrackerLK.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("XFacetrackerLK"),a("OutboundLink")],1),t._v(" for face tracking).")]),t._v(" "),a("p",[t._v("To simplify the development of such plugins and adding crossplatform support easily, AsTeRICS 3.0 uses a subset of "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1),t._v(". Additionally, the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1),t._v(" provides helper classes for frame grabbing, face detection and frame visualization.")]),t._v(" "),a("h2",{attrs:{id:"javacv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javacv"}},[t._v("#")]),t._v(" JavaCV")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV"),a("OutboundLink")],1),t._v(" is a Java wrapper for commonly used computer vision libraries and uses "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP technology"),a("OutboundLink")],1),t._v(" for the binding of native libraries (based on JNI). "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp-presets/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP Presets"),a("OutboundLink")],1),t._v(" define the respective bindings (e.g. OpenCV, FFmpeg, OpenKinect, videoInput, flandmark, ARToolkitPlus, …) that can then be used within Java.")]),t._v(" "),a("h1",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Java IDE ("),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),a("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Webcam or USB camera or RaspiCam")])]),t._v(" "),a("h1",{attrs:{id:"preparation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),a("ol",[a("li",[t._v("Start Eclipse")]),t._v(" "),a("li",[t._v("Create a new Java project ("),a("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),a("li",[t._v("Add the following libraries to the build configuration ("),a("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),a("li",[a("code",[t._v("/asterics.mw.computervision.jar")])]),t._v(" "),a("li",[a("code",[t._v("/javacv-1.3.0-basic-windows.jar")]),t._v(" (on Linux/Mac OSX use "),a("code",[t._v("javacv-1.3.0-basic-linux|macosx.jar")]),t._v(")")]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Copy the directory "),a("code",[t._v("/data/service.computervision")]),t._v(" to "),a("code",[t._v("/data/")])])]),t._v(" "),a("p",[a("img",{attrs:{src:"developer_guide/coding_instructions/images/BuildPath.JPG",alt:"Build path dialog with external libraries"}})]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Create a main class "),a("code",[t._v("FaceDetectionExample")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Imports OpenCV wrapper (classes, methods and constants)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_core"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_imgproc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility class which simplifies face detection and drawing.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define camera device and id for frame display window.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" camDeviceKey"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"FaceDetectionExample"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//CvPoint is an OpenCV structure for describing point: https://docs.opencv.org/3.2.0/dc/dd1/structCvPoint.html")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//We can allocate native arrays using constructors taking an integer as argument.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),t._v(" hatPoints "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Listener method which is called for each grabbed frame.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("imageGrabbed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IplImage")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),a("h2",{attrs:{id:"example-1-face-detection-and-face-rectangle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-face-detection-and-face-rectangle"}},[t._v("#")]),t._v(" Example 1 - Face detection and face rectangle")]),t._v(" "),a("p",[t._v("The computer vision service in AsTeRICS provides convinience methods that facilitate the task of frame grabbing ("),a("code",[t._v("class SharedFrameGrabber")]),t._v(") and visualization ("),a("code",[t._v("SharedCanvasFrame")]),t._v(").")]),t._v(" "),a("h3",{attrs:{id:"init-and-start-grabbing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-and-start-grabbing"}},[t._v("#")]),t._v(" Init and Start grabbing")]),t._v(" "),a("ol",[a("li",[t._v("Create a "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Video-Preview-and-Video-Recording-Classes",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("FrameGrabber")]),a("OutboundLink")],1),t._v(" instance, which is an abstraction of a frame grabbing functionality implemented by a computer vision library (e.g. videoInput, OpenCV). Using the method "),a("code",[t._v("getFrameGrabber(...)")]),t._v(" returns the default frame grabber ("),a("strong",[t._v("Windows")]),t._v(": videoInput, "),a("strong",[t._v("Linux")]),t._v(": FFmpeg, "),a("strong",[t._v("Mac OSX")]),t._v(": OpenCV) for the platform the program is running on.")]),t._v(" "),a("li",[t._v("Register a "),a("code",[t._v("GrabbedImageListener")]),t._v(" which receives grabbed frames")]),t._v(" "),a("li",[t._v("Create window for displaying video frames.")]),t._v(" "),a("li",[t._v("Start grabbing.")])]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void start()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Get a frame grabber for the device with the given key (either a number e.g. 0 or a device path e.g. /dev/video0)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//This is dependent on the used frame grabber (e.g. FFMpeg only supports device paths)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")]),t._v(" grabber "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Register a listener to receive the grabbed images of type IplImage.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("registerGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Create a window which is used to display the video frame.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("createCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Face Detection Example"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" grabber"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getGamma")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Starts grabbing in a dedicated thread and notifies all registered listeners with the IplImage frame grabbed.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"face-detection-and-drawing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#face-detection-and-drawing"}},[t._v("#")]),t._v(" Face detection and drawing")]),t._v(" "),a("p",[t._v("The class "),a("code",[t._v("FaceDetection")]),t._v(" provides convinience methods for face detection using a "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Haar cascade for the face"),a("OutboundLink")],1),t._v(" and drawing with typical parameters.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void imageGrabbed(IplImage frame)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("drawFaceRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h3",{attrs:{id:"stop-grabbing-cleanup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop-grabbing-cleanup"}},[t._v("#")]),t._v(" Stop grabbing & cleanup")]),t._v(" "),a("p",[t._v("Finally you must stop grabbing, deregister the "),a("code",[t._v("GrabbedImageListener")]),t._v(" and dispose the window showing the video frame.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void stop()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Stop the grabber thread.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Deregister this as listener.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("deregisterGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Dispose the window for frame visualization. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("disposeFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-drawing-a-hat-on-top-of-the-face"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-drawing-a-hat-on-top-of-the-face"}},[t._v("#")]),t._v(" Example 2 - Drawing a hat on top of the face")]),t._v(" "),a("p",[t._v("This example shows how to use the "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("drawing functions"),a("OutboundLink")],1),t._v(" of OpenCV to draw a hat on top of the facial position. Generally you can use both the C-API or the C+±API of OpenCV with similar syntax. Nevertheless, there are some rules of how to "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Converting-OpenCV",target:"_blank",rel:"noopener noreferrer"}},[t._v("convert OpenCV code to JavaCV code"),a("OutboundLink")],1),t._v(".\nYou can draw a rectangle with "),a("code",[t._v("cvRectangle(...)")]),t._v(" and draw a filled polygon with "),a("code",[t._v("cvFillConvexPoly(...)")]),t._v(".")]),t._v(" "),a("p",[t._v("Use the code of "),a("a",{attrs:{href:"#example-1---face-detection-and-face-rectangle"}},[t._v("Example 1")]),t._v(" and overwrite the implementation of the method "),a("code",[t._v("public void imageGrabbed(...)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("width")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("height")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a red face rectangle with cvRectangle")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvRectangle")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("w"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("h"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RED")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a green hat on top of the face.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To access or pass as argument the elements of a native array, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//call position() before. --\x3e position(0) refers to the first element.")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvFillConvexPoly")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("GREEN")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h1",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/components/sensor.XfacetrackerLK/src/main/java/eu/asterics/component/sensor/XfacetrackerLK/XFacetrackerLKInstance.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class XFacetrackerLK"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3 Wiki"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"groups.google.com/group/javacv"}},[t._v("JavaCV google group")])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv-examples",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV examples including OpenCV Cookbook"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/MasteringOpenCV/code",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenCV examples for HCI (ch6, ch7): Mastering OpenCV with Practical Computer Vision Projects"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[327],{977:function(t,a,s){"use strict";s.r(a);var n=s(2),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"objective"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[t._v("#")]),t._v(" Objective")]),t._v(" "),a("p",[t._v("This tutorial demonstrates how to use the APIs for computer vision tasks in AsTeRICS. The tutorial does not show how to create an "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/Plugin-Development",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS plugin"),a("OutboundLink")],1),t._v(" where the API would be used normally.")]),t._v(" "),a("h1",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("AsTeRICS has several computer vision plugins (e.g. "),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/WebACS/help/index.html?plugins&sensors/XFacetrackerLK.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("XFacetrackerLK"),a("OutboundLink")],1),t._v(" for face tracking).")]),t._v(" "),a("p",[t._v("To simplify the development of such plugins and adding crossplatform support easily, AsTeRICS 3.0 uses a subset of "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1),t._v(". Additionally, the "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1),t._v(" provides helper classes for frame grabbing, face detection and frame visualization.")]),t._v(" "),a("h2",{attrs:{id:"javacv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#javacv"}},[t._v("#")]),t._v(" JavaCV")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV"),a("OutboundLink")],1),t._v(" is a Java wrapper for commonly used computer vision libraries and uses "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP technology"),a("OutboundLink")],1),t._v(" for the binding of native libraries (based on JNI). "),a("a",{attrs:{href:"https://github.com/bytedeco/javacpp-presets/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCPP Presets"),a("OutboundLink")],1),t._v(" define the respective bindings (e.g. OpenCV, FFmpeg, OpenKinect, videoInput, flandmark, ARToolkitPlus, …) that can then be used within Java.")]),t._v(" "),a("h1",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/tag/v3.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0 installed"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Java IDE ("),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse"),a("OutboundLink")],1),t._v(" recommended)")]),t._v(" "),a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Webcam or USB camera or RaspiCam")])]),t._v(" "),a("h1",{attrs:{id:"preparation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[t._v("#")]),t._v(" Preparation")]),t._v(" "),a("ol",[a("li",[t._v("Start Eclipse")]),t._v(" "),a("li",[t._v("Create a new Java project ("),a("code",[t._v("File/New/Java Project")]),t._v(")")]),t._v(" "),a("li",[t._v("Add the following libraries to the build configuration ("),a("code",[t._v("Project/Properties/Java Build Path/Libraries")]),t._v(")")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("/asterics.ARE.jar")])]),t._v(" "),a("li",[a("code",[t._v("/asterics.mw.computervision.jar")])]),t._v(" "),a("li",[a("code",[t._v("/javacv-1.3.0-basic-windows.jar")]),t._v(" (on Linux/Mac OSX use "),a("code",[t._v("javacv-1.3.0-basic-linux|macosx.jar")]),t._v(")")]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-io-2.4.jar")])]),t._v(" "),a("li",[a("code",[t._v("/../APE/lib/commons-codec-1.11.jar")])])]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Copy the directory "),a("code",[t._v("/data/service.computervision")]),t._v(" to "),a("code",[t._v("/data/")])])]),t._v(" "),a("p",[a("img",{attrs:{src:"developer_guide/coding_instructions/images/BuildPath.JPG",alt:"Build path dialog with external libraries"}})]),t._v(" "),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Create a main class "),a("code",[t._v("FaceDetectionExample")]),t._v(" and copy and paste the following template code into it")])]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("java"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("awt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Imports OpenCV wrapper (classes, methods and constants)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_core"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import static"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacpp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opencv_imgproc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("org"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bytedeco"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("javacv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token import"}},[a("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("eu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("asterics"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("computervision"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")])]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("GrabbedImageListener")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility class which simplifies face detection and drawing.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define camera device and id for frame display window.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" camDeviceKey"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"FaceDetectionExample"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//CvPoint is an OpenCV structure for describing point: https://docs.opencv.org/3.2.0/dc/dd1/structCvPoint.html")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//We can allocate native arrays using constructors taking an integer as argument.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),t._v(" hatPoints "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),t._v(" faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n faceDetectionExample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FaceDetectionExample")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("throws")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Listener method which is called for each grabbed frame.\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("imageGrabbed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IplImage")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),a("h2",{attrs:{id:"example-1-face-detection-and-face-rectangle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-face-detection-and-face-rectangle"}},[t._v("#")]),t._v(" Example 1 - Face detection and face rectangle")]),t._v(" "),a("p",[t._v("The computer vision service in AsTeRICS provides convinience methods that facilitate the task of frame grabbing ("),a("code",[t._v("class SharedFrameGrabber")]),t._v(") and visualization ("),a("code",[t._v("SharedCanvasFrame")]),t._v(").")]),t._v(" "),a("h3",{attrs:{id:"init-and-start-grabbing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-and-start-grabbing"}},[t._v("#")]),t._v(" Init and Start grabbing")]),t._v(" "),a("ol",[a("li",[t._v("Create a "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Video-Preview-and-Video-Recording-Classes",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("FrameGrabber")]),a("OutboundLink")],1),t._v(" instance, which is an abstraction of a frame grabbing functionality implemented by a computer vision library (e.g. videoInput, OpenCV). Using the method "),a("code",[t._v("getFrameGrabber(...)")]),t._v(" returns the default frame grabber ("),a("strong",[t._v("Windows")]),t._v(": videoInput, "),a("strong",[t._v("Linux")]),t._v(": FFmpeg, "),a("strong",[t._v("Mac OSX")]),t._v(": OpenCV) for the platform the program is running on.")]),t._v(" "),a("li",[t._v("Register a "),a("code",[t._v("GrabbedImageListener")]),t._v(" which receives grabbed frames")]),t._v(" "),a("li",[t._v("Create window for displaying video frames.")]),t._v(" "),a("li",[t._v("Start grabbing.")])]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void start()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Get a frame grabber for the device with the given key (either a number e.g. 0 or a device path e.g. /dev/video0)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//This is dependent on the used frame grabber (e.g. FFMpeg only supports device paths)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FrameGrabber")]),t._v(" grabber "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Register a listener to receive the grabbed images of type IplImage.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("registerGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Create a window which is used to display the video frame.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("createCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Face Detection Example"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" grabber"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getGamma")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Point")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dimension")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("200")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Starts grabbing in a dedicated thread and notifies all registered listeners with the IplImage frame grabbed.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("startGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"face-detection-and-drawing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#face-detection-and-drawing"}},[t._v("#")]),t._v(" Face detection and drawing")]),t._v(" "),a("p",[t._v("The class "),a("code",[t._v("FaceDetection")]),t._v(" provides convinience methods for face detection using a "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Haar cascade for the face"),a("OutboundLink")],1),t._v(" and drawing with typical parameters.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void imageGrabbed(IplImage frame)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("drawFaceRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h3",{attrs:{id:"stop-grabbing-cleanup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop-grabbing-cleanup"}},[t._v("#")]),t._v(" Stop grabbing & cleanup")]),t._v(" "),a("p",[t._v("Finally you must stop grabbing, deregister the "),a("code",[t._v("GrabbedImageListener")]),t._v(" and dispose the window showing the video frame.")]),t._v(" "),a("p",[t._v("Copy and paste the following code into the method "),a("code",[t._v("public void stop()")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Stop the grabber thread.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("stopGrabbing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Deregister this as listener.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedFrameGrabber")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("deregisterGrabbedImageListener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("camDeviceKey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Dispose the window for frame visualization. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("disposeFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"example-2-drawing-a-hat-on-top-of-the-face"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-drawing-a-hat-on-top-of-the-face"}},[t._v("#")]),t._v(" Example 2 - Drawing a hat on top of the face")]),t._v(" "),a("p",[t._v("This example shows how to use the "),a("a",{attrs:{href:"https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("drawing functions"),a("OutboundLink")],1),t._v(" of OpenCV to draw a hat on top of the facial position. Generally you can use both the C-API or the C+±API of OpenCV with similar syntax. Nevertheless, there are some rules of how to "),a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki/Converting-OpenCV",target:"_blank",rel:"noopener noreferrer"}},[t._v("convert OpenCV code to JavaCV code"),a("OutboundLink")],1),t._v(".\nYou can draw a rectangle with "),a("code",[t._v("cvRectangle(...)")]),t._v(" and draw a filled polygon with "),a("code",[t._v("cvFillConvexPoly(...)")]),t._v(".")]),t._v(" "),a("p",[t._v("Use the code of "),a("a",{attrs:{href:"#example-1---face-detection-and-face-rectangle"}},[t._v("Example 1")]),t._v(" and overwrite the implementation of the method "),a("code",[t._v("public void imageGrabbed(...)")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-java extra-class"},[a("pre",{pre:!0,attrs:{class:"language-java"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Utility method which does face detection with standard parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvRect")]),t._v(" faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceDetection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("detectFace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("faceRect "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("width")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" faceRect"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("height")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a red face rectangle with cvRectangle")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvRectangle")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvPoint")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("w"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("h"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("RED")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Draw a green hat on top of the face.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//To access or pass as argument the elements of a native array, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//call position() before. --\x3e position(0) refers to the first element.")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" w "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" h "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cvFillConvexPoly")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" hatPoints"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CvScalar")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("GREEN")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CV_AA")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Finally show the image with added drawings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SharedCanvasFrame")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("showImage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasInstanceId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" frame"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("printStackTrace")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h1",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/v3.0/ARE/components/sensor.XfacetrackerLK/src/main/java/eu/asterics/component/sensor/XfacetrackerLK/XFacetrackerLKInstance.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("Source code of class XFacetrackerLK"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE/services/ComputerVision/src/main/java/eu/asterics/mw/computervision",target:"_blank",rel:"noopener noreferrer"}},[t._v("computervision service"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/tree/1.3",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv/wiki",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV 1.3 Wiki"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"groups.google.com/group/javacv"}},[t._v("JavaCV google group")])]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/bytedeco/javacv-examples",target:"_blank",rel:"noopener noreferrer"}},[t._v("JavaCV examples including OpenCV Cookbook"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/MasteringOpenCV/code",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenCV examples for HCI (ch6, ch7): Mastering OpenCV with Practical Computer Vision Projects"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/328.aecfb245.js b/assets/js/328.ded2ecc7.js similarity index 83% rename from assets/js/328.aecfb245.js rename to assets/js/328.ded2ecc7.js index b119d286e4..c28eed6c44 100644 --- a/assets/js/328.aecfb245.js +++ b/assets/js/328.ded2ecc7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[328],{976:function(t,n,i){"use strict";i.r(n);var o=i(2),s=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("p",[this._v("Here you will find information for writing unit tests for ARE functionality.")])])}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[328],{979:function(t,n,i){"use strict";i.r(n);var o=i(2),s=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("p",[this._v("Here you will find information for writing unit tests for ARE functionality.")])])}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/329.706b4871.js b/assets/js/329.2722b573.js similarity index 93% rename from assets/js/329.706b4871.js rename to assets/js/329.2722b573.js index 92745adc6d..d5b1bddec6 100644 --- a/assets/js/329.706b4871.js +++ b/assets/js/329.2722b573.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[329],{979:function(e,t,o){"use strict";o.r(t);var n=o(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Here you can find a "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/AsTeRICS%20Plugin%20Development.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("quickstart guide for plugin development"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Please also consult the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/DeveloperManual.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Developer Manual"),t("OutboundLink")],1),e._v(" for more details.")]),e._v(" "),t("p",[e._v("We would be happy to get your plugin contribution and add it to the repository. Send us a pull request or an e-mail as you like.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[329],{975:function(e,t,o){"use strict";o.r(t);var n=o(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Here you can find a "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/AsTeRICS%20Plugin%20Development.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("quickstart guide for plugin development"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Please also consult the "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/blob/master/Documentation/DeveloperManual.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Developer Manual"),t("OutboundLink")],1),e._v(" for more details.")]),e._v(" "),t("p",[e._v("We would be happy to get your plugin contribution and add it to the repository. Send us a pull request or an e-mail as you like.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/331.2da221cb.js b/assets/js/331.2da221cb.js new file mode 100644 index 0000000000..f4169532b8 --- /dev/null +++ b/assets/js/331.2da221cb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[331],{1280:function(t,a,e){"use strict";e.r(a);var s=e(2),n=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"at-solution-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at-solution-tutorial"}},[t._v("#")]),t._v(" AT Solution Tutorial")]),t._v(" "),a("p",[t._v("In this tutorial you will learn how to use the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1),t._v(" to create your own AT-related software project.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("The AsTeRICS Packaging Environment (APE) provides the possibility to maintain an AsTeRICS based solution as a dedicated software project, that can be versioned as a git repository.\nAs an AsTeRICS solution not always consists of just one model file but also of config files, images, or web applications, APE provides a template repository, which acts as a starting point for a solution. The repository can be downloaded, cloned or forked as any other git repository. There are also other "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1),t._v(" derived from that repository.")]),t._v(" "),a("p",[t._v("Before starting the tutorial, have a look at the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/blob/master/README.md#folder-structure",target:"_blank",rel:"noopener noreferrer"}},[t._v("folder structure"),a("OutboundLink")],1),t._v(" of the template repository.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("p",[t._v("You need at least")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("JAVA_HOME")]),t._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[a("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[t._v("apache ant build framework (version >= 1.9.1)"),a("OutboundLink")],1)])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("ANT_HOME")]),t._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v3.0/Setup_AsTeRICS_3_0_1.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0.1"),a("OutboundLink")],1),t._v(" installed "),a("strong",[t._v("or")]),t._v(" a snapshot of "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS"),a("OutboundLink")],1),t._v(" cloned to a parallel folder of the project.")]),t._v(" "),a("li",[t._v("A copy of the template repository (see "),a("a",{attrs:{href:"#download--clone-template-repository"}},[t._v("Download / Clone template repository")])])]),t._v(" "),a("p",[t._v("You can use an IDE for Java and Web Developers, e.g. "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(". See "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" for details.")]),t._v(" "),a("h2",{attrs:{id:"download-clone-template-repository"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-clone-template-repository"}},[t._v("#")]),t._v(" Download / Clone template repository")]),t._v(" "),a("p",[t._v("You can either clone the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/",target:"_blank",rel:"noopener noreferrer"}},[t._v("template repository"),a("OutboundLink")],1),t._v(" or download it as a zipped file.")]),t._v(" "),a("p",[t._v("You might also want to start based on an existing "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution example"),a("OutboundLink")],1),t._v(" by downloading or forking it, if your application is similar to one of them.")]),t._v(" "),a("h2",{attrs:{id:"example-1-run-project"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-run-project"}},[t._v("#")]),t._v(" Example 1 - Run project")]),t._v(" "),a("p",[t._v("The template repository already contains a default autostart model at "),a("code",[t._v("custom/bin/ARE/models/autostart.acs")]),t._v(", which opens the ARE webserver startpage with the system default browser.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("ant run\n")])])]),a("p",[t._v("For subsequent runs use the targets "),a("code",[t._v("APE-copy")]),t._v(" and "),a("code",[t._v("run-quick")]),t._v(" to speed up the starting.")]),t._v(" "),a("p",[t._v("If you want use "),a("code",[t._v("Eclipse")]),t._v(", please read the "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" instructions.")]),t._v(" "),a("h2",{attrs:{id:"example-2-edit-and-test-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-edit-and-test-model"}},[t._v("#")]),t._v(" Example 2 - Edit and test model")]),t._v(" "),a("p",[t._v("To edit and test the modifications immediately")]),t._v(" "),a("ol",[a("li",[t._v("Run project (see "),a("a",{attrs:{href:"#example-1---run-project"}},[t._v("Example 1")]),t._v(")")]),t._v(" "),a("li",[t._v("Double click onto model file. The ACS program should be started with the model file opened.")]),t._v(" "),a("li",[a("code",[t._v("Connect to ARE")])]),t._v(" "),a("li",[t._v("Modify model")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("TextArea.1")]),t._v(" and set "),a("code",[t._v("caption")]),t._v(" to "),a("code",[t._v("Hello World")])]),t._v(" "),a("li",[t._v("Upload and run model")]),t._v(" "),a("li",[t._v("To permanently save the modification, you "),a("strong",[t._v("must save the file with the ACS")]),t._v(" again, otherwise the modifications will be lost with the next run of the project.")])]),t._v(" "),a("h2",{attrs:{id:"asterics-model-web-application"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-model-web-application"}},[t._v("#")]),t._v(" AsTeRICS model + web application")]),t._v(" "),a("p",[t._v("In many cases you want to provide a better user interface or allow the user to parametrize your asterics solution without the need to edit the model in the ACS program. As the end user or relatives of end users might not be very technically skilled, you should provide easy configuration pages with high usability. This can be very easily achieved with web technologies.")]),t._v(" "),a("p",[t._v("The "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-webserver-document-root-specification",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS webserver document root specification"),a("OutboundLink")],1),t._v(" defines the folder structure and paths on the webserver.\nThe document root is set to the "),a("code",[t._v("ARE/web")]),t._v(" sub folder and the default start page is expected at "),a("code",[t._v("ARE/web/webapps/startpage")]),t._v(".")]),t._v(" "),a("p",[t._v("The default start page will be opened, if you start the ARE and open the URL "),a("code",[t._v("http://localhost:8081/")]),t._v(". The file "),a("code",[t._v("ARE/web/webapps/startpage/index.html")]),t._v(" contains the top and side menus and opens "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" as default iframe in the contens area.")]),t._v(" "),a("p",[t._v("You can override these pages by simply providing your own versions in the "),a("code",[t._v("custom/bin/ARE/web/webapps/startpage/")]),t._v(" folder of your project repository.\nIt is recommended to provide the actual web application in a parallel folder ("),a("code",[t._v("ARE/web/webapps/")]),t._v(") named as your project folder and redirect from within "),a("code",[t._v("start.html")]),t._v(" to "),a("code",[t._v("..//index.html")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"example-3-model-parametrization-through-web-page"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-model-parametrization-through-web-page"}},[t._v("#")]),t._v(" Example 3 - Model parametrization through web page")]),t._v(" "),a("p",[t._v("As mentioned above, a model should be made configurable in an intuitive way, not forcing the user to edit the model in the ACS program. To achieve this you can use HTML input widgets and bind them to associated model properties. This way the value between both will be automatically synchronized during page load and model start.")]),t._v(" "),a("p",[t._v("The folder "),a("code",[t._v("ARE/web/webapps//")]),t._v(" should be used to store all web application specific files like .html files and associated model files. This way the web application folder can also be put onto a webserver online and the web application be deployed to a running ARE instance from there.")]),t._v(" "),a("ol",[a("li",[t._v("Save this "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/sensors/ButtonGrid_test.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("ButtonGrid model file"),a("OutboundLink")],1),t._v(" to "),a("code",[t._v("ARE/web/webapps//models/")]),t._v(".")]),t._v(" "),a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and add/edit the following lines in the "),a("code",[t._v("head")]),t._v(" section of the file:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided from AsTeRICS 3.0 --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided by this repository, should be part of the framework later --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/webAppUtils.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/modelManipulation.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the base URI of the running ARE instance. ")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//You could also make this configurable by the user.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define path of model file on the webserver.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'webapps/asterics-solution-template/models/ButtonGrid_test.acs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Init window.onload function to automatically update all widgets with a model binding with the values of the currently deployed model.")]),t._v("\n\twindow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("onload"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("updateWidgetsFromDeployedModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\t\t\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("You must include "),a("code",[t._v("jquery")]),t._v(" as the only third party dependency, then "),a("code",[t._v("JSmap.js")]),t._v(" and "),a("code",[t._v("areCommunicator.js")]),t._v(" "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("(the REST API lib)"),a("OutboundLink")],1),t._v(". Additionally, you need "),a("code",[t._v("webAppUtils.js")]),t._v(" and "),a("code",[t._v("modelManipulation.js")]),t._v(" ("),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("see API documentation"),a("OutboundLink")],1),t._v(") for the automatic model binding and synchronization functionality.")]),t._v(" "),a("p",[t._v("In the script section you only need 3 lines for initialization. The first one ("),a("code",[t._v("setAREBaseURI")]),t._v(") defines the address of the ARE. The second one defines the path to the model file which should be deployed when clicking onto the "),a("code",[t._v("Start model")]),t._v(" button. Finally, the third line sets the "),a("code",[t._v("window.onload")]),t._v(" function to a function which automatically loads all property values which are defined with a model binding and updates the corresponding HTML widgets automatically.")]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Add two input widgets to parametrize the text of button1 and the background color of the Buttongrid:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provide your input widgets here --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("ButtonGrid parametrization"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Select background color: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("select")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "backgroundColor"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("black"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("selected")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("selected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("blue"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("cyan"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("3"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("darkgrey"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Set text of button 1: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Button1 text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Text Button1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Hello World"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "buttonCaption1"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])])]),a("p",[t._v("Note the "),a("strong",[t._v("data-asterics-model-binding-1")]),t._v(" attribute, it defines the binding to the plugin property of the corresponding model. So the combobox with id "),a("code",[t._v("background-color")]),t._v(" will change the background color of the plugin instance "),a("code",[t._v("ButtonGrid.1")]),t._v(".")]),t._v(" "),a("p",[t._v("Finally, there is a "),a("code",[t._v("Start Model")]),t._v(" button which calls the javascript function "),a("code",[t._v("applySettingsInXMLModelAndStart(modelFilePathOnWebserver)")]),t._v(" with a variable as parameter holding the path to the model file on the webserver hosting this page. This automatically downloads the model file from the webserver, update the plugin properties within the model file with the current values of the HTML widgets and deploys and starts the modified model.")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("applySettingsInXMLModelAndStart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Applies all settings and starts the model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start Model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-4-rename-web-application-folder-and-title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-rename-web-application-folder-and-title"}},[t._v("#")]),t._v(" Example 4 - Rename web application folder and title")]),t._v(" "),a("p",[t._v("The template repository already contains a template folder for a web application. You should rename it and change the redirection to the new folder.")]),t._v(" "),a("ol",[a("li",[t._v("Rename template folder ("),a("code",[t._v("ARE/web/webapps/asterics-solution-template")]),t._v(" ) to the name of your project folder.")]),t._v(" "),a("li",[t._v("Open "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" and change path to redirection to the name of your project folder.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v("\t"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("charset")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("utf-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("refresh"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0; URL=..//"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and change the title and first heading (h1) to")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n ...\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("header")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("inner"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Save files and run project")])]),t._v(" "),a("h2",{attrs:{id:"eclipse-installation-and-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-installation-and-setup"}},[t._v("#")]),t._v(" Eclipse installation and setup")]),t._v(" "),a("p",[t._v("As APE uses the ant build framework, the repository can also be used with your preferred IDE. Subsequently some recommendations of how to install and setup Eclipse for an asterics solution repository.")]),t._v(" "),a("ol",[a("li",[t._v("Install "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(" (Select "),a("strong",[t._v("same bitness")]),t._v(" as your JDK!! (x86 <-> x86 or x86_64 <-> x86_64))")])]),t._v(" "),a("h3",{attrs:{id:"eclipse-project-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-project-setup"}},[t._v("#")]),t._v(" Eclipse project setup")]),t._v(" "),a("ol",[a("li",[t._v("Click on "),a("code",[t._v("File/New/Project")])]),t._v(" "),a("li",[t._v("Then click on "),a("code",[t._v("Next")]),t._v(", uncheck "),a("code",[t._v("Use default location")]),t._v(" and browse to your asterics solution folder.")]),t._v(" "),a("li",[t._v("Set a "),a("code",[t._v("Project name")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Finish")])])]),t._v(" "),a("p",[t._v("Now you have an eclipse project with ant support.")]),t._v(" "),a("h4",{attrs:{id:"configure-editor-for-model-files-acs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure-editor-for-model-files-acs"}},[t._v("#")]),t._v(" Configure editor for model files (.acs)")]),t._v(" "),a("ol",[a("li",[t._v("Right click on model file, select "),a("code",[t._v("Open with/Other")])]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("External programs")]),t._v(" and browse to "),a("code",[t._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),t._v(" (Note: "),a("strong",[t._v("ACS.bat")]),t._v(")")]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("Use it for all `*.acs file")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Ok")])])]),t._v(" "),a("h3",{attrs:{id:"using-ant-within-eclipse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#using-ant-within-eclipse"}},[t._v("#")]),t._v(" Using ant within eclipse")]),t._v(" "),a("h4",{attrs:{id:"run-default-target"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[t._v("#")]),t._v(" Run default target")]),t._v(" "),a("p",[t._v("This is synonymous to "),a("code",[t._v("ant")]),t._v(" on the command line:")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (first entry)")])]),t._v(" "),a("h4",{attrs:{id:"run-selected-targets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[t._v("#")]),t._v(" Run selected targets")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (second entry)")]),t._v(" "),a("li",[t._v("Click onto targets to run")]),t._v(" "),a("li",[t._v("Select order of execution at the bottom")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Apply")]),t._v(" and "),a("code",[t._v("Run")])])]),t._v(" "),a("p",[t._v("From now on, the selected targets are the default ones for subsequent calls.")]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("webAppUtils.js and modelManipulation.js API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("the REST API lib"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://www.w3schools.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTML, CSS, Javascript documentation"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/331.3a308c4a.js b/assets/js/331.3a308c4a.js deleted file mode 100644 index 6c87cda360..0000000000 --- a/assets/js/331.3a308c4a.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[331],{981:function(t,a,e){"use strict";e.r(a);var s=e(2),n=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"at-solution-tutorial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at-solution-tutorial"}},[t._v("#")]),t._v(" AT Solution Tutorial")]),t._v(" "),a("p",[t._v("In this tutorial you will learn how to use the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1),t._v(" to create your own AT-related software project.")]),t._v(" "),a("h2",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),a("p",[t._v("The AsTeRICS Packaging Environment (APE) provides the possibility to maintain an AsTeRICS based solution as a dedicated software project, that can be versioned as a git repository.\nAs an AsTeRICS solution not always consists of just one model file but also of config files, images, or web applications, APE provides a template repository, which acts as a starting point for a solution. The repository can be downloaded, cloned or forked as any other git repository. There are also other "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1),t._v(" derived from that repository.")]),t._v(" "),a("p",[t._v("Before starting the tutorial, have a look at the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/blob/master/README.md#folder-structure",target:"_blank",rel:"noopener noreferrer"}},[t._v("folder structure"),a("OutboundLink")],1),t._v(" of the template repository.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("p",[t._v("You need at least")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java Development Kit 8"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("JAVA_HOME")]),t._v(" to the folder where you installed the Java JDK and add the JDK bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[a("a",{attrs:{href:"http://ant.apache.org/bindownload.cgi",target:"_blank",rel:"noopener noreferrer"}},[t._v("apache ant build framework (version >= 1.9.1)"),a("OutboundLink")],1)])]),t._v(" "),a("ul",[a("li",[t._v("Ensure to set "),a("code",[t._v("ANT_HOME")]),t._v(" to the folder where you installed ant and add the ant bin path to the Environment Variable "),a("code",[t._v("Path")])])]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/releases/download/v3.0/Setup_AsTeRICS_3_0_1.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS 3.0.1"),a("OutboundLink")],1),t._v(" installed "),a("strong",[t._v("or")]),t._v(" a snapshot of "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS"),a("OutboundLink")],1),t._v(" cloned to a parallel folder of the project.")]),t._v(" "),a("li",[t._v("A copy of the template repository (see "),a("a",{attrs:{href:"#download--clone-template-repository"}},[t._v("Download / Clone template repository")])])]),t._v(" "),a("p",[t._v("You can use an IDE for Java and Web Developers, e.g. "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(". See "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" for details.")]),t._v(" "),a("h2",{attrs:{id:"download-clone-template-repository"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#download-clone-template-repository"}},[t._v("#")]),t._v(" Download / Clone template repository")]),t._v(" "),a("p",[t._v("You can either clone the "),a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template/",target:"_blank",rel:"noopener noreferrer"}},[t._v("template repository"),a("OutboundLink")],1),t._v(" or download it as a zipped file.")]),t._v(" "),a("p",[t._v("You might also want to start based on an existing "),a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution example"),a("OutboundLink")],1),t._v(" by downloading or forking it, if your application is similar to one of them.")]),t._v(" "),a("h2",{attrs:{id:"example-1-run-project"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-1-run-project"}},[t._v("#")]),t._v(" Example 1 - Run project")]),t._v(" "),a("p",[t._v("The template repository already contains a default autostart model at "),a("code",[t._v("custom/bin/ARE/models/autostart.acs")]),t._v(", which opens the ARE webserver startpage with the system default browser.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("ant run\n")])])]),a("p",[t._v("For subsequent runs use the targets "),a("code",[t._v("APE-copy")]),t._v(" and "),a("code",[t._v("run-quick")]),t._v(" to speed up the starting.")]),t._v(" "),a("p",[t._v("If you want use "),a("code",[t._v("Eclipse")]),t._v(", please read the "),a("a",{attrs:{href:"#eclipse-installation-and-setup"}},[t._v("Eclipse installation and setup")]),t._v(" instructions.")]),t._v(" "),a("h2",{attrs:{id:"example-2-edit-and-test-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2-edit-and-test-model"}},[t._v("#")]),t._v(" Example 2 - Edit and test model")]),t._v(" "),a("p",[t._v("To edit and test the modifications immediately")]),t._v(" "),a("ol",[a("li",[t._v("Run project (see "),a("a",{attrs:{href:"#example-1---run-project"}},[t._v("Example 1")]),t._v(")")]),t._v(" "),a("li",[t._v("Double click onto model file. The ACS program should be started with the model file opened.")]),t._v(" "),a("li",[a("code",[t._v("Connect to ARE")])]),t._v(" "),a("li",[t._v("Modify model")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("TextArea.1")]),t._v(" and set "),a("code",[t._v("caption")]),t._v(" to "),a("code",[t._v("Hello World")])]),t._v(" "),a("li",[t._v("Upload and run model")]),t._v(" "),a("li",[t._v("To permanently save the modification, you "),a("strong",[t._v("must save the file with the ACS")]),t._v(" again, otherwise the modifications will be lost with the next run of the project.")])]),t._v(" "),a("h2",{attrs:{id:"asterics-model-web-application"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-model-web-application"}},[t._v("#")]),t._v(" AsTeRICS model + web application")]),t._v(" "),a("p",[t._v("In many cases you want to provide a better user interface or allow the user to parametrize your asterics solution without the need to edit the model in the ACS program. As the end user or relatives of end users might not be very technically skilled, you should provide easy configuration pages with high usability. This can be very easily achieved with web technologies.")]),t._v(" "),a("p",[t._v("The "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/wiki/AsTeRICS-webserver-document-root-specification",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS webserver document root specification"),a("OutboundLink")],1),t._v(" defines the folder structure and paths on the webserver.\nThe document root is set to the "),a("code",[t._v("ARE/web")]),t._v(" sub folder and the default start page is expected at "),a("code",[t._v("ARE/web/webapps/startpage")]),t._v(".")]),t._v(" "),a("p",[t._v("The default start page will be opened, if you start the ARE and open the URL "),a("code",[t._v("http://localhost:8081/")]),t._v(". The file "),a("code",[t._v("ARE/web/webapps/startpage/index.html")]),t._v(" contains the top and side menus and opens "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" as default iframe in the contens area.")]),t._v(" "),a("p",[t._v("You can override these pages by simply providing your own versions in the "),a("code",[t._v("custom/bin/ARE/web/webapps/startpage/")]),t._v(" folder of your project repository.\nIt is recommended to provide the actual web application in a parallel folder ("),a("code",[t._v("ARE/web/webapps/")]),t._v(") named as your project folder and redirect from within "),a("code",[t._v("start.html")]),t._v(" to "),a("code",[t._v("..//index.html")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"example-3-model-parametrization-through-web-page"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3-model-parametrization-through-web-page"}},[t._v("#")]),t._v(" Example 3 - Model parametrization through web page")]),t._v(" "),a("p",[t._v("As mentioned above, a model should be made configurable in an intuitive way, not forcing the user to edit the model in the ACS program. To achieve this you can use HTML input widgets and bind them to associated model properties. This way the value between both will be automatically synchronized during page load and model start.")]),t._v(" "),a("p",[t._v("The folder "),a("code",[t._v("ARE/web/webapps//")]),t._v(" should be used to store all web application specific files like .html files and associated model files. This way the web application folder can also be put onto a webserver online and the web application be deployed to a running ARE instance from there.")]),t._v(" "),a("ol",[a("li",[t._v("Save this "),a("a",{attrs:{href:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/sensors/ButtonGrid_test.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("ButtonGrid model file"),a("OutboundLink")],1),t._v(" to "),a("code",[t._v("ARE/web/webapps//models/")]),t._v(".")]),t._v(" "),a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and add/edit the following lines in the "),a("code",[t._v("head")]),t._v(" section of the file:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided from AsTeRICS 3.0 --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/jquery-3.2.1.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/JSmap.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/clientExample/javascript/areCommunicator.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provided by this repository, should be part of the framework later --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/webAppUtils.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("../startpage/lib/modelManipulation.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text/javascript"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Set the base URI of the running ARE instance. ")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//You could also make this configurable by the user.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setBaseURI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:8081/rest/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Define path of model file on the webserver.")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'webapps/asterics-solution-template/models/ButtonGrid_test.acs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Init window.onload function to automatically update all widgets with a model binding with the values of the currently deployed model.")]),t._v("\n\twindow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("onload"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("updateWidgetsFromDeployedModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\t\t\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("You must include "),a("code",[t._v("jquery")]),t._v(" as the only third party dependency, then "),a("code",[t._v("JSmap.js")]),t._v(" and "),a("code",[t._v("areCommunicator.js")]),t._v(" "),a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("(the REST API lib)"),a("OutboundLink")],1),t._v(". Additionally, you need "),a("code",[t._v("webAppUtils.js")]),t._v(" and "),a("code",[t._v("modelManipulation.js")]),t._v(" ("),a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("see API documentation"),a("OutboundLink")],1),t._v(") for the automatic model binding and synchronization functionality.")]),t._v(" "),a("p",[t._v("In the script section you only need 3 lines for initialization. The first one ("),a("code",[t._v("setAREBaseURI")]),t._v(") defines the address of the ARE. The second one defines the path to the model file which should be deployed when clicking onto the "),a("code",[t._v("Start model")]),t._v(" button. Finally, the third line sets the "),a("code",[t._v("window.onload")]),t._v(" function to a function which automatically loads all property values which are defined with a model binding and updates the corresponding HTML widgets automatically.")]),t._v(" "),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Add two input widgets to parametrize the text of button1 and the background color of the Buttongrid:")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- provide your input widgets here --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("ButtonGrid parametrization"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Select background color: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("select")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("background-color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "backgroundColor"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("black"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("selected")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("selected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("blue"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("cyan"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("option")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("3"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("darkgrey"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("label")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("for")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Set text of button 1: "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Button1 text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button1-text"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("placeholder")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Text Button1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Hello World"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("data-asterics-model-binding-1")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v('{"componentKey": "ButtonGrid.1","propertyKey": "buttonCaption1"}'),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])])]),a("p",[t._v("Note the "),a("strong",[t._v("data-asterics-model-binding-1")]),t._v(" attribute, it defines the binding to the plugin property of the corresponding model. So the combobox with id "),a("code",[t._v("background-color")]),t._v(" will change the background color of the plugin instance "),a("code",[t._v("ButtonGrid.1")]),t._v(".")]),t._v(" "),a("p",[t._v("Finally, there is a "),a("code",[t._v("Start Model")]),t._v(" button which calls the javascript function "),a("code",[t._v("applySettingsInXMLModelAndStart(modelFilePathOnWebserver)")]),t._v(" with a variable as parameter holding the path to the model file on the webserver hosting this page. This automatically downloads the model file from the webserver, update the plugin properties within the model file with the current values of the HTML widgets and deploys and starts the modified model.")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token special-attr"}},[a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("onclick")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token value javascript language-javascript"}},[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("applySettingsInXMLModelAndStart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("modelFilePathOnWebserver"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Description: Applies all settings and starts the model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("button"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" Start Model "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("h2",{attrs:{id:"example-4-rename-web-application-folder-and-title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4-rename-web-application-folder-and-title"}},[t._v("#")]),t._v(" Example 4 - Rename web application folder and title")]),t._v(" "),a("p",[t._v("The template repository already contains a template folder for a web application. You should rename it and change the redirection to the new folder.")]),t._v(" "),a("ol",[a("li",[t._v("Rename template folder ("),a("code",[t._v("ARE/web/webapps/asterics-solution-template")]),t._v(" ) to the name of your project folder.")]),t._v(" "),a("li",[t._v("Open "),a("code",[t._v("ARE/web/webapps/startpage/start.html")]),t._v(" and change path to redirection to the name of your project folder.")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v("\t"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("meta")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("charset")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("utf-8"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("http-equiv")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("refresh"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0; URL=..//"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("Edit "),a("code",[t._v("ARE/web/webapps//index.html")]),t._v(" and change the title and first heading (h1) to")])]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n ...\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("header")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("inner"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("h1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS Solution Hello World"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("Save files and run project")])]),t._v(" "),a("h2",{attrs:{id:"eclipse-installation-and-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-installation-and-setup"}},[t._v("#")]),t._v(" Eclipse installation and setup")]),t._v(" "),a("p",[t._v("As APE uses the ant build framework, the repository can also be used with your preferred IDE. Subsequently some recommendations of how to install and setup Eclipse for an asterics solution repository.")]),t._v(" "),a("ol",[a("li",[t._v("Install "),a("a",{attrs:{href:"http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygen3a",target:"_blank",rel:"noopener noreferrer"}},[t._v("Eclipse for Java EE developers"),a("OutboundLink")],1),t._v(" (Select "),a("strong",[t._v("same bitness")]),t._v(" as your JDK!! (x86 <-> x86 or x86_64 <-> x86_64))")])]),t._v(" "),a("h3",{attrs:{id:"eclipse-project-setup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-project-setup"}},[t._v("#")]),t._v(" Eclipse project setup")]),t._v(" "),a("ol",[a("li",[t._v("Click on "),a("code",[t._v("File/New/Project")])]),t._v(" "),a("li",[t._v("Then click on "),a("code",[t._v("Next")]),t._v(", uncheck "),a("code",[t._v("Use default location")]),t._v(" and browse to your asterics solution folder.")]),t._v(" "),a("li",[t._v("Set a "),a("code",[t._v("Project name")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Finish")])])]),t._v(" "),a("p",[t._v("Now you have an eclipse project with ant support.")]),t._v(" "),a("h4",{attrs:{id:"configure-editor-for-model-files-acs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure-editor-for-model-files-acs"}},[t._v("#")]),t._v(" Configure editor for model files (.acs)")]),t._v(" "),a("ol",[a("li",[t._v("Right click on model file, select "),a("code",[t._v("Open with/Other")])]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("External programs")]),t._v(" and browse to "),a("code",[t._v("C:\\Program Files (x86)\\AsTeRICS\\ACS\\ACS.bat")]),t._v(" (Note: "),a("strong",[t._v("ACS.bat")]),t._v(")")]),t._v(" "),a("li",[t._v("Check "),a("code",[t._v("Use it for all `*.acs file")])]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Ok")])])]),t._v(" "),a("h3",{attrs:{id:"using-ant-within-eclipse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#using-ant-within-eclipse"}},[t._v("#")]),t._v(" Using ant within eclipse")]),t._v(" "),a("h4",{attrs:{id:"run-default-target"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-default-target"}},[t._v("#")]),t._v(" Run default target")]),t._v(" "),a("p",[t._v("This is synonymous to "),a("code",[t._v("ant")]),t._v(" on the command line:")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (first entry)")])]),t._v(" "),a("h4",{attrs:{id:"run-selected-targets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#run-selected-targets"}},[t._v("#")]),t._v(" Run selected targets")]),t._v(" "),a("ol",[a("li",[t._v("Right click onto file "),a("code",[t._v("build.xml")])]),t._v(" "),a("li",[t._v("Select "),a("code",[t._v("Run As/Ant Build")]),t._v(" (second entry)")]),t._v(" "),a("li",[t._v("Click onto targets to run")]),t._v(" "),a("li",[t._v("Select order of execution at the bottom")]),t._v(" "),a("li",[t._v("Click onto "),a("code",[t._v("Apply")]),t._v(" and "),a("code",[t._v("Run")])])]),t._v(" "),a("p",[t._v("From now on, the selected targets are the default ones for subsequent calls.")]),t._v(" "),a("h2",{attrs:{id:"references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics?utf8=%E2%9C%93&q=topic%3Aexample&type=&language=",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS solution examples"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/doc/lib-js-api/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("webAppUtils.js and modelManipulation.js API documentation"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/asterics/AsTeRICS/tree/v3.0/ARE_RestAPIlibraries/clientExample/javascript",target:"_blank",rel:"noopener noreferrer"}},[t._v("the REST API lib"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://www.w3schools.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTML, CSS, Javascript documentation"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/332.9dcdc02c.js b/assets/js/332.6b518c11.js similarity index 95% rename from assets/js/332.9dcdc02c.js rename to assets/js/332.6b518c11.js index e39de5f3d8..985ecde2e6 100644 --- a/assets/js/332.9dcdc02c.js +++ b/assets/js/332.6b518c11.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[332],{980:function(t,e,o){"use strict";o.r(e);var s=o(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"at-solution-introduction-demos"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#at-solution-introduction-demos"}},[t._v("#")]),t._v(" AT Solution Introduction (Demos)")]),t._v(" "),e("p",[t._v("An AT solution is an AsTeRICS based solution consisting of one or more model files and other resources like images, web pages and config files. You can see it as a standalone SW-project which can be mantained as a git repository.")]),t._v(" "),e("p",[t._v("Here is a list of AT solution examples:")]),t._v(" "),e("p",[e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuSolutionDemos",target:"_blank",rel:"noopener noreferrer"}},[t._v("List of AT solution demos"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("An AT solution uses the "),e("RouterLink",{attrs:{to:"/develop/at-solution/APE.html"}},[t._v("AsTeRICS Packaging Environment (APE)")]),t._v(" as build infrastructure and is based on the "),e("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),e("OutboundLink")],1),t._v(", which provides the needed folder structure.")],1)])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[332],{976:function(t,e,o){"use strict";o.r(e);var s=o(2),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"at-solution-introduction-demos"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#at-solution-introduction-demos"}},[t._v("#")]),t._v(" AT Solution Introduction (Demos)")]),t._v(" "),e("p",[t._v("An AT solution is an AsTeRICS based solution consisting of one or more model files and other resources like images, web pages and config files. You can see it as a standalone SW-project which can be mantained as a git repository.")]),t._v(" "),e("p",[t._v("Here is a list of AT solution examples:")]),t._v(" "),e("p",[e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/startpage/index.html#submenuSolutionDemos",target:"_blank",rel:"noopener noreferrer"}},[t._v("List of AT solution demos"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("An AT solution uses the "),e("RouterLink",{attrs:{to:"/develop/at-solution/APE.html"}},[t._v("AsTeRICS Packaging Environment (APE)")]),t._v(" as build infrastructure and is based on the "),e("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Solution Template Repository"),e("OutboundLink")],1),t._v(", which provides the needed folder structure.")],1)])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/333.aa4c3ef3.js b/assets/js/333.aa4b646c.js similarity index 98% rename from assets/js/333.aa4c3ef3.js rename to assets/js/333.aa4b646c.js index 2fba42f609..08069d62c6 100644 --- a/assets/js/333.aa4c3ef3.js +++ b/assets/js/333.aa4b646c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[333],{982:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"coding-guidelines"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#coding-guidelines"}},[e._v("#")]),e._v(" Coding Guidelines")]),e._v(" "),t("p",[e._v("Coding guidelines are necessary to allow new developers to quickly find their through the code of the ARE. They are created in such a way to provide means for developers to understand code of each other but they also make sure that non-technical users can find their way through a model in ACS.")]),e._v(" "),t("p",[e._v("If you use Eclipse as IDE, "),t("strong",[e._v("you can import predefined clean up, code template and formatting settings")]),e._v(", which cover some of the coding guidelines (see 4.1.1).")]),e._v(" "),t("p",[e._v("The basic coding guidelines are:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Plugins, ports and properties should be named intuitively in the bundle descriptor. Only if necessary, the corresponding variables in the plugin code should be named differently. However they should adhere to the naming conventions stated in section 4.1.3 and different names should be commented in the code sections which translate the name into the variable (getInputPort(), getRuntimeProperty() …)")])]),e._v(" "),t("li",[t("p",[e._v("Variable names should always use the Java naming conventions")])]),e._v(" "),t("li",[t("p",[e._v("Every method should be preceded by a JavaDoc compatible header in order to allow new developer to grasp what is going on in it")])]),e._v(" "),t("li",[t("p",[e._v("Where reasonable code comments should be added to improve understanding of code internals")])]),e._v(" "),t("li",[t("p",[e._v("Code should be indented by four spaces per indentations stage. Indentations should be done using space and "),t("strong",[e._v("not tabs")]),e._v(". Tabs should be converted to spaces.")])]),e._v(" "),t("li",[t("p",[e._v("Opening parentheses should be placed in the same line")])])]),e._v(" "),t("h2",{attrs:{id:"eclipse-code-style-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-code-style-settings"}},[e._v("#")]),e._v(" Eclipse Code Style Settings")]),e._v(" "),t("p",[e._v("If you use Eclipse as IDE, you can import predefined clean up, code template and formatting settings. The files are located in the AsTeRICS/ARE folder of the checkout github repository.")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("Eclipse - Code Style - Clean Up.xml")]),e._v(": Definitions for cleanup, e.g. remove unused imports and unused variables")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Eclipse - Code Style - Code Templates.xml")]),e._v(": Contains default file header including license information (see 4.1.5) and default class comment (see 4.1.6).")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Eclipse - Code Style - Formatter.xml")]),e._v(": Contains code formatting definitions e.g. 4 spaces instead of tabs.")])])]),e._v(" "),t("p",[e._v("You can import the settings by")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("selecting the project folder and clicking right mouse button")])]),e._v(" "),t("li",[t("p",[e._v("opening ‘Properties’ entry of popup menu")])]),e._v(" "),t("li",[t("p",[e._v("Opening ‘Java Code Style’/Clean Up|Code Templates|Formatter respectively")])])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[333],{980:function(e,t,n){"use strict";n.r(t);var o=n(2),s=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"coding-guidelines"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#coding-guidelines"}},[e._v("#")]),e._v(" Coding Guidelines")]),e._v(" "),t("p",[e._v("Coding guidelines are necessary to allow new developers to quickly find their through the code of the ARE. They are created in such a way to provide means for developers to understand code of each other but they also make sure that non-technical users can find their way through a model in ACS.")]),e._v(" "),t("p",[e._v("If you use Eclipse as IDE, "),t("strong",[e._v("you can import predefined clean up, code template and formatting settings")]),e._v(", which cover some of the coding guidelines (see 4.1.1).")]),e._v(" "),t("p",[e._v("The basic coding guidelines are:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Plugins, ports and properties should be named intuitively in the bundle descriptor. Only if necessary, the corresponding variables in the plugin code should be named differently. However they should adhere to the naming conventions stated in section 4.1.3 and different names should be commented in the code sections which translate the name into the variable (getInputPort(), getRuntimeProperty() …)")])]),e._v(" "),t("li",[t("p",[e._v("Variable names should always use the Java naming conventions")])]),e._v(" "),t("li",[t("p",[e._v("Every method should be preceded by a JavaDoc compatible header in order to allow new developer to grasp what is going on in it")])]),e._v(" "),t("li",[t("p",[e._v("Where reasonable code comments should be added to improve understanding of code internals")])]),e._v(" "),t("li",[t("p",[e._v("Code should be indented by four spaces per indentations stage. Indentations should be done using space and "),t("strong",[e._v("not tabs")]),e._v(". Tabs should be converted to spaces.")])]),e._v(" "),t("li",[t("p",[e._v("Opening parentheses should be placed in the same line")])])]),e._v(" "),t("h2",{attrs:{id:"eclipse-code-style-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eclipse-code-style-settings"}},[e._v("#")]),e._v(" Eclipse Code Style Settings")]),e._v(" "),t("p",[e._v("If you use Eclipse as IDE, you can import predefined clean up, code template and formatting settings. The files are located in the AsTeRICS/ARE folder of the checkout github repository.")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("Eclipse - Code Style - Clean Up.xml")]),e._v(": Definitions for cleanup, e.g. remove unused imports and unused variables")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Eclipse - Code Style - Code Templates.xml")]),e._v(": Contains default file header including license information (see 4.1.5) and default class comment (see 4.1.6).")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Eclipse - Code Style - Formatter.xml")]),e._v(": Contains code formatting definitions e.g. 4 spaces instead of tabs.")])])]),e._v(" "),t("p",[e._v("You can import the settings by")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("selecting the project folder and clicking right mouse button")])]),e._v(" "),t("li",[t("p",[e._v("opening ‘Properties’ entry of popup menu")])]),e._v(" "),t("li",[t("p",[e._v("Opening ‘Java Code Style’/Clean Up|Code Templates|Formatter respectively")])])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/335.ba94e8fe.js b/assets/js/335.fd12f257.js similarity index 99% rename from assets/js/335.ba94e8fe.js rename to assets/js/335.fd12f257.js index 3d2f7f726b..77bf213cd0 100644 --- a/assets/js/335.ba94e8fe.js +++ b/assets/js/335.fd12f257.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[335],{987:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"plugin-development-averager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plugin-development-averager"}},[t._v("#")]),t._v(" Plugin Development: Averager")]),t._v(" "),s("h2",{attrs:{id:"step-by-step-implementation-averager-processor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#step-by-step-implementation-averager-processor"}},[t._v("#")]),t._v(" Step-by-Step implementation: Averager processor")]),t._v(" "),s("p",[t._v("In the following, the implementation on a simpe “averager” component is described. This component realizes some simple processing functionality: It collects its most recent input from one input port and produces its average at one output port. The number of samples to be stored and used for the computation of the average is controlled by a property.")]),t._v(" "),s("p",[t._v("The component shall have a single input port (named “in_1”), a single output port (named “out_1), and a single property (named “buffer-size”) which has the type “integer” and the default value “50”.")]),t._v(" "),s("p",[t._v("Using the PluginCreationWizard, the bundle descriptor, the Manifest file, the build script and the skeleton for the JAVA-code can be generated (see section3.1).")]),t._v(" "),s("p",[t._v("Then the actual Java-Code which implements the plugin’s functionality can be added.")]),t._v(" "),s("p",[t._v("The functionality of this component is quite simple: It takes as input integer values, which are queued in a buffer in a first in, first out order (FIFO). Whenever a new value is added, the average of the buffer value is computed and provided in the output. The size of the buffer is controlled by the “buffer-size” property. A possible implementation is shown below.")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" buffer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"buffer-size"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("equalsIgnoreCase")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" oldValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("instanceof")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// truncate unnecessary tail elements")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Invalid property value for "')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" oldValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n\n\n \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addFirst")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("float")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0f")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Math")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("round")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("InputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("byteArrayToInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n outputPort1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToByteArray")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("OutputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeOutputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The implementation details above build upon the code which is generated by the AsTeRICS PluginCreationWizard tool. Specifically, the above methods belong to the class of the desired “Averager” plugin, which extends and implements the abstract class “AbstractRuntimeComponentInstance”. This class provides some standard implementation of the lifecycle support methods.")])]),t._v(" "),s("p",[t._v("The implementations of the input and output ports implement or override that of the “IRuntimeInputPort” and “DefaultRuntimeOutputPort” respectively. In the first case, the “receiveData” method is overridden so that the input bytes are converted to an integer, then processed using the local, private method “addInt”, and finally delegated to the output port. The latter has actually no implementation. A dummy implementation is used to illustrated overriding the “sendData” method, although this could be avoided altogether.")]),t._v(" "),s("p",[t._v("The private method “addInt” realized the core functionality of the averager component. Finally, the get/set property value methods are implemented to allow for getting/setting the value of the “buffer-size” property, in a straightforward manner.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[335],{986:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"plugin-development-averager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plugin-development-averager"}},[t._v("#")]),t._v(" Plugin Development: Averager")]),t._v(" "),s("h2",{attrs:{id:"step-by-step-implementation-averager-processor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#step-by-step-implementation-averager-processor"}},[t._v("#")]),t._v(" Step-by-Step implementation: Averager processor")]),t._v(" "),s("p",[t._v("In the following, the implementation on a simpe “averager” component is described. This component realizes some simple processing functionality: It collects its most recent input from one input port and produces its average at one output port. The number of samples to be stored and used for the computation of the average is controlled by a property.")]),t._v(" "),s("p",[t._v("The component shall have a single input port (named “in_1”), a single output port (named “out_1), and a single property (named “buffer-size”) which has the type “integer” and the default value “50”.")]),t._v(" "),s("p",[t._v("Using the PluginCreationWizard, the bundle descriptor, the Manifest file, the build script and the skeleton for the JAVA-code can be generated (see section3.1).")]),t._v(" "),s("p",[t._v("Then the actual Java-Code which implements the plugin’s functionality can be added.")]),t._v(" "),s("p",[t._v("The functionality of this component is quite simple: It takes as input integer values, which are queued in a buffer in a first in, first out order (FIFO). Whenever a new value is added, the average of the buffer value is computed and provided in the output. The size of the buffer is controlled by the “buffer-size” property. A possible implementation is shown below.")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" buffer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinkedList")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("DEFAULT_BUFFER_SIZE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setRuntimePropertyValue")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"buffer-size"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("equalsIgnoreCase")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),t._v(" oldValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("newValue "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("instanceof")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Integer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// truncate unnecessary tail elements")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bufferSize "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AstericsErrorHandling")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instance"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reportError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Invalid property value for "')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("propertyName"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v("newValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" oldValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n\n\n \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("final")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addFirst")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" bufferSize"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("float")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0f")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Math")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("round")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sum "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" buffer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("InputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("IRuntimeInputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("receiveData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" in "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("byteArrayToInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n outputPort1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ConversionUtils")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("intToByteArray")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addInt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("in"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("OutputPort1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("DefaultRuntimeOutputPort")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("byte")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The implementation details above build upon the code which is generated by the AsTeRICS PluginCreationWizard tool. Specifically, the above methods belong to the class of the desired “Averager” plugin, which extends and implements the abstract class “AbstractRuntimeComponentInstance”. This class provides some standard implementation of the lifecycle support methods.")])]),t._v(" "),s("p",[t._v("The implementations of the input and output ports implement or override that of the “IRuntimeInputPort” and “DefaultRuntimeOutputPort” respectively. In the first case, the “receiveData” method is overridden so that the input bytes are converted to an integer, then processed using the local, private method “addInt”, and finally delegated to the output port. The latter has actually no implementation. A dummy implementation is used to illustrated overriding the “sendData” method, although this could be avoided altogether.")]),t._v(" "),s("p",[t._v("The private method “addInt” realized the core functionality of the averager component. Finally, the get/set property value methods are implemented to allow for getting/setting the value of the “buffer-size” property, in a straightforward manner.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/336.980d1dd2.js b/assets/js/336.7899adb1.js similarity index 98% rename from assets/js/336.980d1dd2.js rename to assets/js/336.7899adb1.js index 9490574e59..f2e278b93d 100644 --- a/assets/js/336.980d1dd2.js +++ b/assets/js/336.7899adb1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[336],{990:function(e,t,r){"use strict";r.r(t);var n=r(2),o=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"about-us"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#about-us"}},[e._v("#")]),e._v(" About Us")]),e._v(" "),t("p",[e._v("The AsTeRICS framework was initially developed from 2010 to 2013 by an international consortium, led by "),t("a",{attrs:{href:"https://www.ki-i.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("KI-I"),t("OutboundLink")],1),e._v(". The technical management was done by "),t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/asterics/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("UAS Technikum Wien"),t("OutboundLink")],1),e._v(". The project was funded by the European Commission under the Seventh Framework Programme for Research and Technological Development (FP7 - 2007-2013). G.A.No. 247730.\nPlease go to the "),t("a",{attrs:{href:"http://project.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS project"),t("OutboundLink")],1),e._v(" web page for more details.")]),e._v(" "),t("p",[e._v("Since 2013 there were many follow-up projects, with important improvements to the AsTeRICS framework. Please find below a list of the involved projects in chronological order:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/astericsacademy/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Academy"),t("OutboundLink")],1),e._v(", 2013-2016, grant nr. 14-02, MA23, City of Vienna")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/prosperity4all/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prosperity4All"),t("OutboundLink")],1),e._v(", 2014-2018, grant nr. 610510, FP7, European Union")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/torades/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("ToRaDes"),t("OutboundLink")],1),e._v(", 2016-2019, grant nr. 18-04, MA23, City of Vienna")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://studyathome.technikum-wien.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("StudyATHome Internationally"),t("OutboundLink")],1),e._v(", 2018-2022, grant nr. 22-07, MA23, City of Vienna")])]),e._v(" "),t("h2",{attrs:{id:"contributions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contributions"}},[e._v("#")]),e._v(" Contributions")]),e._v(" "),t("p",[e._v("If you want to contribute to the project, please read the "),t("a",{attrs:{href:"Contribute"}},[e._v("contribute page")]),e._v(" first.")]),e._v(" "),t("h2",{attrs:{id:"partner-organizations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#partner-organizations"}},[e._v("#")]),e._v(" Partner Organizations")]),e._v(" "),t("p",[e._v("The projects above were initiated and executed by the following partner organizations:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.ki-i.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("KI-I"),t("OutboundLink")],1),e._v(", Competence Network Information Technology to Support the Integration of People with Disabilities")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[336],{988:function(e,t,r){"use strict";r.r(t);var n=r(2),o=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"about-us"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#about-us"}},[e._v("#")]),e._v(" About Us")]),e._v(" "),t("p",[e._v("The AsTeRICS framework was initially developed from 2010 to 2013 by an international consortium, led by "),t("a",{attrs:{href:"https://www.ki-i.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("KI-I"),t("OutboundLink")],1),e._v(". The technical management was done by "),t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/asterics/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("UAS Technikum Wien"),t("OutboundLink")],1),e._v(". The project was funded by the European Commission under the Seventh Framework Programme for Research and Technological Development (FP7 - 2007-2013). G.A.No. 247730.\nPlease go to the "),t("a",{attrs:{href:"http://project.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS project"),t("OutboundLink")],1),e._v(" web page for more details.")]),e._v(" "),t("p",[e._v("Since 2013 there were many follow-up projects, with important improvements to the AsTeRICS framework. Please find below a list of the involved projects in chronological order:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/astericsacademy/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Academy"),t("OutboundLink")],1),e._v(", 2013-2016, grant nr. 14-02, MA23, City of Vienna")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/prosperity4all/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prosperity4All"),t("OutboundLink")],1),e._v(", 2014-2018, grant nr. 610510, FP7, European Union")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://embsys.technikum-wien.at/projects/torades/index.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("ToRaDes"),t("OutboundLink")],1),e._v(", 2016-2019, grant nr. 18-04, MA23, City of Vienna")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://studyathome.technikum-wien.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("StudyATHome Internationally"),t("OutboundLink")],1),e._v(", 2018-2022, grant nr. 22-07, MA23, City of Vienna")])]),e._v(" "),t("h2",{attrs:{id:"contributions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contributions"}},[e._v("#")]),e._v(" Contributions")]),e._v(" "),t("p",[e._v("If you want to contribute to the project, please read the "),t("a",{attrs:{href:"Contribute"}},[e._v("contribute page")]),e._v(" first.")]),e._v(" "),t("h2",{attrs:{id:"partner-organizations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#partner-organizations"}},[e._v("#")]),e._v(" Partner Organizations")]),e._v(" "),t("p",[e._v("The projects above were initiated and executed by the following partner organizations:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.ki-i.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("KI-I"),t("OutboundLink")],1),e._v(", Competence Network Information Technology to Support the Integration of People with Disabilities")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/339.bb78179d.js b/assets/js/339.1dae1b25.js similarity index 98% rename from assets/js/339.bb78179d.js rename to assets/js/339.1dae1b25.js index 6f880151aa..981ffd8888 100644 --- a/assets/js/339.bb78179d.js +++ b/assets/js/339.1dae1b25.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[339],{993:function(e,t,a){"use strict";a.r(t);var n=a(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"legal-notice"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#legal-notice"}},[e._v("#")]),e._v(" Legal Notice")]),e._v(" "),t("p",[e._v("Obligatory information according to § 25 of the Austrian Mediengesetz (media law) and according § 5 of the Austrian E-Commerce-Gesetz (E-commerce law).")]),e._v(" "),t("h2",{attrs:{id:"publisher-and-editorial-responsibility"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#publisher-and-editorial-responsibility"}},[e._v("#")]),e._v(" Publisher and editorial responsibility")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Verein Fachhochschule Technikum Wien\nZVR-Zahl 074476426\nGeschäftsführung\n\nHöchstädtplatz 6\n1200 Wien \nT: +43 1 333 40 77-0\nUID-Nummer: ATU65565658\n")])])]),t("p",[e._v("Contact: "),t("a",{attrs:{href:"mailto:info@technikum-wien.at"}},[e._v("E-Mail")])]),e._v(" "),t("p",[e._v("Also see the "),t("a",{attrs:{href:"https://www.technikum-wien.at/impressum/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Impressum of the Technikum Wien webpage"),t("OutboundLink")],1),e._v(", for further information.")]),e._v(" "),t("h2",{attrs:{id:"responsible-for-content-webmaster"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#responsible-for-content-webmaster"}},[e._v("#")]),e._v(" Responsible for Content & Webmaster")]),e._v(" "),t("p",[e._v("Project: "),t("a",{attrs:{href:"https://studyathome.technikum-wien.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("StudyATHome Internationally"),t("OutboundLink")],1),t("br"),e._v("\nLead: Martin Deinhofer,"),t("a",{attrs:{href:"mailto:studyathome@technikum-wien.at"}},[e._v("E-Mail")])]),e._v(" "),t("h2",{attrs:{id:"disclaimer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[e._v("#")]),e._v(" Disclaimer")]),e._v(" "),t("p",[e._v("The UAS Technikum Wien makes every effort to ensure that the material contained on its website is current, complete and correct. Despite this, errors and mistakes cannot be completely ruled out. The UAS Technikum Wien does not accept liability for the relevance, accuracy or completeness of the information and material offered on its website.")]),e._v(" "),t("p",[e._v("Links to external websites have been chosen carefully. As they are outside the control of the UAS Technikum Wien, the UAS Technikum Wien accepts no responsibility for these sites.")]),e._v(" "),t("h2",{attrs:{id:"copyright"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#copyright"}},[e._v("#")]),e._v(" Copyright")]),e._v(" "),t("p",[e._v("Copyright and legal right of use for texts, graphics, design, und source code belong to the UAS Technikum Wien, so does the legal right for the photos, if not linked from external websites.")]),e._v(" "),t("p",[e._v("Issuing, usage and disclosure of information for not commercial reasons is enabled, as long as the content remains unchanged and the source is mentioned (Source: UAS Technikum Wien). The layout of the homepage, graphics and pictures used and the collection of individual contributions are protected by copyright.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[339],{990:function(e,t,a){"use strict";a.r(t);var n=a(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"legal-notice"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#legal-notice"}},[e._v("#")]),e._v(" Legal Notice")]),e._v(" "),t("p",[e._v("Obligatory information according to § 25 of the Austrian Mediengesetz (media law) and according § 5 of the Austrian E-Commerce-Gesetz (E-commerce law).")]),e._v(" "),t("h2",{attrs:{id:"publisher-and-editorial-responsibility"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#publisher-and-editorial-responsibility"}},[e._v("#")]),e._v(" Publisher and editorial responsibility")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Verein Fachhochschule Technikum Wien\nZVR-Zahl 074476426\nGeschäftsführung\n\nHöchstädtplatz 6\n1200 Wien \nT: +43 1 333 40 77-0\nUID-Nummer: ATU65565658\n")])])]),t("p",[e._v("Contact: "),t("a",{attrs:{href:"mailto:info@technikum-wien.at"}},[e._v("E-Mail")])]),e._v(" "),t("p",[e._v("Also see the "),t("a",{attrs:{href:"https://www.technikum-wien.at/impressum/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Impressum of the Technikum Wien webpage"),t("OutboundLink")],1),e._v(", for further information.")]),e._v(" "),t("h2",{attrs:{id:"responsible-for-content-webmaster"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#responsible-for-content-webmaster"}},[e._v("#")]),e._v(" Responsible for Content & Webmaster")]),e._v(" "),t("p",[e._v("Project: "),t("a",{attrs:{href:"https://studyathome.technikum-wien.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("StudyATHome Internationally"),t("OutboundLink")],1),t("br"),e._v("\nLead: Martin Deinhofer,"),t("a",{attrs:{href:"mailto:studyathome@technikum-wien.at"}},[e._v("E-Mail")])]),e._v(" "),t("h2",{attrs:{id:"disclaimer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[e._v("#")]),e._v(" Disclaimer")]),e._v(" "),t("p",[e._v("The UAS Technikum Wien makes every effort to ensure that the material contained on its website is current, complete and correct. Despite this, errors and mistakes cannot be completely ruled out. The UAS Technikum Wien does not accept liability for the relevance, accuracy or completeness of the information and material offered on its website.")]),e._v(" "),t("p",[e._v("Links to external websites have been chosen carefully. As they are outside the control of the UAS Technikum Wien, the UAS Technikum Wien accepts no responsibility for these sites.")]),e._v(" "),t("h2",{attrs:{id:"copyright"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#copyright"}},[e._v("#")]),e._v(" Copyright")]),e._v(" "),t("p",[e._v("Copyright and legal right of use for texts, graphics, design, und source code belong to the UAS Technikum Wien, so does the legal right for the photos, if not linked from external websites.")]),e._v(" "),t("p",[e._v("Issuing, usage and disclosure of information for not commercial reasons is enabled, as long as the content remains unchanged and the source is mentioned (Source: UAS Technikum Wien). The layout of the homepage, graphics and pictures used and the collection of individual contributions are protected by copyright.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/34.9c5ccfe2.js b/assets/js/34.7452418f.js similarity index 88% rename from assets/js/34.9c5ccfe2.js rename to assets/js/34.7452418f.js index 1176b71449..291111df4c 100644 --- a/assets/js/34.9c5ccfe2.js +++ b/assets/js/34.7452418f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{1012:function(e,t,a){"use strict";a.r(t);var n=a(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"external-tools"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#external-tools"}},[e._v("#")]),e._v(" External Tools")]),e._v(" "),t("p",[e._v("Within the tab "),t("em",[e._v("Miscellaneous")]),e._v(" (Misc.), external tools can be launched. The three integrated external tools are the "),t("em",[e._v("Plugin Creation Wizard")]),e._v(", the "),t("em",[e._v("Plugin Activation Wizard")]),e._v(" and the "),t("em",[e._v("Language Translation File Creator")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(280),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),e._v(" "),t("p",[e._v("The Miscellaneous Tab")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("The "),t("em",[e._v("Plugin Creation Wizard")]),e._v(" is an external tool to create the stub for a new plugin. All characteristics, like input and output ports, events and properties can be defined. As output, a java-class and all necessary files for an ARE plugin will be created. The figure below shows a screenshot of the tool.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(458),alt:"Screenshot: The Plugin Creation Wizard",title:"Screenshot: The Plugin Creation Wizard"}})]),e._v(" "),t("p",[e._v("The Plugin Creation Wizard")])]),e._v(" "),t("li",[t("p",[e._v("The "),t("em",[e._v("Plugin Activation Wizard")]),e._v(" is an external tool to create bundle files (describing the interface of a plugin) and configuration files for the ARE. Therefore, the source code folder of the ARE will be scanned. The figure below shows a screenshot of the tool.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(459),alt:"Screenshot: Plugin Activation Wizard",title:"Screenshot: Plugin Activation Wizard"}})]),e._v(" "),t("p",[e._v("Plugin Activation Wizard")])]),e._v(" "),t("li",[t("p",[e._v("The "),t("em",[e._v("Create Language Translation File")]),e._v(" opens another external tool for creating language translation files for the properties (as shown in the figure below). This tool scans the bundle file and lists all properties in a text file, which can be extended with the translation for any language. This text file will be loaded at startup of the ACS, so also the components now have multi language support. After selecting a bundle file, the destination file has to be set. If the destination file (a language translation file) already exists, it can be chosen, if the file should be overwritten or integrated into an existing language file. The Constants are strings, occurring in each plugin. By using the constants, they just must be translated once. All other strings must be translated in the created textfile, where all strings, ending with equal to (=) must be translated. Example:"),t("br"),e._v("\nFrequency="),t("br"),e._v("\nAmplitude="),t("br"),e._v("\nWhen the translation is finished, the language file must be copied to the "),t("em",[e._v("lang")]),e._v(" subfolder within the ACS folder (if the file isn’t there already). The file must be named as the supported languages of the ACS. At the moment, en-GB, de-AT, es-ES and pl-PL are supported. Furthermore, the file must have the ending .txt. For the German language file, it would look like "),t("em",[e._v("de-AT.txt")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(460),alt:"Screenshot: Language File Creator",title:"Screenshot: Language File Creator"}})]),e._v(" "),t("p",[e._v("Language File Creator")])])])])}),[],!1,null,null,null);t.default=i.exports},280:function(e,t,a){e.exports=a.p+"assets/img/miscellaneous_tab.50018162.png"},458:function(e,t,a){e.exports=a.p+"assets/img/plugin_creator.c6a9fc73.png"},459:function(e,t,a){e.exports=a.p+"assets/img/plugin_activation.d4b28470.png"},460:function(e,t,a){e.exports=a.p+"assets/img/languagefilecreator.f9cc7299.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{1014:function(e,t,a){"use strict";a.r(t);var n=a(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"external-tools"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#external-tools"}},[e._v("#")]),e._v(" External Tools")]),e._v(" "),t("p",[e._v("Within the tab "),t("em",[e._v("Miscellaneous")]),e._v(" (Misc.), external tools can be launched. The three integrated external tools are the "),t("em",[e._v("Plugin Creation Wizard")]),e._v(", the "),t("em",[e._v("Plugin Activation Wizard")]),e._v(" and the "),t("em",[e._v("Language Translation File Creator")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(280),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),e._v(" "),t("p",[e._v("The Miscellaneous Tab")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("The "),t("em",[e._v("Plugin Creation Wizard")]),e._v(" is an external tool to create the stub for a new plugin. All characteristics, like input and output ports, events and properties can be defined. As output, a java-class and all necessary files for an ARE plugin will be created. The figure below shows a screenshot of the tool.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(461),alt:"Screenshot: The Plugin Creation Wizard",title:"Screenshot: The Plugin Creation Wizard"}})]),e._v(" "),t("p",[e._v("The Plugin Creation Wizard")])]),e._v(" "),t("li",[t("p",[e._v("The "),t("em",[e._v("Plugin Activation Wizard")]),e._v(" is an external tool to create bundle files (describing the interface of a plugin) and configuration files for the ARE. Therefore, the source code folder of the ARE will be scanned. The figure below shows a screenshot of the tool.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(462),alt:"Screenshot: Plugin Activation Wizard",title:"Screenshot: Plugin Activation Wizard"}})]),e._v(" "),t("p",[e._v("Plugin Activation Wizard")])]),e._v(" "),t("li",[t("p",[e._v("The "),t("em",[e._v("Create Language Translation File")]),e._v(" opens another external tool for creating language translation files for the properties (as shown in the figure below). This tool scans the bundle file and lists all properties in a text file, which can be extended with the translation for any language. This text file will be loaded at startup of the ACS, so also the components now have multi language support. After selecting a bundle file, the destination file has to be set. If the destination file (a language translation file) already exists, it can be chosen, if the file should be overwritten or integrated into an existing language file. The Constants are strings, occurring in each plugin. By using the constants, they just must be translated once. All other strings must be translated in the created textfile, where all strings, ending with equal to (=) must be translated. Example:"),t("br"),e._v("\nFrequency="),t("br"),e._v("\nAmplitude="),t("br"),e._v("\nWhen the translation is finished, the language file must be copied to the "),t("em",[e._v("lang")]),e._v(" subfolder within the ACS folder (if the file isn’t there already). The file must be named as the supported languages of the ACS. At the moment, en-GB, de-AT, es-ES and pl-PL are supported. Furthermore, the file must have the ending .txt. For the German language file, it would look like "),t("em",[e._v("de-AT.txt")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(463),alt:"Screenshot: Language File Creator",title:"Screenshot: Language File Creator"}})]),e._v(" "),t("p",[e._v("Language File Creator")])])])])}),[],!1,null,null,null);t.default=i.exports},280:function(e,t,a){e.exports=a.p+"assets/img/miscellaneous_tab.50018162.png"},461:function(e,t,a){e.exports=a.p+"assets/img/plugin_creator.c6a9fc73.png"},462:function(e,t,a){e.exports=a.p+"assets/img/plugin_activation.d4b28470.png"},463:function(e,t,a){e.exports=a.p+"assets/img/languagefilecreator.f9cc7299.png"}}]); \ No newline at end of file diff --git a/assets/js/340.dfd1d45a.js b/assets/js/340.e9933f79.js similarity index 77% rename from assets/js/340.dfd1d45a.js rename to assets/js/340.e9933f79.js index a35527b906..9e83593a76 100644 --- a/assets/js/340.dfd1d45a.js +++ b/assets/js/340.e9933f79.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[340],{996:function(t,n,s){"use strict";s.r(n);var e=s(2),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[340],{993:function(t,n,s){"use strict";s.r(n);var e=s(2),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/342.aaa09c82.js b/assets/js/342.1b2d53dd.js similarity index 96% rename from assets/js/342.aaa09c82.js rename to assets/js/342.1b2d53dd.js index 214e3675af..36b9c7a15a 100644 --- a/assets/js/342.aaa09c82.js +++ b/assets/js/342.1b2d53dd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[342],{999:function(t,s,o){"use strict";o.r(s);var e=o(2),i=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"get-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-started"}},[t._v("#")]),t._v(" Get Started")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),s("p",[t._v("If you are a "),s("strong",[t._v("person with disabilities")]),t._v(", an "),s("strong",[t._v("occupational therapist")]),t._v(" or someone who simply wants to use existing solutions, this is the right place for you.")]),t._v(" "),s("p",[t._v("In this section you will get an overview of AsTeRICS elements and learn how to install it and find existing solutions.")])]),t._v(" "),s("h2",{attrs:{id:"go-to"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#go-to"}},[t._v("#")]),t._v(" Go to")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"./Overview"}},[s("strong",[t._v("Overview")])]),t._v(" to get an overview of AsTeRICS elements and executables.")]),t._v(" "),s("li",[s("a",{attrs:{href:"./Installation"}},[s("strong",[t._v("Installation")])]),t._v(" to learn how to install AsTeRICS on your platform.")]),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/solutions/"}},[s("strong",[t._v("Solutions")])]),t._v(" to discover existing solutions for people with disabilities.")],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/customize/"}},[s("strong",[t._v("Customize")])]),t._v(" to modify existing solutions or create new ones.")],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[342],{995:function(t,s,o){"use strict";o.r(s);var e=o(2),i=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"get-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-started"}},[t._v("#")]),t._v(" Get Started")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),s("p",[t._v("If you are a "),s("strong",[t._v("person with disabilities")]),t._v(", an "),s("strong",[t._v("occupational therapist")]),t._v(" or someone who simply wants to use existing solutions, this is the right place for you.")]),t._v(" "),s("p",[t._v("In this section you will get an overview of AsTeRICS elements and learn how to install it and find existing solutions.")])]),t._v(" "),s("h2",{attrs:{id:"go-to"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#go-to"}},[t._v("#")]),t._v(" Go to")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"./Overview"}},[s("strong",[t._v("Overview")])]),t._v(" to get an overview of AsTeRICS elements and executables.")]),t._v(" "),s("li",[s("a",{attrs:{href:"./Installation"}},[s("strong",[t._v("Installation")])]),t._v(" to learn how to install AsTeRICS on your platform.")]),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/solutions/"}},[s("strong",[t._v("Solutions")])]),t._v(" to discover existing solutions for people with disabilities.")],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/customize/"}},[s("strong",[t._v("Customize")])]),t._v(" to modify existing solutions or create new ones.")],1)])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/344.1c3a19ac.js b/assets/js/344.1c3a19ac.js deleted file mode 100644 index 643a998b7d..0000000000 --- a/assets/js/344.1c3a19ac.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[344],{1001:function(t,a,e){"use strict";e.r(a);var s=e(2),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"website-markdown-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#website-markdown-guide"}},[t._v("#")]),t._v(" Website Markdown Guide")]),t._v(" "),a("p",[t._v("This guide describes the supported markdown syntax provided by the "),a("a",{attrs:{href:"https://www.npmjs.com/package/@asterics-docs/vuepress-theme-docs",target:"_blank",rel:"noopener noreferrer"}},[t._v("theme"),a("OutboundLink")],1),t._v(" of the "),a("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.asterics.eu"),a("OutboundLink")],1),t._v(":")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#markdown"}},[t._v("Markdown")]),t._v(": supported markdown syntax.")]),t._v(" "),a("li",[a("a",{attrs:{href:"#frontmatter"}},[t._v("Frontmatter")]),t._v(": supported frontmatter properties.")]),t._v(" "),a("li",[a("a",{attrs:{href:"#layouts"}},[t._v("Layouts")]),t._v(": available (custom) layouts.")]),t._v(" "),a("li",[a("a",{attrs:{href:"#global-components"}},[t._v("Global Components")]),t._v(": available (custom) vue components.")])]),t._v(" "),a("p",[t._v("All markdown files are compiled with "),a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it"),a("OutboundLink")],1),t._v(" and a selection of default and custom plugins.\nTo experiment with the supported syntax visit "),a("a",{attrs:{href:"https://markdown-it.github.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it demo"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"plugins-default"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins-default"}},[t._v("#")]),t._v(" Plugins (default)")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-sub#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-sub"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-sup#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-sup"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-footnote#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-footnote"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-deflist#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-deflist"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-abbr#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-abbr"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-emoji#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-emoji"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"plugins-custom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins-custom"}},[t._v("#")]),t._v(" Plugins (custom)")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/mcecot/markdown-it-checkbox#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-checkbox"),a("OutboundLink")],1),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("[ ] unchecked\n[x] checked\n")])])]),a("p",[a("input",{attrs:{type:"checkbox",id:"checkbox3"}}),a("label",{attrs:{for:"checkbox3"}},[t._v("unchecked")]),a("br"),t._v(" "),a("input",{attrs:{type:"checkbox",id:"checkbox2",checked:"true"}}),a("label",{attrs:{for:"checkbox2"}},[t._v("checked")])])])])]),t._v(" "),a("ul",[a("li",[a("p",[a("a",{attrs:{href:"https://github.com/tatsy/markdown-it-imsize#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-imsize"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("![AsTeRICS Logo](/img/asterics-logo.svg =200x200)\n![AsTeRICS Logo](/img/asterics-logo.svg =400x400)\n")])])]),a("p",[a("img",{attrs:{src:"/img/asterics-logo.svg",alt:"AsTeRICS Logo",width:"200",height:"200"}}),a("br"),t._v(" "),a("img",{attrs:{src:"/img/asterics-logo.svg",alt:"AsTeRICS Logo",width:"400",height:"400"}})])])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/jGleitz/markdown-it-kbd#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-kbd"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("[[x]]\n[[Ctrl]]+[[Alt]]+[[Del]]\n")])])]),a("p",[a("kbd",[t._v("x")]),a("br"),t._v(" "),a("kbd",[t._v("Ctrl")]),t._v("+"),a("kbd",[t._v("Alt")]),t._v("+"),a("kbd",[t._v("Del")])])])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/arve0/markdown-it-attrs#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-attrs"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("# header {.style-me}\nparagraph *style me*{.red} more text\n")])])]),a("p",[a("code",[t._v('

      header

      ')]),a("br"),t._v(" "),a("code",[t._v('

      paragraph style me more text

      ')])])])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/nunof07/markdown-it-fontawesome#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-fontawesome"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Hello World! :fa-flag:\nGoogle :fab-google:\nGitHub :fab-github:\n")])])]),a("p",[t._v("Hello World! "),a("i",{staticClass:"fa fa-flag"}),a("br"),t._v("\nGoogle "),a("i",{staticClass:"fab fa-google"}),a("br"),t._v("\nGitHub "),a("i",{staticClass:"fab fa-github"})])])])]),t._v(" "),a("h2",{attrs:{id:"vuepress-markdown-extensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vuepress-markdown-extensions"}},[t._v("#")]),t._v(" VuePress Markdown Extensions")]),t._v(" "),a("p",[t._v("The vuepress theme provides the markdown extensions described above, see "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/markdown.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown extensions"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("For example you can create "),a("code",[t._v("custom containers")]),t._v(" rendered as green info, yellow warning or red warning. You can also define custom titles for the boxes.")]),t._v(" "),a("h3",{attrs:{id:"input"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#input"}},[t._v("#")]),t._v(" Input")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("::: tip\nThis is a tip\n:::\n\n::: warning\nThis is a warning\n:::\n\n::: danger\nThis is a dangerous warning\n:::\n\n::: details\nThis is a details block, which does not work in IE / Edge\n:::\n")])])]),a("h3",{attrs:{id:"output"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#output"}},[t._v("#")]),t._v(" Output")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This is a tip")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("This is a warning")])]),t._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[t._v("DANGER")]),t._v(" "),a("p",[t._v("This is a dangerous warning")])]),t._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[t._v("DETAILS")]),t._v(" "),a("p",[t._v("This is a details block, which does not work in IE / Edge")])]),t._v(" "),a("p",[t._v("For more information, see "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/markdown.html#custom-containers",target:"_blank",rel:"noopener noreferrer"}},[t._v("Custom Containers"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"model-links"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model-links"}},[t._v("#")]),t._v(" Model Links")]),t._v(" "),a("p",[t._v("When describing a text related to a certain AsTeRICS model file, it is good practice to directly link to that file in the AsTeRICS github repository. This can be done using the "),a("strong",[t._v("online WebACS application")]),t._v(" and the openFile query parameter which must contain the URL of the model file that should be opened within the WebACS application.\nSee example below:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("[Single Switch Model](http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_1key.acs)\n")])])]),a("p",[t._v("This will be rendered as a normal link opening the model file in the WebACS application:")]),t._v(" "),a("p",[a("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_1key.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("Single Switch Model"),a("OutboundLink")],1)]),t._v(" "),a("p",[t._v("The value of "),a("code",[t._v("openFile")]),t._v(" must be replaced by the raw link of the model file on github. To get the link, navigate to the model file in the github repository and")]),t._v(" "),a("ol",[a("li",[t._v("Open the file by clicking on it")]),t._v(" "),a("li",[t._v("Click on the Raw button.")]),t._v(" "),a("li",[t._v("Copy the URL in the browser address bar. It should start with: https://raw.githubusercontent.com/asterics/AsTeRICS/…")])]),t._v(" "),a("h2",{attrs:{id:"frontmatter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter"}},[t._v("#")]),t._v(" Frontmatter")]),t._v(" "),a("p",[t._v("VuePress processes markdown files containing "),a("a",{attrs:{href:"https://yaml.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("YAML"),a("OutboundLink")],1),t._v(" frontmatter blocks and supports a various properties out of the box (see "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("VuePress Frontmatter"),a("OutboundLink")],1),t._v(").\nHere is a short example, for further details please refer to the provided links.")]),t._v(" "),a("p",[t._v("You can activate an automatic sidebar or turn it off completely for single pages using frontmatter properties:")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token front-matter-block"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token front-matter yaml language-yaml"}},[t._v("sidebar: auto # Auto generated sidebar based on page content\nsidebar: false # Turn off sidebar")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token title important"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("#")]),t._v(" Hello World")]),t._v("\n\n...\n")])])]),a("h3",{attrs:{id:"predefined-variables"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#predefined-variables"}},[t._v("#")]),t._v(" Predefined Variables")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#title",target:"_blank",rel:"noopener noreferrer"}},[t._v("title"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#lang",target:"_blank",rel:"noopener noreferrer"}},[t._v("lang"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#description",target:"_blank",rel:"noopener noreferrer"}},[t._v("description"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#layout",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#permalink",target:"_blank",rel:"noopener noreferrer"}},[t._v("permalink"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#metatitle",target:"_blank",rel:"noopener noreferrer"}},[t._v("metaTitle"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#meta",target:"_blank",rel:"noopener noreferrer"}},[t._v("meta"),a("OutboundLink")],1)])]),t._v(" "),a("h3",{attrs:{id:"predefined-variables-powered-by-default-theme"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#predefined-variables-powered-by-default-theme"}},[t._v("#")]),t._v(" Predefined Variables Powered by Default Theme")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#navbar",target:"_blank",rel:"noopener noreferrer"}},[t._v("navbar"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#sidebar",target:"_blank",rel:"noopener noreferrer"}},[t._v("sidebar"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#prev",target:"_blank",rel:"noopener noreferrer"}},[t._v("prev"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#next",target:"_blank",rel:"noopener noreferrer"}},[t._v("next"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#search",target:"_blank",rel:"noopener noreferrer"}},[t._v("search"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#tags",target:"_blank",rel:"noopener noreferrer"}},[t._v("tags"),a("OutboundLink")],1)])]),t._v(" "),a("h3",{attrs:{id:"predefined-variables-powered-by-asterics-docs-theme"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#predefined-variables-powered-by-asterics-docs-theme"}},[t._v("#")]),t._v(" Predefined Variables Powered by AsTeRICS Docs Theme")]),t._v(" "),a("p",[t._v("No additional global frontmatter variables defined.")]),t._v(" "),a("h2",{attrs:{id:"layouts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layouts"}},[t._v("#")]),t._v(" Layouts")]),t._v(" "),a("h3",{attrs:{id:"home"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#home"}},[t._v("#")]),t._v(" Home")]),t._v(" "),a("p",[t._v("Layout "),a("code",[t._v("Home")]),t._v(" is used for building the "),a("RouterLink",{attrs:{to:"/"}},[t._v("start page")]),t._v(" of "),a("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.asterics.eu"),a("OutboundLink")],1),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token front-matter-block"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token front-matter yaml language-yaml"}},[t._v("layout: Home\ntitle: Home")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")])]),t._v("\n")])])]),a("p",[t._v("It uses "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/markdown-slot.html#markdown-slot",target:"_blank",rel:"noopener noreferrer"}},[t._v("Markdown Slots"),a("OutboundLink")],1),t._v(" for the jumbotron.\nSome of the content is exposed to markdown and can be changed in the file directly.")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[t._v("::: slot jumbotron\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Header")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Subtitle")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Create Customized Low-Cost Assistive Technologies for People with Disabilities."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ActionGroup")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Label")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Are you looking for special solutions to use a computer, control your environment or play games?"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Actions")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Action")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("path")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/solutions/"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Discover Solutions"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Action")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("path")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/get-started/"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dark")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Get Started"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n:::\n")])])]),a("h2",{attrs:{id:"global-compontents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#global-compontents"}},[t._v("#")]),t._v(" Global Compontents")]),t._v(" "),a("p",[t._v("VuePress allows "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/using-vue.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("using vue components in markdown"),a("OutboundLink")],1),t._v(" files.\nThis theme provides some (globally available) vue components, which can be used throughout the documentation.")]),t._v(" "),a("h3",{attrs:{id:"use-cases"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-cases"}},[t._v("#")]),t._v(" Use Cases")]),t._v(" "),a("p",[t._v("Use cases displayed on the "),a("RouterLink",{attrs:{to:"/"}},[t._v("start page")]),t._v(" are created using component "),a("code",[t._v("UseCases")]),t._v(" and "),a("code",[t._v("UseCase")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCases")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCase")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Accessible Computer Control"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("media")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/assets/img/harry-shutterstock_213119035.jpg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Control your computer by switches, head movements or eyetracking, depending on your capabilities."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCase")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCase")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Accessible Music"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("media")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://www.youtube.com/watch?v=3_8TifCj0aU"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Generate sounds or play adapted music instruments."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("A slideshow for several use cases is created by wrapping "),a("code",[t._v("UseCase")]),t._v(" components in a "),a("code",[t._v("UseCases")]),t._v(" component.")]),t._v(" "),a("h4",{attrs:{id:"link"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#link"}},[t._v("#")]),t._v(" link")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("#")])])]),t._v(" "),a("p",[t._v("Hyperlink to link to.")]),t._v(" "),a("h4",{attrs:{id:"media"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#media"}},[t._v("#")]),t._v(" media")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Media (image, video) to display.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("Currently, only "),a("a",{attrs:{href:"https://www.youtube.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("YouTube "),a("i",{staticClass:"fab fa-youtube"}),a("OutboundLink")],1),t._v(" videos are supported.")])]),t._v(" "),a("h4",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("Title of use case.")]),t._v(" "),a("h4",{attrs:{id:"stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" stop")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("boolean")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("false")])])]),t._v(" "),a("p",[t._v("Stop running videos on slide change (only for slideshows).")]),t._v(" "),a("h3",{attrs:{id:"solutions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solutions"}},[t._v("#")]),t._v(" Solutions")]),t._v(" "),a("p",[t._v("Solutions displayed on the "),a("RouterLink",{attrs:{to:"/solutions/"}},[t._v("solutions page")]),t._v(" are created using component "),a("code",[t._v("Solutions")]),t._v(" and "),a("code",[t._v("Solution")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Solutions")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Solution")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Camera Mouse"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("category")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Computer Control"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("os")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Windows,Linux,macOS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("badges")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Webcam"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("media")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/assets/img/face-shutterstock_717365779.jpg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("model")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/models/XFaceTrackerMouse(WLM).acs"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("webapp")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("docs")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/solutions/Camera-Mouse.html"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Mouse control according to your head movements with configurable settings."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Solution")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("A slideshow for several solutions is created by warpping "),a("code",[t._v("Solution")]),t._v(" components in a "),a("code",[t._v("Solutions")]),t._v(" component.")]),t._v(" "),a("h4",{attrs:{id:"category"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category"}},[t._v("#")]),t._v(" category")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("The category of the solution.")]),t._v(" "),a("h4",{attrs:{id:"title-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title-2"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("The title of the solution.")]),t._v(" "),a("h4",{attrs:{id:"os"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#os"}},[t._v("#")]),t._v(" os")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("Operating systems the solution is running on (comma separated).")]),t._v(" "),a("h4",{attrs:{id:"badges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#badges"}},[t._v("#")]),t._v(" badges")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Badges to display for the solution.")]),t._v(" "),a("h4",{attrs:{id:"media-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#media-2"}},[t._v("#")]),t._v(" media")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Media (image, video) to display.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("Currently, only "),a("a",{attrs:{href:"https://www.youtube.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("YouTube "),a("i",{staticClass:"fab fa-youtube"}),a("OutboundLink")],1),t._v(" videos are supported.")])]),t._v(" "),a("h4",{attrs:{id:"model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model"}},[t._v("#")]),t._v(" model")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Link to AsTeRICS model file to start for the solution.")]),t._v(" "),a("h4",{attrs:{id:"grid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#grid"}},[t._v("#")]),t._v(" grid")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("AsTeRICS Grid to open for the solution.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("Property "),a("code",[t._v("model")]),t._v(" has precedence over "),a("code",[t._v("grid")]),t._v(".\nDon’t specify "),a("code",[t._v("model")]),t._v(" for grid solutions.")])]),t._v(" "),a("h4",{attrs:{id:"webapp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#webapp"}},[t._v("#")]),t._v(" webapp")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Link to a web application provided for a solution.")]),t._v(" "),a("h4",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" docs")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Link to documentation of used plugin in a solution.")]),t._v(" "),a("h3",{attrs:{id:"plugins-search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins-search"}},[t._v("#")]),t._v(" Plugins Search")]),t._v(" "),a("p",[t._v("The plugin search display on the plugin overview page is created using component "),a("code",[t._v("PluginsSearch")]),t._v(".")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ClientOnly")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("PluginsSearch")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("There are no properties available for this component.\nHowever, "),a("code",[t._v("PluginSearch")]),t._v(" uses frontmatter properties which can be specified in the plugin documentation.")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token front-matter-block"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token front-matter yaml language-yaml"}},[t._v("title: AndroidPhoneControl\nsubcategory: Phone Interface\nimage: /plugins/actuators/android.svg")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")])]),t._v("\n")])])]),a("h4",{attrs:{id:"subcategory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#subcategory"}},[t._v("#")]),t._v(" subcategory")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Sub category of the plugin.")]),t._v(" "),a("h4",{attrs:{id:"featured"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#featured"}},[t._v("#")]),t._v(" featured")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("boolean")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("false")])])]),t._v(" "),a("p",[t._v("Diplay plugin in featured selection.")]),t._v(" "),a("h4",{attrs:{id:"image"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#image"}},[t._v("#")]),t._v(" image")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Image in search overview for the plugin.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("If no "),a("code",[t._v("image")]),t._v(" or FontAwesome icon ("),a("code",[t._v("fa-icon")]),t._v(", "),a("code",[t._v("fas-icon")]),t._v(", "),a("code",[t._v("far-icon")]),t._v(", "),a("code",[t._v("fab-icon")]),t._v(") is specified, the AsTeRICS logo is displayed instead.")])]),t._v(" "),a("h4",{attrs:{id:"fa-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fa-icon"}},[t._v("#")]),t._v(" fa-icon")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[a("a",{attrs:{href:"https://fontawesome.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("FontAwesome"),a("OutboundLink")],1),t._v(" ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=solid&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("solid"),a("OutboundLink")],1),t._v(") icon.")]),t._v(" "),a("h4",{attrs:{id:"fas-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fas-icon"}},[t._v("#")]),t._v(" fas-icon")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("FontAwesome ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=solid&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("solid"),a("OutboundLink")],1),t._v(") icon.")]),t._v(" "),a("h4",{attrs:{id:"far-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#far-icon"}},[t._v("#")]),t._v(" far-icon")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("FontAwesome ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=regular&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("regular"),a("OutboundLink")],1),t._v(") icon.")]),t._v(" "),a("h4",{attrs:{id:"fab-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fab-icon"}},[t._v("#")]),t._v(" fab-icon")]),t._v(" "),a("p",[t._v("FontAwesome ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=brands&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("brand"),a("OutboundLink")],1),t._v(") icon.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/344.e85675b3.js b/assets/js/344.e85675b3.js new file mode 100644 index 0000000000..7efb08b384 --- /dev/null +++ b/assets/js/344.e85675b3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[344],{1e3:function(t,a,e){"use strict";e.r(a);var s=e(2),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"website-markdown-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#website-markdown-guide"}},[t._v("#")]),t._v(" Website Markdown Guide")]),t._v(" "),a("p",[t._v("This guide describes the supported markdown syntax provided by the "),a("a",{attrs:{href:"https://www.npmjs.com/package/@asterics-docs/vuepress-theme-docs",target:"_blank",rel:"noopener noreferrer"}},[t._v("theme"),a("OutboundLink")],1),t._v(" of the "),a("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.asterics.eu"),a("OutboundLink")],1),t._v(":")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#markdown"}},[t._v("Markdown")]),t._v(": supported markdown syntax.")]),t._v(" "),a("li",[a("a",{attrs:{href:"#frontmatter"}},[t._v("Frontmatter")]),t._v(": supported frontmatter properties.")]),t._v(" "),a("li",[a("a",{attrs:{href:"#layouts"}},[t._v("Layouts")]),t._v(": available (custom) layouts.")]),t._v(" "),a("li",[a("a",{attrs:{href:"#global-components"}},[t._v("Global Components")]),t._v(": available (custom) vue components.")])]),t._v(" "),a("p",[t._v("All markdown files are compiled with "),a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it"),a("OutboundLink")],1),t._v(" and a selection of default and custom plugins.\nTo experiment with the supported syntax visit "),a("a",{attrs:{href:"https://markdown-it.github.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it demo"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"plugins-default"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins-default"}},[t._v("#")]),t._v(" Plugins (default)")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-sub#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-sub"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-sup#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-sup"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-footnote#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-footnote"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-deflist#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-deflist"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-abbr#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-abbr"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/markdown-it/markdown-it-emoji#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-emoji"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"plugins-custom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins-custom"}},[t._v("#")]),t._v(" Plugins (custom)")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/mcecot/markdown-it-checkbox#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-checkbox"),a("OutboundLink")],1),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("[ ] unchecked\n[x] checked\n")])])]),a("p",[a("input",{attrs:{type:"checkbox",id:"checkbox3"}}),a("label",{attrs:{for:"checkbox3"}},[t._v("unchecked")]),a("br"),t._v(" "),a("input",{attrs:{type:"checkbox",id:"checkbox2",checked:"true"}}),a("label",{attrs:{for:"checkbox2"}},[t._v("checked")])])])])]),t._v(" "),a("ul",[a("li",[a("p",[a("a",{attrs:{href:"https://github.com/tatsy/markdown-it-imsize#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-imsize"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("![AsTeRICS Logo](/img/asterics-logo.svg =200x200)\n![AsTeRICS Logo](/img/asterics-logo.svg =400x400)\n")])])]),a("p",[a("img",{attrs:{src:"/img/asterics-logo.svg",alt:"AsTeRICS Logo",width:"200",height:"200"}}),a("br"),t._v(" "),a("img",{attrs:{src:"/img/asterics-logo.svg",alt:"AsTeRICS Logo",width:"400",height:"400"}})])])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/jGleitz/markdown-it-kbd#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-kbd"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("[[x]]\n[[Ctrl]]+[[Alt]]+[[Del]]\n")])])]),a("p",[a("kbd",[t._v("x")]),a("br"),t._v(" "),a("kbd",[t._v("Ctrl")]),t._v("+"),a("kbd",[t._v("Alt")]),t._v("+"),a("kbd",[t._v("Del")])])])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/arve0/markdown-it-attrs#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-attrs"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("# header {.style-me}\nparagraph *style me*{.red} more text\n")])])]),a("p",[a("code",[t._v('

      header

      ')]),a("br"),t._v(" "),a("code",[t._v('

      paragraph style me more text

      ')])])])]),t._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://github.com/nunof07/markdown-it-fontawesome#readme",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown-it-fontawesome"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Example")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Hello World! :fa-flag:\nGoogle :fab-google:\nGitHub :fab-github:\n")])])]),a("p",[t._v("Hello World! "),a("i",{staticClass:"fa fa-flag"}),a("br"),t._v("\nGoogle "),a("i",{staticClass:"fab fa-google"}),a("br"),t._v("\nGitHub "),a("i",{staticClass:"fab fa-github"})])])])]),t._v(" "),a("h2",{attrs:{id:"vuepress-markdown-extensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vuepress-markdown-extensions"}},[t._v("#")]),t._v(" VuePress Markdown Extensions")]),t._v(" "),a("p",[t._v("The vuepress theme provides the markdown extensions described above, see "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/markdown.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("markdown extensions"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("For example you can create "),a("code",[t._v("custom containers")]),t._v(" rendered as green info, yellow warning or red warning. You can also define custom titles for the boxes.")]),t._v(" "),a("h3",{attrs:{id:"input"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#input"}},[t._v("#")]),t._v(" Input")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("::: tip\nThis is a tip\n:::\n\n::: warning\nThis is a warning\n:::\n\n::: danger\nThis is a dangerous warning\n:::\n\n::: details\nThis is a details block, which does not work in IE / Edge\n:::\n")])])]),a("h3",{attrs:{id:"output"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#output"}},[t._v("#")]),t._v(" Output")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This is a tip")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("This is a warning")])]),t._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[t._v("DANGER")]),t._v(" "),a("p",[t._v("This is a dangerous warning")])]),t._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[t._v("DETAILS")]),t._v(" "),a("p",[t._v("This is a details block, which does not work in IE / Edge")])]),t._v(" "),a("p",[t._v("For more information, see "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/markdown.html#custom-containers",target:"_blank",rel:"noopener noreferrer"}},[t._v("Custom Containers"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"model-links"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model-links"}},[t._v("#")]),t._v(" Model Links")]),t._v(" "),a("p",[t._v("When describing a text related to a certain AsTeRICS model file, it is good practice to directly link to that file in the AsTeRICS github repository. This can be done using the "),a("strong",[t._v("online WebACS application")]),t._v(" and the openFile query parameter which must contain the URL of the model file that should be opened within the WebACS application.\nSee example below:")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("[Single Switch Model](http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_1key.acs)\n")])])]),a("p",[t._v("This will be rendered as a normal link opening the model file in the WebACS application:")]),t._v(" "),a("p",[a("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_1key.acs",target:"_blank",rel:"noopener noreferrer"}},[t._v("Single Switch Model"),a("OutboundLink")],1)]),t._v(" "),a("p",[t._v("The value of "),a("code",[t._v("openFile")]),t._v(" must be replaced by the raw link of the model file on github. To get the link, navigate to the model file in the github repository and")]),t._v(" "),a("ol",[a("li",[t._v("Open the file by clicking on it")]),t._v(" "),a("li",[t._v("Click on the Raw button.")]),t._v(" "),a("li",[t._v("Copy the URL in the browser address bar. It should start with: https://raw.githubusercontent.com/asterics/AsTeRICS/…")])]),t._v(" "),a("h2",{attrs:{id:"frontmatter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter"}},[t._v("#")]),t._v(" Frontmatter")]),t._v(" "),a("p",[t._v("VuePress processes markdown files containing "),a("a",{attrs:{href:"https://yaml.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("YAML"),a("OutboundLink")],1),t._v(" frontmatter blocks and supports a various properties out of the box (see "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("VuePress Frontmatter"),a("OutboundLink")],1),t._v(").\nHere is a short example, for further details please refer to the provided links.")]),t._v(" "),a("p",[t._v("You can activate an automatic sidebar or turn it off completely for single pages using frontmatter properties:")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token front-matter-block"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token front-matter yaml language-yaml"}},[t._v("sidebar: auto # Auto generated sidebar based on page content\nsidebar: false # Turn off sidebar")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token title important"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("#")]),t._v(" Hello World")]),t._v("\n\n...\n")])])]),a("h3",{attrs:{id:"predefined-variables"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#predefined-variables"}},[t._v("#")]),t._v(" Predefined Variables")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#title",target:"_blank",rel:"noopener noreferrer"}},[t._v("title"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#lang",target:"_blank",rel:"noopener noreferrer"}},[t._v("lang"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#description",target:"_blank",rel:"noopener noreferrer"}},[t._v("description"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#layout",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#permalink",target:"_blank",rel:"noopener noreferrer"}},[t._v("permalink"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#metatitle",target:"_blank",rel:"noopener noreferrer"}},[t._v("metaTitle"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#meta",target:"_blank",rel:"noopener noreferrer"}},[t._v("meta"),a("OutboundLink")],1)])]),t._v(" "),a("h3",{attrs:{id:"predefined-variables-powered-by-default-theme"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#predefined-variables-powered-by-default-theme"}},[t._v("#")]),t._v(" Predefined Variables Powered by Default Theme")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#navbar",target:"_blank",rel:"noopener noreferrer"}},[t._v("navbar"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#sidebar",target:"_blank",rel:"noopener noreferrer"}},[t._v("sidebar"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#prev",target:"_blank",rel:"noopener noreferrer"}},[t._v("prev"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#next",target:"_blank",rel:"noopener noreferrer"}},[t._v("next"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#search",target:"_blank",rel:"noopener noreferrer"}},[t._v("search"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/frontmatter.html#tags",target:"_blank",rel:"noopener noreferrer"}},[t._v("tags"),a("OutboundLink")],1)])]),t._v(" "),a("h3",{attrs:{id:"predefined-variables-powered-by-asterics-docs-theme"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#predefined-variables-powered-by-asterics-docs-theme"}},[t._v("#")]),t._v(" Predefined Variables Powered by AsTeRICS Docs Theme")]),t._v(" "),a("p",[t._v("No additional global frontmatter variables defined.")]),t._v(" "),a("h2",{attrs:{id:"layouts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layouts"}},[t._v("#")]),t._v(" Layouts")]),t._v(" "),a("h3",{attrs:{id:"home"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#home"}},[t._v("#")]),t._v(" Home")]),t._v(" "),a("p",[t._v("Layout "),a("code",[t._v("Home")]),t._v(" is used for building the "),a("RouterLink",{attrs:{to:"/"}},[t._v("start page")]),t._v(" of "),a("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.asterics.eu"),a("OutboundLink")],1),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token front-matter-block"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token front-matter yaml language-yaml"}},[t._v("layout: Home\ntitle: Home")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")])]),t._v("\n")])])]),a("p",[t._v("It uses "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/markdown-slot.html#markdown-slot",target:"_blank",rel:"noopener noreferrer"}},[t._v("Markdown Slots"),a("OutboundLink")],1),t._v(" for the jumbotron.\nSome of the content is exposed to markdown and can be changed in the file directly.")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[t._v("::: slot jumbotron\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Header")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("AsTeRICS"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Subtitle")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Create Customized Low-Cost Assistive Technologies for People with Disabilities."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ActionGroup")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Label")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Are you looking for special solutions to use a computer, control your environment or play games?"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Actions")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Action")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("path")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/solutions/"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Discover Solutions"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Action")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("path")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/get-started/"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("dark")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Get Started"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n:::\n")])])]),a("h2",{attrs:{id:"global-compontents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#global-compontents"}},[t._v("#")]),t._v(" Global Compontents")]),t._v(" "),a("p",[t._v("VuePress allows "),a("a",{attrs:{href:"https://vuepress.vuejs.org/guide/using-vue.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("using vue components in markdown"),a("OutboundLink")],1),t._v(" files.\nThis theme provides some (globally available) vue components, which can be used throughout the documentation.")]),t._v(" "),a("h3",{attrs:{id:"use-cases"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-cases"}},[t._v("#")]),t._v(" Use Cases")]),t._v(" "),a("p",[t._v("Use cases displayed on the "),a("RouterLink",{attrs:{to:"/"}},[t._v("start page")]),t._v(" are created using component "),a("code",[t._v("UseCases")]),t._v(" and "),a("code",[t._v("UseCase")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCases")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCase")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Accessible Computer Control"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("media")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/assets/img/harry-shutterstock_213119035.jpg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Control your computer by switches, head movements or eyetracking, depending on your capabilities."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCase")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("UseCase")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Accessible Music"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("media")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://www.youtube.com/watch?v=3_8TifCj0aU"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Generate sounds or play adapted music instruments."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("A slideshow for several use cases is created by wrapping "),a("code",[t._v("UseCase")]),t._v(" components in a "),a("code",[t._v("UseCases")]),t._v(" component.")]),t._v(" "),a("h4",{attrs:{id:"link"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#link"}},[t._v("#")]),t._v(" link")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("#")])])]),t._v(" "),a("p",[t._v("Hyperlink to link to.")]),t._v(" "),a("h4",{attrs:{id:"media"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#media"}},[t._v("#")]),t._v(" media")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Media (image, video) to display.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("Currently, only "),a("a",{attrs:{href:"https://www.youtube.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("YouTube "),a("i",{staticClass:"fab fa-youtube"}),a("OutboundLink")],1),t._v(" videos are supported.")])]),t._v(" "),a("h4",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("Title of use case.")]),t._v(" "),a("h4",{attrs:{id:"stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" stop")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("boolean")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("false")])])]),t._v(" "),a("p",[t._v("Stop running videos on slide change (only for slideshows).")]),t._v(" "),a("h3",{attrs:{id:"solutions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solutions"}},[t._v("#")]),t._v(" Solutions")]),t._v(" "),a("p",[t._v("Solutions displayed on the "),a("RouterLink",{attrs:{to:"/solutions/"}},[t._v("solutions page")]),t._v(" are created using component "),a("code",[t._v("Solutions")]),t._v(" and "),a("code",[t._v("Solution")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Solutions")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Solution")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Camera Mouse"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("category")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Computer Control"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("os")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Windows,Linux,macOS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("badges")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Webcam"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("media")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/assets/img/face-shutterstock_717365779.jpg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("model")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/models/XFaceTrackerMouse(WLM).acs"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("webapp")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("docs")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/solutions/Camera-Mouse.html"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Mouse control according to your head movements with configurable settings."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("Solution")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("A slideshow for several solutions is created by warpping "),a("code",[t._v("Solution")]),t._v(" components in a "),a("code",[t._v("Solutions")]),t._v(" component.")]),t._v(" "),a("h4",{attrs:{id:"category"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category"}},[t._v("#")]),t._v(" category")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("The category of the solution.")]),t._v(" "),a("h4",{attrs:{id:"title-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title-2"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("The title of the solution.")]),t._v(" "),a("h4",{attrs:{id:"os"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#os"}},[t._v("#")]),t._v(" os")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v('""')])])]),t._v(" "),a("p",[t._v("Operating systems the solution is running on (comma separated).")]),t._v(" "),a("h4",{attrs:{id:"badges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#badges"}},[t._v("#")]),t._v(" badges")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Badges to display for the solution.")]),t._v(" "),a("h4",{attrs:{id:"media-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#media-2"}},[t._v("#")]),t._v(" media")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Media (image, video) to display.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("Currently, only "),a("a",{attrs:{href:"https://www.youtube.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("YouTube "),a("i",{staticClass:"fab fa-youtube"}),a("OutboundLink")],1),t._v(" videos are supported.")])]),t._v(" "),a("h4",{attrs:{id:"model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model"}},[t._v("#")]),t._v(" model")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Link to AsTeRICS model file to start for the solution.")]),t._v(" "),a("h4",{attrs:{id:"grid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#grid"}},[t._v("#")]),t._v(" grid")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("AsTeRICS Grid to open for the solution.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("Property "),a("code",[t._v("model")]),t._v(" has precedence over "),a("code",[t._v("grid")]),t._v(".\nDon’t specify "),a("code",[t._v("model")]),t._v(" for grid solutions.")])]),t._v(" "),a("h4",{attrs:{id:"webapp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#webapp"}},[t._v("#")]),t._v(" webapp")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Link to a web application provided for a solution.")]),t._v(" "),a("h4",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" docs")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Link to documentation of used plugin in a solution.")]),t._v(" "),a("h3",{attrs:{id:"plugins-search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins-search"}},[t._v("#")]),t._v(" Plugins Search")]),t._v(" "),a("p",[t._v("The plugin search display on the plugin overview page is created using component "),a("code",[t._v("PluginsSearch")]),t._v(".")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ClientOnly")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("PluginsSearch")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("There are no properties available for this component.\nHowever, "),a("code",[t._v("PluginSearch")]),t._v(" uses frontmatter properties which can be specified in the plugin documentation.")]),t._v(" "),a("div",{staticClass:"language-md extra-class"},[a("pre",{pre:!0,attrs:{class:"language-md"}},[a("code",[a("span",{pre:!0,attrs:{class:"token front-matter-block"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token front-matter yaml language-yaml"}},[t._v("title: AndroidPhoneControl\nsubcategory: Phone Interface\nimage: /plugins/actuators/android.svg")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("---")])]),t._v("\n")])])]),a("h4",{attrs:{id:"subcategory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#subcategory"}},[t._v("#")]),t._v(" subcategory")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Sub category of the plugin.")]),t._v(" "),a("h4",{attrs:{id:"featured"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#featured"}},[t._v("#")]),t._v(" featured")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("boolean")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("false")])])]),t._v(" "),a("p",[t._v("Diplay plugin in featured selection.")]),t._v(" "),a("h4",{attrs:{id:"image"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#image"}},[t._v("#")]),t._v(" image")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("Image in search overview for the plugin.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("If no "),a("code",[t._v("image")]),t._v(" or FontAwesome icon ("),a("code",[t._v("fa-icon")]),t._v(", "),a("code",[t._v("fas-icon")]),t._v(", "),a("code",[t._v("far-icon")]),t._v(", "),a("code",[t._v("fab-icon")]),t._v(") is specified, the AsTeRICS logo is displayed instead.")])]),t._v(" "),a("h4",{attrs:{id:"fa-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fa-icon"}},[t._v("#")]),t._v(" fa-icon")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[a("a",{attrs:{href:"https://fontawesome.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("FontAwesome"),a("OutboundLink")],1),t._v(" ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=solid&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("solid"),a("OutboundLink")],1),t._v(") icon.")]),t._v(" "),a("h4",{attrs:{id:"fas-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fas-icon"}},[t._v("#")]),t._v(" fas-icon")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("FontAwesome ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=solid&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("solid"),a("OutboundLink")],1),t._v(") icon.")]),t._v(" "),a("h4",{attrs:{id:"far-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#far-icon"}},[t._v("#")]),t._v(" far-icon")]),t._v(" "),a("ul",[a("li",[t._v("Type: "),a("code",[t._v("string")])]),t._v(" "),a("li",[t._v("Default: "),a("code",[t._v("null")])])]),t._v(" "),a("p",[t._v("FontAwesome ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=regular&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("regular"),a("OutboundLink")],1),t._v(") icon.")]),t._v(" "),a("h4",{attrs:{id:"fab-icon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fab-icon"}},[t._v("#")]),t._v(" fab-icon")]),t._v(" "),a("p",[t._v("FontAwesome ("),a("a",{attrs:{href:"https://fontawesome.com/icons?d=gallery&s=brands&m=free",target:"_blank",rel:"noopener noreferrer"}},[t._v("brand"),a("OutboundLink")],1),t._v(") icon.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/347.27af6308.js b/assets/js/347.65063b21.js similarity index 91% rename from assets/js/347.27af6308.js rename to assets/js/347.65063b21.js index ea35c2b188..dfc69a0dce 100644 --- a/assets/js/347.27af6308.js +++ b/assets/js/347.65063b21.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[347],{1007:function(e,t,n){"use strict";n.r(t);var s=n(2),a=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"connected"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#connected"}},[this._v("#")]),this._v(" Connected")]),this._v(" "),e("p",[this._v("This mode is reached after the ACS has been connected to the ARE. The drawing area is enabled, new components can be added and channels between the components can be established. Models can be uploaded or downloaded, also the ARE storage is accessible. The status and the logging file can be requested from the ARE.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[347],{1005:function(e,t,n){"use strict";n.r(t);var s=n(2),a=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"connected"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#connected"}},[this._v("#")]),this._v(" Connected")]),this._v(" "),e("p",[this._v("This mode is reached after the ACS has been connected to the ARE. The drawing area is enabled, new components can be added and channels between the components can be established. Models can be uploaded or downloaded, also the ARE storage is accessible. The status and the logging file can be requested from the ARE.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/348.b527edc6.js b/assets/js/348.ae495803.js similarity index 91% rename from assets/js/348.b527edc6.js rename to assets/js/348.ae495803.js index 6034b7db95..8b1ff3cf9e 100644 --- a/assets/js/348.b527edc6.js +++ b/assets/js/348.ae495803.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[348],{1011:function(e,t,n){"use strict";n.r(t);var s=n(2),a=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"disconnected"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#disconnected"}},[this._v("#")]),this._v(" Disconnected")]),this._v(" "),e("p",[this._v("This is the standard mode after the ACS has been started. The drawing area is enabled, new components can be added and channels between the components can be established. Models cannot be uploaded or downloaded and also the ARE storage is not accessible, due to the fact that there is no ARE connected.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[348],{1010:function(e,t,n){"use strict";n.r(t);var s=n(2),a=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"disconnected"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#disconnected"}},[this._v("#")]),this._v(" Disconnected")]),this._v(" "),e("p",[this._v("This is the standard mode after the ACS has been started. The drawing area is enabled, new components can be added and channels between the components can be established. Models cannot be uploaded or downloaded and also the ARE storage is not accessible, due to the fact that there is no ARE connected.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/35.c691ebe0.js b/assets/js/35.b8dbb531.js similarity index 97% rename from assets/js/35.c691ebe0.js rename to assets/js/35.b8dbb531.js index 5574465299..437d5cdf58 100644 --- a/assets/js/35.c691ebe0.js +++ b/assets/js/35.b8dbb531.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{1028:function(e,t,o){"use strict";o.r(t);var n=o(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"status-reporting-and-error-logging"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#status-reporting-and-error-logging"}},[e._v("#")]),e._v(" Status Reporting and Error Logging")]),e._v(" "),t("p",[e._v("Within the tab "),t("em",[e._v("Miscellaneous")]),e._v(" (Misc.), status information and error logging can be requested from the ARE (if an active connection to the ARE is available).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(280),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),e._v(" "),t("p",[e._v("The Miscellaneous Tab")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Get ARE Status")]),e._v(" opens a window, showing status messages from the ARE and from the components within the ARE. These messages can be copied to the clipboard or saved to a file:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(474),alt:"Screenshot: The ARE Status Window",title:"Screenshot: The ARE Status Window"}})]),e._v(" "),t("p",[e._v("The ARE Status Window")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Show Logfile")]),e._v(" from ARE shows the logging file from the ARE, containing status and error messages:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(475),alt:"Screenshot: The ARE Logging Window",title:"Screenshot: The ARE Logging Window"}})]),e._v(" "),t("p",[e._v("The ARE Logging Window")])])]),e._v(" "),t("p",[e._v("Beside this general information, the status of each component can be requested using the "),t("em",[e._v("Show Component Status")]),e._v(" in the context menu of each component. The following figure shows a component with a red background - this means an error occurred in this component. The status window shows this error and with the button "),t("em",[e._v("Remove Error Marker")]),e._v(" the red background can be removed.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(476),alt:"Screenshot: A Component in Error State with the opened Status Window",title:"Screenshot: A Component in Error State with the opened Status Window"}})]),e._v(" "),t("p",[e._v("A Component in Error State with the opened Status Window")])])}),[],!1,null,null,null);t.default=s.exports},280:function(e,t,o){e.exports=o.p+"assets/img/miscellaneous_tab.50018162.png"},474:function(e,t,o){e.exports=o.p+"assets/img/are_status_window.78ef247b.jpg"},475:function(e,t,o){e.exports=o.p+"assets/img/are_logging_window.f227db8f.jpg"},476:function(e,t,o){e.exports=o.p+"assets/img/error_state_opened_status_window.e3c3ef92.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{1027:function(e,t,o){"use strict";o.r(t);var n=o(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"status-reporting-and-error-logging"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#status-reporting-and-error-logging"}},[e._v("#")]),e._v(" Status Reporting and Error Logging")]),e._v(" "),t("p",[e._v("Within the tab "),t("em",[e._v("Miscellaneous")]),e._v(" (Misc.), status information and error logging can be requested from the ARE (if an active connection to the ARE is available).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(280),alt:"Screenshot: The Miscellaneous Tab",title:"Screenshot: The Miscellaneous Tab"}})]),e._v(" "),t("p",[e._v("The Miscellaneous Tab")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Get ARE Status")]),e._v(" opens a window, showing status messages from the ARE and from the components within the ARE. These messages can be copied to the clipboard or saved to a file:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(474),alt:"Screenshot: The ARE Status Window",title:"Screenshot: The ARE Status Window"}})]),e._v(" "),t("p",[e._v("The ARE Status Window")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Show Logfile")]),e._v(" from ARE shows the logging file from the ARE, containing status and error messages:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(475),alt:"Screenshot: The ARE Logging Window",title:"Screenshot: The ARE Logging Window"}})]),e._v(" "),t("p",[e._v("The ARE Logging Window")])])]),e._v(" "),t("p",[e._v("Beside this general information, the status of each component can be requested using the "),t("em",[e._v("Show Component Status")]),e._v(" in the context menu of each component. The following figure shows a component with a red background - this means an error occurred in this component. The status window shows this error and with the button "),t("em",[e._v("Remove Error Marker")]),e._v(" the red background can be removed.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(476),alt:"Screenshot: A Component in Error State with the opened Status Window",title:"Screenshot: A Component in Error State with the opened Status Window"}})]),e._v(" "),t("p",[e._v("A Component in Error State with the opened Status Window")])])}),[],!1,null,null,null);t.default=s.exports},280:function(e,t,o){e.exports=o.p+"assets/img/miscellaneous_tab.50018162.png"},474:function(e,t,o){e.exports=o.p+"assets/img/are_status_window.78ef247b.jpg"},475:function(e,t,o){e.exports=o.p+"assets/img/are_logging_window.f227db8f.jpg"},476:function(e,t,o){e.exports=o.p+"assets/img/error_state_opened_status_window.e3c3ef92.jpg"}}]); \ No newline at end of file diff --git a/assets/js/350.ae70ab89.js b/assets/js/350.d6a4b97c.js similarity index 90% rename from assets/js/350.ae70ab89.js rename to assets/js/350.d6a4b97c.js index e51b2fa772..0db839d965 100644 --- a/assets/js/350.ae70ab89.js +++ b/assets/js/350.d6a4b97c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[350],{1021:function(t,e,s){"use strict";s.r(e);var n=s(2),o=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"options"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" Options")]),t._v(" "),e("p",[t._v("Within the "),e("em",[t._v("miscellaneous")]),t._v(" tab, the options dialog can be opened. This dialog is divided in three parts: "),e("em",[t._v("General Settings")]),t._v(", "),e("em",[t._v("Dialogs")]),t._v(" and "),e("em",[t._v("Colours")]),t._v(".")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[350],{1020:function(t,e,s){"use strict";s.r(e);var n=s(2),o=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"options"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" Options")]),t._v(" "),e("p",[t._v("Within the "),e("em",[t._v("miscellaneous")]),t._v(" tab, the options dialog can be opened. This dialog is divided in three parts: "),e("em",[t._v("General Settings")]),t._v(", "),e("em",[t._v("Dialogs")]),t._v(" and "),e("em",[t._v("Colours")]),t._v(".")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/351.f826ba19.js b/assets/js/351.d0200ef6.js similarity index 88% rename from assets/js/351.f826ba19.js rename to assets/js/351.d0200ef6.js index 6646f1945b..eb8718957d 100644 --- a/assets/js/351.f826ba19.js +++ b/assets/js/351.d0200ef6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[351],{1022:function(t,s,e){"use strict";e.r(s);var n=e(2),i=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"pause"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pause"}},[this._v("#")]),this._v(" Pause")]),this._v(" "),t("p",[this._v("This mode is similar to the running mode, with the difference, that the model on the ARE is not running but in a pause state.")])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[351],{1021:function(t,s,e){"use strict";e.r(s);var n=e(2),i=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"pause"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pause"}},[this._v("#")]),this._v(" Pause")]),this._v(" "),t("p",[this._v("This mode is similar to the running mode, with the difference, that the model on the ARE is not running but in a pause state.")])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/354.e132ad7c.js b/assets/js/354.a1638431.js similarity index 92% rename from assets/js/354.e132ad7c.js rename to assets/js/354.a1638431.js index 7d916cb9d4..f5eba300ee 100644 --- a/assets/js/354.e132ad7c.js +++ b/assets/js/354.a1638431.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[354],{1027:function(t,e,s){"use strict";s.r(e);var n=s(2),a=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"sensors"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensors"}},[this._v("#")]),this._v(" Sensors")]),this._v(" "),t("p",[this._v("Sensors are defined as components which generate data to be processed within the processing chain set up in the AsTeRICS Runtime Environment. Sensors can either generate data in the component itself (e.g. a signal generator) or they can read data from an external sensor (such as an ADC or a digital GPIO port). Sensors only contain output ports as no input data from within the ARE is needed.")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[354],{1026:function(t,e,s){"use strict";s.r(e);var n=s(2),a=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"sensors"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensors"}},[this._v("#")]),this._v(" Sensors")]),this._v(" "),t("p",[this._v("Sensors are defined as components which generate data to be processed within the processing chain set up in the AsTeRICS Runtime Environment. Sensors can either generate data in the component itself (e.g. a signal generator) or they can read data from an external sensor (such as an ADC or a digital GPIO port). Sensors only contain output ports as no input data from within the ARE is needed.")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/356.0c6f148b.js b/assets/js/356.b1a64248.js similarity index 96% rename from assets/js/356.0c6f148b.js rename to assets/js/356.b1a64248.js index dd7138f669..642955f8cf 100644 --- a/assets/js/356.0c6f148b.js +++ b/assets/js/356.b1a64248.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[356],{1033:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"tooltips"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tooltips"}},[e._v("#")]),e._v(" Tooltips")]),e._v(" "),t("p",[e._v("Tooltips are used to provide context information when editing the model. They can be found when hovering over an item of interest. The following items provide tooltips:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Deployment (drawing) area, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a component")]),e._v(" "),t("li",[e._v("an input port of a component")]),e._v(" "),t("li",[e._v("an output port of a component")]),e._v(" "),t("li",[e._v("the event listener item of a component")]),e._v(" "),t("li",[e._v("the event trigger item of a component")]),e._v(" "),t("li",[e._v("an event channel line")])])]),e._v(" "),t("li",[t("p",[e._v("Property editor, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a property key")])])]),e._v(" "),t("li",[t("p",[e._v("Input port editor, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a property key")])])]),e._v(" "),t("li",[t("p",[e._v("Output port editor, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a property key")])])]),e._v(" "),t("li",[t("p",[e._v("Event channel editor, when hovering")])]),e._v(" "),t("li",[t("p",[e._v("the column heading of event trigger or event listener")])]),e._v(" "),t("li",[t("p",[e._v("an entry of an event trigger or event listener")])]),e._v(" "),t("li",[t("p",[e._v("Components menu, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a menu item")])])]),e._v(" "),t("li",[t("p",[e._v("Components search, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a search result item")])])])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[356],{1035:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"tooltips"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tooltips"}},[e._v("#")]),e._v(" Tooltips")]),e._v(" "),t("p",[e._v("Tooltips are used to provide context information when editing the model. They can be found when hovering over an item of interest. The following items provide tooltips:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Deployment (drawing) area, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a component")]),e._v(" "),t("li",[e._v("an input port of a component")]),e._v(" "),t("li",[e._v("an output port of a component")]),e._v(" "),t("li",[e._v("the event listener item of a component")]),e._v(" "),t("li",[e._v("the event trigger item of a component")]),e._v(" "),t("li",[e._v("an event channel line")])])]),e._v(" "),t("li",[t("p",[e._v("Property editor, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a property key")])])]),e._v(" "),t("li",[t("p",[e._v("Input port editor, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a property key")])])]),e._v(" "),t("li",[t("p",[e._v("Output port editor, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a property key")])])]),e._v(" "),t("li",[t("p",[e._v("Event channel editor, when hovering")])]),e._v(" "),t("li",[t("p",[e._v("the column heading of event trigger or event listener")])]),e._v(" "),t("li",[t("p",[e._v("an entry of an event trigger or event listener")])]),e._v(" "),t("li",[t("p",[e._v("Components menu, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a menu item")])])]),e._v(" "),t("li",[t("p",[e._v("Components search, when hovering")]),e._v(" "),t("ul",[t("li",[e._v("a search result item")])])])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/357.7599277e.js b/assets/js/357.62ea7871.js similarity index 89% rename from assets/js/357.7599277e.js rename to assets/js/357.62ea7871.js index 375542fe2d..a226ab5a1e 100644 --- a/assets/js/357.7599277e.js +++ b/assets/js/357.62ea7871.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[357],{1032:function(t,s,a){"use strict";a.r(s);var i=a(2),e=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"are-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-manual"}},[this._v("#")]),this._v(" ARE Manual")]),this._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[this._v("Note")]),this._v(" "),t("p",[this._v("This is the user manual of the ARE program.")])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[357],{1033:function(t,s,a){"use strict";a.r(s);var i=a(2),e=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"are-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-manual"}},[this._v("#")]),this._v(" ARE Manual")]),this._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[this._v("Note")]),this._v(" "),t("p",[this._v("This is the user manual of the ARE program.")])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/358.7175ea23.js b/assets/js/358.7051e1a7.js similarity index 87% rename from assets/js/358.7175ea23.js rename to assets/js/358.7051e1a7.js index f144c9c640..cc0dd523d1 100644 --- a/assets/js/358.7175ea23.js +++ b/assets/js/358.7051e1a7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[358],{1035:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"manuals"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manuals"}},[this._v("#")]),this._v(" Manuals")]),this._v(" "),t("p",[this._v("In this section you will find the user manuals of selected AsTeRICS programs.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[358],{1031:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"manuals"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manuals"}},[this._v("#")]),this._v(" Manuals")]),this._v(" "),t("p",[this._v("In this section you will find the user manuals of selected AsTeRICS programs.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/359.e5a6d1de.js b/assets/js/359.24cae214.js similarity index 96% rename from assets/js/359.e5a6d1de.js rename to assets/js/359.24cae214.js index b4257446ff..aa390b20b4 100644 --- a/assets/js/359.e5a6d1de.js +++ b/assets/js/359.24cae214.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[359],{1034:function(e,t,n){"use strict";n.r(t);var s=n(2),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-status"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-status"}},[e._v("#")]),e._v(" ARE Status")]),e._v(" "),t("p",[e._v("In the bottom left corner the ACS displays the ARE status. Once connected to an ARE, this status actually consists of two parts:")]),e._v(" "),t("ul",[t("li",[e._v("the connection status and")]),e._v(" "),t("li",[e._v("the synchronisation status.")])]),e._v(" "),t("p",[e._v("The connection status can be one of the following:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Disconnected:")]),e._v(" There is no connection to an ARE.")]),e._v(" "),t("li",[t("em",[e._v("Connected:")]),e._v(" A connection to an ARE has been established.")]),e._v(" "),t("li",[t("em",[e._v("Model running:")]),e._v(" The ACS is connected to an ARE and a model is running there.")]),e._v(" "),t("li",[t("em",[e._v("Model paused:")]),e._v(" The ACS is connected to an ARE and a model is paused there.")]),e._v(" "),t("li",[t("em",[e._v("Model stopped:")]),e._v(" The ACS is connected to an ARE and a model has been stopped there.")])]),e._v(" "),t("p",[e._v("The synchronisation status can be either")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Synchronised,")]),e._v(" i.e. the model on the ARE is the same as the one selected in the ACS, or")]),e._v(" "),t("li",[t("em",[e._v("NOT Synchronised,")]),e._v(" i.e. the model on the ARE is different from the one selected in the ACS.")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[359],{1032:function(e,t,n){"use strict";n.r(t);var s=n(2),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"are-status"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#are-status"}},[e._v("#")]),e._v(" ARE Status")]),e._v(" "),t("p",[e._v("In the bottom left corner the ACS displays the ARE status. Once connected to an ARE, this status actually consists of two parts:")]),e._v(" "),t("ul",[t("li",[e._v("the connection status and")]),e._v(" "),t("li",[e._v("the synchronisation status.")])]),e._v(" "),t("p",[e._v("The connection status can be one of the following:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Disconnected:")]),e._v(" There is no connection to an ARE.")]),e._v(" "),t("li",[t("em",[e._v("Connected:")]),e._v(" A connection to an ARE has been established.")]),e._v(" "),t("li",[t("em",[e._v("Model running:")]),e._v(" The ACS is connected to an ARE and a model is running there.")]),e._v(" "),t("li",[t("em",[e._v("Model paused:")]),e._v(" The ACS is connected to an ARE and a model is paused there.")]),e._v(" "),t("li",[t("em",[e._v("Model stopped:")]),e._v(" The ACS is connected to an ARE and a model has been stopped there.")])]),e._v(" "),t("p",[e._v("The synchronisation status can be either")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Synchronised,")]),e._v(" i.e. the model on the ARE is the same as the one selected in the ACS, or")]),e._v(" "),t("li",[t("em",[e._v("NOT Synchronised,")]),e._v(" i.e. the model on the ARE is different from the one selected in the ACS.")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/36.30d3f5b2.js b/assets/js/36.f3e922f5.js similarity index 95% rename from assets/js/36.30d3f5b2.js rename to assets/js/36.f3e922f5.js index 837a91a12d..c81c572fdd 100644 --- a/assets/js/36.30d3f5b2.js +++ b/assets/js/36.f3e922f5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{1010:function(e,t,o){"use strict";o.r(t);var n=o(2),a=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"control-the-are"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#control-the-are"}},[e._v("#")]),e._v(" Control the ARE")]),e._v(" "),t("p",[e._v("In the system-tab, the group ARE handles the functionalities for connecting to and communicating with the ARE. The connection to the ARE is handled by the AsTeRICS Application Programming Interface (ASAPI).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(455),alt:"Screenshot: System Tab, ARE and ARE Storage Group",title:"Screenshot: System Tab, ARE and ARE Storage Group"}})]),e._v(" "),t("p",[e._v("System Tab, ARE and ARE Storage Group")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Connect to ARE")]),e._v(" connects the ACS with the ARE. The Connect to ARE dialog appears, asking for the connection data. The host name (IP-address of the host) can be found in the ARE configuration, the default port should be 9090. Beside this connection dialog, also auto connection can be used, see the section Options / General Settings.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(456),alt:"Screenshot: The ARE Connection Dialog",title:"Screenshot: The ARE Connection Dialog"}})]),e._v(" "),t("p",[e._v("The ARE Connection Dialog")]),e._v(" "),t("p",[e._v("When the connection has been established, two special cases can occur:")]),e._v(" "),t("ul",[t("li",[e._v("An active model (deployment) has been detected on the ARE. The user will be asked to download this model or to proceed without downloading it.")]),e._v(" "),t("li",[e._v("An active model (deployment) has been detected and is running on the ARE. The user will be asked to download this model and switch the ACS to "),t("em",[e._v("Running")]),e._v(" mode or to proceed without downloading it.")])])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Disconnect from ARE")]),e._v(" closes the connection to the ARE.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Upload Model")]),e._v(" transmits the model in the drawing from the ACS to the ARE. The model on the ARE will be overwritten. Uploading the model to the ARE does not start the model on the ARE.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Download Model")]),e._v(" transmits the active model from the ARE to the ACS. The model on the drawing area will be overwritten.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Download Bundles")]),e._v(" transmits the bundel description (describing the components) form the connected ARE to the ACS. These bundel descrptions will be available as components in the components-tab. Then bundles can be managed with the "),t("em",[e._v("Bundle Manager")]),e._v(".")])])]),e._v(" "),t("p",[e._v("The group ARE Storage deals with the storage on the ARE. The storage is an area within the ARE where models can be stored and also activated using the ARE interface.")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Store Model on ARE")]),e._v(" transmits the model in the drawing from the ACS to the ARE storage. A dialog appears to set the filename.")]),e._v(" "),t("li",[t("em",[e._v("Load Model from Storage")]),e._v(" transmits a model from the ARE storage to the ACS. The model on the ACS drawing area will be overwritten. A dialog appears to select the filename of the model.")]),e._v(" "),t("li",[t("em",[e._v("Activate a Stored Model")]),e._v(": A dialog appears to select the filename of a model in the storage. This model will be set active in the ARE and also will be started. Furthermore, the model on the ACS drawing area will be overwritten with the selected model and the ACS switches to run-mode.")]),e._v(" "),t("li",[t("em",[e._v("Delete a Stored Model")]),e._v(" deletes a model from the ARE storage using a file dialog.")]),e._v(" "),t("li",[t("em",[e._v("Set as Autorun")]),e._v(" sets the model as autorun model. This model will be started automatically when the ARE starts.")])]),e._v(" "),t("p",[e._v("Starting and stopping a model can be done with the buttons in the group Model.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(457),alt:"Screenshot: The Model Group in the System Tab",title:"Screenshot: The Model Group in the System Tab"}})]),e._v(" "),t("p",[e._v("The Model Group in the System Tab")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Start Model")]),e._v(" starts the model on the ARE and switches the ACS into run-mode. This means that now no components, channels and event channels can be added, edited or deleted. The drawing area is greyed out.")]),e._v(" "),t("li",[t("em",[e._v("Pause Model")]),e._v(" pauses the model on the ARE.")]),e._v(" "),t("li",[t("em",[e._v("Stop Model")]),e._v(" stops the model on the ARE and ends the run-mode.")])])])}),[],!1,null,null,null);t.default=a.exports},455:function(e,t,o){e.exports=o.p+"assets/img/are_and_are_storage_group.fa86415c.png"},456:function(e,t,o){e.exports=o.p+"assets/img/are_connection_dialog.3ab44010.jpg"},457:function(e,t){e.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{1007:function(e,t,o){"use strict";o.r(t);var n=o(2),a=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"control-the-are"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#control-the-are"}},[e._v("#")]),e._v(" Control the ARE")]),e._v(" "),t("p",[e._v("In the system-tab, the group ARE handles the functionalities for connecting to and communicating with the ARE. The connection to the ARE is handled by the AsTeRICS Application Programming Interface (ASAPI).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(451),alt:"Screenshot: System Tab, ARE and ARE Storage Group",title:"Screenshot: System Tab, ARE and ARE Storage Group"}})]),e._v(" "),t("p",[e._v("System Tab, ARE and ARE Storage Group")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("Connect to ARE")]),e._v(" connects the ACS with the ARE. The Connect to ARE dialog appears, asking for the connection data. The host name (IP-address of the host) can be found in the ARE configuration, the default port should be 9090. Beside this connection dialog, also auto connection can be used, see the section Options / General Settings.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(452),alt:"Screenshot: The ARE Connection Dialog",title:"Screenshot: The ARE Connection Dialog"}})]),e._v(" "),t("p",[e._v("The ARE Connection Dialog")]),e._v(" "),t("p",[e._v("When the connection has been established, two special cases can occur:")]),e._v(" "),t("ul",[t("li",[e._v("An active model (deployment) has been detected on the ARE. The user will be asked to download this model or to proceed without downloading it.")]),e._v(" "),t("li",[e._v("An active model (deployment) has been detected and is running on the ARE. The user will be asked to download this model and switch the ACS to "),t("em",[e._v("Running")]),e._v(" mode or to proceed without downloading it.")])])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Disconnect from ARE")]),e._v(" closes the connection to the ARE.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Upload Model")]),e._v(" transmits the model in the drawing from the ACS to the ARE. The model on the ARE will be overwritten. Uploading the model to the ARE does not start the model on the ARE.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Download Model")]),e._v(" transmits the active model from the ARE to the ACS. The model on the drawing area will be overwritten.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Download Bundles")]),e._v(" transmits the bundel description (describing the components) form the connected ARE to the ACS. These bundel descrptions will be available as components in the components-tab. Then bundles can be managed with the "),t("em",[e._v("Bundle Manager")]),e._v(".")])])]),e._v(" "),t("p",[e._v("The group ARE Storage deals with the storage on the ARE. The storage is an area within the ARE where models can be stored and also activated using the ARE interface.")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Store Model on ARE")]),e._v(" transmits the model in the drawing from the ACS to the ARE storage. A dialog appears to set the filename.")]),e._v(" "),t("li",[t("em",[e._v("Load Model from Storage")]),e._v(" transmits a model from the ARE storage to the ACS. The model on the ACS drawing area will be overwritten. A dialog appears to select the filename of the model.")]),e._v(" "),t("li",[t("em",[e._v("Activate a Stored Model")]),e._v(": A dialog appears to select the filename of a model in the storage. This model will be set active in the ARE and also will be started. Furthermore, the model on the ACS drawing area will be overwritten with the selected model and the ACS switches to run-mode.")]),e._v(" "),t("li",[t("em",[e._v("Delete a Stored Model")]),e._v(" deletes a model from the ARE storage using a file dialog.")]),e._v(" "),t("li",[t("em",[e._v("Set as Autorun")]),e._v(" sets the model as autorun model. This model will be started automatically when the ARE starts.")])]),e._v(" "),t("p",[e._v("Starting and stopping a model can be done with the buttons in the group Model.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(453),alt:"Screenshot: The Model Group in the System Tab",title:"Screenshot: The Model Group in the System Tab"}})]),e._v(" "),t("p",[e._v("The Model Group in the System Tab")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Start Model")]),e._v(" starts the model on the ARE and switches the ACS into run-mode. This means that now no components, channels and event channels can be added, edited or deleted. The drawing area is greyed out.")]),e._v(" "),t("li",[t("em",[e._v("Pause Model")]),e._v(" pauses the model on the ARE.")]),e._v(" "),t("li",[t("em",[e._v("Stop Model")]),e._v(" stops the model on the ARE and ends the run-mode.")])])])}),[],!1,null,null,null);t.default=a.exports},451:function(e,t,o){e.exports=o.p+"assets/img/are_and_are_storage_group.fa86415c.png"},452:function(e,t,o){e.exports=o.p+"assets/img/are_connection_dialog.3ab44010.jpg"},453:function(e,t){e.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/360.b1cbe924.js b/assets/js/360.d3a47740.js similarity index 96% rename from assets/js/360.b1cbe924.js rename to assets/js/360.d3a47740.js index 294b620be0..2b83d4403e 100644 --- a/assets/js/360.b1cbe924.js +++ b/assets/js/360.d3a47740.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[360],{1037:function(t,e,o){"use strict";o.r(e);var n=o(2),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"channels"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#channels"}},[t._v("#")]),t._v(" Channels")]),t._v(" "),e("p",[t._v("Channels are the main way to transmit data from one component to another. A channel always transmits information from the output port to the input port. The data type of the channel is always equal to the data type of the output port. The components of the AsTeRICS platform process one or several of the following data types, represented by the ports of the components:")]),t._v(" "),e("ul",[e("li",[t._v("Boolean: can be true or false")]),t._v(" "),e("li",[t._v("Byte: numbers from -128 to 127")]),t._v(" "),e("li",[t._v("Char: one character")]),t._v(" "),e("li",[t._v("Integer: numbers from approx. -2 billion to +2 billion")]),t._v(" "),e("li",[t._v("Double: huge amount of positive and negative floating point numbers")]),t._v(" "),e("li",[t._v("String: a string of characters (up to whole sentences)")])]),t._v(" "),e("p",[t._v("The ports can be connected to ports with the same data type or following these connection rules:")]),t._v(" "),e("ul",[e("li",[t._v("byte to integer")]),t._v(" "),e("li",[t._v("byte to double")]),t._v(" "),e("li",[t._v("char to integer")]),t._v(" "),e("li",[t._v("char to double")]),t._v(" "),e("li",[t._v("integer to double")]),t._v(" "),e("li",[t._v("double to integer")])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[360],{1034:function(t,e,o){"use strict";o.r(e);var n=o(2),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"channels"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#channels"}},[t._v("#")]),t._v(" Channels")]),t._v(" "),e("p",[t._v("Channels are the main way to transmit data from one component to another. A channel always transmits information from the output port to the input port. The data type of the channel is always equal to the data type of the output port. The components of the AsTeRICS platform process one or several of the following data types, represented by the ports of the components:")]),t._v(" "),e("ul",[e("li",[t._v("Boolean: can be true or false")]),t._v(" "),e("li",[t._v("Byte: numbers from -128 to 127")]),t._v(" "),e("li",[t._v("Char: one character")]),t._v(" "),e("li",[t._v("Integer: numbers from approx. -2 billion to +2 billion")]),t._v(" "),e("li",[t._v("Double: huge amount of positive and negative floating point numbers")]),t._v(" "),e("li",[t._v("String: a string of characters (up to whole sentences)")])]),t._v(" "),e("p",[t._v("The ports can be connected to ports with the same data type or following these connection rules:")]),t._v(" "),e("ul",[e("li",[t._v("byte to integer")]),t._v(" "),e("li",[t._v("byte to double")]),t._v(" "),e("li",[t._v("char to integer")]),t._v(" "),e("li",[t._v("char to double")]),t._v(" "),e("li",[t._v("integer to double")]),t._v(" "),e("li",[t._v("double to integer")])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/361.b783f116.js b/assets/js/361.d1160364.js similarity index 90% rename from assets/js/361.b783f116.js rename to assets/js/361.d1160364.js index a7fa8ad0f9..ee681f474d 100644 --- a/assets/js/361.b783f116.js +++ b/assets/js/361.d1160364.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[361],{1049:function(t,s,e){"use strict";e.r(s);var a=e(2),r=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#settings"}},[this._v("#")]),this._v(" Settings")]),this._v(" "),t("p",[this._v("Please have a look at the "),t("a",{attrs:{href:"https://aulaabierta.arasaac.org/en/asterics-grid_settings",target:"_blank",rel:"noopener noreferrer"}},[this._v("ARASAAC user manual / settings page"),t("OutboundLink")],1),this._v(".")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[361],{1047:function(t,s,e){"use strict";e.r(s);var a=e(2),r=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#settings"}},[this._v("#")]),this._v(" Settings")]),this._v(" "),t("p",[this._v("Please have a look at the "),t("a",{attrs:{href:"https://aulaabierta.arasaac.org/en/asterics-grid_settings",target:"_blank",rel:"noopener noreferrer"}},[this._v("ARASAAC user manual / settings page"),t("OutboundLink")],1),this._v(".")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/362.d4e27726.js b/assets/js/362.ab711c2e.js similarity index 98% rename from assets/js/362.d4e27726.js rename to assets/js/362.ab711c2e.js index fdda0dbc94..ca74c9c428 100644 --- a/assets/js/362.d4e27726.js +++ b/assets/js/362.ab711c2e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[362],{1047:function(e,t,r){"use strict";r.r(t);var s=r(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"terms"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#terms"}},[e._v("#")]),e._v(" Terms")]),e._v(" "),t("p",[e._v("This chapter explains the most important terms used in relation to the AsTeRICS Grid.")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid"}},[e._v("#")]),e._v(" AsTeRICS Grid")]),e._v(" "),t("p",[e._v("Web-based application for AAC solutions, runs in the browser (e.g. Firefox, Chrome, Edge, Internet Explorer, mobile Browsers).")]),e._v(" "),t("h2",{attrs:{id:"asterics-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-framework"}},[e._v("#")]),e._v(" AsTeRICS Framework")]),e._v(" "),t("p",[e._v("Java-based software suite that runs on a computer and makes it possible to trigger additional actions using the AsTeRICS Grid, e.g. controlling a TV (environmental control). See "),t("a",{attrs:{href:"https://www.asterics.eu/get-started/",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Framework"),t("OutboundLink")],1),e._v(" on the web.")]),e._v(" "),t("h2",{attrs:{id:"asterics-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-model"}},[e._v("#")]),e._v(" AsTeRICS model")]),e._v(" "),t("p",[e._v("An AsTeRICS model is a configuration for the AsTeRICS Framework which realizes a certain use-case, e.g. environmental control, camera based head-tracking or eye-tracking. A model that runs in the AsTeRICS Framework can interact with the AsTeRICS Grid.")]),e._v(" "),t("h2",{attrs:{id:"grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid"}},[e._v("#")]),e._v(" Grid")]),e._v(" "),t("p",[e._v("Term for a single page in the AsTeRICS Grid, consisting of several grid elements. The number of elements a grid contains is flexible.")]),e._v(" "),t("h2",{attrs:{id:"grid-element"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-element"}},[e._v("#")]),e._v(" Grid element")]),e._v(" "),t("p",[e._v("A grid element is part of a grid and normally consists of a label and/or an image. Selecting a grid element normally triggers an action, e.g. navigating to another grid.")]),e._v(" "),t("p",[e._v("There are 3 types of grid elements:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Normal")]),e._v(": an element consisting of a label and/or an image")]),e._v(" "),t("li",[t("strong",[e._v("Collect element")]),e._v(": an element that collects the labels of previously selected elements and therefore makes it possible to construct e.g. sentences out of single word elements.")]),e._v(" "),t("li",[t("strong",[e._v("Prediction element")]),e._v(": an element that is dynamically filled up with word predictions based on previously selected normal elements.")])]),e._v(" "),t("h2",{attrs:{id:"action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action"}},[e._v("#")]),e._v(" Action")]),e._v(" "),t("p",[e._v("An action that is performed if a grid element is selected, e.g. navigate to another grid, speak some text or some external action like turning on a light. See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[e._v("Grid element actions")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input"}},[e._v("#")]),e._v(" Input")]),e._v(" "),t("p",[e._v("In the context of AsTeRICS Grid “input” refers to the mean of selecting a grid element. This can be e.g. a normal mouse click, hovering or scanning. See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("Input options")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"dictionary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dictionary"}},[e._v("#")]),e._v(" Dictionary")]),e._v(" "),t("p",[e._v("A dictionary is a set of words that is used to fill up prediction grid elements. By default a dictionary including the most frequent english/german words is used, but also custom dictionaries can be used. See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_dictionaries.html"}},[e._v("Dictionaries")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#user"}},[e._v("#")]),e._v(" User")]),e._v(" "),t("p",[e._v("In AsTeRICS Grid a “user” refers to a username and a set of grids, which in sum realize a solution for an actual user. There are two types of users in AsTeRICS Grid:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Offline users")]),e._v(": are users whose grids are only stored locally on the used device.")]),e._v(" "),t("li",[t("strong",[e._v("Online users")]),e._v(": are users whose grids are stored locally on the device and online in the cloud. In contrast to offline users they also have a password that is used to encrypt all grids before saving them online.")])]),e._v(" "),t("p",[e._v("For more information see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Users")]),e._v(".")],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[362],{1048:function(e,t,r){"use strict";r.r(t);var s=r(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"terms"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#terms"}},[e._v("#")]),e._v(" Terms")]),e._v(" "),t("p",[e._v("This chapter explains the most important terms used in relation to the AsTeRICS Grid.")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid"}},[e._v("#")]),e._v(" AsTeRICS Grid")]),e._v(" "),t("p",[e._v("Web-based application for AAC solutions, runs in the browser (e.g. Firefox, Chrome, Edge, Internet Explorer, mobile Browsers).")]),e._v(" "),t("h2",{attrs:{id:"asterics-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-framework"}},[e._v("#")]),e._v(" AsTeRICS Framework")]),e._v(" "),t("p",[e._v("Java-based software suite that runs on a computer and makes it possible to trigger additional actions using the AsTeRICS Grid, e.g. controlling a TV (environmental control). See "),t("a",{attrs:{href:"https://www.asterics.eu/get-started/",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Framework"),t("OutboundLink")],1),e._v(" on the web.")]),e._v(" "),t("h2",{attrs:{id:"asterics-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-model"}},[e._v("#")]),e._v(" AsTeRICS model")]),e._v(" "),t("p",[e._v("An AsTeRICS model is a configuration for the AsTeRICS Framework which realizes a certain use-case, e.g. environmental control, camera based head-tracking or eye-tracking. A model that runs in the AsTeRICS Framework can interact with the AsTeRICS Grid.")]),e._v(" "),t("h2",{attrs:{id:"grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid"}},[e._v("#")]),e._v(" Grid")]),e._v(" "),t("p",[e._v("Term for a single page in the AsTeRICS Grid, consisting of several grid elements. The number of elements a grid contains is flexible.")]),e._v(" "),t("h2",{attrs:{id:"grid-element"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-element"}},[e._v("#")]),e._v(" Grid element")]),e._v(" "),t("p",[e._v("A grid element is part of a grid and normally consists of a label and/or an image. Selecting a grid element normally triggers an action, e.g. navigating to another grid.")]),e._v(" "),t("p",[e._v("There are 3 types of grid elements:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Normal")]),e._v(": an element consisting of a label and/or an image")]),e._v(" "),t("li",[t("strong",[e._v("Collect element")]),e._v(": an element that collects the labels of previously selected elements and therefore makes it possible to construct e.g. sentences out of single word elements.")]),e._v(" "),t("li",[t("strong",[e._v("Prediction element")]),e._v(": an element that is dynamically filled up with word predictions based on previously selected normal elements.")])]),e._v(" "),t("h2",{attrs:{id:"action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action"}},[e._v("#")]),e._v(" Action")]),e._v(" "),t("p",[e._v("An action that is performed if a grid element is selected, e.g. navigate to another grid, speak some text or some external action like turning on a light. See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[e._v("Grid element actions")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"input"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input"}},[e._v("#")]),e._v(" Input")]),e._v(" "),t("p",[e._v("In the context of AsTeRICS Grid “input” refers to the mean of selecting a grid element. This can be e.g. a normal mouse click, hovering or scanning. See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("Input options")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"dictionary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dictionary"}},[e._v("#")]),e._v(" Dictionary")]),e._v(" "),t("p",[e._v("A dictionary is a set of words that is used to fill up prediction grid elements. By default a dictionary including the most frequent english/german words is used, but also custom dictionaries can be used. See "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_dictionaries.html"}},[e._v("Dictionaries")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#user"}},[e._v("#")]),e._v(" User")]),e._v(" "),t("p",[e._v("In AsTeRICS Grid a “user” refers to a username and a set of grids, which in sum realize a solution for an actual user. There are two types of users in AsTeRICS Grid:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Offline users")]),e._v(": are users whose grids are only stored locally on the used device.")]),e._v(" "),t("li",[t("strong",[e._v("Online users")]),e._v(": are users whose grids are stored locally on the device and online in the cloud. In contrast to offline users they also have a password that is used to encrypt all grids before saving them online.")])]),e._v(" "),t("p",[e._v("For more information see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Users")]),e._v(".")],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/364.b32856ab.js b/assets/js/364.fad30d1a.js similarity index 99% rename from assets/js/364.b32856ab.js rename to assets/js/364.fad30d1a.js index 494f414da6..f87723d858 100644 --- a/assets/js/364.b32856ab.js +++ b/assets/js/364.fad30d1a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[364],{1057:function(t,e,a){"use strict";a.r(e);var n=a(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"translation-of-asterics-grid"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-asterics-grid"}},[t._v("#")]),t._v(" Translation of AsTeRICS Grid")]),t._v(" "),e("p",[t._v("AsTeRICS Grid supports multiple languages. In general there are two things that can be translated:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Application language:")]),t._v(" the language of the user interface, e.g. labels of buttons or texts within the menus.")]),t._v(" "),e("li",[e("strong",[t._v("Grid content language:")]),t._v(" the language of the grids, i.e. texts within grid elements or spoken custom texts.")])]),t._v(" "),e("p",[t._v("In the Settings menu it’s possible to change these languages:\n")]),e("div",[e("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/2537025/bf4acae1-9612-44a2-b3e2-83dc64b9bc00",width:"650"}})]),e("p"),t._v(" "),e("p",[t._v("The grid content language can also be changed via an action attached to a grid element.")]),t._v(" "),e("p",[t._v("We are thankful for any support translating the application of the grid contents!")]),t._v(" "),e("h2",{attrs:{id:"translation-of-the-application"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-the-application"}},[t._v("#")]),t._v(" Translation of the application")]),t._v(" "),e("p",[t._v("The application can be translated via the online service crowdin, see: "),e("a",{attrs:{href:"https://crowdin.com/project/asterics-grid",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Grid on crowdin"),e("OutboundLink")],1),t._v(". In order to contribute translations on this platform, follow these steps:")]),t._v(" "),e("ul",[e("li",[t._v("Create a user/log in at crowdin")]),t._v(" "),e("li",[t._v("Select the language where you want to contribute and click on “Translate all”:\n"),e("img",{attrs:{src:"https://user-images.githubusercontent.com/328325/188637877-e8dce701-189f-4434-a1ae-fefd210cbb36.png",width:"650"}})]),t._v(" "),e("li",[t._v("In a stepwise process, translate all the captions, messages and menu items (you may use suggested words and phrases by crowdin which makes the job much easier)")]),t._v(" "),e("li",[t._v("Translations are automatically transferred to the application and are released at some time (this can take a while)")])]),t._v(" "),e("h2",{attrs:{id:"translation-of-the-content"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-the-content"}},[t._v("#")]),t._v(" Translation of the content")]),t._v(" "),e("p",[t._v("AsTeRICS Grid can offer multilingual as well as monolingual standard gridsets (templates that can be imported). These templates can be imported after creating a new user or using AsTeRICS Grid the first time, for instance:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("AsTeRICS Grid default (multilingual):")]),t._v(" is a default gridset created by UAS Technikum Wien which is a demo for many possibilities that AsTeRICS Grid offers. It’s one configuration which is translated to many languages. This means that the language can be switched by the user, since all translations are included within this configuration.")]),t._v(" "),e("li",[e("strong",[t._v("Global-Core Communicator ARASAAC")]),t._v(": is a communicator that is offered monolingual. This means that the configuration only contains one language and it’s not possible to switch the language within this configuration. However it’s still possible to translate the configuration and make it available in a separate monolingual configuration.")])]),t._v(" "),e("p",[t._v("In general multilingual and monolingual gridsets are appropriate in different use cases:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Multilingual")]),t._v(": use cases where users should to be able to switch languages, e.g. a configuration used in a hospital which is used by different users speaking different languages.")]),t._v(" "),e("li",[e("strong",[t._v("Monolingual")]),t._v(": if a configuration is used by a single user speaking only one language, a monolingual configuration suits better. It also has the advantage that the structure of the grids (e.g. a keyboard grid) can be adapted to best fit a single language, which can be difficult for multilingual configurations.")])]),t._v(" "),e("h3",{attrs:{id:"translation-of-a-multilingual-default-gridset"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-a-multilingual-default-gridset"}},[t._v("#")]),t._v(" Translation of a multilingual default gridset")]),t._v(" "),e("p",[t._v("Follow these steps to translate an existing multilingual default gridset (e.g. "),e("code",[t._v("AsTeRICS Grid default")]),t._v("):")]),t._v(" "),e("ul",[e("li",[t._v("Create a new offline user with any username")]),t._v(" "),e("li",[t._v("Import the default gridset you want to translate")]),t._v(" "),e("li",[t._v("Use "),e("code",[t._v("Editing on -> More (right top corner) -> Translate grid")]),t._v(" to translate all grids to the target language")]),t._v(" "),e("li",[e("strong",[t._v("Hint")]),t._v(": you can select "),e("code",[t._v("show all grids")]),t._v(" and use the buttons "),e("code",[t._v("Copy column")]),t._v(" and "),e("code",[t._v("Paste column")]),t._v(" to copy/paste elements from/to a translation service like Google tranlsate. This can greatly speed up the translation process. "),e("div",[e("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/2537025/3962002b-c737-4a3f-b55c-116a20197d31",width:"650"}})])]),t._v(" "),e("li",[e("strong",[t._v("Important")]),t._v(": don’t change anything else in the configuration (e.g. adding new grid elements)")]),t._v(" "),e("li",[t._v("Create a backup with the new language via "),e("code",[t._v("Manage grids -> More (right top corner) -> Save backup to file")])]),t._v(" "),e("li",[t._v("Send the file to "),e("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[t._v("office@asterics-foundation.org")]),t._v(" and we can add this translation to the default gridset! Alternatively you can also "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid-Boards?tab=readme-ov-file#update-the-contents-of-the-boards-of-existing-configuration",target:"_blank",rel:"noopener noreferrer"}},[t._v("directly create a Pull Request at AsTeRICS Grid Boards"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("h3",{attrs:{id:"creation-of-a-new-monolingual-default-gridset"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creation-of-a-new-monolingual-default-gridset"}},[t._v("#")]),t._v(" Creation of a new monolingual default gridset")]),t._v(" "),e("p",[t._v("If you want to create a new default gridset for a single language, follow these steps:")]),t._v(" "),e("ul",[e("li",[t._v("Create a new offline user with any username")]),t._v(" "),e("li",[t._v("Import an existing default gridset if you want to build upon it or start with an empty configuration if you want to build something new")]),t._v(" "),e("li",[t._v("Set the correct content language under “Settings”:\n"),e("img",{attrs:{src:"https://user-images.githubusercontent.com/328325/188639307-88ee550d-a0aa-433f-9c2e-de2748f6734c.png",width:"650"}})]),t._v(" "),e("li",[t._v("Translate the gridset or adjust configuration as you like and how it works best for the desired language. This can also be something completely different than the base gridset.")]),t._v(" "),e("li",[t._v("Export the finished configuration using "),e("code",[t._v("Manage grids -> More (right top corner) -> Save custom data to file")]),t._v(" and there select these options:\n"),e("ul",[e("li",[t._v("Export "),e("code",[t._v("All grids")])]),t._v(" "),e("li",[t._v("Select "),e("code",[t._v("Export only current content language")])]),t._v(" "),e("li",[t._v("Uncheck "),e("code",[t._v("Export dictionaries")])]),t._v(" "),e("li",[t._v("Check "),e("code",[t._v("Export global grid")]),t._v(" "),e("div",[e("img",{attrs:{src:"https://github.com/user-attachments/assets/6d3adaf4-7041-4303-a715-ee0db5352dfb",width:"650"}})])])])]),t._v(" "),e("li",[t._v("Send the file to "),e("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[t._v("office@asterics-foundation.org")]),t._v(" and we can offer it as new default gridset! Alternatively you can also "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid-Boards?tab=readme-ov-file#add-translated-version-of-monolingual-configuration",target:"_blank",rel:"noopener noreferrer"}},[t._v("directly create a Pull Request at AsTeRICS Grid Boards"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("p",[t._v("You can also watch the "),e("a",{attrs:{href:"https://www.youtube.com/watch?v=QPqZlTSMR8U",target:"_blank",rel:"noopener noreferrer"}},[t._v("video tutorial about gridset translation"),e("OutboundLink")],1),t._v("\n(use auto-translation of subtitles, as this is a german video")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[364],{1058:function(t,e,a){"use strict";a.r(e);var n=a(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"translation-of-asterics-grid"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-asterics-grid"}},[t._v("#")]),t._v(" Translation of AsTeRICS Grid")]),t._v(" "),e("p",[t._v("AsTeRICS Grid supports multiple languages. In general there are two things that can be translated:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Application language:")]),t._v(" the language of the user interface, e.g. labels of buttons or texts within the menus.")]),t._v(" "),e("li",[e("strong",[t._v("Grid content language:")]),t._v(" the language of the grids, i.e. texts within grid elements or spoken custom texts.")])]),t._v(" "),e("p",[t._v("In the Settings menu it’s possible to change these languages:\n")]),e("div",[e("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/2537025/bf4acae1-9612-44a2-b3e2-83dc64b9bc00",width:"650"}})]),e("p"),t._v(" "),e("p",[t._v("The grid content language can also be changed via an action attached to a grid element.")]),t._v(" "),e("p",[t._v("We are thankful for any support translating the application of the grid contents!")]),t._v(" "),e("h2",{attrs:{id:"translation-of-the-application"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-the-application"}},[t._v("#")]),t._v(" Translation of the application")]),t._v(" "),e("p",[t._v("The application can be translated via the online service crowdin, see: "),e("a",{attrs:{href:"https://crowdin.com/project/asterics-grid",target:"_blank",rel:"noopener noreferrer"}},[t._v("AsTeRICS Grid on crowdin"),e("OutboundLink")],1),t._v(". In order to contribute translations on this platform, follow these steps:")]),t._v(" "),e("ul",[e("li",[t._v("Create a user/log in at crowdin")]),t._v(" "),e("li",[t._v("Select the language where you want to contribute and click on “Translate all”:\n"),e("img",{attrs:{src:"https://user-images.githubusercontent.com/328325/188637877-e8dce701-189f-4434-a1ae-fefd210cbb36.png",width:"650"}})]),t._v(" "),e("li",[t._v("In a stepwise process, translate all the captions, messages and menu items (you may use suggested words and phrases by crowdin which makes the job much easier)")]),t._v(" "),e("li",[t._v("Translations are automatically transferred to the application and are released at some time (this can take a while)")])]),t._v(" "),e("h2",{attrs:{id:"translation-of-the-content"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-the-content"}},[t._v("#")]),t._v(" Translation of the content")]),t._v(" "),e("p",[t._v("AsTeRICS Grid can offer multilingual as well as monolingual standard gridsets (templates that can be imported). These templates can be imported after creating a new user or using AsTeRICS Grid the first time, for instance:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("AsTeRICS Grid default (multilingual):")]),t._v(" is a default gridset created by UAS Technikum Wien which is a demo for many possibilities that AsTeRICS Grid offers. It’s one configuration which is translated to many languages. This means that the language can be switched by the user, since all translations are included within this configuration.")]),t._v(" "),e("li",[e("strong",[t._v("Global-Core Communicator ARASAAC")]),t._v(": is a communicator that is offered monolingual. This means that the configuration only contains one language and it’s not possible to switch the language within this configuration. However it’s still possible to translate the configuration and make it available in a separate monolingual configuration.")])]),t._v(" "),e("p",[t._v("In general multilingual and monolingual gridsets are appropriate in different use cases:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Multilingual")]),t._v(": use cases where users should to be able to switch languages, e.g. a configuration used in a hospital which is used by different users speaking different languages.")]),t._v(" "),e("li",[e("strong",[t._v("Monolingual")]),t._v(": if a configuration is used by a single user speaking only one language, a monolingual configuration suits better. It also has the advantage that the structure of the grids (e.g. a keyboard grid) can be adapted to best fit a single language, which can be difficult for multilingual configurations.")])]),t._v(" "),e("h3",{attrs:{id:"translation-of-a-multilingual-default-gridset"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#translation-of-a-multilingual-default-gridset"}},[t._v("#")]),t._v(" Translation of a multilingual default gridset")]),t._v(" "),e("p",[t._v("Follow these steps to translate an existing multilingual default gridset (e.g. "),e("code",[t._v("AsTeRICS Grid default")]),t._v("):")]),t._v(" "),e("ul",[e("li",[t._v("Create a new offline user with any username")]),t._v(" "),e("li",[t._v("Import the default gridset you want to translate")]),t._v(" "),e("li",[t._v("Use "),e("code",[t._v("Editing on -> More (right top corner) -> Translate grid")]),t._v(" to translate all grids to the target language")]),t._v(" "),e("li",[e("strong",[t._v("Hint")]),t._v(": you can select "),e("code",[t._v("show all grids")]),t._v(" and use the buttons "),e("code",[t._v("Copy column")]),t._v(" and "),e("code",[t._v("Paste column")]),t._v(" to copy/paste elements from/to a translation service like Google tranlsate. This can greatly speed up the translation process. "),e("div",[e("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/2537025/3962002b-c737-4a3f-b55c-116a20197d31",width:"650"}})])]),t._v(" "),e("li",[e("strong",[t._v("Important")]),t._v(": don’t change anything else in the configuration (e.g. adding new grid elements)")]),t._v(" "),e("li",[t._v("Create a backup with the new language via "),e("code",[t._v("Manage grids -> More (right top corner) -> Save backup to file")])]),t._v(" "),e("li",[t._v("Send the file to "),e("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[t._v("office@asterics-foundation.org")]),t._v(" and we can add this translation to the default gridset! Alternatively you can also "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid-Boards?tab=readme-ov-file#update-the-contents-of-the-boards-of-existing-configuration",target:"_blank",rel:"noopener noreferrer"}},[t._v("directly create a Pull Request at AsTeRICS Grid Boards"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("h3",{attrs:{id:"creation-of-a-new-monolingual-default-gridset"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creation-of-a-new-monolingual-default-gridset"}},[t._v("#")]),t._v(" Creation of a new monolingual default gridset")]),t._v(" "),e("p",[t._v("If you want to create a new default gridset for a single language, follow these steps:")]),t._v(" "),e("ul",[e("li",[t._v("Create a new offline user with any username")]),t._v(" "),e("li",[t._v("Import an existing default gridset if you want to build upon it or start with an empty configuration if you want to build something new")]),t._v(" "),e("li",[t._v("Set the correct content language under “Settings”:\n"),e("img",{attrs:{src:"https://user-images.githubusercontent.com/328325/188639307-88ee550d-a0aa-433f-9c2e-de2748f6734c.png",width:"650"}})]),t._v(" "),e("li",[t._v("Translate the gridset or adjust configuration as you like and how it works best for the desired language. This can also be something completely different than the base gridset.")]),t._v(" "),e("li",[t._v("Export the finished configuration using "),e("code",[t._v("Manage grids -> More (right top corner) -> Save custom data to file")]),t._v(" and there select these options:\n"),e("ul",[e("li",[t._v("Export "),e("code",[t._v("All grids")])]),t._v(" "),e("li",[t._v("Select "),e("code",[t._v("Export only current content language")])]),t._v(" "),e("li",[t._v("Uncheck "),e("code",[t._v("Export dictionaries")])]),t._v(" "),e("li",[t._v("Check "),e("code",[t._v("Export global grid")]),t._v(" "),e("div",[e("img",{attrs:{src:"https://github.com/user-attachments/assets/6d3adaf4-7041-4303-a715-ee0db5352dfb",width:"650"}})])])])]),t._v(" "),e("li",[t._v("Send the file to "),e("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[t._v("office@asterics-foundation.org")]),t._v(" and we can offer it as new default gridset! Alternatively you can also "),e("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid-Boards?tab=readme-ov-file#add-translated-version-of-monolingual-configuration",target:"_blank",rel:"noopener noreferrer"}},[t._v("directly create a Pull Request at AsTeRICS Grid Boards"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("p",[t._v("You can also watch the "),e("a",{attrs:{href:"https://www.youtube.com/watch?v=QPqZlTSMR8U",target:"_blank",rel:"noopener noreferrer"}},[t._v("video tutorial about gridset translation"),e("OutboundLink")],1),t._v("\n(use auto-translation of subtitles, as this is a german video")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/365.43b3e039.js b/assets/js/365.715286b4.js similarity index 99% rename from assets/js/365.43b3e039.js rename to assets/js/365.715286b4.js index c78b4fb408..389407768c 100644 --- a/assets/js/365.43b3e039.js +++ b/assets/js/365.715286b4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[365],{1059:function(e,t,o){"use strict";o.r(t);var a=o(2),s=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frequently-asked-questions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frequently-asked-questions"}},[e._v("#")]),e._v(" Frequently asked questions")]),e._v(" "),t("p",[e._v("This page contains information about frequently asked questions about AsTeRICS Grid.")]),e._v(" "),t("h2",{attrs:{id:"issues-with-online-text-to-speech-voices-lags-not-working"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues-with-online-text-to-speech-voices-lags-not-working"}},[e._v("#")]),e._v(" Issues with online text-to-speech voices (lags, not working)")]),e._v(" "),t("p",[e._v("AsTeRICS Grid uses voices from these sources:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("offline:")]),e._v(" voices installed on the operating system (differs depending on platform, Windows has different voices than Android or iOS), e.g. "),t("code",[e._v("Microsoft David - English, offline")]),e._v(" on a Windows computer")]),e._v(" "),t("li",[t("strong",[e._v("online (best quality):")]),e._v(" voices from Microsoft, e.g. "),t("code",[e._v("Microsoft Eric Online (Natural), online")]),e._v(". These voices are only available in the Microsoft Edge Browser on a Windows computer.")]),e._v(" "),t("li",[t("strong",[e._v("online (good quality):")]),e._v(", Google voices, e.g. "),t("code",[e._v("Google Deutsch, online")]),e._v(". These voices are only available in Google Chrome browser.")]),e._v(" "),t("li",[t("strong",[e._v("online (average quality and sometimes problems with availability):")]),e._v(" When using voices from "),t("a",{attrs:{href:"https://responsivevoice.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("responsivevoice.org"),t("OutboundLink")],1),e._v(", e.g. "),t("code",[e._v("Spanish Female, online")]),e._v(", there can be some delay (e.g. 5 seconds or more) until the label is spoken. There are also random errors accessing the voice service.")])]),e._v(" "),t("p",[e._v("As stated the quality and availability of these voices differs, in general "),t("strong",[e._v("offline voices should be preferred")]),e._v(", because they are most reliable and not depending on an internet connection. Most "),t("strong",[e._v("problems occur with voices from "),t("a",{attrs:{href:"https://responsivevoice.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("responsivevoice.org"),t("OutboundLink")],1)]),e._v(", which is why they only should be used if no alternatives are available.")]),e._v(" "),t("h3",{attrs:{id:"installing-additional-voices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-additional-voices"}},[e._v("#")]),e._v(" Installing additional voices")]),e._v(" "),t("p",[e._v("On most operating systems it’s possible to install additional offline voices and afterwards use them in AsTeRICS Grid.")]),e._v(" "),t("h4",{attrs:{id:"microsoft-windows-10"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#microsoft-windows-10"}},[e._v("#")]),e._v(" Microsoft Windows 10")]),e._v(" "),t("p",[e._v("On Windows 10 follow these steps to install additional voices:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("go to "),t("strong",[e._v("language system settings")])])]),e._v(" "),t("li",[t("p",[e._v("click on "),t("strong",[e._v("add language")])])]),e._v(" "),t("li",[t("p",[e._v("search for the language you want to install")])]),e._v(" "),t("li",[t("p",[e._v("if there is a speech balloon icon next to the language it indicates that a text-to-speech (TTS) voice is available for this language:\n")]),t("div",{attrs:{align:"center"}},[t("img",{attrs:{width:"350",src:"https://user-images.githubusercontent.com/2537025/233000407-6d8410b7-834f-45bb-ab06-d4931340071a.png"}})]),t("p")]),e._v(" "),t("li",[t("p",[e._v("If a TTS voice is available for your language, "),t("strong",[e._v("install it")]),e._v("!")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Restart the computer")]),e._v(": Afterwards the new offline voices should be available in AsTeRICS Grid")])])]),e._v(" "),t("h4",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("Please follow this tutorial from ARASAAC to read about possibilities to install additional offline voices on an Android device: "),t("a",{attrs:{href:"https://aulaabierta.arasaac.org/en/dynamic-communicator-asterics-grid-installation-of-speech-synthesis-tts-android",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARASAAC tutorial for installing voices on Android"),t("OutboundLink")],1)]),e._v(" "),t("h4",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),t("p",[e._v("With iOS 15 it was possible to use all voices installed on the device within AsTeRICS Grid. With iOS 16 Apple seems to have decided to remove the possibility to use high quality voices within web applications and therefore also to remove them from AsTeRICS Grid. See this "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/issues/223",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue on Github about iOS voices"),t("OutboundLink")],1),e._v(" and this "),t("a",{attrs:{href:"https://developer.apple.com/forums/thread/723503",target:"_blank",rel:"noopener noreferrer"}},[e._v("question in the Apple developer forum"),t("OutboundLink")],1),e._v(" which shows that this isn’t a bug, but is behaviour that’s intended by Apple. We’ve contacted Apple directly and asked them to revert this change, but didn’t receive an answer. If you’re experiencing this issue, you can send feedback to Apple directly: "),t("a",{attrs:{href:"https://www.apple.com/feedback/ipad/",target:"_blank",rel:"noopener noreferrer"}},[e._v("send feedback to Apple"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("strong",[e._v("Update")]),e._v(": with iOS 17 the situation became better again, now for most languages at least one higher quality voice is available for AsTeRICS Grid, also see https://github.com/asterics/AsTeRICS-Grid/issues/223#issuecomment-1729299302")]),e._v(" "),t("h2",{attrs:{id:"is-there-a-recommended-tablet-which-works-well-with-asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#is-there-a-recommended-tablet-which-works-well-with-asterics-grid"}},[e._v("#")]),e._v(" Is there a recommended Tablet which works well with AsTeRICS Grid?")]),e._v(" "),t("p",[e._v("We recommend Samsung tablets because Samsung makes available high quality offline Speech Synthesis Voices in their Galaxy Store.\nThese voices are offered for the most important languages. Example models are the Galaxy Tab A9 or A9+ (good quality/price ratio) or the more expensive Galaxy Tab S9.\nGenerally, all Android tablets support an offline text-to-speech engine (and it is important to have voices available offline.)\nYou can read more about the topic in an article by ARASAAC here: https://aulaabierta.arasaac.org/comunicador-dinamico-asterics-grid-voces-sintetizadas-tts-android-ios\nWe currently don’t recommend iOS devcies (iPads) for AsTeRICS grid because Apple restricted the use of offline voices from web applications (like AsTeRICS Grid).")]),e._v(" "),t("p",[e._v("Other criteria for selecting a particular tablet model could be:")]),e._v(" "),t("ul",[t("li",[e._v("The audio output and quality of the built-in speakers")]),e._v(" "),t("li",[e._v("The size and quality of the touchscreen")]),e._v(" "),t("li",[e._v("The availablility of protective cases/shells, keyguards (if necessary) or mounting solutions")]),e._v(" "),t("li",[e._v("The availability of a USB port in case an assistive switch should be connected via USB - (note that there are also switches with a Bluetooth interface)")])]),e._v(" "),t("h2",{attrs:{id:"can-i-recover-the-password-of-my-online-user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-i-recover-the-password-of-my-online-user"}},[e._v("#")]),e._v(" Can I recover the password of my online user?")]),e._v(" "),t("p",[e._v("We care about the protection of private data that can be inserted into grids, e.g. images or sound recordings. Therefore we’ve designed AsTeRICS Grid in a way where only the user itself can see his/her data, nobody else. All data of online users is encrypted using the password of the user. So even if we have access to the database, we cannot see anything but encrypted, unreadable data. While that’s great for privacy, it also has this major drawback:")]),e._v(" "),t("p",[e._v("It’s "),t("strong",[e._v("not possible to reset or recover the password of an online user")]),e._v(". If the password of an online user is lost, also the data of this user is lost and cannot be recovered.")]),e._v(" "),t("p",[e._v("So there are two things that are important in order to prevent loosing data:")]),e._v(" "),t("ul",[t("li",[e._v("keep the usernames and passwords of your online users safe, write them down somewhere or use a password safe software for saving them.")]),e._v(" "),t("li",[e._v("regularily download backups of your user’s data to file. AsTeRICS Grid automatically reminds for downloading backups, but it can be done at any time by going to "),t("code",[e._v("Manage grids -> More (right top) -> Save backup to file")]),e._v(". Backups saved to file are not encrypted and therefore can be used and imported for a new user.")])]),e._v(" "),t("h3",{attrs:{id:"transfer-data-to-new-user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#transfer-data-to-new-user"}},[e._v("#")]),e._v(" Transfer data to new user")]),e._v(" "),t("p",[e._v("If you’ve lost the password of a user and you’re still logged in with this user on any device, just make a backup to file, create a new user and import the data from the backup there. Follow these steps:")]),e._v(" "),t("ul",[t("li",[e._v("Go to "),t("code",[e._v("Manage grids -> More (top right corner) -> Save backup to file")])]),e._v(" "),t("li",[e._v("Create a new online user (and note your new password somewhere)")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Restore backup from file")]),e._v(" at the bottom: "),t("div",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/2537025/9333ef5c-899b-458e-8ad5-f142e6c20098",width:"400"}})])]),e._v(" "),t("li",[e._v("Continue to use the new online user on other devices")])]),e._v(" "),t("h2",{attrs:{id:"the-global-grid-disappeared-or-the-home-button-doesn-t-work"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-global-grid-disappeared-or-the-home-button-doesn-t-work"}},[e._v("#")]),e._v(" The global grid disappeared or the “Home” button doesn’t work")]),e._v(" "),t("p",[e._v("If the global grid (first line including navigation to “Home” and “Back” and line for collecting elements) disappears or doesn’t work as expected any more, try this:")]),e._v(" "),t("ul",[t("li",[e._v("go to “Manage Grids”")]),e._v(" "),t("li",[e._v("scroll all down to the bottom of the page")]),e._v(" "),t("li",[e._v("select the correct home grid at "),t("code",[e._v("Select Home grid for creating global Grid")])]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Reset global grid to default")])])]),e._v(" "),t("p",[e._v("Also see this screenshot:\n"),t("img",{attrs:{src:"https://user-images.githubusercontent.com/2537025/235093846-96ec29f7-267f-42b0-8181-d5d6612adffa.png",alt:"grafik"}})]),e._v(" "),t("h2",{attrs:{id:"allow-mixed-content-http-https"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#allow-mixed-content-http-https"}},[e._v("#")]),e._v(" Allow mixed content (http/https)")]),e._v(" "),t("p",[e._v("In order to be allowed to access a local network (e.g. OpenHAB for environmental control), it may be necessary to allow mixed content in the current page.\nYou can do according to the following steps:")]),e._v(" "),t("h3",{attrs:{id:"allow-mixed-content-firefox"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#allow-mixed-content-firefox"}},[e._v("#")]),e._v(" Allow mixed content Firefox")]),e._v(" "),t("p",[e._v("With the OpenHAB editing action opened,")]),e._v(" "),t("ol",[t("li",[e._v("Click on the lock symbol left to the address bar.")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Connection secure")])]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Disable protection for now")])])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/840d4f6d-20c1-4406-a0c8-0cbd77d5d2f9",alt:"image"}})]),e._v(" "),t("h3",{attrs:{id:"allow-mixed-content-chrome"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#allow-mixed-content-chrome"}},[e._v("#")]),e._v(" Allow mixed content Chrome")]),e._v(" "),t("p",[e._v("With the OpenHAB editing action opened,")]),e._v(" "),t("ol",[t("li",[e._v("Click on "),t("code",[e._v("Not secure")]),e._v(" left to the address bar.")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Site settings")])]),e._v(" "),t("li",[t("strong",[e._v("Allow")]),e._v(" "),t("code",[e._v("Insecure contents")])])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/8bbe29a5-e5bd-4ece-bd28-ae4bb3c0e0b3",alt:"image"}})])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[365],{1056:function(e,t,o){"use strict";o.r(t);var a=o(2),s=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frequently-asked-questions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frequently-asked-questions"}},[e._v("#")]),e._v(" Frequently asked questions")]),e._v(" "),t("p",[e._v("This page contains information about frequently asked questions about AsTeRICS Grid.")]),e._v(" "),t("h2",{attrs:{id:"issues-with-online-text-to-speech-voices-lags-not-working"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues-with-online-text-to-speech-voices-lags-not-working"}},[e._v("#")]),e._v(" Issues with online text-to-speech voices (lags, not working)")]),e._v(" "),t("p",[e._v("AsTeRICS Grid uses voices from these sources:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("offline:")]),e._v(" voices installed on the operating system (differs depending on platform, Windows has different voices than Android or iOS), e.g. "),t("code",[e._v("Microsoft David - English, offline")]),e._v(" on a Windows computer")]),e._v(" "),t("li",[t("strong",[e._v("online (best quality):")]),e._v(" voices from Microsoft, e.g. "),t("code",[e._v("Microsoft Eric Online (Natural), online")]),e._v(". These voices are only available in the Microsoft Edge Browser on a Windows computer.")]),e._v(" "),t("li",[t("strong",[e._v("online (good quality):")]),e._v(", Google voices, e.g. "),t("code",[e._v("Google Deutsch, online")]),e._v(". These voices are only available in Google Chrome browser.")]),e._v(" "),t("li",[t("strong",[e._v("online (average quality and sometimes problems with availability):")]),e._v(" When using voices from "),t("a",{attrs:{href:"https://responsivevoice.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("responsivevoice.org"),t("OutboundLink")],1),e._v(", e.g. "),t("code",[e._v("Spanish Female, online")]),e._v(", there can be some delay (e.g. 5 seconds or more) until the label is spoken. There are also random errors accessing the voice service.")])]),e._v(" "),t("p",[e._v("As stated the quality and availability of these voices differs, in general "),t("strong",[e._v("offline voices should be preferred")]),e._v(", because they are most reliable and not depending on an internet connection. Most "),t("strong",[e._v("problems occur with voices from "),t("a",{attrs:{href:"https://responsivevoice.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("responsivevoice.org"),t("OutboundLink")],1)]),e._v(", which is why they only should be used if no alternatives are available.")]),e._v(" "),t("h3",{attrs:{id:"installing-additional-voices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-additional-voices"}},[e._v("#")]),e._v(" Installing additional voices")]),e._v(" "),t("p",[e._v("On most operating systems it’s possible to install additional offline voices and afterwards use them in AsTeRICS Grid.")]),e._v(" "),t("h4",{attrs:{id:"microsoft-windows-10"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#microsoft-windows-10"}},[e._v("#")]),e._v(" Microsoft Windows 10")]),e._v(" "),t("p",[e._v("On Windows 10 follow these steps to install additional voices:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("go to "),t("strong",[e._v("language system settings")])])]),e._v(" "),t("li",[t("p",[e._v("click on "),t("strong",[e._v("add language")])])]),e._v(" "),t("li",[t("p",[e._v("search for the language you want to install")])]),e._v(" "),t("li",[t("p",[e._v("if there is a speech balloon icon next to the language it indicates that a text-to-speech (TTS) voice is available for this language:\n")]),t("div",{attrs:{align:"center"}},[t("img",{attrs:{width:"350",src:"https://user-images.githubusercontent.com/2537025/233000407-6d8410b7-834f-45bb-ab06-d4931340071a.png"}})]),t("p")]),e._v(" "),t("li",[t("p",[e._v("If a TTS voice is available for your language, "),t("strong",[e._v("install it")]),e._v("!")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("Restart the computer")]),e._v(": Afterwards the new offline voices should be available in AsTeRICS Grid")])])]),e._v(" "),t("h4",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("Please follow this tutorial from ARASAAC to read about possibilities to install additional offline voices on an Android device: "),t("a",{attrs:{href:"https://aulaabierta.arasaac.org/en/dynamic-communicator-asterics-grid-installation-of-speech-synthesis-tts-android",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARASAAC tutorial for installing voices on Android"),t("OutboundLink")],1)]),e._v(" "),t("h4",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),t("p",[e._v("With iOS 15 it was possible to use all voices installed on the device within AsTeRICS Grid. With iOS 16 Apple seems to have decided to remove the possibility to use high quality voices within web applications and therefore also to remove them from AsTeRICS Grid. See this "),t("a",{attrs:{href:"https://github.com/asterics/AsTeRICS-Grid/issues/223",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue on Github about iOS voices"),t("OutboundLink")],1),e._v(" and this "),t("a",{attrs:{href:"https://developer.apple.com/forums/thread/723503",target:"_blank",rel:"noopener noreferrer"}},[e._v("question in the Apple developer forum"),t("OutboundLink")],1),e._v(" which shows that this isn’t a bug, but is behaviour that’s intended by Apple. We’ve contacted Apple directly and asked them to revert this change, but didn’t receive an answer. If you’re experiencing this issue, you can send feedback to Apple directly: "),t("a",{attrs:{href:"https://www.apple.com/feedback/ipad/",target:"_blank",rel:"noopener noreferrer"}},[e._v("send feedback to Apple"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("strong",[e._v("Update")]),e._v(": with iOS 17 the situation became better again, now for most languages at least one higher quality voice is available for AsTeRICS Grid, also see https://github.com/asterics/AsTeRICS-Grid/issues/223#issuecomment-1729299302")]),e._v(" "),t("h2",{attrs:{id:"is-there-a-recommended-tablet-which-works-well-with-asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#is-there-a-recommended-tablet-which-works-well-with-asterics-grid"}},[e._v("#")]),e._v(" Is there a recommended Tablet which works well with AsTeRICS Grid?")]),e._v(" "),t("p",[e._v("We recommend Samsung tablets because Samsung makes available high quality offline Speech Synthesis Voices in their Galaxy Store.\nThese voices are offered for the most important languages. Example models are the Galaxy Tab A9 or A9+ (good quality/price ratio) or the more expensive Galaxy Tab S9.\nGenerally, all Android tablets support an offline text-to-speech engine (and it is important to have voices available offline.)\nYou can read more about the topic in an article by ARASAAC here: https://aulaabierta.arasaac.org/comunicador-dinamico-asterics-grid-voces-sintetizadas-tts-android-ios\nWe currently don’t recommend iOS devcies (iPads) for AsTeRICS grid because Apple restricted the use of offline voices from web applications (like AsTeRICS Grid).")]),e._v(" "),t("p",[e._v("Other criteria for selecting a particular tablet model could be:")]),e._v(" "),t("ul",[t("li",[e._v("The audio output and quality of the built-in speakers")]),e._v(" "),t("li",[e._v("The size and quality of the touchscreen")]),e._v(" "),t("li",[e._v("The availablility of protective cases/shells, keyguards (if necessary) or mounting solutions")]),e._v(" "),t("li",[e._v("The availability of a USB port in case an assistive switch should be connected via USB - (note that there are also switches with a Bluetooth interface)")])]),e._v(" "),t("h2",{attrs:{id:"can-i-recover-the-password-of-my-online-user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-i-recover-the-password-of-my-online-user"}},[e._v("#")]),e._v(" Can I recover the password of my online user?")]),e._v(" "),t("p",[e._v("We care about the protection of private data that can be inserted into grids, e.g. images or sound recordings. Therefore we’ve designed AsTeRICS Grid in a way where only the user itself can see his/her data, nobody else. All data of online users is encrypted using the password of the user. So even if we have access to the database, we cannot see anything but encrypted, unreadable data. While that’s great for privacy, it also has this major drawback:")]),e._v(" "),t("p",[e._v("It’s "),t("strong",[e._v("not possible to reset or recover the password of an online user")]),e._v(". If the password of an online user is lost, also the data of this user is lost and cannot be recovered.")]),e._v(" "),t("p",[e._v("So there are two things that are important in order to prevent loosing data:")]),e._v(" "),t("ul",[t("li",[e._v("keep the usernames and passwords of your online users safe, write them down somewhere or use a password safe software for saving them.")]),e._v(" "),t("li",[e._v("regularily download backups of your user’s data to file. AsTeRICS Grid automatically reminds for downloading backups, but it can be done at any time by going to "),t("code",[e._v("Manage grids -> More (right top) -> Save backup to file")]),e._v(". Backups saved to file are not encrypted and therefore can be used and imported for a new user.")])]),e._v(" "),t("h3",{attrs:{id:"transfer-data-to-new-user"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#transfer-data-to-new-user"}},[e._v("#")]),e._v(" Transfer data to new user")]),e._v(" "),t("p",[e._v("If you’ve lost the password of a user and you’re still logged in with this user on any device, just make a backup to file, create a new user and import the data from the backup there. Follow these steps:")]),e._v(" "),t("ul",[t("li",[e._v("Go to "),t("code",[e._v("Manage grids -> More (top right corner) -> Save backup to file")])]),e._v(" "),t("li",[e._v("Create a new online user (and note your new password somewhere)")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Restore backup from file")]),e._v(" at the bottom: "),t("div",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/2537025/9333ef5c-899b-458e-8ad5-f142e6c20098",width:"400"}})])]),e._v(" "),t("li",[e._v("Continue to use the new online user on other devices")])]),e._v(" "),t("h2",{attrs:{id:"the-global-grid-disappeared-or-the-home-button-doesn-t-work"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-global-grid-disappeared-or-the-home-button-doesn-t-work"}},[e._v("#")]),e._v(" The global grid disappeared or the “Home” button doesn’t work")]),e._v(" "),t("p",[e._v("If the global grid (first line including navigation to “Home” and “Back” and line for collecting elements) disappears or doesn’t work as expected any more, try this:")]),e._v(" "),t("ul",[t("li",[e._v("go to “Manage Grids”")]),e._v(" "),t("li",[e._v("scroll all down to the bottom of the page")]),e._v(" "),t("li",[e._v("select the correct home grid at "),t("code",[e._v("Select Home grid for creating global Grid")])]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Reset global grid to default")])])]),e._v(" "),t("p",[e._v("Also see this screenshot:\n"),t("img",{attrs:{src:"https://user-images.githubusercontent.com/2537025/235093846-96ec29f7-267f-42b0-8181-d5d6612adffa.png",alt:"grafik"}})]),e._v(" "),t("h2",{attrs:{id:"allow-mixed-content-http-https"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#allow-mixed-content-http-https"}},[e._v("#")]),e._v(" Allow mixed content (http/https)")]),e._v(" "),t("p",[e._v("In order to be allowed to access a local network (e.g. OpenHAB for environmental control), it may be necessary to allow mixed content in the current page.\nYou can do according to the following steps:")]),e._v(" "),t("h3",{attrs:{id:"allow-mixed-content-firefox"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#allow-mixed-content-firefox"}},[e._v("#")]),e._v(" Allow mixed content Firefox")]),e._v(" "),t("p",[e._v("With the OpenHAB editing action opened,")]),e._v(" "),t("ol",[t("li",[e._v("Click on the lock symbol left to the address bar.")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Connection secure")])]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Disable protection for now")])])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/840d4f6d-20c1-4406-a0c8-0cbd77d5d2f9",alt:"image"}})]),e._v(" "),t("h3",{attrs:{id:"allow-mixed-content-chrome"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#allow-mixed-content-chrome"}},[e._v("#")]),e._v(" Allow mixed content Chrome")]),e._v(" "),t("p",[e._v("With the OpenHAB editing action opened,")]),e._v(" "),t("ol",[t("li",[e._v("Click on "),t("code",[e._v("Not secure")]),e._v(" left to the address bar.")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("Site settings")])]),e._v(" "),t("li",[t("strong",[e._v("Allow")]),e._v(" "),t("code",[e._v("Insecure contents")])])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/8bbe29a5-e5bd-4ece-bd28-ae4bb3c0e0b3",alt:"image"}})])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/366.4aa6796f.js b/assets/js/366.cefef854.js similarity index 98% rename from assets/js/366.4aa6796f.js rename to assets/js/366.cefef854.js index a97f656483..7ac3d2140b 100644 --- a/assets/js/366.4aa6796f.js +++ b/assets/js/366.cefef854.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[366],{1061:function(t,e,l){"use strict";l.r(e);var a=l(2),s=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"http-action-tutorials"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#http-action-tutorials"}},[t._v("#")]),t._v(" HTTP action tutorials")]),t._v(" "),e("p",[t._v("In this document, you will find tutorials for the AsTeRICS Grid HTTP action.")]),t._v(" "),e("h2",{attrs:{id:"turn-on-off-shelly-plug"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#turn-on-off-shelly-plug"}},[t._v("#")]),t._v(" Turn on/off shelly plug")]),t._v(" "),e("p",[t._v("The shelly plug has a built-in wifi access point or can connect itself to a wifi access point. Furthermore, it runs a webserver and provides a REST API that can be used to turn the plug (electricity) on or off.")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://fr.alternate.be/p/1200x630/3/8/Shelly_Plug_S_smart_wifi__Prise_de_courant@@1826083_2.jpg",alt:"Shelly plug"}}),t._v(" "),e("img",{attrs:{src:"https://www.shelly.com/_Resources/Persistent/8/2/b/e/82beea31e4b257307de29a5671e3738113348abb/Shelly_Plus_PlugUK_x1-625x625.png",alt:"Shelly Plus Plug UK"}})]),t._v(" "),e("ol",[e("li",[t._v("Get a shelly plus plug (see "),e("a",{attrs:{href:"https://www.shelly.com/en-de/products/product-overview/shelly-plus-plug-uk",target:"_blank",rel:"noopener noreferrer"}},[t._v("UK model"),e("OutboundLink")],1),t._v(" or "),e("a",{attrs:{href:"https://www.amazon.de/s?k=shelly+s+plug&adgrpid=71094184076&hvadid=352674859116&hvdev=c&hvlocphy=1000739&hvnetw=g&hvqmt=e&hvrand=3009423075800256500&hvtargid=kwd-910071249511&hydadcr=1608_1721139&tag=googhydr08-21&ref=pd_sl_2xiktl7icw_e",target:"_blank",rel:"noopener noreferrer"}},[t._v("Shelly Plug S"),e("OutboundLink")],1),t._v(").")]),t._v(" "),e("li",[t._v("Plug it in and enable the shelly wifi access point according to the shelly plug manual.")]),t._v(" "),e("li",[t._v("Connect to the wifi access point of the shelly plug.")]),t._v(" "),e("li",[t._v("Now the shally plug should be reachable through an ip address, e.g "),e("code",[t._v("http://192.168.33.1")]),t._v(".")]),t._v(" "),e("li",[t._v("Turn on "),e("code",[t._v("Editing mode")])]),t._v(" "),e("li",[t._v("Edit cell and got to "),e("code",[t._v("Actions")]),t._v(" tab")]),t._v(" "),e("li",[t._v("Select "),e("code",[t._v("HTTP action")])]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("http://192.168.33.1/relay/0?turn=toggle")]),t._v(" command into the field "),e("code",[t._v("HTTP URL")]),t._v(" (see Fig 1).")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("GET")]),t._v(" into the field "),e("code",[t._v("HTTP method")]),t._v(".")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("text/plain")]),t._v(" into the field "),e("code",[t._v("HTTP Content-Type")]),t._v(".")]),t._v(" "),e("li",[t._v("Click on "),e("code",[t._v("OK")]),t._v(" to save the action.")]),t._v(" "),e("li",[t._v("Turn off "),e("code",[t._v("Editing mode")])])]),t._v(" "),e("p",[e("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/56792e15-1162-43ff-a112-f95d0a29d0c0",alt:"image"}})]),t._v(" "),e("p",[t._v("Fig 1: HTTP action to toggle Shelly plug.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("You can also use dedicated on/off commands (see "),e("a",{attrs:{href:"https://shelly-api-docs.shelly.cloud/gen1/#shelly2",target:"_blank",rel:"noopener noreferrer"}},[t._v("Shelly 2 HTTP manual"),e("OutboundLink")],1),t._v("):")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://192.168.33.1/relay/0?turn=on\n")])])]),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://192.168.33.1/relay/0?turn=on\n")])])])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[366],{1057:function(t,e,l){"use strict";l.r(e);var a=l(2),s=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"http-action-tutorials"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#http-action-tutorials"}},[t._v("#")]),t._v(" HTTP action tutorials")]),t._v(" "),e("p",[t._v("In this document, you will find tutorials for the AsTeRICS Grid HTTP action.")]),t._v(" "),e("h2",{attrs:{id:"turn-on-off-shelly-plug"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#turn-on-off-shelly-plug"}},[t._v("#")]),t._v(" Turn on/off shelly plug")]),t._v(" "),e("p",[t._v("The shelly plug has a built-in wifi access point or can connect itself to a wifi access point. Furthermore, it runs a webserver and provides a REST API that can be used to turn the plug (electricity) on or off.")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://fr.alternate.be/p/1200x630/3/8/Shelly_Plug_S_smart_wifi__Prise_de_courant@@1826083_2.jpg",alt:"Shelly plug"}}),t._v(" "),e("img",{attrs:{src:"https://www.shelly.com/_Resources/Persistent/8/2/b/e/82beea31e4b257307de29a5671e3738113348abb/Shelly_Plus_PlugUK_x1-625x625.png",alt:"Shelly Plus Plug UK"}})]),t._v(" "),e("ol",[e("li",[t._v("Get a shelly plus plug (see "),e("a",{attrs:{href:"https://www.shelly.com/en-de/products/product-overview/shelly-plus-plug-uk",target:"_blank",rel:"noopener noreferrer"}},[t._v("UK model"),e("OutboundLink")],1),t._v(" or "),e("a",{attrs:{href:"https://www.amazon.de/s?k=shelly+s+plug&adgrpid=71094184076&hvadid=352674859116&hvdev=c&hvlocphy=1000739&hvnetw=g&hvqmt=e&hvrand=3009423075800256500&hvtargid=kwd-910071249511&hydadcr=1608_1721139&tag=googhydr08-21&ref=pd_sl_2xiktl7icw_e",target:"_blank",rel:"noopener noreferrer"}},[t._v("Shelly Plug S"),e("OutboundLink")],1),t._v(").")]),t._v(" "),e("li",[t._v("Plug it in and enable the shelly wifi access point according to the shelly plug manual.")]),t._v(" "),e("li",[t._v("Connect to the wifi access point of the shelly plug.")]),t._v(" "),e("li",[t._v("Now the shally plug should be reachable through an ip address, e.g "),e("code",[t._v("http://192.168.33.1")]),t._v(".")]),t._v(" "),e("li",[t._v("Turn on "),e("code",[t._v("Editing mode")])]),t._v(" "),e("li",[t._v("Edit cell and got to "),e("code",[t._v("Actions")]),t._v(" tab")]),t._v(" "),e("li",[t._v("Select "),e("code",[t._v("HTTP action")])]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("http://192.168.33.1/relay/0?turn=toggle")]),t._v(" command into the field "),e("code",[t._v("HTTP URL")]),t._v(" (see Fig 1).")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("GET")]),t._v(" into the field "),e("code",[t._v("HTTP method")]),t._v(".")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("text/plain")]),t._v(" into the field "),e("code",[t._v("HTTP Content-Type")]),t._v(".")]),t._v(" "),e("li",[t._v("Click on "),e("code",[t._v("OK")]),t._v(" to save the action.")]),t._v(" "),e("li",[t._v("Turn off "),e("code",[t._v("Editing mode")])])]),t._v(" "),e("p",[e("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/56792e15-1162-43ff-a112-f95d0a29d0c0",alt:"image"}})]),t._v(" "),e("p",[t._v("Fig 1: HTTP action to toggle Shelly plug.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("You can also use dedicated on/off commands (see "),e("a",{attrs:{href:"https://shelly-api-docs.shelly.cloud/gen1/#shelly2",target:"_blank",rel:"noopener noreferrer"}},[t._v("Shelly 2 HTTP manual"),e("OutboundLink")],1),t._v("):")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://192.168.33.1/relay/0?turn=on\n")])])]),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("http://192.168.33.1/relay/0?turn=on\n")])])])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/367.619454e3.js b/assets/js/367.6af66db5.js similarity index 99% rename from assets/js/367.619454e3.js rename to assets/js/367.6af66db5.js index 7dfdf9c5c5..7ba7db9960 100644 --- a/assets/js/367.619454e3.js +++ b/assets/js/367.6af66db5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[367],{1060:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"uart-action-tutorials"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uart-action-tutorials"}},[e._v("#")]),e._v(" UART action tutorials")]),e._v(" "),t("p",[e._v("Subsequently, you will find tutorials of how to use the UART action.")]),e._v(" "),t("h2",{attrs:{id:"remote-control-infrared"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#remote-control-infrared"}},[e._v("#")]),e._v(" Remote control (Infrared)")]),e._v(" "),t("p",[e._v("The following tutorial explains, how to create a remote control for a TV by sending Infrared commands to the Open Source microcontroller "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(", which supports emitting infrared light codes out of the box. The commands can be directly copied from the "),t("a",{attrs:{href:"https://asterics.github.io/puckmote/",target:"_blank",rel:"noopener noreferrer"}},[e._v("puckmote"),t("OutboundLink")],1),e._v(" online remote control database (modified version for AsTeRICS Grid).")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/6459d87a-aac6-4456-84a1-00fbcb847e9a",alt:"AG-puckmote"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 1: Pasting infrared command into action field and try out of command.")])]),e._v(" "),t("ol",[t("li",[e._v("Get a "),t("a",{attrs:{href:"https://www.puck-js.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(" device ("),t("strong",[e._v("not Puck.js Lite")]),e._v(") from the "),t("a",{attrs:{href:"https://shop.espruino.com/puckjs",target:"_blank",rel:"noopener noreferrer"}},[e._v("official shop"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"http://www.espruino.com/Order",target:"_blank",rel:"noopener noreferrer"}},[e._v("another distributor"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Follow the "),t("a",{attrs:{href:"https://www.espruino.com/Quick+Start+BLE#puckjs",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js Getting Started Guide"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Enable Bluetooth on your host device")]),e._v(" "),t("li",[e._v("Turn on "),t("code",[e._v("Editing mode")])]),e._v(" "),t("li",[e._v("Edit cell and got to "),t("code",[e._v("Actions")]),e._v(" tab")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("UART action")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Bluetooth")]),e._v(" as "),t("code",[e._v("UART Type")]),e._v(".")]),e._v(" "),t("li",[e._v("Check if your device is contained in the "),t("a",{attrs:{href:"https://asterics.github.io/puckmote/",target:"_blank",rel:"noopener noreferrer"}},[e._v("puckmote database"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Test infrared command of choice, e.g. click on "),t("code",[e._v("Power On")]),e._v(" or "),t("code",[e._v("On")]),e._v(".")]),e._v(" "),t("li",[e._v("Copy the "),t("code",[e._v("Puck.IR(....);\\n")]),e._v(" command.")]),e._v(" "),t("li",[e._v("Paste copied "),t("code",[e._v("Puck.IR(....);\\n")]),e._v(" command into the field "),t("code",[e._v("Data")]),e._v(".")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("OK")]),e._v(" to save the action.")]),e._v(" "),t("li",[e._v("Turn off "),t("code",[e._v("Editing mode")])])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("You can actually send any Javascript command supported by the Puck.js device, see "),t("a",{attrs:{href:"https://www.espruino.com/Puck.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js API Documentation"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"accessible-toy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessible-toy"}},[e._v("#")]),e._v(" Accessible toy")]),e._v(" "),t("p",[e._v("The following tutorial explains, how to create an accessible battery-powered toy (e.g. disco light, soap bubble machine or duplo train). The "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(" device contains an on-board FET (transistor) and allows you to control medium current devices (up to 200mA) directly from Puck.js, without external components (see "),t("a",{attrs:{href:"https://www.espruino.com/Puck.js+FET",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js+FET tutorial"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/136c33c3-027f-40ad-b2b7-bad928901f34",alt:"AG-puckjs-accessible-toy-FET-action-small"}})]),e._v(" "),t("p",[t("em",[e._v("Fig 2: Demo of accessible disco light toy.")])]),e._v(" "),t("ol",[t("li",[e._v("Get a "),t("a",{attrs:{href:"https://www.puck-js.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(" device ("),t("strong",[e._v("not Puck.js Lite")]),e._v(") from the "),t("a",{attrs:{href:"https://shop.espruino.com/puckjs",target:"_blank",rel:"noopener noreferrer"}},[e._v("official shop"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"http://www.espruino.com/Order",target:"_blank",rel:"noopener noreferrer"}},[e._v("another distributor"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Get a battery-powered toy. ("),t("strong",[e._v("The battery voltage must be below 20V")]),e._v(").")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.upstate.edu/specialneeds/pdf/inclusive/2021_family-fun-series_create-your-own-battery-interrupter.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Create a battery-interruptor DIY"),t("OutboundLink")],1),e._v(" (see Fig 3) and insert it at the flat side of the battery. For our example keep the wires open ended and don’t solder the audio socket onto them.")]),e._v(" "),t("li",[e._v("Connect the negative pole of the battery "),t("code",[e._v("N1")]),e._v(" to the "),t("code",[e._v("GND")]),e._v(" pin of the Puck.js device (see Fig. 4).")]),e._v(" "),t("li",[e._v("Connect the positive pole of the battery "),t("code",[e._v("P1")]),e._v("to the "),t("code",[e._v("FET")]),e._v("of the Puck.js device (see Fig. 4).")]),e._v(" "),t("li",[e._v("Turn on the on/off switch of the toy (if there is one).")]),e._v(" "),t("li",[e._v("Now the toy is ready to be switched by the transistor of the Puck.js device.")]),e._v(" "),t("li",[e._v("Open a grid and turn on "),t("code",[e._v("Editing mode")])]),e._v(" "),t("li",[e._v("Edit cell and got to "),t("code",[e._v("Actions")]),e._v(" tab")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("UART action")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Bluetooth")]),e._v(" as "),t("code",[e._v("UART Type")]),e._v(".")]),e._v(" "),t("li",[e._v("Enter "),t("code",[e._v("FET.set();\\n")]),e._v(" into the field "),t("code",[e._v("Data")]),e._v(".")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("OK")]),e._v(" to save the action.")]),e._v(" "),t("li",[e._v("Turn off "),t("code",[e._v("Editing mode")])])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/b35856fc-3cbd-4747-a410-353e95bea12b",alt:"image"}})]),e._v(" "),t("p",[t("em",[e._v("Fig 3: Battery interrupter")])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/31e9bafe-f2d1-401b-b601-df5c065ad394",alt:"image"}})]),e._v(" "),t("p",[e._v("Fig 4: Wiring of battery interrupter and Puck.js")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("FET.set();\\n")]),e._v(": will turn the toy on.")]),e._v(" "),t("li",[t("code",[e._v("FET.reset();\\n")]),e._v(": will turn the toy off.")])])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("You can also buy already adapted toys e.g. from "),t("a",{attrs:{href:"https://enablingdevices.com/product-category/adapted-toys-games/",target:"_blank",rel:"noopener noreferrer"}},[e._v("enablingdevices"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://inklusiv-shop.ariadne.de/spiele/adaptiertes-spielzeug/?p=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ariadne Inklusivshop"),t("OutboundLink")],1),e._v(".\nIn such a case the Puck.js pins must be soldered to an audio jack plug.")])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Electromagnetic devices (motors, solenoids, speakers, etc) let out big spikes of electricity when they are disconnected from power. While Puck.js’s FET provides a certain level of protection (350mA) for this Back-EMF, if you’re trying to power anything of any size with the FET pin we’d suggest you add your own diode across the pins of device that you’re powering to help to protect your Puck.js.")])]),e._v(" "),t("h2",{attrs:{id:"fabi-flipmouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabi-flipmouse"}},[e._v("#")]),e._v(" FABI / FLipMouse")]),e._v(" "),t("p",[e._v("This tutorial explains, how to create a mouse movement using the button interface FABI or the mouth mouse FLipMouse. This currently only supports a wired serial connection to the device.")]),e._v(" "),t("h3",{attrs:{id:"move-mouse-cursor-to-the-right"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#move-mouse-cursor-to-the-right"}},[e._v("#")]),e._v(" Move mouse cursor to the right")]),e._v(" "),t("ol",[t("li",[e._v("Connect the device to a desktop/laptop computer using a USB cable.")]),e._v(" "),t("li",[e._v("Open a grid and turn on "),t("code",[e._v("Editing mode")])]),e._v(" "),t("li",[e._v("Edit cell and got to "),t("code",[e._v("Actions")]),e._v(" tab")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("UART action")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Bluetooth")]),e._v(" as "),t("code",[e._v("UART Type")]),e._v(".")]),e._v(" "),t("li",[e._v("Enter "),t("code",[e._v("AT MX 100;\\n")]),e._v(" into the field "),t("code",[e._v("Data")]),e._v(".")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("OK")]),e._v(" to save the action.")]),e._v(" "),t("li",[e._v("Turn off "),t("code",[e._v("Editing mode")])])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("You can send any "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/FabiWare/commands.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("FABI AT command"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/FLipWare/commands.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse AT"),t("OutboundLink")],1),e._v(" command (e.g. mouse click, keyboard input, slot change to remote control a Smartphone via Bluetooth HID, …) that is supported.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[367],{1059:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"uart-action-tutorials"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uart-action-tutorials"}},[e._v("#")]),e._v(" UART action tutorials")]),e._v(" "),t("p",[e._v("Subsequently, you will find tutorials of how to use the UART action.")]),e._v(" "),t("h2",{attrs:{id:"remote-control-infrared"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#remote-control-infrared"}},[e._v("#")]),e._v(" Remote control (Infrared)")]),e._v(" "),t("p",[e._v("The following tutorial explains, how to create a remote control for a TV by sending Infrared commands to the Open Source microcontroller "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(", which supports emitting infrared light codes out of the box. The commands can be directly copied from the "),t("a",{attrs:{href:"https://asterics.github.io/puckmote/",target:"_blank",rel:"noopener noreferrer"}},[e._v("puckmote"),t("OutboundLink")],1),e._v(" online remote control database (modified version for AsTeRICS Grid).")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/6459d87a-aac6-4456-84a1-00fbcb847e9a",alt:"AG-puckmote"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 1: Pasting infrared command into action field and try out of command.")])]),e._v(" "),t("ol",[t("li",[e._v("Get a "),t("a",{attrs:{href:"https://www.puck-js.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(" device ("),t("strong",[e._v("not Puck.js Lite")]),e._v(") from the "),t("a",{attrs:{href:"https://shop.espruino.com/puckjs",target:"_blank",rel:"noopener noreferrer"}},[e._v("official shop"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"http://www.espruino.com/Order",target:"_blank",rel:"noopener noreferrer"}},[e._v("another distributor"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Follow the "),t("a",{attrs:{href:"https://www.espruino.com/Quick+Start+BLE#puckjs",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js Getting Started Guide"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Enable Bluetooth on your host device")]),e._v(" "),t("li",[e._v("Turn on "),t("code",[e._v("Editing mode")])]),e._v(" "),t("li",[e._v("Edit cell and got to "),t("code",[e._v("Actions")]),e._v(" tab")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("UART action")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Bluetooth")]),e._v(" as "),t("code",[e._v("UART Type")]),e._v(".")]),e._v(" "),t("li",[e._v("Check if your device is contained in the "),t("a",{attrs:{href:"https://asterics.github.io/puckmote/",target:"_blank",rel:"noopener noreferrer"}},[e._v("puckmote database"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Test infrared command of choice, e.g. click on "),t("code",[e._v("Power On")]),e._v(" or "),t("code",[e._v("On")]),e._v(".")]),e._v(" "),t("li",[e._v("Copy the "),t("code",[e._v("Puck.IR(....);\\n")]),e._v(" command.")]),e._v(" "),t("li",[e._v("Paste copied "),t("code",[e._v("Puck.IR(....);\\n")]),e._v(" command into the field "),t("code",[e._v("Data")]),e._v(".")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("OK")]),e._v(" to save the action.")]),e._v(" "),t("li",[e._v("Turn off "),t("code",[e._v("Editing mode")])])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("You can actually send any Javascript command supported by the Puck.js device, see "),t("a",{attrs:{href:"https://www.espruino.com/Puck.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js API Documentation"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"accessible-toy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessible-toy"}},[e._v("#")]),e._v(" Accessible toy")]),e._v(" "),t("p",[e._v("The following tutorial explains, how to create an accessible battery-powered toy (e.g. disco light, soap bubble machine or duplo train). The "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(" device contains an on-board FET (transistor) and allows you to control medium current devices (up to 200mA) directly from Puck.js, without external components (see "),t("a",{attrs:{href:"https://www.espruino.com/Puck.js+FET",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js+FET tutorial"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/136c33c3-027f-40ad-b2b7-bad928901f34",alt:"AG-puckjs-accessible-toy-FET-action-small"}})]),e._v(" "),t("p",[t("em",[e._v("Fig 2: Demo of accessible disco light toy.")])]),e._v(" "),t("ol",[t("li",[e._v("Get a "),t("a",{attrs:{href:"https://www.puck-js.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(" device ("),t("strong",[e._v("not Puck.js Lite")]),e._v(") from the "),t("a",{attrs:{href:"https://shop.espruino.com/puckjs",target:"_blank",rel:"noopener noreferrer"}},[e._v("official shop"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"http://www.espruino.com/Order",target:"_blank",rel:"noopener noreferrer"}},[e._v("another distributor"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Get a battery-powered toy. ("),t("strong",[e._v("The battery voltage must be below 20V")]),e._v(").")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.upstate.edu/specialneeds/pdf/inclusive/2021_family-fun-series_create-your-own-battery-interrupter.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Create a battery-interruptor DIY"),t("OutboundLink")],1),e._v(" (see Fig 3) and insert it at the flat side of the battery. For our example keep the wires open ended and don’t solder the audio socket onto them.")]),e._v(" "),t("li",[e._v("Connect the negative pole of the battery "),t("code",[e._v("N1")]),e._v(" to the "),t("code",[e._v("GND")]),e._v(" pin of the Puck.js device (see Fig. 4).")]),e._v(" "),t("li",[e._v("Connect the positive pole of the battery "),t("code",[e._v("P1")]),e._v("to the "),t("code",[e._v("FET")]),e._v("of the Puck.js device (see Fig. 4).")]),e._v(" "),t("li",[e._v("Turn on the on/off switch of the toy (if there is one).")]),e._v(" "),t("li",[e._v("Now the toy is ready to be switched by the transistor of the Puck.js device.")]),e._v(" "),t("li",[e._v("Open a grid and turn on "),t("code",[e._v("Editing mode")])]),e._v(" "),t("li",[e._v("Edit cell and got to "),t("code",[e._v("Actions")]),e._v(" tab")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("UART action")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Bluetooth")]),e._v(" as "),t("code",[e._v("UART Type")]),e._v(".")]),e._v(" "),t("li",[e._v("Enter "),t("code",[e._v("FET.set();\\n")]),e._v(" into the field "),t("code",[e._v("Data")]),e._v(".")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("OK")]),e._v(" to save the action.")]),e._v(" "),t("li",[e._v("Turn off "),t("code",[e._v("Editing mode")])])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/b35856fc-3cbd-4747-a410-353e95bea12b",alt:"image"}})]),e._v(" "),t("p",[t("em",[e._v("Fig 3: Battery interrupter")])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/31e9bafe-f2d1-401b-b601-df5c065ad394",alt:"image"}})]),e._v(" "),t("p",[e._v("Fig 4: Wiring of battery interrupter and Puck.js")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("FET.set();\\n")]),e._v(": will turn the toy on.")]),e._v(" "),t("li",[t("code",[e._v("FET.reset();\\n")]),e._v(": will turn the toy off.")])])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("You can also buy already adapted toys e.g. from "),t("a",{attrs:{href:"https://enablingdevices.com/product-category/adapted-toys-games/",target:"_blank",rel:"noopener noreferrer"}},[e._v("enablingdevices"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://inklusiv-shop.ariadne.de/spiele/adaptiertes-spielzeug/?p=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ariadne Inklusivshop"),t("OutboundLink")],1),e._v(".\nIn such a case the Puck.js pins must be soldered to an audio jack plug.")])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Electromagnetic devices (motors, solenoids, speakers, etc) let out big spikes of electricity when they are disconnected from power. While Puck.js’s FET provides a certain level of protection (350mA) for this Back-EMF, if you’re trying to power anything of any size with the FET pin we’d suggest you add your own diode across the pins of device that you’re powering to help to protect your Puck.js.")])]),e._v(" "),t("h2",{attrs:{id:"fabi-flipmouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabi-flipmouse"}},[e._v("#")]),e._v(" FABI / FLipMouse")]),e._v(" "),t("p",[e._v("This tutorial explains, how to create a mouse movement using the button interface FABI or the mouth mouse FLipMouse. This currently only supports a wired serial connection to the device.")]),e._v(" "),t("h3",{attrs:{id:"move-mouse-cursor-to-the-right"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#move-mouse-cursor-to-the-right"}},[e._v("#")]),e._v(" Move mouse cursor to the right")]),e._v(" "),t("ol",[t("li",[e._v("Connect the device to a desktop/laptop computer using a USB cable.")]),e._v(" "),t("li",[e._v("Open a grid and turn on "),t("code",[e._v("Editing mode")])]),e._v(" "),t("li",[e._v("Edit cell and got to "),t("code",[e._v("Actions")]),e._v(" tab")]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("UART action")])]),e._v(" "),t("li",[e._v("Select "),t("code",[e._v("Bluetooth")]),e._v(" as "),t("code",[e._v("UART Type")]),e._v(".")]),e._v(" "),t("li",[e._v("Enter "),t("code",[e._v("AT MX 100;\\n")]),e._v(" into the field "),t("code",[e._v("Data")]),e._v(".")]),e._v(" "),t("li",[e._v("Click on "),t("code",[e._v("OK")]),e._v(" to save the action.")]),e._v(" "),t("li",[e._v("Turn off "),t("code",[e._v("Editing mode")])])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("You can send any "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/FabiWare/commands.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("FABI AT command"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/FLipWare/commands.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse AT"),t("OutboundLink")],1),e._v(" command (e.g. mouse click, keyboard input, slot change to remote control a Smartphone via Bluetooth HID, …) that is supported.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/368.3461f99c.js b/assets/js/368.d962d388.js similarity index 97% rename from assets/js/368.3461f99c.js rename to assets/js/368.d962d388.js index 0ba8d66b39..cf0e8eb887 100644 --- a/assets/js/368.3461f99c.js +++ b/assets/js/368.d962d388.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[368],{1062:function(t,a,i){"use strict";i.r(a);var s=i(2),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"asterics-grid-user-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid-user-documentation"}},[t._v("#")]),t._v(" AsTeRICS Grid user documentation")]),t._v(" "),a("p",[t._v("This is the user documentation for AsTeRICS Grid, a web-based tool for augmented and alternative communication (AAC). Integration with the AsTeRICS Framework makes it possible to realize additional functionalities like environmental or computer control.")]),t._v(" "),a("p",[t._v("The documentation is divided in the following parts:")]),t._v(" "),a("ol",[a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html"}},[t._v("Terms")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[t._v("Navigation and basic functionality")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[t._v("Grid appearance and layout")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[t._v("Input options")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[t._v("Grid element actions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[t._v("Users")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/07_dictionaries.html"}},[t._v("Dictionaries")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/08_keyboard_shortcuts.html"}},[t._v("Keyboard Shortcuts")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/09_translation.html"}},[t._v("Translation")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_word_forms.html"}},[t._v("Word forms")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_faq.html"}},[t._v("FAQ - frequently asked questions")])],1)]),t._v(" "),a("p",[a("strong",[t._v("Hint:")]),t._v(" Most of the content of this documentation is also available in "),a("a",{attrs:{href:"https://www.youtube.com/playlist?list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz",target:"_blank",rel:"noopener noreferrer"}},[t._v("this video playlist"),a("OutboundLink")],1),t._v(" on YouTube. The videos are in German, but auto-translated subtitles are available.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[368],{1061:function(t,a,i){"use strict";i.r(a);var s=i(2),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"asterics-grid-user-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asterics-grid-user-documentation"}},[t._v("#")]),t._v(" AsTeRICS Grid user documentation")]),t._v(" "),a("p",[t._v("This is the user documentation for AsTeRICS Grid, a web-based tool for augmented and alternative communication (AAC). Integration with the AsTeRICS Framework makes it possible to realize additional functionalities like environmental or computer control.")]),t._v(" "),a("p",[t._v("The documentation is divided in the following parts:")]),t._v(" "),a("ol",[a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html"}},[t._v("Terms")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[t._v("Navigation and basic functionality")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html"}},[t._v("Grid appearance and layout")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[t._v("Input options")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html"}},[t._v("Grid element actions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[t._v("Users")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/07_dictionaries.html"}},[t._v("Dictionaries")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/08_keyboard_shortcuts.html"}},[t._v("Keyboard Shortcuts")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/09_translation.html"}},[t._v("Translation")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_word_forms.html"}},[t._v("Word forms")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_faq.html"}},[t._v("FAQ - frequently asked questions")])],1)]),t._v(" "),a("p",[a("strong",[t._v("Hint:")]),t._v(" Most of the content of this documentation is also available in "),a("a",{attrs:{href:"https://www.youtube.com/playlist?list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz",target:"_blank",rel:"noopener noreferrer"}},[t._v("this video playlist"),a("OutboundLink")],1),t._v(" on YouTube. The videos are in German, but auto-translated subtitles are available.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/369.5f092435.js b/assets/js/369.b8595e8e.js similarity index 93% rename from assets/js/369.5f092435.js rename to assets/js/369.b8595e8e.js index 69034495f2..aeec68f063 100644 --- a/assets/js/369.5f092435.js +++ b/assets/js/369.b8595e8e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[369],{1064:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[this._v("#")]),this._v(" Plugins")]),this._v(" "),e("p",[this._v("The plugins represent the functional blocks of AsTeRICS. They can be combined to tailored Assistive Technology setups via the graphical AsTeRICS Configuration Suite (ACS) software, where plugins can be selected, connected via channels, and parameterized. Thus, the ACS can be considered as a user friendly environment to arrange the plugins. The result of this configuration process is an .xml file containing the deployment model for the AsTeRICS Runtime Environment (ARE).")]),this._v(" "),e("ClientOnly",[e("PluginsSearch")],1)],1)}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[369],{1065:function(e,t,n){"use strict";n.r(t);var s=n(2),i=Object(s.a)({},(function(){var e=this._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[this._v("#")]),this._v(" Plugins")]),this._v(" "),e("p",[this._v("The plugins represent the functional blocks of AsTeRICS. They can be combined to tailored Assistive Technology setups via the graphical AsTeRICS Configuration Suite (ACS) software, where plugins can be selected, connected via channels, and parameterized. Thus, the ACS can be considered as a user friendly environment to arrange the plugins. The result of this configuration process is an .xml file containing the deployment model for the AsTeRICS Runtime Environment (ARE).")]),this._v(" "),e("ClientOnly",[e("PluginsSearch")],1)],1)}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/37.4219d3d3.js b/assets/js/37.88604a47.js similarity index 91% rename from assets/js/37.4219d3d3.js rename to assets/js/37.88604a47.js index 11abc6c56a..668a0d7fea 100644 --- a/assets/js/37.4219d3d3.js +++ b/assets/js/37.88604a47.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{1008:function(e,t,n){"use strict";n.r(t);var o=n(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"create-and-edit-a-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-and-edit-a-model"}},[e._v("#")]),e._v(" Create and Edit a Model")]),e._v(" "),t("p",[e._v("To create a new model, add one or several components. To do so, select the tab Components, and from the sub-menu select a group of components, depending on what is supposed to be added. The three component groups are "),t("em",[e._v("Sensors")]),e._v(", "),t("em",[e._v("Processors")]),e._v(" and "),t("em",[e._v("Actuators")]),e._v(". Within these sections, the components are devided in subsections, making it easier finding one plugin out of the hugh amount of available plugins. Additionally, there is a fifth section "),t("em",[e._v("Saved Groups")]),e._v(" where saved groups can be added to the drawing.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(451),alt:"Screenshot: The components tab",title:"Screenshot: The components tab"}})]),e._v(" "),t("p",[e._v("The Components Tab")]),e._v(" "),t("p",[e._v("Now, this added component can be manipulated in the drawing area. This can be done with the functions in the Edit-tab or directly by using the mouse or the keyboard.")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-mouse"}},[e._v("#")]),e._v(" Model Manipulation via Mouse")]),e._v(" "),t("p",[e._v("After a component has been added to the drawing field, it can be moved by using the drag and drop functionality. Several elements (components, channels, eventchannels) can be selected by drawing a selection rectangle (just press the left mouse button and move the mouse) or by pressing the "),t("em",[e._v("Ctrl")]),e._v("-Key and clicking on each element. All the selected elements can be also moved using drag and drop. All selected components are marked with a blue rectange in the background, the component, which has the keyboard focus (and displayed in the property editor), is surrounded with a blue border. Channels can be drawn by pressing the mouse button over an output port and dragging the channel to an input port. Connecting eventchannels is similar to the channels.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(452),alt:"Screenshot: Selection of components",title:"Screenshot: Selection of components"}})]),e._v(" "),t("p",[e._v("Selection of Components")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-keyboard"}},[e._v("#")]),e._v(" Model Manipulation via Keyboard")]),e._v(" "),t("p",[e._v("All elements within the drawing area can be set on focus, using the "),t("em",[e._v("Tab")]),e._v("-key or the arrow-keys. To select an element, the "),t("em",[e._v("Space")]),e._v("-key has to be used, to select several elements, use "),t("em",[e._v("Ctrl-")]),e._v(" and "),t("em",[e._v("Space")]),e._v("-Keys at the same time. By pressing the "),t("em",[e._v("Alt")]),e._v("-Key, the ribbon menu shortcuts will appear at the menus. The "),t("em",[e._v("App")]),e._v("-Key opens the context menu. More information about the usage of the keyboard within the ACS can be found in the section "),t("em",[e._v("Component Context Menu")]),e._v(".__")]),e._v(" "),t("p",[e._v("__")]),e._v(" "),t("h2",{attrs:{id:"selection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#selection"}},[e._v("#")]),e._v(" Selection")]),e._v(" "),t("p",[e._v("It is possible to select several components, channels and event channels at the same time. The selection can be made with the mouse (by dragging a selection rectangle or by the usage of the "),t("em",[e._v("Ctrl")]),e._v("-key, like in many standard programs) or with the keyboard using the "),t("em",[e._v("Space")]),e._v(" key. The selected components are marked with a blue frame. The figure below shows a model with several selected components.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(453),alt:"Model with three selected components",title:"Model with three selected components"}})]),e._v(" "),t("p",[e._v("Model with three selected components")]),e._v(" "),t("p",[e._v("__")])])}),[],!1,null,null,null);t.default=a.exports},451:function(e,t,n){e.exports=n.p+"assets/img/components_tab.66390462.png"},452:function(e,t,n){e.exports=n.p+"assets/img/edit_selection.8002bf7a.png"},453:function(e,t,n){e.exports=n.p+"assets/img/selection.fccb4ffc.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{1008:function(e,t,n){"use strict";n.r(t);var o=n(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"create-and-edit-a-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-and-edit-a-model"}},[e._v("#")]),e._v(" Create and Edit a Model")]),e._v(" "),t("p",[e._v("To create a new model, add one or several components. To do so, select the tab Components, and from the sub-menu select a group of components, depending on what is supposed to be added. The three component groups are "),t("em",[e._v("Sensors")]),e._v(", "),t("em",[e._v("Processors")]),e._v(" and "),t("em",[e._v("Actuators")]),e._v(". Within these sections, the components are devided in subsections, making it easier finding one plugin out of the hugh amount of available plugins. Additionally, there is a fifth section "),t("em",[e._v("Saved Groups")]),e._v(" where saved groups can be added to the drawing.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(454),alt:"Screenshot: The components tab",title:"Screenshot: The components tab"}})]),e._v(" "),t("p",[e._v("The Components Tab")]),e._v(" "),t("p",[e._v("Now, this added component can be manipulated in the drawing area. This can be done with the functions in the Edit-tab or directly by using the mouse or the keyboard.")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-mouse"}},[e._v("#")]),e._v(" Model Manipulation via Mouse")]),e._v(" "),t("p",[e._v("After a component has been added to the drawing field, it can be moved by using the drag and drop functionality. Several elements (components, channels, eventchannels) can be selected by drawing a selection rectangle (just press the left mouse button and move the mouse) or by pressing the "),t("em",[e._v("Ctrl")]),e._v("-Key and clicking on each element. All the selected elements can be also moved using drag and drop. All selected components are marked with a blue rectange in the background, the component, which has the keyboard focus (and displayed in the property editor), is surrounded with a blue border. Channels can be drawn by pressing the mouse button over an output port and dragging the channel to an input port. Connecting eventchannels is similar to the channels.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(455),alt:"Screenshot: Selection of components",title:"Screenshot: Selection of components"}})]),e._v(" "),t("p",[e._v("Selection of Components")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-keyboard"}},[e._v("#")]),e._v(" Model Manipulation via Keyboard")]),e._v(" "),t("p",[e._v("All elements within the drawing area can be set on focus, using the "),t("em",[e._v("Tab")]),e._v("-key or the arrow-keys. To select an element, the "),t("em",[e._v("Space")]),e._v("-key has to be used, to select several elements, use "),t("em",[e._v("Ctrl-")]),e._v(" and "),t("em",[e._v("Space")]),e._v("-Keys at the same time. By pressing the "),t("em",[e._v("Alt")]),e._v("-Key, the ribbon menu shortcuts will appear at the menus. The "),t("em",[e._v("App")]),e._v("-Key opens the context menu. More information about the usage of the keyboard within the ACS can be found in the section "),t("em",[e._v("Component Context Menu")]),e._v(".__")]),e._v(" "),t("p",[e._v("__")]),e._v(" "),t("h2",{attrs:{id:"selection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#selection"}},[e._v("#")]),e._v(" Selection")]),e._v(" "),t("p",[e._v("It is possible to select several components, channels and event channels at the same time. The selection can be made with the mouse (by dragging a selection rectangle or by the usage of the "),t("em",[e._v("Ctrl")]),e._v("-key, like in many standard programs) or with the keyboard using the "),t("em",[e._v("Space")]),e._v(" key. The selected components are marked with a blue frame. The figure below shows a model with several selected components.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(456),alt:"Model with three selected components",title:"Model with three selected components"}})]),e._v(" "),t("p",[e._v("Model with three selected components")]),e._v(" "),t("p",[e._v("__")])])}),[],!1,null,null,null);t.default=a.exports},454:function(e,t,n){e.exports=n.p+"assets/img/components_tab.66390462.png"},455:function(e,t,n){e.exports=n.p+"assets/img/edit_selection.8002bf7a.png"},456:function(e,t,n){e.exports=n.p+"assets/img/selection.fccb4ffc.png"}}]); \ No newline at end of file diff --git a/assets/js/370.e441ecd6.js b/assets/js/370.2962bf81.js similarity index 97% rename from assets/js/370.e441ecd6.js rename to assets/js/370.2962bf81.js index 0e1ecc4179..c3596b95d6 100644 --- a/assets/js/370.e441ecd6.js +++ b/assets/js/370.2962bf81.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[370],{1073:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dialogbox"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dialogbox"}},[t._v("#")]),t._v(" DialogBox")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("Creates a popup dialog box with configurable text message and button texts. Can be used to inform the user or get user input.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("No special requirements.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setText [string]:")]),t._v(" Updates the text to be displayed.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("caption [string]:")]),t._v(" The caption of the window.")]),t._v(" "),e("li",[e("strong",[t._v("text [string]:")]),t._v(" the text message of the dialog box")]),t._v(" "),e("li",[e("strong",[t._v("alwaysOnTop [boolean]:")]),t._v(" if true, dialog stays on top, no matter if other windows are put to front.")]),t._v(" "),e("li",[e("strong",[t._v("messageType [integer]:")]),t._v(" the message type of the dialog box, one of: plain,information,question,warning,error")]),t._v(" "),e("li",[e("strong",[t._v("buttonText[1-5] [string]:")]),t._v(" The button text")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("displayBox")]),t._v(": Displays the dialog box.")]),t._v(" "),e("li",[e("strong",[t._v("hideBox")]),t._v(": Disposes the dialog box.")])]),t._v(" "),e("h2",{attrs:{id:"event-triggerer-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[t._v("#")]),t._v(" Event Triggerer Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("button[1-5]")]),t._v(": Button[1-5] pressed")])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[370],{1074:function(t,e,r){"use strict";r.r(e);var s=r(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dialogbox"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dialogbox"}},[t._v("#")]),t._v(" DialogBox")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("Creates a popup dialog box with configurable text message and button texts. Can be used to inform the user or get user input.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("No special requirements.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setText [string]:")]),t._v(" Updates the text to be displayed.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("caption [string]:")]),t._v(" The caption of the window.")]),t._v(" "),e("li",[e("strong",[t._v("text [string]:")]),t._v(" the text message of the dialog box")]),t._v(" "),e("li",[e("strong",[t._v("alwaysOnTop [boolean]:")]),t._v(" if true, dialog stays on top, no matter if other windows are put to front.")]),t._v(" "),e("li",[e("strong",[t._v("messageType [integer]:")]),t._v(" the message type of the dialog box, one of: plain,information,question,warning,error")]),t._v(" "),e("li",[e("strong",[t._v("buttonText[1-5] [string]:")]),t._v(" The button text")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("displayBox")]),t._v(": Displays the dialog box.")]),t._v(" "),e("li",[e("strong",[t._v("hideBox")]),t._v(": Disposes the dialog box.")])]),t._v(" "),e("h2",{attrs:{id:"event-triggerer-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[t._v("#")]),t._v(" Event Triggerer Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("button[1-5]")]),t._v(": Button[1-5] pressed")])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/372.a902e350.js b/assets/js/372.e4c9ad69.js similarity index 99% rename from assets/js/372.a902e350.js rename to assets/js/372.e4c9ad69.js index 9c35ce57b8..78fbf359b0 100644 --- a/assets/js/372.a902e350.js +++ b/assets/js/372.e4c9ad69.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[372],{1134:function(e,t,n){"use strict";n.r(t);var r=n(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"blinkchangedetector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blinkchangedetector"}},[e._v("#")]),e._v(" BlinkChangeDetector")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Easy Reading)")]),e._v(" "),t("p",[e._v("The plugin detects blinks, based on the eyes’ open and closed states which are indicated by events, which it listens to, and then calculates and outputs blink-related metrics.\nThis plugin does not detect the eyes’ states itself! Though, in order not to bother the plugin user (the AsTeRICS model developer) with blink detection, it is sufficient to externally fire events of both eyes’ state currently being open or closed (no matter whether the state has changed or stayed the same for a while).\nBy the plugin listening to the events "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" and "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" is also how the model developer can individually specify a temporal granularity for blink metrics output, e.g. by external timers and thresholds, even if the eyes’ state has not changed.")]),e._v(" "),t("p",[e._v("Eyes state: open or closed, always with reference to both eyes simultaneously.")]),e._v(" "),t("p",[t("strong",[e._v("Basic Terminology for Blink States")]),e._v(": A blink’s start is defined as both eyes’ state having simultaneously changed from open to closed, the blink’s end is indicated by both eyes’ being reopened again.\nThere is an ongoing (a “current”) blink as soon as a blink’s start is detected.")]),e._v(" "),t("p",[t("strong",[e._v("Provided Metrics")]),e._v(": The respective “forwarding” event listeners allow recalculating and forwarding blink rate or blink duration to the output ports on demand.\nThere is a recalculation before every output.")]),e._v(" "),t("p",[e._v("Further, blink rate and blink duration are recalculated and sent to the output ports when the eyes’ state changes, and, if specified via properties, in a certain interval.\nIf the eyes’ state events are detected but the state has not changed, there is only a recalculation and output when property "),t("code",[e._v("OutputIntervalMs")]),e._v(" is set and has passed by since the last state-based output.")]),e._v(" "),t("p",[t("strong",[e._v("Implications")]),e._v(": Note, that the duration changes while the eyes are closed and is set to 0 milliseconds when the eyes’ state changes to closed.\nIt is longest at the first "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" event in a row and then set back to 0 milliseconds again till the next "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" is detected.")]),e._v(" "),t("p",[e._v("In contrast, the rate changes steadily and is unlikely to ever be 0 Hz again, independently from eyes being closed or open.")]),e._v(" "),t("p",[e._v("A blink is included in the rate calculation as soon as it has started (i.e. the eyes changed to closed).")]),e._v(" "),t("p",[t("strong",[e._v("Trend Detection")]),e._v(": Changes in blink rate and blink duration are analysed at certain eyes’ states respectively state changes.\nThen the plugin fires events, if certain thresholds are exceeded respectively undercut.")]),e._v(" "),t("p",[e._v("The detectable trends (rate increase/decrease and duration prolongation/shortening) work with the same basic detection algorithm, described below, but using trend-specific properties (see Properties Section).")]),e._v(" "),t("p",[t("strong",[e._v("Trend Detection Triggers in detail (also see Event Listeners Section)")]),e._v(": The rate trend is analysed, when a blink starts or the output interval leads to recalculation.\nThe duration trend is only analysed, when a blink ends (as then the final duration is clear and as there cannot be a duration analysis while no blink is going on, either).\nTrend detection is never done when there is a rate or duration recalculation and output due to forwarding events.")]),e._v(" "),t("h2",{attrs:{id:"basic-trend-detection-algorithm"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#basic-trend-detection-algorithm"}},[e._v("#")]),e._v(" Basic Trend Detection Algorithm")]),e._v(" "),t("p",[e._v("Blink duration trend detection as well as blink rate trend detection allow certain thresholds.\nAll of them are optional and specify whether only an increasing, only a decreasing, both or no trends are detectable.")]),e._v(" "),t("p",[e._v("Each calculated value not undercutting the lower and not exceeding the upper threshold is “within range”.")]),e._v(" "),t("p",[e._v("If the most recently calculated value is passed on to trend detection, three cases are possible:")]),e._v(" "),t("ul",[t("li",[e._v("The value exceeds the upper threshold which starts the detection algorithm for a currently ongoing increasing trend.")]),e._v(" "),t("li",[e._v("The value undercuts the lower threshold which starts the detection algorithm for a currently ongoing decreasing trend.")]),e._v(" "),t("li",[e._v("The value is within range which means an ongoing trend is not interrupted but no new trend can be detected either.")])]),e._v(" "),t("p",[e._v("If one of the thresholds is not set, the corresponding case cannot appear but does not influence the others.")]),e._v(" "),t("p",[e._v("If trend detection into one direction is initiated, an opposite trend is always interrupted.")]),e._v(" "),t("p",[e._v("Whenever starting trend detection into one direction, the corresponding internal counter (above upper threshold or below lower threshold) is set to 1, then the buffer of earlier calculated values is walked through backwards, i.e. the more recent values first.\nEach value within the range does not affect trend detection, whereas each crossing a threshold in the same direction increases the counter and in the opposite direction interrupts this turn of trend detection.")]),e._v(" "),t("p",[e._v("The algorithm terminates with firing the corresponding trend detection event, as soon as the counter exceeds "),t("code",[e._v("howManyDurationOutliers")]),e._v(" (for a duration trend) or "),t("code",[e._v("howManyRateOutliers")]),e._v(" (for a rate trend), respectively.")]),e._v(" "),t("p",[e._v("The algorithm terminates with not firing any detection event, if the start of the buffer was reached or if it was interrupted by a value crossing the opposite threshold.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("p",[e._v("None.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blinkDurationMs")]),e._v(": Outputs the currently recalculated duration in milliseconds (ms) since blink start, whenever the event "),t("code",[e._v("forwardCurrentBlinkDuration")]),e._v(" is detected, eyes’ state changed to closed, or "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" or "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" are detected and property "),t("code",[e._v("OutputIntervalMs")]),e._v(" passed by.\nOutputs 0, if currently the eyes are open (no current blink – indicated by the event "),t("code",[e._v("eyesAreOrBecomeOpened")]),e._v(").")]),e._v(" "),t("li",[t("strong",[e._v("blinkRateHz")]),e._v(": Outputs the current recalculated blink rate (in Hertz) since the plugin’s start, whenever the event "),t("code",[e._v("forwardCurrentBlinkRate")]),e._v(" is detected, or when "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" or "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" are detected and property "),t("code",[e._v("OutputIntervalMs")]),e._v(" passed by.")])]),e._v(" "),t("p",[e._v("It is possible to make the plugin calculate it for a specified observation period, rather than since model start, this can be set by the property "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eyesAreOrBecomeClosed")]),e._v(": The event represents the closed-state of the eyes and the listener handles, whether it indicates that a new blink has just started or eyes have not even been opened in the meantime (no previous "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" since last firing this event).\nThis listener is responsible for triggering "),t("code",[e._v("blinkStarts")]),e._v("."),t("br"),e._v("\nConsidering property "),t("code",[e._v("OutputIntervalMs")]),e._v(" and the current blink state, it recalculates blink duration, blink rate and initiates trend detection for the blink rate.")]),e._v(" "),t("li",[t("strong",[e._v("eyesAreOrBecomeOpen")]),e._v(": The event represents the open-state of the eyes and the listener handles, whether it indicates that a blink has just ended or eyes have not even been closed before (no previous "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" since last firing this event).\nThis listener is responsible for triggering "),t("code",[e._v("blinkEnds")]),e._v("."),t("br"),e._v("\nConsidering property "),t("code",[e._v("OutputIntervalMs")]),e._v(" and the current blink state, it recalculates blink duration, blink rate and initiates trend detection for the blink rate and blink duration.")]),e._v(" "),t("li",[t("strong",[e._v("forwardCurrentBlinkDuration")]),e._v(": Sends the time that has passed by since blink start to the output port.\n0, if currently not blinking (i.e. if eyes are open).\nIt does not do any threshold evaluations (trend detection) or trigger events!")]),e._v(" "),t("li",[t("strong",[e._v("forwardCurrentBlinkRate")]),e._v(": Sends the recalculated blink rate, no matter whether there is currently a blink (i.e. eyes closed) going on.\nA possible ongoing blink is already included in the rate calculation.\nIt does not do any threshold evaluations or trigger events!")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blinkRateIncreased")]),e._v(": Triggers when the detection of an increasing blink rate trend was positive."),t("br"),e._v("\nAlso, the properties "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(" and "),t("code",[e._v("trendsBufferSize")]),e._v(" are considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkRateDecreased")]),e._v(": Triggers when the detection of a decreasing blink rate trend was positive."),t("br"),e._v("\nAlso, the properties "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(" and "),t("code",[e._v("trendsBufferSize")]),e._v(" are considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkDurationLonger")]),e._v(": Triggers when the detection of an increasing blink duration trend was positive."),t("br"),e._v("\nAlso, the property "),t("code",[e._v("trendsBufferSize")]),e._v(" is considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkDurationShorter")]),e._v(": Triggers when the detection of a decreasing blink duration trend was positive."),t("br"),e._v("\nAlso, the property "),t("code",[e._v("trendsBufferSize")]),e._v(" is considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkStarts")]),e._v(": Triggers when a blink’s start is detected during the handling of the "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" event.")]),e._v(" "),t("li",[t("strong",[e._v("blinkEnds")]),e._v(": Triggers when a blink’s end is detected during the handling of the "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" event.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outputIntervalMs [integer, default: -1]")]),e._v(": Defines how often the blink rate and duration (also 0, if currently not blinking) are sent to the output ports without the forwarding events being fired."),t("br"),e._v("\nThis is only relevant, if the eyes’ state has not changed as at blink end or blink start the output ports always receive data.\nThis property was introduced in order not to send values too often (e.g. in a 1ms-interval, if the source for eyes state detection such as a camera plugin would fire events that often) but to adapt the outputs for visualization in an oscilloscope etc.\nThe unit for the interval is milliseconds (ms)."),t("br"),e._v("\nRate is always recalculated and sent to the output port when a blink starts, the duration, if a blink starts (0 ms) or ends.\nIf those outputs, together with output (recalculation and) forwarding events on demand is sufficient, and no continuous output is desired, it can be disabled by setting 0 or a negative value."),t("br"),e._v("\nIt is not possible to turn off the outputs, just described for blink starts or ends."),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Used for blink rate trend and blink duration trend detection.")])])]),e._v(" "),t("li",[t("strong",[e._v("trendsBufferSize [integer, default: 10]")]),e._v(": Defines how many blink rates or blink durations can be looked back for detecting blink rate and blink duration outliers in trend detection."),t("br"),e._v("\nThis buffer must not be lower than "),t("code",[e._v("howManyRateOutliers")]),e._v(" and "),t("code",[e._v("howManyDurationOutliers")]),e._v(" properties, as then the conditions to fire the corresponding events can never be fulfilled! Value 0 disables the buffer (only meaningful if the needed number of outliers is 1 or disabled).\nNegative values are invalid and the default value is used.\nThis must not be confused with "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(" which restricts the period for which blinks are considered when calculating the current blink rate."),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Used for blink duration trend detection only.")])])]),e._v(" "),t("li",[t("strong",[e._v("threshDurationHighMs [integer, default: 500]")]),e._v(": Defines the blink duration in milliseconds (ms) above which a blink is detected as an outlier, representing a prolonged blink duration.\nThis upper threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("threshDurationLowMs [integer, default: -1]")]),e._v(": Defines the blink duration in milliseconds below which a blink is detected as an outlier, representing a shortened blink duration.\nThis lower threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("howManyDurationOutliers [integer, default: 3]")]),e._v(": Defines how many blink duration outliers must occur in one trend direction within the buffered durations for a duration trend to be detected.\nIf a trend shall be detected, as soon as there is one outlier, it must be set to 1, duration trend detection can be disabled by setting it to 0 or a negative value.\nThe 1-outlier option especially makes sense when no buffer is used."),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Used for blink rate trend detection only.")])])]),e._v(" "),t("li",[t("strong",[e._v("threshRateLowHz [double, default: -1]")]),e._v(": Defines below which rate in Hertz (Hz) a blink rate must be, in order to count towards a decreasing blink rate trend.\nThis lower threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("threshRateHighHz [double, default: 1]")]),e._v(": Defines above which rate in Hertz (Hz) a blink rate must be, in order to count towards an increasing blink rate trend.\nThis higher threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("howManyRateOutliers [integer, default: 3]")]),e._v(": Defines how many blink rate outliers must occur in one trend direction within the buffered rates for a rate trend to be detected.\nIf a trend shall be detected, as soon as there is one outlier, it must be set to 1, rate trend detection can be disabled by setting it to 0 or a negative value.\nThe 1-outlier option especially makes sense when no buffer is used.")]),e._v(" "),t("li",[t("strong",[e._v("rateObservationPeriodMinutes [integer, default: 2]")]),e._v(": Defines the length of the observation period for the blink rate in minutes, e.g. if 3, the number of blinks during the last 3 minutes (sliding window) is considered when calculating the blink rate for this 3-minutes-period."),t("br"),e._v("\nIf this property is used, no memory control is done, thus it is recommended not to use a period longer than 1 day (1440 minutes).\nIf all blinks and the whole time period since model start (memory control restricts it to several hours though) shall be considered, the observation period can be disabled by setting it to 0 or a negative number.\nNote, that the rate for a natural blinking behavior gets steadily flatter then, as time passes by and might not be representative for trend detection.")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[372],{1136:function(e,t,n){"use strict";n.r(t);var r=n(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"blinkchangedetector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blinkchangedetector"}},[e._v("#")]),e._v(" BlinkChangeDetector")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Easy Reading)")]),e._v(" "),t("p",[e._v("The plugin detects blinks, based on the eyes’ open and closed states which are indicated by events, which it listens to, and then calculates and outputs blink-related metrics.\nThis plugin does not detect the eyes’ states itself! Though, in order not to bother the plugin user (the AsTeRICS model developer) with blink detection, it is sufficient to externally fire events of both eyes’ state currently being open or closed (no matter whether the state has changed or stayed the same for a while).\nBy the plugin listening to the events "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" and "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" is also how the model developer can individually specify a temporal granularity for blink metrics output, e.g. by external timers and thresholds, even if the eyes’ state has not changed.")]),e._v(" "),t("p",[e._v("Eyes state: open or closed, always with reference to both eyes simultaneously.")]),e._v(" "),t("p",[t("strong",[e._v("Basic Terminology for Blink States")]),e._v(": A blink’s start is defined as both eyes’ state having simultaneously changed from open to closed, the blink’s end is indicated by both eyes’ being reopened again.\nThere is an ongoing (a “current”) blink as soon as a blink’s start is detected.")]),e._v(" "),t("p",[t("strong",[e._v("Provided Metrics")]),e._v(": The respective “forwarding” event listeners allow recalculating and forwarding blink rate or blink duration to the output ports on demand.\nThere is a recalculation before every output.")]),e._v(" "),t("p",[e._v("Further, blink rate and blink duration are recalculated and sent to the output ports when the eyes’ state changes, and, if specified via properties, in a certain interval.\nIf the eyes’ state events are detected but the state has not changed, there is only a recalculation and output when property "),t("code",[e._v("OutputIntervalMs")]),e._v(" is set and has passed by since the last state-based output.")]),e._v(" "),t("p",[t("strong",[e._v("Implications")]),e._v(": Note, that the duration changes while the eyes are closed and is set to 0 milliseconds when the eyes’ state changes to closed.\nIt is longest at the first "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" event in a row and then set back to 0 milliseconds again till the next "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" is detected.")]),e._v(" "),t("p",[e._v("In contrast, the rate changes steadily and is unlikely to ever be 0 Hz again, independently from eyes being closed or open.")]),e._v(" "),t("p",[e._v("A blink is included in the rate calculation as soon as it has started (i.e. the eyes changed to closed).")]),e._v(" "),t("p",[t("strong",[e._v("Trend Detection")]),e._v(": Changes in blink rate and blink duration are analysed at certain eyes’ states respectively state changes.\nThen the plugin fires events, if certain thresholds are exceeded respectively undercut.")]),e._v(" "),t("p",[e._v("The detectable trends (rate increase/decrease and duration prolongation/shortening) work with the same basic detection algorithm, described below, but using trend-specific properties (see Properties Section).")]),e._v(" "),t("p",[t("strong",[e._v("Trend Detection Triggers in detail (also see Event Listeners Section)")]),e._v(": The rate trend is analysed, when a blink starts or the output interval leads to recalculation.\nThe duration trend is only analysed, when a blink ends (as then the final duration is clear and as there cannot be a duration analysis while no blink is going on, either).\nTrend detection is never done when there is a rate or duration recalculation and output due to forwarding events.")]),e._v(" "),t("h2",{attrs:{id:"basic-trend-detection-algorithm"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#basic-trend-detection-algorithm"}},[e._v("#")]),e._v(" Basic Trend Detection Algorithm")]),e._v(" "),t("p",[e._v("Blink duration trend detection as well as blink rate trend detection allow certain thresholds.\nAll of them are optional and specify whether only an increasing, only a decreasing, both or no trends are detectable.")]),e._v(" "),t("p",[e._v("Each calculated value not undercutting the lower and not exceeding the upper threshold is “within range”.")]),e._v(" "),t("p",[e._v("If the most recently calculated value is passed on to trend detection, three cases are possible:")]),e._v(" "),t("ul",[t("li",[e._v("The value exceeds the upper threshold which starts the detection algorithm for a currently ongoing increasing trend.")]),e._v(" "),t("li",[e._v("The value undercuts the lower threshold which starts the detection algorithm for a currently ongoing decreasing trend.")]),e._v(" "),t("li",[e._v("The value is within range which means an ongoing trend is not interrupted but no new trend can be detected either.")])]),e._v(" "),t("p",[e._v("If one of the thresholds is not set, the corresponding case cannot appear but does not influence the others.")]),e._v(" "),t("p",[e._v("If trend detection into one direction is initiated, an opposite trend is always interrupted.")]),e._v(" "),t("p",[e._v("Whenever starting trend detection into one direction, the corresponding internal counter (above upper threshold or below lower threshold) is set to 1, then the buffer of earlier calculated values is walked through backwards, i.e. the more recent values first.\nEach value within the range does not affect trend detection, whereas each crossing a threshold in the same direction increases the counter and in the opposite direction interrupts this turn of trend detection.")]),e._v(" "),t("p",[e._v("The algorithm terminates with firing the corresponding trend detection event, as soon as the counter exceeds "),t("code",[e._v("howManyDurationOutliers")]),e._v(" (for a duration trend) or "),t("code",[e._v("howManyRateOutliers")]),e._v(" (for a rate trend), respectively.")]),e._v(" "),t("p",[e._v("The algorithm terminates with not firing any detection event, if the start of the buffer was reached or if it was interrupted by a value crossing the opposite threshold.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("p",[e._v("None.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blinkDurationMs")]),e._v(": Outputs the currently recalculated duration in milliseconds (ms) since blink start, whenever the event "),t("code",[e._v("forwardCurrentBlinkDuration")]),e._v(" is detected, eyes’ state changed to closed, or "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" or "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" are detected and property "),t("code",[e._v("OutputIntervalMs")]),e._v(" passed by.\nOutputs 0, if currently the eyes are open (no current blink – indicated by the event "),t("code",[e._v("eyesAreOrBecomeOpened")]),e._v(").")]),e._v(" "),t("li",[t("strong",[e._v("blinkRateHz")]),e._v(": Outputs the current recalculated blink rate (in Hertz) since the plugin’s start, whenever the event "),t("code",[e._v("forwardCurrentBlinkRate")]),e._v(" is detected, or when "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" or "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" are detected and property "),t("code",[e._v("OutputIntervalMs")]),e._v(" passed by.")])]),e._v(" "),t("p",[e._v("It is possible to make the plugin calculate it for a specified observation period, rather than since model start, this can be set by the property "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("eyesAreOrBecomeClosed")]),e._v(": The event represents the closed-state of the eyes and the listener handles, whether it indicates that a new blink has just started or eyes have not even been opened in the meantime (no previous "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" since last firing this event).\nThis listener is responsible for triggering "),t("code",[e._v("blinkStarts")]),e._v("."),t("br"),e._v("\nConsidering property "),t("code",[e._v("OutputIntervalMs")]),e._v(" and the current blink state, it recalculates blink duration, blink rate and initiates trend detection for the blink rate.")]),e._v(" "),t("li",[t("strong",[e._v("eyesAreOrBecomeOpen")]),e._v(": The event represents the open-state of the eyes and the listener handles, whether it indicates that a blink has just ended or eyes have not even been closed before (no previous "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" since last firing this event).\nThis listener is responsible for triggering "),t("code",[e._v("blinkEnds")]),e._v("."),t("br"),e._v("\nConsidering property "),t("code",[e._v("OutputIntervalMs")]),e._v(" and the current blink state, it recalculates blink duration, blink rate and initiates trend detection for the blink rate and blink duration.")]),e._v(" "),t("li",[t("strong",[e._v("forwardCurrentBlinkDuration")]),e._v(": Sends the time that has passed by since blink start to the output port.\n0, if currently not blinking (i.e. if eyes are open).\nIt does not do any threshold evaluations (trend detection) or trigger events!")]),e._v(" "),t("li",[t("strong",[e._v("forwardCurrentBlinkRate")]),e._v(": Sends the recalculated blink rate, no matter whether there is currently a blink (i.e. eyes closed) going on.\nA possible ongoing blink is already included in the rate calculation.\nIt does not do any threshold evaluations or trigger events!")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blinkRateIncreased")]),e._v(": Triggers when the detection of an increasing blink rate trend was positive."),t("br"),e._v("\nAlso, the properties "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(" and "),t("code",[e._v("trendsBufferSize")]),e._v(" are considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkRateDecreased")]),e._v(": Triggers when the detection of a decreasing blink rate trend was positive."),t("br"),e._v("\nAlso, the properties "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(" and "),t("code",[e._v("trendsBufferSize")]),e._v(" are considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkDurationLonger")]),e._v(": Triggers when the detection of an increasing blink duration trend was positive."),t("br"),e._v("\nAlso, the property "),t("code",[e._v("trendsBufferSize")]),e._v(" is considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkDurationShorter")]),e._v(": Triggers when the detection of a decreasing blink duration trend was positive."),t("br"),e._v("\nAlso, the property "),t("code",[e._v("trendsBufferSize")]),e._v(" is considered and must therefore be set meaningfully (or be disabled).")]),e._v(" "),t("li",[t("strong",[e._v("blinkStarts")]),e._v(": Triggers when a blink’s start is detected during the handling of the "),t("code",[e._v("eyesAreOrBecomeClosed")]),e._v(" event.")]),e._v(" "),t("li",[t("strong",[e._v("blinkEnds")]),e._v(": Triggers when a blink’s end is detected during the handling of the "),t("code",[e._v("eyesAreOrBecomeOpen")]),e._v(" event.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outputIntervalMs [integer, default: -1]")]),e._v(": Defines how often the blink rate and duration (also 0, if currently not blinking) are sent to the output ports without the forwarding events being fired."),t("br"),e._v("\nThis is only relevant, if the eyes’ state has not changed as at blink end or blink start the output ports always receive data.\nThis property was introduced in order not to send values too often (e.g. in a 1ms-interval, if the source for eyes state detection such as a camera plugin would fire events that often) but to adapt the outputs for visualization in an oscilloscope etc.\nThe unit for the interval is milliseconds (ms)."),t("br"),e._v("\nRate is always recalculated and sent to the output port when a blink starts, the duration, if a blink starts (0 ms) or ends.\nIf those outputs, together with output (recalculation and) forwarding events on demand is sufficient, and no continuous output is desired, it can be disabled by setting 0 or a negative value."),t("br"),e._v("\nIt is not possible to turn off the outputs, just described for blink starts or ends."),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Used for blink rate trend and blink duration trend detection.")])])]),e._v(" "),t("li",[t("strong",[e._v("trendsBufferSize [integer, default: 10]")]),e._v(": Defines how many blink rates or blink durations can be looked back for detecting blink rate and blink duration outliers in trend detection."),t("br"),e._v("\nThis buffer must not be lower than "),t("code",[e._v("howManyRateOutliers")]),e._v(" and "),t("code",[e._v("howManyDurationOutliers")]),e._v(" properties, as then the conditions to fire the corresponding events can never be fulfilled! Value 0 disables the buffer (only meaningful if the needed number of outliers is 1 or disabled).\nNegative values are invalid and the default value is used.\nThis must not be confused with "),t("code",[e._v("rateObservationPeriodMinutes")]),e._v(" which restricts the period for which blinks are considered when calculating the current blink rate."),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Used for blink duration trend detection only.")])])]),e._v(" "),t("li",[t("strong",[e._v("threshDurationHighMs [integer, default: 500]")]),e._v(": Defines the blink duration in milliseconds (ms) above which a blink is detected as an outlier, representing a prolonged blink duration.\nThis upper threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("threshDurationLowMs [integer, default: -1]")]),e._v(": Defines the blink duration in milliseconds below which a blink is detected as an outlier, representing a shortened blink duration.\nThis lower threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("howManyDurationOutliers [integer, default: 3]")]),e._v(": Defines how many blink duration outliers must occur in one trend direction within the buffered durations for a duration trend to be detected.\nIf a trend shall be detected, as soon as there is one outlier, it must be set to 1, duration trend detection can be disabled by setting it to 0 or a negative value.\nThe 1-outlier option especially makes sense when no buffer is used."),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Used for blink rate trend detection only.")])])]),e._v(" "),t("li",[t("strong",[e._v("threshRateLowHz [double, default: -1]")]),e._v(": Defines below which rate in Hertz (Hz) a blink rate must be, in order to count towards a decreasing blink rate trend.\nThis lower threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("threshRateHighHz [double, default: 1]")]),e._v(": Defines above which rate in Hertz (Hz) a blink rate must be, in order to count towards an increasing blink rate trend.\nThis higher threshold can be disabled by setting it to 0 or a negative value.")]),e._v(" "),t("li",[t("strong",[e._v("howManyRateOutliers [integer, default: 3]")]),e._v(": Defines how many blink rate outliers must occur in one trend direction within the buffered rates for a rate trend to be detected.\nIf a trend shall be detected, as soon as there is one outlier, it must be set to 1, rate trend detection can be disabled by setting it to 0 or a negative value.\nThe 1-outlier option especially makes sense when no buffer is used.")]),e._v(" "),t("li",[t("strong",[e._v("rateObservationPeriodMinutes [integer, default: 2]")]),e._v(": Defines the length of the observation period for the blink rate in minutes, e.g. if 3, the number of blinks during the last 3 minutes (sliding window) is considered when calculating the blink rate for this 3-minutes-period."),t("br"),e._v("\nIf this property is used, no memory control is done, thus it is recommended not to use a period longer than 1 day (1440 minutes).\nIf all blinks and the whole time period since model start (memory control restricts it to several hours though) shall be considered, the observation period can be disabled by setting it to 0 or a negative number.\nNote, that the rate for a natural blinking behavior gets steadily flatter then, as time passes by and might not be representative for trend detection.")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/374.5fa3c520.js b/assets/js/374.e6357bf5.js similarity index 97% rename from assets/js/374.5fa3c520.js rename to assets/js/374.e6357bf5.js index b8bd467d9c..5c81586079 100644 --- a/assets/js/374.5fa3c520.js +++ b/assets/js/374.e6357bf5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[374],{1144:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"datetodouble"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#datetodouble"}},[t._v("#")]),t._v(" DateToDouble")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Easy Reading)")]),t._v(" "),e("p",[t._v("Converts a date string to a Unix epoch timestamp in milliseconds, using the default time zone and a property-defined date format.")]),t._v(" "),e("h2",{attrs:{id:"input-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-ports"}},[t._v("#")]),t._v(" Input Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dateString [string]")]),t._v(": Date string input to be converted using the date format given by the property.\nThe event "),e("code",[t._v("formatInput")]),t._v(" is also fired internally whenever this input port receives data.")])]),t._v(" "),e("h2",{attrs:{id:"output-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-ports"}},[t._v("#")]),t._v(" Output Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timestampUnixMs [double]")]),t._v(": The converted Unix epoch timestamp in milliseconds.")])]),t._v(" "),e("h2",{attrs:{id:"event-listeners"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listeners"}},[t._v("#")]),t._v(" Event Listeners")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("formatInput")]),t._v(": Initiates conversion for the current input date string, triggers "),e("code",[t._v("dateFormatted")]),t._v(" when done.")])]),t._v(" "),e("h2",{attrs:{id:"event-triggers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-triggers"}},[t._v("#")]),t._v(" Event Triggers")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dateFormatted")]),t._v(": Triggers when an output value is available at the output port.")]),t._v(" "),e("li",[e("strong",[t._v("conversionFailed")]),t._v(": Triggers when a conversion attempt failed (might happen if inputs are missing or do not fit the specified date format).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dateFormat [string, default: “dd.MM.yyyy-HH:mm:ss.SSS”]")]),t._v(": The format of the incoming date string.\nIt is used for conversion into a UNIX timestamp in milliseconds.\nIf invalid (according to "),e("code",[t._v("java.text.SimpleDateFormat")]),t._v(") or null, the default date format is tried.\nIf conversion fails because of missing or invalid input "),e("code",[t._v("conversionFailed")]),t._v(" is triggered.")])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[374],{1143:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"datetodouble"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#datetodouble"}},[t._v("#")]),t._v(" DateToDouble")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Easy Reading)")]),t._v(" "),e("p",[t._v("Converts a date string to a Unix epoch timestamp in milliseconds, using the default time zone and a property-defined date format.")]),t._v(" "),e("h2",{attrs:{id:"input-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-ports"}},[t._v("#")]),t._v(" Input Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dateString [string]")]),t._v(": Date string input to be converted using the date format given by the property.\nThe event "),e("code",[t._v("formatInput")]),t._v(" is also fired internally whenever this input port receives data.")])]),t._v(" "),e("h2",{attrs:{id:"output-ports"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-ports"}},[t._v("#")]),t._v(" Output Ports")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timestampUnixMs [double]")]),t._v(": The converted Unix epoch timestamp in milliseconds.")])]),t._v(" "),e("h2",{attrs:{id:"event-listeners"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listeners"}},[t._v("#")]),t._v(" Event Listeners")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("formatInput")]),t._v(": Initiates conversion for the current input date string, triggers "),e("code",[t._v("dateFormatted")]),t._v(" when done.")])]),t._v(" "),e("h2",{attrs:{id:"event-triggers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-triggers"}},[t._v("#")]),t._v(" Event Triggers")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dateFormatted")]),t._v(": Triggers when an output value is available at the output port.")]),t._v(" "),e("li",[e("strong",[t._v("conversionFailed")]),t._v(": Triggers when a conversion attempt failed (might happen if inputs are missing or do not fit the specified date format).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dateFormat [string, default: “dd.MM.yyyy-HH:mm:ss.SSS”]")]),t._v(": The format of the incoming date string.\nIt is used for conversion into a UNIX timestamp in milliseconds.\nIf invalid (according to "),e("code",[t._v("java.text.SimpleDateFormat")]),t._v(") or null, the default date format is tried.\nIf conversion fails because of missing or invalid input "),e("code",[t._v("conversionFailed")]),t._v(" is triggered.")])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/375.49b7f64f.js b/assets/js/375.ce6a6815.js similarity index 98% rename from assets/js/375.49b7f64f.js rename to assets/js/375.ce6a6815.js index 7ad473e0f9..b40e0df1ca 100644 --- a/assets/js/375.49b7f64f.js +++ b/assets/js/375.ce6a6815.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[375],{1164:function(e,t,r){"use strict";r.r(t);var s=r(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"hrvrmssdfromrr"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hrvrmssdfromrr"}},[e._v("#")]),e._v(" HRVRmssdFromRR")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Easy Reading)")]),e._v(" "),t("p",[e._v("Calculates and outputs the "),t("abbr",{attrs:{title:"Heart Rate Variability"}},[e._v("HRV")]),e._v(" in terms of "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" in milliseconds (ms) based on incoming R-R intervals (also in ms).")]),e._v(" "),t("p",[e._v("A sliding window of the x most recent R-R intervals, x being the property "),t("code",[e._v("rmssdWindowSize")]),e._v(", is used for the calculation, which is first started as soon as there have been x samples since the last reset (or model start).")]),e._v(" "),t("p",[e._v("Calculation and collection of samples can be paused and continued via event listener ports.\nThe output port rmssd only delivers a value, if there is an actual calculation (i.e. currently no pause and enough samples).")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rrInterval [double]")]),e._v(": This port must deliver the R-R interval in ms, i.e. the time interval between the most significant, the highest, peaks (the R-peaks) of two consecutive QRS’ of an "),t("abbr",{attrs:{title:"Electrocardiogram"}},[e._v("ECG")]),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rmssd [double]")]),e._v(": Provides the calculated "),t("abbr",{attrs:{title:"Root Mean Square"}},[e._v("RMS")]),e._v(" of successive differences in ms, calculated from the collected input port "),t("code",[e._v("rrInterval’s")]),e._v(" signals.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("resetCalculation")]),e._v(": When the event is detected, the plugin discards previous R-R intervals and resets the counter of intervals used for the calculation.\nThis does not influence running or paused states, i.e. if the plugin is currently paused, it will stay paused, otherwise there is a recalculation as soon as there are (again) enough samples.")]),e._v(" "),t("li",[t("strong",[e._v("pauseCalculation")]),e._v(": When the event is detected, from now on "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" is no longer recalculated and no value is sent to the output port, but R-R values from the input port continue to be stored (more recent ones overwrite existing ones due to the sliding window).\nThis can be used in order to wait for more meaningful R-R samples before the next calculation, respectively further outputs.")]),e._v(" "),t("li",[t("strong",[e._v("continueCalculation")]),e._v(": The event must be fired after each "),t("code",[e._v("pauseCalculation")]),e._v(" in order to continue "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation and sending the result to the output port again.")]),e._v(" "),t("li",[t("strong",[e._v("pauseComponent")]),e._v(": Completely pauses the component’s activity, i.e. from now on no "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" is recalculated and sent to the output port.\nIn addition to a "),t("code",[e._v("pauseCalculation")]),e._v(", no more R-R values from the input port are collected, either.")]),e._v(" "),t("li",[t("strong",[e._v("continueComponent")]),e._v(": To be used after "),t("code",[e._v("pauseComponent")]),e._v(" in order to collect R-R values from the input port again (values aren’t reset but progressively overwritten due to the sliding window) and to continue "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation and sending the result to the output port.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rmssdRecalculated")]),e._v(": Triggers whenever an "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation has been finished and the current "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" value is available at the output port, i.e. if "),t("code",[e._v("rmssdWindowSize")]),e._v(" (property) is 100, it will trigger first when 100 intervals were received and calculation has finished, then after each further interval and calculation completion.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rmssdWindowSize [integer, default: 100]")]),e._v(": The number of R-R intervals that are used for each "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation, thus the sliding window size.\nExample: If this is set to 100, the 100 most recent R-R intervals are taken into consideration and calculation is not started before at least 100 values have been received at the input port (since the start or a possible reset).\nA valid value must be > 1, otherwise it is replaced by the default value.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[375],{1162:function(e,t,r){"use strict";r.r(t);var s=r(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"hrvrmssdfromrr"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hrvrmssdfromrr"}},[e._v("#")]),e._v(" HRVRmssdFromRR")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: Easy Reading)")]),e._v(" "),t("p",[e._v("Calculates and outputs the "),t("abbr",{attrs:{title:"Heart Rate Variability"}},[e._v("HRV")]),e._v(" in terms of "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" in milliseconds (ms) based on incoming R-R intervals (also in ms).")]),e._v(" "),t("p",[e._v("A sliding window of the x most recent R-R intervals, x being the property "),t("code",[e._v("rmssdWindowSize")]),e._v(", is used for the calculation, which is first started as soon as there have been x samples since the last reset (or model start).")]),e._v(" "),t("p",[e._v("Calculation and collection of samples can be paused and continued via event listener ports.\nThe output port rmssd only delivers a value, if there is an actual calculation (i.e. currently no pause and enough samples).")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rrInterval [double]")]),e._v(": This port must deliver the R-R interval in ms, i.e. the time interval between the most significant, the highest, peaks (the R-peaks) of two consecutive QRS’ of an "),t("abbr",{attrs:{title:"Electrocardiogram"}},[e._v("ECG")]),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rmssd [double]")]),e._v(": Provides the calculated "),t("abbr",{attrs:{title:"Root Mean Square"}},[e._v("RMS")]),e._v(" of successive differences in ms, calculated from the collected input port "),t("code",[e._v("rrInterval’s")]),e._v(" signals.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("resetCalculation")]),e._v(": When the event is detected, the plugin discards previous R-R intervals and resets the counter of intervals used for the calculation.\nThis does not influence running or paused states, i.e. if the plugin is currently paused, it will stay paused, otherwise there is a recalculation as soon as there are (again) enough samples.")]),e._v(" "),t("li",[t("strong",[e._v("pauseCalculation")]),e._v(": When the event is detected, from now on "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" is no longer recalculated and no value is sent to the output port, but R-R values from the input port continue to be stored (more recent ones overwrite existing ones due to the sliding window).\nThis can be used in order to wait for more meaningful R-R samples before the next calculation, respectively further outputs.")]),e._v(" "),t("li",[t("strong",[e._v("continueCalculation")]),e._v(": The event must be fired after each "),t("code",[e._v("pauseCalculation")]),e._v(" in order to continue "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation and sending the result to the output port again.")]),e._v(" "),t("li",[t("strong",[e._v("pauseComponent")]),e._v(": Completely pauses the component’s activity, i.e. from now on no "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" is recalculated and sent to the output port.\nIn addition to a "),t("code",[e._v("pauseCalculation")]),e._v(", no more R-R values from the input port are collected, either.")]),e._v(" "),t("li",[t("strong",[e._v("continueComponent")]),e._v(": To be used after "),t("code",[e._v("pauseComponent")]),e._v(" in order to collect R-R values from the input port again (values aren’t reset but progressively overwritten due to the sliding window) and to continue "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation and sending the result to the output port.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rmssdRecalculated")]),e._v(": Triggers whenever an "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation has been finished and the current "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" value is available at the output port, i.e. if "),t("code",[e._v("rmssdWindowSize")]),e._v(" (property) is 100, it will trigger first when 100 intervals were received and calculation has finished, then after each further interval and calculation completion.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("rmssdWindowSize [integer, default: 100]")]),e._v(": The number of R-R intervals that are used for each "),t("abbr",{attrs:{title:"Root Mean Square of Successive Differences"}},[e._v("RMSSD")]),e._v(" calculation, thus the sliding window size.\nExample: If this is set to 100, the 100 most recent R-R intervals are taken into consideration and calculation is not started before at least 100 values have been received at the input port (since the start or a possible reset).\nA valid value must be > 1, otherwise it is replaced by the default value.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/377.453efbc6.js b/assets/js/377.eb276427.js similarity index 98% rename from assets/js/377.453efbc6.js rename to assets/js/377.eb276427.js index afeeff8512..c2466379d5 100644 --- a/assets/js/377.453efbc6.js +++ b/assets/js/377.eb276427.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[377],{1195:function(e,t,r){"use strict";r.r(t);var i=r(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"serialport"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#serialport"}},[e._v("#")]),e._v(" SerialPort")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Communication)")]),e._v(" "),t("p",[e._v("The SerialPort plugin can be used to send and receive data from serial devices (e.g. microcontrollers/embedded devices/wireless links etc.) via a serial port (COM port) or virtual serial port. The plugin adds some convinience methods to append or wait for termination characters. Furthermore the sending and receiving of byte values is supported.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("send [string]:")]),e._v(" string which will be sent to the microcontroller / embedded module")]),e._v(" "),t("li",[t("strong",[e._v("sendBytes [byte]:")]),e._v(" bytes to be sent to the serial port.")])]),e._v(" "),t("p",[t("em",[e._v("Note:")]),e._v(" Any data sent to one of the input ports tries to open the given COM port or serial device with given cimId, if the port is not currently open. Therefore sending a byte/command to an input port can be used to trigger a CIM-rescan or retry to open a device with specified cimId. The current status can be monitored by output values of “opPortStatus”.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("received [string]:")]),e._v(" string which has been received (was sent from the microcontroller / embedded module)")]),e._v(" "),t("li",[t("strong",[e._v("receivedBytes [byte]:")]),e._v(" received bytes from the serial port.")]),e._v(" "),t("li",[t("strong",[e._v("opPortStatus [string]:")]),e._v(" status for mode with specified property “cimId”. The following outputs are possible:\n"),t("ul",[t("li",[e._v("“IN_PORT_RESCAN”: sent if CIM scanning is currently in progress and was not just triggered")]),e._v(" "),t("li",[e._v("“NEW_PORT_RESCAN”: sent if a new CIM scanning was just triggered and CIM scanning is now in progress")])])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ComPort [string]:")]),e._v(" Defines the COM Port of the target serial device. e.g. COM0 or /dev/ttyS0")]),e._v(" "),t("li",[t("strong",[e._v("BaudRate [integer]:")]),e._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),e._v(" "),t("li",[t("strong",[e._v("sendStringTerminator [combobox selection]:")]),e._v(" Append a character when sending the string, e.g. CR, LF, CR+LF, 0")]),e._v(" "),t("li",[t("strong",[e._v("receiveStringTerminator [combobox selection]:")]),e._v(" wait for a termination character when receiving characters (-> receive a string)")]),e._v(" "),t("li",[t("strong",[e._v("sendBytesBufferSize [integer]:")]),e._v(" Wait for the given number of bytes before sending them to the serial port.")]),e._v(" "),t("li",[t("strong",[e._v("cimId [string]:")]),e._v(" If specified it is tried to open a raw COM port for a device with the given CIM-ID. If no device with the given CIM-ID is found a CIM rescan is triggered. The accepted format is a hex-value with prefix “0x”, e.g. “0xa401” for FLipMouse. Status of CIM scan/rescan is sent to “opPortStatus” - see port description for details.")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[377],{1191:function(e,t,r){"use strict";r.r(t);var i=r(2),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"serialport"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#serialport"}},[e._v("#")]),e._v(" SerialPort")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Communication)")]),e._v(" "),t("p",[e._v("The SerialPort plugin can be used to send and receive data from serial devices (e.g. microcontrollers/embedded devices/wireless links etc.) via a serial port (COM port) or virtual serial port. The plugin adds some convinience methods to append or wait for termination characters. Furthermore the sending and receiving of byte values is supported.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("send [string]:")]),e._v(" string which will be sent to the microcontroller / embedded module")]),e._v(" "),t("li",[t("strong",[e._v("sendBytes [byte]:")]),e._v(" bytes to be sent to the serial port.")])]),e._v(" "),t("p",[t("em",[e._v("Note:")]),e._v(" Any data sent to one of the input ports tries to open the given COM port or serial device with given cimId, if the port is not currently open. Therefore sending a byte/command to an input port can be used to trigger a CIM-rescan or retry to open a device with specified cimId. The current status can be monitored by output values of “opPortStatus”.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("received [string]:")]),e._v(" string which has been received (was sent from the microcontroller / embedded module)")]),e._v(" "),t("li",[t("strong",[e._v("receivedBytes [byte]:")]),e._v(" received bytes from the serial port.")]),e._v(" "),t("li",[t("strong",[e._v("opPortStatus [string]:")]),e._v(" status for mode with specified property “cimId”. The following outputs are possible:\n"),t("ul",[t("li",[e._v("“IN_PORT_RESCAN”: sent if CIM scanning is currently in progress and was not just triggered")]),e._v(" "),t("li",[e._v("“NEW_PORT_RESCAN”: sent if a new CIM scanning was just triggered and CIM scanning is now in progress")])])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ComPort [string]:")]),e._v(" Defines the COM Port of the target serial device. e.g. COM0 or /dev/ttyS0")]),e._v(" "),t("li",[t("strong",[e._v("BaudRate [integer]:")]),e._v(" Defines the Baudrate for the communication. It must match the baudrate of the target device")]),e._v(" "),t("li",[t("strong",[e._v("sendStringTerminator [combobox selection]:")]),e._v(" Append a character when sending the string, e.g. CR, LF, CR+LF, 0")]),e._v(" "),t("li",[t("strong",[e._v("receiveStringTerminator [combobox selection]:")]),e._v(" wait for a termination character when receiving characters (-> receive a string)")]),e._v(" "),t("li",[t("strong",[e._v("sendBytesBufferSize [integer]:")]),e._v(" Wait for the given number of bytes before sending them to the serial port.")]),e._v(" "),t("li",[t("strong",[e._v("cimId [string]:")]),e._v(" If specified it is tried to open a raw COM port for a device with the given CIM-ID. If no device with the given CIM-ID is found a CIM rescan is triggered. The accepted format is a hex-value with prefix “0x”, e.g. “0xa401” for FLipMouse. Status of CIM scan/rescan is sent to “opPortStatus” - see port description for details.")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/378.f010c287.js b/assets/js/378.5884cbf0.js similarity index 98% rename from assets/js/378.f010c287.js rename to assets/js/378.5884cbf0.js index 797450d7f2..48b18a993f 100644 --- a/assets/js/378.f010c287.js +++ b/assets/js/378.5884cbf0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[378],{1203:function(t,e,r){"use strict";r.r(e);var s=r(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"stringextractor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#stringextractor"}},[t._v("#")]),t._v(" StringExtractor")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Easy Reading)")]),t._v(" "),e("p",[t._v("Extracts a subtext from a given input text and forwards it to the output port as soon as extraction was done based on start and end delimiter strings.")]),t._v(" "),e("p",[t._v("Delimiters must be in the correct order and non-overlapping.\nIn case of several occurrences, always the first occurrence of the start and the end delimiter are used.\nThe event trigger also fires during successful extraction, which is also the case for an empty extracted text (also handed to the output port).")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inText [string]")]),t._v(": Provides the input text, from which a subtext shall be extracted and sent to the output port, based on start and end delimiter specifications.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("extractedText [string]")]),t._v(": Represents the subtext extracted from the input text based on delimiter specifications, i.e. the text between start and end delimiter (can also be an empty string).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("p",[t._v("None. (Each new "),e("code",[t._v("inText")]),t._v(" is checked for the existence of start and end delimiter.)")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("textExtracted")]),t._v(": Triggers when the end delimiter was detected after the start delimiter (not, if the order is wrong or one is missing or overlapping, i.e. within the other) and thus a subtext was extracted and sent to the output port.\n(An empty string is a valid output that also triggers!)")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("startDelimiter [string, default: START]")]),t._v(": Defines the start string between which and the end string the text is extracted (no regular expression!)")]),t._v(" "),e("li",[e("strong",[t._v("endDelimiter [string, default: END]")]),t._v(": Defines the end string between which and the start string the text is extracted (no regular expression!)")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[378],{1201:function(t,e,r){"use strict";r.r(e);var s=r(2),i=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"stringextractor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#stringextractor"}},[t._v("#")]),t._v(" StringExtractor")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Easy Reading)")]),t._v(" "),e("p",[t._v("Extracts a subtext from a given input text and forwards it to the output port as soon as extraction was done based on start and end delimiter strings.")]),t._v(" "),e("p",[t._v("Delimiters must be in the correct order and non-overlapping.\nIn case of several occurrences, always the first occurrence of the start and the end delimiter are used.\nThe event trigger also fires during successful extraction, which is also the case for an empty extracted text (also handed to the output port).")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("inText [string]")]),t._v(": Provides the input text, from which a subtext shall be extracted and sent to the output port, based on start and end delimiter specifications.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("extractedText [string]")]),t._v(": Represents the subtext extracted from the input text based on delimiter specifications, i.e. the text between start and end delimiter (can also be an empty string).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("p",[t._v("None. (Each new "),e("code",[t._v("inText")]),t._v(" is checked for the existence of start and end delimiter.)")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("textExtracted")]),t._v(": Triggers when the end delimiter was detected after the start delimiter (not, if the order is wrong or one is missing or overlapping, i.e. within the other) and thus a subtext was extracted and sent to the output port.\n(An empty string is a valid output that also triggers!)")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("startDelimiter [string, default: START]")]),t._v(": Defines the start string between which and the end string the text is extracted (no regular expression!)")]),t._v(" "),e("li",[e("strong",[t._v("endDelimiter [string, default: END]")]),t._v(": Defines the end string between which and the start string the text is extracted (no regular expression!)")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/379.e66dc5d0.js b/assets/js/379.ab5fa38c.js similarity index 98% rename from assets/js/379.e66dc5d0.js rename to assets/js/379.ab5fa38c.js index d4196c53d3..b6ccfb4e7e 100644 --- a/assets/js/379.e66dc5d0.js +++ b/assets/js/379.ab5fa38c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[379],{1201:function(t,e,r){"use strict";r.r(e);var n=r(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"stringformatter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#stringformatter"}},[t._v("#")]),t._v(" StringFormatter")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("The StringFormatter plugin can be used to create a printf-style formatted text with numbers or strings as input variables. The output string is formatted according to a given format string, see "),e("a",{attrs:{href:"https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java class Formatter"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1String [string]:")]),t._v(" Input variable of type string, referenced with %1$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("in2String [string]:")]),t._v(" Input variable of type string, referenced with %2$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("in3Double [string]:")]),t._v(" Input variable of type double, referenced with %3$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("in4Integer [string]:")]),t._v(" Input variable of type integer, referenced with %4$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("setFormatStr [string]:")]),t._v(" Sets a new format string.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("formattedStr [string]:")]),t._v(" Formatted string according to input variables and format string.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("formatString [string]:")]),t._v(" The format string to use, see Java class Formatter. The input ports in1XXX-in4XXX represent the formatable variables and can be referenced with the %n$ syntax.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn1String [string]:")]),t._v(" The default value of in1String. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn2String [string]:")]),t._v(" The default value of in2String. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn3Double [double]:")]),t._v(" The default value of in3Double. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn4Integer [integer]:")]),t._v(" The default value of in4Integer. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("sendOnlyByEvent [boolean]:")]),t._v(" Only sends the value of the formatted string, if the event sendFormattedStr is received.")]),t._v(" "),e("li",[e("strong",[t._v("port1ToDefaultAfterSend [boolean]:")]),t._v(" If true (default: false) input port 1 is reverted to the default value (property ‘defaultIn1String’) after the formatted result value was sent, triggered by a different value sent to input port ‘in1String’. This functionality can be useful, if some kind of action string is constructed using the StringFormatter plugin and a part of it should be sent exactly once triggering an one-time action.")]),t._v(" "),e("li",[e("strong",[t._v("port[2-4]ToDefaultAfterSend [boolean]:")]),t._v(" Analog functionality for input ports 2-4 as described for ‘port1ToDefaultAfterSend’ above.")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[379],{1203:function(t,e,r){"use strict";r.r(e);var n=r(2),i=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"stringformatter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#stringformatter"}},[t._v("#")]),t._v(" StringFormatter")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-event-and-string-processing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-event-and-string-processing"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Event and String Processing)")]),t._v(" "),e("p",[t._v("The StringFormatter plugin can be used to create a printf-style formatted text with numbers or strings as input variables. The output string is formatted according to a given format string, see "),e("a",{attrs:{href:"https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java class Formatter"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("in1String [string]:")]),t._v(" Input variable of type string, referenced with %1$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("in2String [string]:")]),t._v(" Input variable of type string, referenced with %2$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("in3Double [string]:")]),t._v(" Input variable of type double, referenced with %3$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("in4Integer [string]:")]),t._v(" Input variable of type integer, referenced with %4$ in the format string.")]),t._v(" "),e("li",[e("strong",[t._v("setFormatStr [string]:")]),t._v(" Sets a new format string.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("formattedStr [string]:")]),t._v(" Formatted string according to input variables and format string.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("formatString [string]:")]),t._v(" The format string to use, see Java class Formatter. The input ports in1XXX-in4XXX represent the formatable variables and can be referenced with the %n$ syntax.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn1String [string]:")]),t._v(" The default value of in1String. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn2String [string]:")]),t._v(" The default value of in2String. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn3Double [double]:")]),t._v(" The default value of in3Double. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("defaultIn4Integer [integer]:")]),t._v(" The default value of in4Integer. Used if there is no input port value.")]),t._v(" "),e("li",[e("strong",[t._v("sendOnlyByEvent [boolean]:")]),t._v(" Only sends the value of the formatted string, if the event sendFormattedStr is received.")]),t._v(" "),e("li",[e("strong",[t._v("port1ToDefaultAfterSend [boolean]:")]),t._v(" If true (default: false) input port 1 is reverted to the default value (property ‘defaultIn1String’) after the formatted result value was sent, triggered by a different value sent to input port ‘in1String’. This functionality can be useful, if some kind of action string is constructed using the StringFormatter plugin and a part of it should be sent exactly once triggering an one-time action.")]),t._v(" "),e("li",[e("strong",[t._v("port[2-4]ToDefaultAfterSend [boolean]:")]),t._v(" Analog functionality for input ports 2-4 as described for ‘port1ToDefaultAfterSend’ above.")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/38.b72746da.js b/assets/js/38.25f82ecc.js similarity index 91% rename from assets/js/38.b72746da.js rename to assets/js/38.25f82ecc.js index 2f437d2877..32b656761e 100644 --- a/assets/js/38.b72746da.js +++ b/assets/js/38.25f82ecc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{1038:function(e,t,n){"use strict";n.r(t);var a=n(2),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"create-and-edit-a-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-and-edit-a-model"}},[e._v("#")]),e._v(" Create and Edit a Model")]),e._v(" "),t("p",[e._v("To create a new model, add one or several components. To do so, select the tab Components, and from the sub-menu select a group of components, depending on what is supposed to be added. The three component groups are "),t("em",[e._v("Sensors")]),e._v(", "),t("em",[e._v("Processors")]),e._v(" and "),t("em",[e._v("Actuators")]),e._v("."),t("br"),e._v("\nWithin these sections, the components are devided into subsections, making it easier to find one plugin out of the huge amount of available plugins.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(483),alt:"Screenshot: The components tab",title:"Screenshot: The components tab"}})]),e._v(" "),t("p",[e._v("The Components Tab")]),e._v(" "),t("p",[e._v("Now, this added component can be manipulated in the drawing area or the List View. This can be done with the functions in the Edit-tab or directly by using the mouse and/or the keyboard.")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-mouse"}},[e._v("#")]),e._v(" Model Manipulation via Mouse")]),e._v(" "),t("p",[e._v("After a component has been added to the drawing field, it can be moved by using the drag and drop functionality. Several elements (components, channels, eventchannels) can be selected by drawing a selection rectangle (just press the left mouse button and move the mouse) or by pressing the "),t("em",[e._v("Ctrl")]),e._v("-Key and clicking on each element."),t("br"),e._v("\nAll the selected elements can be moved using drag and drop. All selected components are marked with a grey rectange in the background. If only one component is selected it’s properties can be edited in the property editor. The same applies when an event channel is selected. Channels can be drawn by pressing the mouse button over an output port and dragging the channel to an input port."),t("br"),e._v("\nConnecting eventchannels works in the same way.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(484),alt:"Screenshot: Selection of components",title:"Screenshot: Selection of components"}})]),e._v(" "),t("p",[e._v("Selection of Components")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-keyboard"}},[e._v("#")]),e._v(" Model Manipulation via Keyboard")]),e._v(" "),t("p",[e._v("A dedicated keyboard mode can be activated by pressing Enter when the drawing area is selected. From then on the components can be navigated by using the arrow keys or moved by using Shift-Arrow. Pressing the Space bar activates port mode, thus enabling the user to navigate the ports of the selected component via the arrow keys. Pressing Shift-Space on an output port starts drawing a new channel. The user must then navigate to a matching input port on another component and press Shift-Space there to complete the channel. Esc ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the Space bar again. Now the channels connected to the selected port can be navigated. Esc ends channel mode.")]),e._v(" "),t("h2",{attrs:{id:"selection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#selection"}},[e._v("#")]),e._v(" Selection")]),e._v(" "),t("p",[e._v("It is possible to select several components, channels and event channels at the same time. The selection can be done with the mouse (by dragging a selection rectangle) or by the usage of the "),t("em",[e._v("Ctrl")]),e._v("-key, like in many standard programs. The selected components are marked with a grey frame. The figure below shows a model with several selected components.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(485),alt:"Model with three selected components",title:"Model with three selected components"}})]),e._v(" "),t("p",[e._v("Model with three selected components")])])}),[],!1,null,null,null);t.default=o.exports},483:function(e,t,n){e.exports=n.p+"assets/img/components_tab.b6fbf8d9.png"},484:function(e,t,n){e.exports=n.p+"assets/img/edit_selection.df95ba2e.png"},485:function(e,t,n){e.exports=n.p+"assets/img/selection.99f33040.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{1038:function(e,t,n){"use strict";n.r(t);var a=n(2),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"create-and-edit-a-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-and-edit-a-model"}},[e._v("#")]),e._v(" Create and Edit a Model")]),e._v(" "),t("p",[e._v("To create a new model, add one or several components. To do so, select the tab Components, and from the sub-menu select a group of components, depending on what is supposed to be added. The three component groups are "),t("em",[e._v("Sensors")]),e._v(", "),t("em",[e._v("Processors")]),e._v(" and "),t("em",[e._v("Actuators")]),e._v("."),t("br"),e._v("\nWithin these sections, the components are devided into subsections, making it easier to find one plugin out of the huge amount of available plugins.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(489),alt:"Screenshot: The components tab",title:"Screenshot: The components tab"}})]),e._v(" "),t("p",[e._v("The Components Tab")]),e._v(" "),t("p",[e._v("Now, this added component can be manipulated in the drawing area or the List View. This can be done with the functions in the Edit-tab or directly by using the mouse and/or the keyboard.")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-mouse"}},[e._v("#")]),e._v(" Model Manipulation via Mouse")]),e._v(" "),t("p",[e._v("After a component has been added to the drawing field, it can be moved by using the drag and drop functionality. Several elements (components, channels, eventchannels) can be selected by drawing a selection rectangle (just press the left mouse button and move the mouse) or by pressing the "),t("em",[e._v("Ctrl")]),e._v("-Key and clicking on each element."),t("br"),e._v("\nAll the selected elements can be moved using drag and drop. All selected components are marked with a grey rectange in the background. If only one component is selected it’s properties can be edited in the property editor. The same applies when an event channel is selected. Channels can be drawn by pressing the mouse button over an output port and dragging the channel to an input port."),t("br"),e._v("\nConnecting eventchannels works in the same way.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(490),alt:"Screenshot: Selection of components",title:"Screenshot: Selection of components"}})]),e._v(" "),t("p",[e._v("Selection of Components")]),e._v(" "),t("h2",{attrs:{id:"model-manipulation-via-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#model-manipulation-via-keyboard"}},[e._v("#")]),e._v(" Model Manipulation via Keyboard")]),e._v(" "),t("p",[e._v("A dedicated keyboard mode can be activated by pressing Enter when the drawing area is selected. From then on the components can be navigated by using the arrow keys or moved by using Shift-Arrow. Pressing the Space bar activates port mode, thus enabling the user to navigate the ports of the selected component via the arrow keys. Pressing Shift-Space on an output port starts drawing a new channel. The user must then navigate to a matching input port on another component and press Shift-Space there to complete the channel. Esc ends port mode."),t("br"),e._v("\nWhen in port mode, the user can activate channel mode by pressing the Space bar again. Now the channels connected to the selected port can be navigated. Esc ends channel mode.")]),e._v(" "),t("h2",{attrs:{id:"selection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#selection"}},[e._v("#")]),e._v(" Selection")]),e._v(" "),t("p",[e._v("It is possible to select several components, channels and event channels at the same time. The selection can be done with the mouse (by dragging a selection rectangle) or by the usage of the "),t("em",[e._v("Ctrl")]),e._v("-key, like in many standard programs. The selected components are marked with a grey frame. The figure below shows a model with several selected components.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(491),alt:"Model with three selected components",title:"Model with three selected components"}})]),e._v(" "),t("p",[e._v("Model with three selected components")])])}),[],!1,null,null,null);t.default=o.exports},489:function(e,t,n){e.exports=n.p+"assets/img/components_tab.b6fbf8d9.png"},490:function(e,t,n){e.exports=n.p+"assets/img/edit_selection.df95ba2e.png"},491:function(e,t,n){e.exports=n.p+"assets/img/selection.99f33040.png"}}]); \ No newline at end of file diff --git a/assets/js/380.bd597444.js b/assets/js/380.6dce0ec3.js similarity index 98% rename from assets/js/380.bd597444.js rename to assets/js/380.6dce0ec3.js index 8101bf70f7..7998a20c6e 100644 --- a/assets/js/380.bd597444.js +++ b/assets/js/380.6dce0ec3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[380],{1209:function(t,e,s){"use strict";s.r(e);var a=s(2),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"timestampwriter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#timestampwriter"}},[t._v("#")]),t._v(" TimestampWriter")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Easy Reading)")]),t._v(" "),e("p",[t._v("This plugin stores the time in milliseconds (ms) that passed by since the last reset (or start).\nOutputs are the (via date string) formatted and numerical milliseconds and also a formatted absolute UNIX epoch timestamp plus the absolute UNIX timestamp in ms.\nThe time zone of the local system is used!")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("p",[t._v("None. Milliseconds are either absolute Unix epoch timestamps or relative intervals between events.")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timePassedMs [double]")]),t._v(": Milliseconds (ms) since model start or last component reset.")]),t._v(" "),e("li",[e("strong",[t._v("timePassedFormatted [string]")]),t._v(": Milliseconds since model start or last component reset - formatted as date string.")]),t._v(" "),e("li",[e("strong",[t._v("timestampUnixMs [double]")]),t._v(": Unix timestamp in milliseconds (ms).")]),t._v(" "),e("li",[e("strong",[t._v("timestampUnixFormatted [string]")]),t._v(": Unix timestamp – absolute milliseconds formatted as date string.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("resetStartTimestamp")]),t._v(": Resets the start timestamp for calculating the time passed by (the first timestamp is set at model start).")]),t._v(" "),e("li",[e("strong",[t._v("sendOutputs")]),t._v(": Formats and sends outputs, triggers the event "),e("code",[t._v("timestampFormatted")]),t._v(" when outputs are available at the ports.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timestampFormatted")]),t._v(": Triggers when output values (formatted and as milliseconds) are available at the output ports.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timestampFormat [string, default: “dd.MM.yyyy-HH:mm:ss.SSS”]")]),t._v(": Format that must be valid according to "),e("code",[t._v("java.text.SimpleDateFormat")]),t._v(".\nIt is used for formatting the UNIX timestamp as a date string.\nIf it is invalid or null, the default date format is used.")]),t._v(" "),e("li",[e("strong",[t._v("diffTimeFormat [string, default: “HH:mm:ss.SSS”]")]),t._v(": Format that must be valid according to "),e("code",[t._v("java.text.SimpleDateFormat")]),t._v(" but for meaningfulness with only time components.\nIt is used for formatting passed milliseconds (since start/reset) as a date string.\nIf invalid or null, the default date format is used.")])]),t._v(" "),e("p",[e("em",[t._v("Important Usage Note")]),t._v(": Only the format for time components shall be set, as otherwise the Unix epoch start date components (01.01.1970 at 00:00:00.000 o’clock) are added.\nE.g. if 5 seconds have passed by, using date components the output would look like 01.01.1970-00:00:05.000!")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[380],{1215:function(t,e,s){"use strict";s.r(e);var a=s(2),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"timestampwriter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#timestampwriter"}},[t._v("#")]),t._v(" TimestampWriter")]),t._v(" "),e("h2",{attrs:{id:"component-type-processor-subcategory-easy-reading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-easy-reading"}},[t._v("#")]),t._v(" Component Type: Processor (Subcategory: Easy Reading)")]),t._v(" "),e("p",[t._v("This plugin stores the time in milliseconds (ms) that passed by since the last reset (or start).\nOutputs are the (via date string) formatted and numerical milliseconds and also a formatted absolute UNIX epoch timestamp plus the absolute UNIX timestamp in ms.\nThe time zone of the local system is used!")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("p",[t._v("None. Milliseconds are either absolute Unix epoch timestamps or relative intervals between events.")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timePassedMs [double]")]),t._v(": Milliseconds (ms) since model start or last component reset.")]),t._v(" "),e("li",[e("strong",[t._v("timePassedFormatted [string]")]),t._v(": Milliseconds since model start or last component reset - formatted as date string.")]),t._v(" "),e("li",[e("strong",[t._v("timestampUnixMs [double]")]),t._v(": Unix timestamp in milliseconds (ms).")]),t._v(" "),e("li",[e("strong",[t._v("timestampUnixFormatted [string]")]),t._v(": Unix timestamp – absolute milliseconds formatted as date string.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("resetStartTimestamp")]),t._v(": Resets the start timestamp for calculating the time passed by (the first timestamp is set at model start).")]),t._v(" "),e("li",[e("strong",[t._v("sendOutputs")]),t._v(": Formats and sends outputs, triggers the event "),e("code",[t._v("timestampFormatted")]),t._v(" when outputs are available at the ports.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timestampFormatted")]),t._v(": Triggers when output values (formatted and as milliseconds) are available at the output ports.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("timestampFormat [string, default: “dd.MM.yyyy-HH:mm:ss.SSS”]")]),t._v(": Format that must be valid according to "),e("code",[t._v("java.text.SimpleDateFormat")]),t._v(".\nIt is used for formatting the UNIX timestamp as a date string.\nIf it is invalid or null, the default date format is used.")]),t._v(" "),e("li",[e("strong",[t._v("diffTimeFormat [string, default: “HH:mm:ss.SSS”]")]),t._v(": Format that must be valid according to "),e("code",[t._v("java.text.SimpleDateFormat")]),t._v(" but for meaningfulness with only time components.\nIt is used for formatting passed milliseconds (since start/reset) as a date string.\nIf invalid or null, the default date format is used.")])]),t._v(" "),e("p",[e("em",[t._v("Important Usage Note")]),t._v(": Only the format for time components shall be set, as otherwise the Unix epoch start date components (01.01.1970 at 00:00:00.000 o’clock) are added.\nE.g. if 5 seconds have passed by, using date components the output would look like 01.01.1970-00:00:05.000!")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/381.2ac23aed.js b/assets/js/381.9096190c.js similarity index 96% rename from assets/js/381.2ac23aed.js rename to assets/js/381.9096190c.js index 689e260976..d5980cf55b 100644 --- a/assets/js/381.2ac23aed.js +++ b/assets/js/381.9096190c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[381],{1212:function(t,e,s){"use strict";s.r(e);var o=s(2),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"websocket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#websocket"}},[t._v("#")]),t._v(" WebSocket")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Web)")]),t._v(" "),e("p",[t._v("The websocket component takes an input string message and forwards the data to a websocket ("),e("a",{attrs:{href:"http://localhost:8082/ws/astericsData",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/ws/astericsData"),e("OutboundLink")],1),t._v("). Additionally, incoming messages at the websocket are sent out to the output port. A demo webpage that connects to the websocket and visualizes the data can be accessed at "),e("a",{attrs:{href:"http://localhost:8082/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("The websocket plugin can only be used if the ARE was started with the flag "),e("strong",[t._v("–webservice")]),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("InA [string]:")]),t._v(" Incoming messages are sent to the websocket as string.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("OutA [string]:")]),t._v(" Incoming messages from the websocket are sent to this output port as string.")])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[381],{1211:function(t,e,s){"use strict";s.r(e);var o=s(2),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"websocket"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#websocket"}},[t._v("#")]),t._v(" WebSocket")]),t._v(" "),e("p",[t._v("Component Type: Processor (Subcategory: Web)")]),t._v(" "),e("p",[t._v("The websocket component takes an input string message and forwards the data to a websocket ("),e("a",{attrs:{href:"http://localhost:8082/ws/astericsData",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/ws/astericsData"),e("OutboundLink")],1),t._v("). Additionally, incoming messages at the websocket are sent out to the output port. A demo webpage that connects to the websocket and visualizes the data can be accessed at "),e("a",{attrs:{href:"http://localhost:8082/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8082/"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("The websocket plugin can only be used if the ARE was started with the flag "),e("strong",[t._v("–webservice")]),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("InA [string]:")]),t._v(" Incoming messages are sent to the websocket as string.")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("OutA [string]:")]),t._v(" Incoming messages from the websocket are sent to this output port as string.")])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/382.7442fbc2.js b/assets/js/382.e5bc4924.js similarity index 96% rename from assets/js/382.7442fbc2.js rename to assets/js/382.e5bc4924.js index 33703534c5..28388ac3b3 100644 --- a/assets/js/382.7442fbc2.js +++ b/assets/js/382.e5bc4924.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[382],{1226:function(t,e,r){"use strict";r.r(e);var a=r(2),i=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Simulation) The event generator plugin can be used to periodically send event triggers at a given time interval.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("No special hardware or software required")]),t._v(" "),e("h2",{attrs:{id:"port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#port-description"}},[t._v("#")]),t._v(" Port Description")]),t._v(" "),e("p",[t._v("No input or output ports available")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("event_out_1:")]),t._v(" Events will be generated and sent to this port.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("generation_delay [integer]:")]),t._v(" The time interval for generating events in milliseconds.")]),t._v(" "),e("li",[e("strong",[t._v("event_payload [string]:")]),t._v(" A string value which will be sent with the event as a parameter (currently not used by other plugins).")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[382],{1224:function(t,e,r){"use strict";r.r(e);var a=r(2),i=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Simulation) The event generator plugin can be used to periodically send event triggers at a given time interval.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("No special hardware or software required")]),t._v(" "),e("h2",{attrs:{id:"port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#port-description"}},[t._v("#")]),t._v(" Port Description")]),t._v(" "),e("p",[t._v("No input or output ports available")]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("event_out_1:")]),t._v(" Events will be generated and sent to this port.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("generation_delay [integer]:")]),t._v(" The time interval for generating events in milliseconds.")]),t._v(" "),e("li",[e("strong",[t._v("event_payload [string]:")]),t._v(" A string value which will be sent with the event as a parameter (currently not used by other plugins).")])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/383.e405ae3d.js b/assets/js/383.8efe8229.js similarity index 96% rename from assets/js/383.e405ae3d.js rename to assets/js/383.8efe8229.js index f06ff1a81f..068bb2f2a8 100644 --- a/assets/js/383.e405ae3d.js +++ b/assets/js/383.8efe8229.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[383],{1258:function(e,t,r){"use strict";r.r(t);var n=r(2),a=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"randomnumber"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#randomnumber"}},[e._v("#")]),e._v(" RandomNumber")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The RandomNumber component generates random numbers in a user defined area. The event listener starts the generation of a random number.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Number [integer]:")]),e._v(" Returns random numbers in the user defined area. Default vaules: min = 0, max = 1")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("NewNumber:")]),e._v(" Generates a new random number.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("min [integer]:")]),e._v(" Minimum value of the random number.")]),e._v(" "),t("li",[t("strong",[e._v("max [integer]:")]),e._v(" Maximum value of the random number.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[383],{1259:function(e,t,r){"use strict";r.r(t);var n=r(2),a=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"randomnumber"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#randomnumber"}},[e._v("#")]),e._v(" RandomNumber")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Simulation)")]),e._v(" "),t("p",[e._v("The RandomNumber component generates random numbers in a user defined area. The event listener starts the generation of a random number.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Number [integer]:")]),e._v(" Returns random numbers in the user defined area. Default vaules: min = 0, max = 1")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("NewNumber:")]),e._v(" Generates a new random number.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("min [integer]:")]),e._v(" Minimum value of the random number.")]),e._v(" "),t("li",[t("strong",[e._v("max [integer]:")]),e._v(" Maximum value of the random number.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/384.7d8104bb.js b/assets/js/384.d06bc123.js similarity index 98% rename from assets/js/384.7d8104bb.js rename to assets/js/384.d06bc123.js index bf1dfb92cb..db03dd2519 100644 --- a/assets/js/384.7d8104bb.js +++ b/assets/js/384.d06bc123.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[384],{1277:function(e,t,r){"use strict";r.r(t);var i=r(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"basic-aac-grid-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#basic-aac-grid-solution"}},[e._v("#")]),e._v(" Basic AAC Grid Solution")]),e._v(" "),t("h2",{attrs:{id:"objective"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[e._v("#")]),e._v(" Objective")]),e._v(" "),t("p",[e._v("Basic grid for Alternative and Augmentative Communication including a simple on-screen keyboard with speech synthesis.")]),e._v(" "),t("h2",{attrs:{id:"description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[e._v("#")]),e._v(" Description")]),e._v(" "),t("p",[e._v("The grid provides cells with basic communication topics (e.g. Help, Eating, Environment) and also provides a basic on-screen keyboard. A cell can be triggered by several modalities depending on the capabilities of the user. Currently the input options clicking, scanning (for switch-based control) or hovering (for eye-tracking based control) are supported. If clicking is enabled, the solution can also be operated by the "),t("RouterLink",{attrs:{to:"/solutions/#computer-control"}},[e._v("Camera Mouse Solution")]),e._v(" or "),t("RouterLink",{attrs:{to:"/solutions/#computer-control"}},[e._v("Eye Tracking Solution")]),e._v(". Additionally, the grid text and images can be edited. Each grid has a unique link and is automatically synchronized when using the same link on different end devices.")],1),e._v(" "),t("p",[t("img",{attrs:{src:"/img/AsTeRICS-Ergo_Grid_en-1-768x592.jpg",alt:"Symbol based grid for communication"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Web browser (Chrome and Firefox preferred)")])]),e._v(" "),t("h3",{attrs:{id:"optional-requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#optional-requirements"}},[e._v("#")]),e._v(" Optional Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Scanning\n"),t("ul",[t("li",[e._v("Keyboard key ("),t("code",[e._v("Space")]),e._v(") or")]),e._v(" "),t("li",[e._v("external Switch (e.g. "),t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FABI"),t("OutboundLink")],1),e._v(") attached and configured to emulate the "),t("code",[e._v("Space")]),e._v("key.")])])]),e._v(" "),t("li",[e._v("Environmental Control\n"),t("ul",[t("li",[e._v("AsTeRICS installed and ARE running")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.irtrans.de/en/shop/usb.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("IrTrans device"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("OS: Windows, Linux (incl. RPi), Mac OSX")])])])]),e._v(" "),t("h2",{attrs:{id:"major-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[e._v("#")]),e._v(" Major Plugins")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"/plugins/sensors/IrTrans"}},[e._v("IrTrans (optional)")])])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[384],{1275:function(e,t,r){"use strict";r.r(t);var i=r(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"basic-aac-grid-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#basic-aac-grid-solution"}},[e._v("#")]),e._v(" Basic AAC Grid Solution")]),e._v(" "),t("h2",{attrs:{id:"objective"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#objective"}},[e._v("#")]),e._v(" Objective")]),e._v(" "),t("p",[e._v("Basic grid for Alternative and Augmentative Communication including a simple on-screen keyboard with speech synthesis.")]),e._v(" "),t("h2",{attrs:{id:"description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[e._v("#")]),e._v(" Description")]),e._v(" "),t("p",[e._v("The grid provides cells with basic communication topics (e.g. Help, Eating, Environment) and also provides a basic on-screen keyboard. A cell can be triggered by several modalities depending on the capabilities of the user. Currently the input options clicking, scanning (for switch-based control) or hovering (for eye-tracking based control) are supported. If clicking is enabled, the solution can also be operated by the "),t("RouterLink",{attrs:{to:"/solutions/#computer-control"}},[e._v("Camera Mouse Solution")]),e._v(" or "),t("RouterLink",{attrs:{to:"/solutions/#computer-control"}},[e._v("Eye Tracking Solution")]),e._v(". Additionally, the grid text and images can be edited. Each grid has a unique link and is automatically synchronized when using the same link on different end devices.")],1),e._v(" "),t("p",[t("img",{attrs:{src:"/img/AsTeRICS-Ergo_Grid_en-1-768x592.jpg",alt:"Symbol based grid for communication"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Web browser (Chrome and Firefox preferred)")])]),e._v(" "),t("h3",{attrs:{id:"optional-requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#optional-requirements"}},[e._v("#")]),e._v(" Optional Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Scanning\n"),t("ul",[t("li",[e._v("Keyboard key ("),t("code",[e._v("Space")]),e._v(") or")]),e._v(" "),t("li",[e._v("external Switch (e.g. "),t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FABI"),t("OutboundLink")],1),e._v(") attached and configured to emulate the "),t("code",[e._v("Space")]),e._v("key.")])])]),e._v(" "),t("li",[e._v("Environmental Control\n"),t("ul",[t("li",[e._v("AsTeRICS installed and ARE running")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.irtrans.de/en/shop/usb.php",target:"_blank",rel:"noopener noreferrer"}},[e._v("IrTrans device"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("OS: Windows, Linux (incl. RPi), Mac OSX")])])])]),e._v(" "),t("h2",{attrs:{id:"major-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#major-plugins"}},[e._v("#")]),e._v(" Major Plugins")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"/plugins/sensors/IrTrans"}},[e._v("IrTrans (optional)")])])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/386.44a755cb.js b/assets/js/386.c481ebf1.js similarity index 98% rename from assets/js/386.44a755cb.js rename to assets/js/386.c481ebf1.js index c8034c4c98..9fabbab1f0 100644 --- a/assets/js/386.44a755cb.js +++ b/assets/js/386.c481ebf1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[386],{1280:function(t,s,o){"use strict";o.r(s);var e=o(2),a=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"discover-solutions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#discover-solutions"}},[t._v("#")]),t._v(" Discover Solutions")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),s("p",[t._v("Here you can find a selection of solutions that can be used directly or as a starting point for a customization. Please read the "),s("RouterLink",{attrs:{to:"/get-started/"}},[t._v("Get Started")]),t._v(" section first, to know more about AsTeRICS and solutions.")],1)]),t._v(" "),s("p",[t._v("The solutions are categorized by "),s("strong",[t._v("use case")]),t._v(" and can be directly started from this page. Some solutions depend on certain "),s("strong",[t._v("input devices")]),t._v(" or other hardware and software. Just click onto the "),s("strong",[t._v("Read More")]),t._v(" "),s("i",{staticClass:"fab fa-readme"}),t._v(" button to get a detailed step by step instruction of how to install and use it.")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Start")]),t._v(" "),s("ol",[s("li",[t._v("Start the "),s("strong",[t._v("ARE")]),t._v(" program on your computer")]),t._v(" "),s("li",[t._v("Click onto "),s("strong",[t._v("Start")]),t._v(" "),s("i",{staticClass:"fas fa-play"})])])]),t._v(" "),s("p",[t._v("If you want to customize a solution, click onto the "),s("strong",[t._v("App")]),t._v(" "),s("i",{staticClass:"fas fa-rocket"}),t._v(" button or go to "),s("RouterLink",{attrs:{to:"/customize/"}},[s("strong",[t._v("Customize")])]),t._v(" to learn how to do that. The runtime environment can be configured with the "),s("strong",[t._v("Settings")]),t._v(" "),s("i",{staticClass:"fas fa-cog"}),t._v(" button. To open and edit a AsTeRICS model or grid, click onto the "),s("strong",[t._v("Model")]),t._v(" "),s("i",{staticClass:"fas fa-draw-polygon"}),t._v(" or "),s("strong",[t._v("Edit")]),t._v(" "),s("i",{staticClass:"fas fa-pencil-alt"}),t._v(" button.")],1),t._v(" "),s("Solution",{attrs:{title:"Camera Mouse",category:"Computer Control",os:"Windows,Linux,macOS",badges:"Webcam",media:"/assets/img/face-shutterstock_717365779.jpg",model:"https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/models/XFaceTrackerMouse(WLM).acs",webapp:"https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/",docs:"/solutions/Camera-Mouse.html"}},[t._v("Mouse control according to your head movements with configurable settings.")]),t._v(" "),s("Solution",{attrs:{title:"Eye Tracking Mouse",category:"Computer Control",os:"Windows",badges:"Eye-Tracker",media:"/assets/img/eye-tracking-shutterstock_195898592.jpg",model:"https://www.asterics.eu/webapps/asterics-camerainput-eyecontrol/models/EyeControlledMouse(W).acs",webapp:"https://www.asterics.eu/webapps/asterics-camerainput-eyecontrol/",docs:"/solutions/Eye-Tracking-Mouse.html"}},[t._v("Mouse control by eye tracking with configurable settings.")]),t._v(" "),s("Solution",{attrs:{title:"Switch-controlled Mouse",category:"Computer Control",os:"Windows,Linux,macOS",badges:"Switch",media:"/assets/img/fabi-switches.jpg",model:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_2keys_wraparound.acs",docs:"/solutions/Switch-Mouse.html"}},[t._v("Provides mouse control using AT switches.")]),t._v(" "),s("Solution",{attrs:{title:"Basic AAC Grid",category:"AAC",os:"Windows,Linux,macOS,Android,iOS",media:"/assets/img/AsTeRICS-Ergo_Grid_en-1-768x592.jpg",grid:"grid-data-1539356163042-54",docs:"/solutions/AAC-Basic.html"}},[t._v("Basic communication and simple on-screen keyboard with speech synthesis.")]),t._v(" "),s("Solution",{attrs:{title:"Sounds by Head Movement",category:"Occupational Therapy",os:"Windows,Linux,macOS",badges:"Webcam",media:"/assets/img/sound-shutterstock_761313844.jpg",model:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/HeadSound.acs",docs:"/solutions/Head-Sound.html"}},[t._v("Creates sounds according to head movement.")])],1)}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[386],{1279:function(t,s,o){"use strict";o.r(s);var e=o(2),a=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"discover-solutions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#discover-solutions"}},[t._v("#")]),t._v(" Discover Solutions")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),s("p",[t._v("Here you can find a selection of solutions that can be used directly or as a starting point for a customization. Please read the "),s("RouterLink",{attrs:{to:"/get-started/"}},[t._v("Get Started")]),t._v(" section first, to know more about AsTeRICS and solutions.")],1)]),t._v(" "),s("p",[t._v("The solutions are categorized by "),s("strong",[t._v("use case")]),t._v(" and can be directly started from this page. Some solutions depend on certain "),s("strong",[t._v("input devices")]),t._v(" or other hardware and software. Just click onto the "),s("strong",[t._v("Read More")]),t._v(" "),s("i",{staticClass:"fab fa-readme"}),t._v(" button to get a detailed step by step instruction of how to install and use it.")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Start")]),t._v(" "),s("ol",[s("li",[t._v("Start the "),s("strong",[t._v("ARE")]),t._v(" program on your computer")]),t._v(" "),s("li",[t._v("Click onto "),s("strong",[t._v("Start")]),t._v(" "),s("i",{staticClass:"fas fa-play"})])])]),t._v(" "),s("p",[t._v("If you want to customize a solution, click onto the "),s("strong",[t._v("App")]),t._v(" "),s("i",{staticClass:"fas fa-rocket"}),t._v(" button or go to "),s("RouterLink",{attrs:{to:"/customize/"}},[s("strong",[t._v("Customize")])]),t._v(" to learn how to do that. The runtime environment can be configured with the "),s("strong",[t._v("Settings")]),t._v(" "),s("i",{staticClass:"fas fa-cog"}),t._v(" button. To open and edit a AsTeRICS model or grid, click onto the "),s("strong",[t._v("Model")]),t._v(" "),s("i",{staticClass:"fas fa-draw-polygon"}),t._v(" or "),s("strong",[t._v("Edit")]),t._v(" "),s("i",{staticClass:"fas fa-pencil-alt"}),t._v(" button.")],1),t._v(" "),s("Solution",{attrs:{title:"Camera Mouse",category:"Computer Control",os:"Windows,Linux,macOS",badges:"Webcam",media:"/assets/img/face-shutterstock_717365779.jpg",model:"https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/models/XFaceTrackerMouse(WLM).acs",webapp:"https://www.asterics.eu/webapps/asterics-camerainput-cameramouse/",docs:"/solutions/Camera-Mouse.html"}},[t._v("Mouse control according to your head movements with configurable settings.")]),t._v(" "),s("Solution",{attrs:{title:"Eye Tracking Mouse",category:"Computer Control",os:"Windows",badges:"Eye-Tracker",media:"/assets/img/eye-tracking-shutterstock_195898592.jpg",model:"https://www.asterics.eu/webapps/asterics-camerainput-eyecontrol/models/EyeControlledMouse(W).acs",webapp:"https://www.asterics.eu/webapps/asterics-camerainput-eyecontrol/",docs:"/solutions/Eye-Tracking-Mouse.html"}},[t._v("Mouse control by eye tracking with configurable settings.")]),t._v(" "),s("Solution",{attrs:{title:"Switch-controlled Mouse",category:"Computer Control",os:"Windows,Linux,macOS",badges:"Switch",media:"/assets/img/fabi-switches.jpg",model:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/useCaseDemos/mouseControl/crosshairCursorControl_2keys_wraparound.acs",docs:"/solutions/Switch-Mouse.html"}},[t._v("Provides mouse control using AT switches.")]),t._v(" "),s("Solution",{attrs:{title:"Basic AAC Grid",category:"AAC",os:"Windows,Linux,macOS,Android,iOS",media:"/assets/img/AsTeRICS-Ergo_Grid_en-1-768x592.jpg",grid:"grid-data-1539356163042-54",docs:"/solutions/AAC-Basic.html"}},[t._v("Basic communication and simple on-screen keyboard with speech synthesis.")]),t._v(" "),s("Solution",{attrs:{title:"Sounds by Head Movement",category:"Occupational Therapy",os:"Windows,Linux,macOS",badges:"Webcam",media:"/assets/img/sound-shutterstock_761313844.jpg",model:"https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/HeadSound.acs",docs:"/solutions/Head-Sound.html"}},[t._v("Creates sounds according to head movement.")])],1)}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/387.8d4b30fe.js b/assets/js/387.5540fe39.js similarity index 91% rename from assets/js/387.8d4b30fe.js rename to assets/js/387.5540fe39.js index 13a26ab070..86d0bcb9a6 100644 --- a/assets/js/387.8d4b30fe.js +++ b/assets/js/387.5540fe39.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[387],{1281:function(t,e,s){"use strict";s.r(e);var n=s(2),r=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"create-new-at-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-new-at-solution"}},[this._v("#")]),this._v(" Create new AT solution")]),this._v(" "),t("p",[this._v("Create new AT solution project in WebIDE instance?\n"),t("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[this._v("AT solution template"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[387],{1282:function(t,e,s){"use strict";s.r(e);var n=s(2),r=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"create-new-at-solution"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-new-at-solution"}},[this._v("#")]),this._v(" Create new AT solution")]),this._v(" "),t("p",[this._v("Create new AT solution project in WebIDE instance?\n"),t("a",{attrs:{href:"https://github.com/asterics/asterics-solution-template",target:"_blank",rel:"noopener noreferrer"}},[this._v("AT solution template"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/39.aba3c772.js b/assets/js/39.87fc4957.js similarity index 98% rename from assets/js/39.aba3c772.js rename to assets/js/39.87fc4957.js index 3938dde3e3..bcfc6aea24 100644 --- a/assets/js/39.aba3c772.js +++ b/assets/js/39.87fc4957.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{1074:function(A,o,e){"use strict";e.r(o);var i=e(2),t=Object(i.a)({},(function(){var A=this,o=A._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[o("h1",{attrs:{id:"crosshaircursorcontrol"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#crosshaircursorcontrol"}},[A._v("#")]),A._v(" CrosshairCursorControl")]),A._v(" "),o("p",[A._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),A._v(" "),o("p",[A._v("The CrosshairCursorControl component allows mouse cursor positioning by software emulation with a limited number of input control channels. A crosshair indicator is displayed on the screen next to the mouse cursor. This crosshair can be moved horizontally and vertically using the x and y input ports. Alternatively movement can be started or stopped by events.")]),A._v(" "),o("p",[A._v("Using other components, a stepswise control of x and y movement can be achieved, allowing full control of the cursor position. After a certain time of inactivity (no values received at the input ports), a click event can be created for generating different mouse clicks e.g. via a mouse element. Additionally, a number of tooltip icons can be displayed, sequentially. The currently displayed icon can be selected via an adjustable time of inactivity. The name of the selected icon is then sent to the tooltip output port.")]),A._v(" "),o("p",[o("img",{attrs:{src:e(618),alt:"Screenshot: CrosshairCursorControl plugin",title:"Screenshot: CrosshairCursorControl plugin"}})]),A._v(" "),o("p",[o("img",{attrs:{src:e(619),alt:"Screenshot: CrosshairCursorControl arrow indicator",title:"Screenshot: CrosshairCursorControl arrow indicator"}})]),A._v(" "),o("p",[o("img",{attrs:{src:e(314),alt:"Screenshot: CrosshairCursorControl tooltip for doubleclick",title:"Screenshot: CrosshairCursorControl tooltip for doubleclick"}})]),A._v(" "),o("p",[o("strong",[A._v("Please Note:")]),o("br"),A._v("\nThe mouse emulation on "),o("strong",[A._v("Windows 7/10")]),A._v(" does not always work as expected due to User Account Control (UAC) settings. Especially when you want to use the Windows 7 On-Screen-Keyboard dragging the keyboard does not work. To troubleshoot "),o("a",{attrs:{href:"http://windows.microsoft.com/en-au/windows/turn-user-account-control-on-off#1TC=windows-7",target:"_blank",rel:"noopener noreferrer"}},[A._v("turn off the User Account Control (UAC)"),o("OutboundLink")],1),A._v(" - change the level to “Never notify”")]),A._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[A._v("#")]),A._v(" Input Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("x [double]:")]),A._v(" The mouse cursor movement in x direction. Indicated via x-Axis crosshair.")]),A._v(" "),o("li",[o("strong",[A._v("y [double]:")]),A._v(" The mouse cursor movement in y direction. Indicated via y-Axis crosshair.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationH [integer]:")]),A._v(" The acceleration for movement in horizontal orientation. See property "),o("em",[A._v("accelerationH")]),A._v(" for details.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationV [integer]:")]),A._v(" The acceleration for movement in vertical orientation. See property "),o("em",[A._v("accelerationV")]),A._v(" for details.")])]),A._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[A._v("#")]),A._v(" Output Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("outX [double]:")]),A._v(" the current absolute value of the X-Axis of the crosshair. Can be used to control the mouse cursor via the mouse plugin.")]),A._v(" "),o("li",[o("strong",[A._v("outY [double]:")]),A._v(" the current absolute value of the Y-Axis of the crosshair. Can be used to control the mouse cursor via the mouse plugin.")])]),A._v(" "),o("h2",{attrs:{id:"event-listener-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[A._v("#")]),A._v(" Event Listener Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("enablePlugin:")]),A._v(" Enables all functionality of this plugin.")]),A._v(" "),o("li",[o("strong",[A._v("disablePlugin:")]),A._v(" Disables all functionality of this plugin. Exceptions: the actions for the events ‘toggleAxisHighlight’ and ‘moveToLastStable’ are always executed, also if the plugin is disabled.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveLeft:")]),A._v(" starts automatic movement to the left.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveRight:")]),A._v(" starts automatic movement to the right.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveUp:")]),A._v(" starts automatic movement up.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveDown:")]),A._v(" starts automatic movement down.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveLeft:")]),A._v(" stops automatic movement to the left.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveRight:")]),A._v(" stops automatic movement to the right.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveUp:")]),A._v(" stops automatic movement to the up.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveDown:")]),A._v(" stops automatic movement to the down.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveAll:")]),A._v(" stops all automatic movement.")]),A._v(" "),o("li",[o("strong",[A._v("moveToLastStable:")]),A._v(" moves the cursor to last stable position (where no movement was made). Can be used in combination with ‘activateTooltips’, if activation is done by same means of movement in order to correct unintended movement.")]),A._v(" "),o("li",[o("strong",[A._v("highlightXAxis:")]),A._v(" highlights the X-axis by coloring it red.")]),A._v(" "),o("li",[o("strong",[A._v("highlightYAxis:")]),A._v(" highlights the Y-axis by coloring it red.")]),A._v(" "),o("li",[o("strong",[A._v("toggleAxisHighlight:")]),A._v(" toggles the current coloring of X- and Y-axis.")]),A._v(" "),o("li",[o("strong",[A._v("click:")]),A._v(" manually triggers the clickEvent and highlights the X/Y-axis if highlightClick is enabled.")])]),A._v(" "),o("h2",{attrs:{id:"event-trigger-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[A._v("#")]),A._v(" Event Trigger Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("clickEvent:")]),A._v(" This event is fired after an adjustable time of inactivity (property clickEventTime).")])]),A._v(" "),o("h2",{attrs:{id:"properties"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("enabled [boolean]:")]),A._v(" If false (default is true), all functionality of this plugin is disabled. Exceptions: the actions for the events ‘toggleAxisHighlight’ and ‘moveToLastStable’ are always executed, also if the plugin is disabled.")]),A._v(" "),o("li",[o("strong",[A._v("absoluteValues [boolean]:")]),A._v(" If this property value is set to false (default), incoming values at the x and y input ports are interpreted as relative movement information (changes of the position). If the property value is set to true, the input values are interpreted as absolute positions.")]),A._v(" "),o("li",[o("strong",[A._v("autoColorAxis [boolean]:")]),A._v(" If true (default), the axis are automatically highlighted (red colored) according to current movement. For horizontal movement the Y-axis is highlighted, for vertical movement the X-axis is highlighted.")]),A._v(" "),o("li",[o("strong",[A._v("highlightClick [boolean]:")]),A._v(" If true (default), a click event is visualized by a short green flash of the X- and Y-axis.")]),A._v(" "),o("li",[o("strong",[A._v("wrapAround [boolean]:")]),A._v(" If true (default is false), a movement exceeding the border of the screen results in continued movement on the opposite side of the screen.")]),A._v(" "),o("li",[o("strong",[A._v("taskbarOffset [boolean]:")]),A._v(" if true (default), the size of the crosshairs (x/y) is calculated from screen size minus any taskbar sizes. Use it e.g. on ubuntu to fix too long crosshairs.")]),A._v(" "),o("li",[o("strong",[A._v("clickEventTime [integer]:")]),A._v(" The time of inactivity (in milliseconds) after which the clickEvent will be created or the currently displayed tooltip is selected (use zero to deactivate the clickEvent).")]),A._v(" "),o("li",[o("strong",[A._v("lineWidth [integer]:")]),A._v(" The width of the crosshair lines, use zero to deactivate the crosshair.")]),A._v(" "),o("li",[o("strong",[A._v("baseVelocity [integer]:")]),A._v(" The starting velocity of automatic movement (triggered by events) in px per second. The baseVelocity is at the same time the minimum velocity that can be reached, if the acceleration values are negative.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationH [integer]:")]),A._v(" The acceleration of horizontal movement in px/second per second, positive or negative. This property applies to automatic movement as well as relative movement triggered by input in the x/y input ports. Use zero to deactivate movement acceleration.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationV [integer]:")]),A._v(" The acceleration of vertical movement in px/second per second, positive or negative. This property applies to automatic movement as well as relative movement triggered by input in the x/y input ports. Use zero to deactivate movement acceleration.")]),A._v(" "),o("li",[o("strong",[A._v("maxVelocity [integer]:")]),A._v(" The maximum movement velocity in px per second. This property applies to automatic movement as well as relative movement triggered by input in the x/y input ports.")])])])}),[],!1,null,null,null);o.default=t.exports},314:function(A,o){A.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAFpAXoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD4zooor9EP5HCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq8l+MXiqfTLCDTLLd9t1M7Pl+8EzjA92Jx+dZU5qFBSfY78XhZ4nMpUKe7YeKvjFb6Ze/YtMgbU73O35MlA3oMcsfp+dZy6n4/wBTIdLWC1RhkArGuPwYlvzrpvAXgG28FaaoCrJeuv76bHJPoPRa36+Fx3FlXnaw607n9V8LfR9wKwsaubyfO1flVtPVtNX9Fp3Z5V4n8Q+NfCVolxe3cSRSP5a7Y4m5wT/d9jXuA/YT/aKbTYrqHStNu0lQSKEvrMMQRkdSK8p/aB/5FS0/6+x/6A9fsf4T/wCRV0z/AK9Iv/QBXr5XmFfEYdVaj112PzjjvhHLMnzeeAwkLwSi/eSb1SfRI/Jjx98NPjF8CLH7b4w8EXsemjJkuYlWWOID+9JCzon/AALFReEPHNj40tC9q5EiD95C/Dp/iPcV+vUsS3ETI6q6ONrKwyGHoRX51f8ABS79jO0+Ad9a/E3wLaJp2lSXCwatYQjbDbSOcLIi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"},618:function(A,o,e){A.exports=e.p+"assets/img/crosshaircursorcontrol.070c5965.jpg"},619:function(A,o){A.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{1073:function(A,o,e){"use strict";e.r(o);var i=e(2),t=Object(i.a)({},(function(){var A=this,o=A._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[o("h1",{attrs:{id:"crosshaircursorcontrol"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#crosshaircursorcontrol"}},[A._v("#")]),A._v(" CrosshairCursorControl")]),A._v(" "),o("p",[A._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),A._v(" "),o("p",[A._v("The CrosshairCursorControl component allows mouse cursor positioning by software emulation with a limited number of input control channels. A crosshair indicator is displayed on the screen next to the mouse cursor. This crosshair can be moved horizontally and vertically using the x and y input ports. Alternatively movement can be started or stopped by events.")]),A._v(" "),o("p",[A._v("Using other components, a stepswise control of x and y movement can be achieved, allowing full control of the cursor position. After a certain time of inactivity (no values received at the input ports), a click event can be created for generating different mouse clicks e.g. via a mouse element. Additionally, a number of tooltip icons can be displayed, sequentially. The currently displayed icon can be selected via an adjustable time of inactivity. The name of the selected icon is then sent to the tooltip output port.")]),A._v(" "),o("p",[o("img",{attrs:{src:e(619),alt:"Screenshot: CrosshairCursorControl plugin",title:"Screenshot: CrosshairCursorControl plugin"}})]),A._v(" "),o("p",[o("img",{attrs:{src:e(620),alt:"Screenshot: CrosshairCursorControl arrow indicator",title:"Screenshot: CrosshairCursorControl arrow indicator"}})]),A._v(" "),o("p",[o("img",{attrs:{src:e(314),alt:"Screenshot: CrosshairCursorControl tooltip for doubleclick",title:"Screenshot: CrosshairCursorControl tooltip for doubleclick"}})]),A._v(" "),o("p",[o("strong",[A._v("Please Note:")]),o("br"),A._v("\nThe mouse emulation on "),o("strong",[A._v("Windows 7/10")]),A._v(" does not always work as expected due to User Account Control (UAC) settings. Especially when you want to use the Windows 7 On-Screen-Keyboard dragging the keyboard does not work. To troubleshoot "),o("a",{attrs:{href:"http://windows.microsoft.com/en-au/windows/turn-user-account-control-on-off#1TC=windows-7",target:"_blank",rel:"noopener noreferrer"}},[A._v("turn off the User Account Control (UAC)"),o("OutboundLink")],1),A._v(" - change the level to “Never notify”")]),A._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[A._v("#")]),A._v(" Input Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("x [double]:")]),A._v(" The mouse cursor movement in x direction. Indicated via x-Axis crosshair.")]),A._v(" "),o("li",[o("strong",[A._v("y [double]:")]),A._v(" The mouse cursor movement in y direction. Indicated via y-Axis crosshair.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationH [integer]:")]),A._v(" The acceleration for movement in horizontal orientation. See property "),o("em",[A._v("accelerationH")]),A._v(" for details.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationV [integer]:")]),A._v(" The acceleration for movement in vertical orientation. See property "),o("em",[A._v("accelerationV")]),A._v(" for details.")])]),A._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[A._v("#")]),A._v(" Output Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("outX [double]:")]),A._v(" the current absolute value of the X-Axis of the crosshair. Can be used to control the mouse cursor via the mouse plugin.")]),A._v(" "),o("li",[o("strong",[A._v("outY [double]:")]),A._v(" the current absolute value of the Y-Axis of the crosshair. Can be used to control the mouse cursor via the mouse plugin.")])]),A._v(" "),o("h2",{attrs:{id:"event-listener-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[A._v("#")]),A._v(" Event Listener Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("enablePlugin:")]),A._v(" Enables all functionality of this plugin.")]),A._v(" "),o("li",[o("strong",[A._v("disablePlugin:")]),A._v(" Disables all functionality of this plugin. Exceptions: the actions for the events ‘toggleAxisHighlight’ and ‘moveToLastStable’ are always executed, also if the plugin is disabled.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveLeft:")]),A._v(" starts automatic movement to the left.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveRight:")]),A._v(" starts automatic movement to the right.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveUp:")]),A._v(" starts automatic movement up.")]),A._v(" "),o("li",[o("strong",[A._v("startMoveDown:")]),A._v(" starts automatic movement down.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveLeft:")]),A._v(" stops automatic movement to the left.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveRight:")]),A._v(" stops automatic movement to the right.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveUp:")]),A._v(" stops automatic movement to the up.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveDown:")]),A._v(" stops automatic movement to the down.")]),A._v(" "),o("li",[o("strong",[A._v("stopMoveAll:")]),A._v(" stops all automatic movement.")]),A._v(" "),o("li",[o("strong",[A._v("moveToLastStable:")]),A._v(" moves the cursor to last stable position (where no movement was made). Can be used in combination with ‘activateTooltips’, if activation is done by same means of movement in order to correct unintended movement.")]),A._v(" "),o("li",[o("strong",[A._v("highlightXAxis:")]),A._v(" highlights the X-axis by coloring it red.")]),A._v(" "),o("li",[o("strong",[A._v("highlightYAxis:")]),A._v(" highlights the Y-axis by coloring it red.")]),A._v(" "),o("li",[o("strong",[A._v("toggleAxisHighlight:")]),A._v(" toggles the current coloring of X- and Y-axis.")]),A._v(" "),o("li",[o("strong",[A._v("click:")]),A._v(" manually triggers the clickEvent and highlights the X/Y-axis if highlightClick is enabled.")])]),A._v(" "),o("h2",{attrs:{id:"event-trigger-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[A._v("#")]),A._v(" Event Trigger Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("clickEvent:")]),A._v(" This event is fired after an adjustable time of inactivity (property clickEventTime).")])]),A._v(" "),o("h2",{attrs:{id:"properties"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("enabled [boolean]:")]),A._v(" If false (default is true), all functionality of this plugin is disabled. Exceptions: the actions for the events ‘toggleAxisHighlight’ and ‘moveToLastStable’ are always executed, also if the plugin is disabled.")]),A._v(" "),o("li",[o("strong",[A._v("absoluteValues [boolean]:")]),A._v(" If this property value is set to false (default), incoming values at the x and y input ports are interpreted as relative movement information (changes of the position). If the property value is set to true, the input values are interpreted as absolute positions.")]),A._v(" "),o("li",[o("strong",[A._v("autoColorAxis [boolean]:")]),A._v(" If true (default), the axis are automatically highlighted (red colored) according to current movement. For horizontal movement the Y-axis is highlighted, for vertical movement the X-axis is highlighted.")]),A._v(" "),o("li",[o("strong",[A._v("highlightClick [boolean]:")]),A._v(" If true (default), a click event is visualized by a short green flash of the X- and Y-axis.")]),A._v(" "),o("li",[o("strong",[A._v("wrapAround [boolean]:")]),A._v(" If true (default is false), a movement exceeding the border of the screen results in continued movement on the opposite side of the screen.")]),A._v(" "),o("li",[o("strong",[A._v("taskbarOffset [boolean]:")]),A._v(" if true (default), the size of the crosshairs (x/y) is calculated from screen size minus any taskbar sizes. Use it e.g. on ubuntu to fix too long crosshairs.")]),A._v(" "),o("li",[o("strong",[A._v("clickEventTime [integer]:")]),A._v(" The time of inactivity (in milliseconds) after which the clickEvent will be created or the currently displayed tooltip is selected (use zero to deactivate the clickEvent).")]),A._v(" "),o("li",[o("strong",[A._v("lineWidth [integer]:")]),A._v(" The width of the crosshair lines, use zero to deactivate the crosshair.")]),A._v(" "),o("li",[o("strong",[A._v("baseVelocity [integer]:")]),A._v(" The starting velocity of automatic movement (triggered by events) in px per second. The baseVelocity is at the same time the minimum velocity that can be reached, if the acceleration values are negative.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationH [integer]:")]),A._v(" The acceleration of horizontal movement in px/second per second, positive or negative. This property applies to automatic movement as well as relative movement triggered by input in the x/y input ports. Use zero to deactivate movement acceleration.")]),A._v(" "),o("li",[o("strong",[A._v("accelerationV [integer]:")]),A._v(" The acceleration of vertical movement in px/second per second, positive or negative. This property applies to automatic movement as well as relative movement triggered by input in the x/y input ports. Use zero to deactivate movement acceleration.")]),A._v(" "),o("li",[o("strong",[A._v("maxVelocity [integer]:")]),A._v(" The maximum movement velocity in px per second. This property applies to automatic movement as well as relative movement triggered by input in the x/y input ports.")])])])}),[],!1,null,null,null);o.default=t.exports},314:function(A,o){A.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAFpAXoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD4zooor9EP5HCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq8l+MXiqfTLCDTLLd9t1M7Pl+8EzjA92Jx+dZU5qFBSfY78XhZ4nMpUKe7YeKvjFb6Ze/YtMgbU73O35MlA3oMcsfp+dZy6n4/wBTIdLWC1RhkArGuPwYlvzrpvAXgG28FaaoCrJeuv76bHJPoPRa36+Fx3FlXnaw607n9V8LfR9wKwsaubyfO1flVtPVtNX9Fp3Z5V4n8Q+NfCVolxe3cSRSP5a7Y4m5wT/d9jXuA/YT/aKbTYrqHStNu0lQSKEvrMMQRkdSK8p/aB/5FS0/6+x/6A9fsf4T/wCRV0z/AK9Iv/QBXr5XmFfEYdVaj112PzjjvhHLMnzeeAwkLwSi/eSb1SfRI/Jjx98NPjF8CLH7b4w8EXsemjJkuYlWWOID+9JCzon/AALFReEPHNj40tC9q5EiD95C/Dp/iPcV+vUsS3ETI6q6ONrKwyGHoRX51f8ABS79jO0+Ad9a/E3wLaJp2lSXCwatYQjbDbSOcLIi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"},619:function(A,o,e){A.exports=e.p+"assets/img/crosshaircursorcontrol.070c5965.jpg"},620:function(A,o){A.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/4.c825b3de.js b/assets/js/4.a5e9913a.js similarity index 94% rename from assets/js/4.c825b3de.js rename to assets/js/4.a5e9913a.js index f303d6caad..85a5d6255c 100644 --- a/assets/js/4.c825b3de.js +++ b/assets/js/4.a5e9913a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{1065:function(e,t,o){"use strict";o.r(t);var s=o(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"flipmouse-finger-lip-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#flipmouse-finger-lip-mouse"}},[e._v("#")]),e._v(" FLipMouse - Finger & Lip Mouse")]),e._v(" "),t("p",[t("strong",[e._v("User Manual v3.1")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(576),alt:"FLipMouseLogo"}})]),e._v(" "),t("p",[t("strong",[e._v("Table of Contents")])]),e._v(" "),t("p",[e._v("[TOC]")]),e._v(" "),t("hr"),e._v(" "),t("h1",{attrs:{id:"preface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preface"}},[e._v("#")]),e._v(" Preface")]),e._v(" "),t("p",[e._v("The FLipMouse is an open source Assistive Technology module which is developed at the "),t("a",{attrs:{href:"https://www.technikum-wien.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of Applied Sciences Technikum Wien"),t("OutboundLink")],1),e._v(" and delivered as a DIY-construction kit by the "),t("a",{attrs:{href:"https://asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Foundation"),t("OutboundLink")],1),e._v(". The FLipMouse allows control of a standard computer mouse, a joystick or keyboard keys via minimal finger- or lip-movements. Furthermore, other devices can be controlled via Bluetooth or infrared.")]),e._v(" "),t("p",[e._v("The FLipMouse can be configured via a web-based "),t("em",[e._v("configuration manager")]),e._v(" which can be found at the website "),t("a",{attrs:{href:"https://flipmouse.asterics.eu/index_fm.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("flipmouse.asterics.eu"),t("OutboundLink")],1),e._v(". This user manual includes a description of the configuration manager and explains how to use the different functions and features of the FLipMouse. The FLipMouse can be used on Windows-, Mac- or Linux computers without installation of special software, because it behaves like a standard mouse / joystick / keyboard device. By using the Bluetooth function, smart phones or tablet computers can be controlled - which will also be explained in this manual.")]),e._v(" "),t("p",[e._v("Furthermore, this manual covers important guidelines for using the FLipMouse, in particular cleaning procedures and hygienic precautions.")]),e._v(" "),t("p",[e._v("All design files for the electronics and the 3d-printed enclosure - as well as the software source code - are available as open source and are distributed via the AsTeRICS Foundation website and via GitHub. Detailed instructions are provided in the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/ConstructionKit/ConstructionManual.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("FlipMouse construction manual"),t("OutboundLink")],1),e._v(". Have fun building and using your FLipMouse!")]),e._v(" "),t("p",[e._v("The AsTeRICS Foundation")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://asterics-foundation.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.asterics-foundation.org"),t("OutboundLink")],1)]),e._v(" "),t("p",{attrs:{align:"center",width:"100%"}},[t("img",{attrs:{width:"33%",src:o(577),alt:"Flip, the vagabound grasshopper cartoon character"}})]),e._v(" "),t("h1",{attrs:{id:"hardware-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hardware-overview"}},[e._v("#")]),e._v(" Hardware overview")]),e._v(" "),t("p",[e._v("The FLipMouse is available with a 3d-printed enclosure. Design files for the 3d-printed case are provided in the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/tree/master/Hardware/case-design/3D_printer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github repository"),t("OutboundLink")],1),e._v(". The primary method for interacting with the FLipMouse is the transparent stick (“mouthpiece” or “finger-joystick”) which is attached to the front of the FLipMouse. Replacement sticks can be ordered via the "),t("a",{attrs:{href:"https://www.asterics-foundation.org/webshop",target:"_blank",rel:"noopener noreferrer"}},[e._v("Webshop"),t("OutboundLink")],1),e._v(". (Please note the cleaning instructions in the dedicated section of this manual.)")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"60%",src:o(578)}})]),e._v("\n*Figure 1*: Using the FLipMouse (here: version 2) as mouth-joystick for computers\n"),t("p",[e._v("Additionally, two external momentary switches can be attached to the jack plug connectors on the sides of the FlipMouse enclosure and one button is already integrated on the device.")]),e._v(" "),t("p",[t("strong",[e._v("Users can interact with the FLipMouse in several ways:")])]),e._v(" "),t("ol",[t("li",[e._v("by touching the mouthpiece with the lips or fingers and applying small forces in vertical or horizontal direction")]),e._v(" "),t("li",[e._v("by increasing or reducing pressure in the mouthpiece (puffing or sipping)")]),e._v(" "),t("li",[e._v("by actuating (up to) 3 momentary switches / pushbuttons")]),e._v(" "),t("li",[e._v("if desired, a longer plastic tube can be attached to the pressure sensor so that the joystick can be used with a finger and a separate mouthpiece allows sip/puff control. Alternatively, pressure can be influenced by attaching a rubber ball to the plastic tube (pillow switch / soft switch).")])]),e._v(" "),t("p",[t("strong",[e._v("The hardware features of the FLipMouse:")])]),e._v(" "),t("p",[e._v("(a)    “Zero-way” finger joystick / mouthpiece: very low forces are sufficient to create up/down/left/right movement")]),e._v(" "),t("p",[e._v("o  The zero-way joystick can be used with e.g. fingers or toes")]),e._v(" "),t("p",[e._v("o It can also be used as a mouthpiece (actuated by lips / mouth movements)")]),e._v(" "),t("p",[e._v("o If desired, sip / puff activities into the mouthpiece can trigger additional functions - here 2 different levels of sip/puff force can be used.")]),e._v(" "),t("p",[e._v("(b)    One built-in switch ("),t("em",[e._v("Button1")]),e._v(") on the device, e.g. to change the active configuration (functions)")]),e._v(" "),t("p",[e._v("©    Two 3.5 mm jack plug sockets for attaching external switches to trigger additional functions ("),t("em",[e._v("Button2")]),e._v(" and "),t("em",[e._v("Button3")]),e._v(")")]),e._v(" "),t("p",[e._v("(d)    Color Light Indicator on front side for showing the active configuration, calibration procedure etc.")]),e._v(" "),t("p",[e._v("(e)    Universal infrared remote control receiver and transmitter")]),e._v(" "),t("p",[e._v("(f)    Bluetooth-support e.g. to control smartphones or iOS devices")]),e._v(" "),t("p",[e._v("(g)    “Hot Shoe” Adapter for mounting to a Manfrotto Magic Arm or similar mounting system")]),e._v(" "),t("p",[e._v("(h)    Firmware upgrade via FLipMouse web application on "),t("a",{attrs:{href:"flipmouse.asterics.eu"}},[e._v("flipmouse.asterics.eu")])]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"60%",src:o(579)}})]),e._v("\n*Figure 2*: FLipMouse in 3D-printed enclosure \n"),t("p",[e._v("On the left side of the FLipMouse is a button (B1) that provides a configurable function (e.g. changing the operating mode). A 3.5 mm jack socket allows the connection of an external button.")]),e._v(" "),t("p",[e._v("On the right side of the FLipMouse housing, the infrared (IR) receiver module is accessible. This module can be used to record any infrared remote control commands (e.g. to change the volume or channel settings of a TV set). The IR signals can then be played back via the IR transmitter diode on the back of the FLipMouse. Furthermore, a second external button (B3) can be connected.")]),e._v(" "),t("p",[e._v("The front of the housing offers a connection possibility for the mouthpiece / finger joystick. The current operating mode is also indicated here by an adjustable light color.")]),e._v(" "),t("h1",{attrs:{id:"mounting-and-usage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mounting-and-usage"}},[e._v("#")]),e._v(" Mounting and usage")]),e._v(" "),t("p",[t("strong",[e._v("1. Attach the mouthpiece / joystick")])]),e._v(" "),t("p",[e._v("Put the transparent acrylic tube which is provided with the FLipMouse on the front connector (Luer Lock adapter) and turn it clockwise until it is well seated (please do not turn too hard, because this could damage the Luer Lock adapter or the attachment!)")]),e._v(" "),t("p",[t("strong",[e._v("2. Mount the FLipMouse device appropriately for the user")])]),e._v(" "),t("p",[e._v("The picture shows a “"),t("a",{attrs:{href:"https://www.manfrotto.com/global/single-arm-2-section-196ab-2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manfrotto Gelenkarm"),t("OutboundLink")],1),e._v("” + ”"),t("a",{attrs:{href:"https://www.manfrotto.com/global/super-photo-clamp-without-stud-aluminium-035/",target:"_blank",rel:"noopener noreferrer"}},[e._v("SuperClamp"),t("OutboundLink")],1),e._v("” mount combination. You could also use the "),t("a",{attrs:{href:"https://www.manfrotto.com/global/magic-photo-arm-smart-centre-lever-and-flexible-extension-143n/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manfrotto Magic Arm"),t("OutboundLink")],1),e._v(" or any other kind of mounting solution which fits to the 3/8”-HotShoe-Adapter of the FLipMouse.")]),e._v(" "),t("p",[t("em",[e._v("Usage as Mouth Joystick")]),e._v(" "),t("img",{attrs:{src:o(580),alt:"Usage as Mouth Controller"}}),e._v(" "),t("em",[e._v("Figure 3")]),e._v(": Using the FLipMouse with Mouth/Lips")]),e._v(" "),t("p",[e._v("Ensure that the head of the user rests comfortably. The mouthpiece should gently touch the lips. It is not useful to insert the mouthpiece into the mouth - this could be uncomfortable and make it harder to control the lateral movement.")]),e._v(" "),t("p",[t("em",[e._v("Usage as Finger Joystick")]),e._v(" "),t("img",{attrs:{src:o(581),alt:"Usage as Finger-Joystick"}}),e._v(" "),t("em",[e._v("Figure 4")]),e._v(": Using the FLipMouse with fingers")]),e._v(" "),t("p",[e._v("If the user desires to actuate the FLipMouse with a finger or the thumb, mount the system appropriately so that the hand is in a resting position and the finger can touch the joystick without stress. Attach one or two additional external switches if desired, and mount the switches at suitable locations (for example at the legs/toes/shoulder etc.).")]),e._v(" "),t("p",[t("em",[e._v("Soft-Switch using a rubber ball")]),e._v("\nA plastic tube can be attached to the front connector of the FLipMouse using a "),t("em",[e._v("Luer Lock")]),e._v(" adapter. This plastic tube can be connected to a soft ball, so that pressing the ball results in usable pressure changes. This solution could be used as a soft head-switch / pillow-switch or shoulder-switch and can be combined with other external switches.")]),e._v(" "),t("p",[t("strong",[e._v("3. Attach the FLipMouse to a Computer, Tablet or Smart Phone")]),e._v(" using a desired interface (USB, Bluetooth or USB-OTG). Please note that the FLipMouse settings can only be changed if the FLipMouse is attached to a PC running via USB.")]),e._v(" "),t("h4",{attrs:{id:"using-the-flipmouse-via-usb"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-flipmouse-via-usb"}},[e._v("#")]),e._v(" Using the FLipMouse via USB")]),e._v(" "),t("p",[e._v("The FLipMouse can be connected via a USB-micro cable to a computer. After attaching the FLipMouse, a zero-calibration is performed which takes about 2 seconds. During that time, the mouthpiece should not be touched.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(582),alt:"USB micro cable connection"}}),e._v(" "),t("em",[e._v("Figure 5")]),e._v(": Connecting the FLipMouse with the computer")]),e._v(" "),t("p",[t("strong",[e._v("Please be careful")]),e._v(" when attaching the USB plug, strong forces might damage the connector!")]),e._v(" "),t("h4",{attrs:{id:"using-the-flipmouse-via-bluetooth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-flipmouse-via-bluetooth"}},[e._v("#")]),e._v(" Using the FLipMouse via Bluetooth")]),e._v(" "),t("p",[e._v("The Bluetooth–feature for the FLipMouse allows wireless mouse/keyboard control of computers, tablets and smart phones. Furthermore, iPhones or iPads can be used via VoiceOver & assistive switch support. In case the FLipMouse should only be used via Bluetooth, the power supply has to be established via a USB micro cable (either from a 5V wall adapter or from a USB power bank).")]),e._v(" "),t("h4",{attrs:{id:"using-the-flipmouse-via-usb-otg"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-flipmouse-via-usb-otg"}},[e._v("#")]),e._v(" Using the FLipMouse via USB-OTG")]),e._v(" "),t("p",[e._v("The FLipMouse should work with any operating system which supports USB HID (Mouse/Keyboard/Joystick) devices, such as Windows, Linux or MacOS. Several Android devices provide an USB port with USB-OTG (“on-the-go”) functionality. If your device supports “OTG”, you can attach the FLipMouse using an USB-OTG-adapter/cable (see picture below). After attaching, you should see a mouse cursor and/or on-screen keyboard. You can test if your Android phone or tablet supports the USB-OTG function with the “OTG checker” app.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(583),alt:"smartphone"}}),e._v(" "),t("em",[e._v("Figure 6")]),e._v(": Using the FLipMouse with a Smartphone or Tablet via USB-OTG")]),e._v(" "),t("h1",{attrs:{id:"the-flipmouse-configuration-manager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-flipmouse-configuration-manager"}},[e._v("#")]),e._v(" The FLipMouse Configuration Manager")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("FLipMouse Configuration Manager")]),e._v(" offers a Graphical User Interface (GUI) for the adaptation of the FLipMouse device to personal preferences and needs. The Configuration Manager is available via the website: "),t("a",{attrs:{href:"https://flipmouse.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://flipmouse.asterics.eu"),t("OutboundLink")],1),e._v(". The FLipMouse Configuration Manager sends and receives information from/to the FLipMouse through a communication port (COM port). "),t("strong",[e._v("Please note that currently supported Webbrowsers are: Chrome, Chromium, Edge and Safari")]),e._v(".")]),e._v(" "),t("p",[e._v("The following figure shows the welcome page of the FLipmouse Configuration Manager:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"70%",src:o(584)}})]),e._v("\n*Figure 7: Welcome page of the FLipMouse Configuration Manager*\n"),t("h2",{attrs:{id:"establishing-connection-with-the-flipmouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#establishing-connection-with-the-flipmouse"}},[e._v("#")]),e._v(" Establishing connection with the FLipMouse")]),e._v(" "),t("ol",[t("li",[e._v("Make sure the FLipMouse is connected to your computer via an USB port and that a supported webbrowser - Chrome, Chromium, Edge or Safari - is used. (The Test Mode allows using the Configuration Manager without a real FlipMouse, which can be useful e.g. to view or change settings from a backup-file.)")]),e._v(" "),t("li",[e._v("Click "),t("em",[e._v("CONNECT TO FLIPMOUSE CONNECTED VIA USB")]),e._v(" and select the appropriate COM port (communication port) in the selection box. If the selection box appears empty, this means that no communication port has been detected. In this case, please reconnect the FLipMouse device and wait for the COM port to be updated. If no COM port can be selected even after repeated attempts, there is probably a problem with the driver. In this case, please create an "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("Issue in the Github Repository"),t("OutboundLink")],1),e._v(" or look for possible solutions there.")]),e._v(" "),t("li",[e._v("Once the COM port is selected, click the “Connect” button at the bottom of the selection box.")]),e._v(" "),t("li",[e._v("After successful connection of the COM port, the main window is opened. The title bar shows the COM port status “connected” in the upper right corner of the window. The selection box "),t("em",[e._v("Select slot")]),e._v(" shows the active configuration settings (slot). Below this, the tabs with the main functions can be selected:")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(585),alt:"ConfigManager Title bar"}}),e._v(" "),t("em",[e._v("Figure 8: Title bar of the FLipMouse Configuration Manager")])]),e._v(" "),t("h2",{attrs:{id:"changing-settings-and-features"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changing-settings-and-features"}},[e._v("#")]),e._v(" Changing Settings and Features")]),e._v(" "),t("h3",{attrs:{id:"memory-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#memory-slots"}},[e._v("#")]),e._v(" Memory Slots")]),e._v(" "),t("p",[e._v("The Configuration Manager allows adjustment of all settings an operational modes of the FLipMouse. The settings are stored in individual "),t("strong",[e._v("slots")]),e._v(" - for example one slot for fast mouse operation, one slot for slow mouse operation, one slot for keyboard-keys ASDW etc. All settings are stored in the FLipMouse. The settings can also be saved to (or loaded from) a file on your computer.\nSettings which were stored in the FLipMouse stay valid also after the power supply has been removed. When the FLipMouse is plugged in the next time, the settings will be available – also if you use another computer or operating system!")]),e._v(" "),t("h2",{attrs:{id:"tab-stick-config"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-stick-config"}},[e._v("#")]),e._v(" Tab STICK-CONFIG")]),e._v(" "),t("p",[e._v("In the STICK-CONFIG tab, the "),t("strong",[e._v("operational mode of the mouthpiece/joystick for the active slot is set")]),e._v(". Furthermore, the "),t("em",[e._v("sensitivity")]),e._v(", the "),t("em",[e._v("deadzone")]),e._v(" and other parameters can be changed. The ability to configure multiple slots with different stick settings allows flexible application scenarios for the FLipMouse. The individual slots can be switched by any action of the user (e.g. pressing an external button or puffing strongly into the mouthpiece, see section "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#tab-actions",target:"_blank",rel:"noopener noreferrer"}},[t("em",[e._v("Assigning different actions")]),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[t("img",{attrs:{src:o(586),alt:"ConfigManager"}})]),e._v(" "),t("h3",{attrs:{id:"operational-mode-use-stick-for"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#operational-mode-use-stick-for"}},[e._v("#")]),e._v(" Operational Mode (“Use stick for …”)")]),e._v(" "),t("p",[e._v("This setting determines the effect of touching the stick:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Mouse movement:")]),e._v(" The stick moves the mouse pointer (this is the default mode to control computers or smartphones). If this setting is active, the other parameters (e.g. sensitivity or deadzone) directly affect the speed of the mouse pointer.")]),e._v(" "),t("li",[t("strong",[e._v("Alternative Actions:")]),e._v(" If this mode is selected, the stick can be used for a whole range of different actions (e.g. pressing the ‘A’ key when the stick is pressed upwards, or playing an infrared command when the stick is pressed to the right). These actions can be set in the ACTIONS tab (see section "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#tab-actions",target:"_blank",rel:"noopener noreferrer"}},[t("em",[e._v("Assigning different actions")]),t("OutboundLink")],1),e._v("). If this setting is active, the deadzone parameter is primarily decisive for the actuation strength from which the assigned action is triggered.")]),e._v(" "),t("li",[t("strong",[e._v("Joystick (XY):")]),e._v(" In this mode, the stick mimics the X and Y axis of a joystick/gamepad.")]),e._v(" "),t("li",[t("strong",[e._v("Joystick (ZR):")]),e._v(" In this mode, the stick mimics the Z and R axis of a joystick/gamepad.")]),e._v(" "),t("li",[t("strong",[e._v("Joystick (Slider):")]),e._v(" In this mode, the stick mimics two slider axes of a joystick/gamepad.")])]),e._v(" "),t("p",[e._v("If one of the joystick modes is selected, the FLipMouse behaves like a gamepad with 6 axes ("),t("em",[e._v("X/Y")]),e._v(", "),t("em",[e._v("Z/Rotation")]),e._v(" and "),t("em",[e._v("Slider1/Slider2")]),e._v("). Since the FLipMouse stick can only provide 2 deflections at a time, a selection of joystick axes must be made:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(587)}})]),e._v(" "),t("p",[t("em",[e._v("Figure 9: Set stick configuration for joystick movement")])]),e._v(" "),t("p",[e._v("Please note that the joystick function must be supported by corresponding software applications - e.g. computer games. (Microsoft Windows offers a test software for live display of joystick axis and button activities - this tool can be started by entering “"),t("em",[e._v("joy.cpl")]),e._v("” in the search dialog).")]),e._v(" "),t("h4",{attrs:{id:"calibrate-center-position"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#calibrate-center-position"}},[e._v("#")]),e._v(" Calibrate center position")]),e._v(" "),t("p",[e._v("Pressing this button performs a calibration of the rest position of the stick. This takes about 1 second - then the calibration sequence is completed. During this time the stick should not be touched. (Calibration can also be assigned as an "),t("em",[e._v("Alternate Action")]),e._v(" if required, so that it can be performed while the FLipMouse device is in use.")]),e._v(" "),t("h4",{attrs:{id:"rotate-right-change-stick-orientation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rotate-right-change-stick-orientation"}},[e._v("#")]),e._v(" Rotate Right (Change Stick Orientation)")]),e._v(" "),t("p",[e._v("The FLipMouse is attached with a "),t("em",[e._v('HotShoe 3/8"')]),e._v(" mounting screw, located on the bottom of the FLipMouse housing. The orientation can be changed as needed (for example, if the FLipMouse is mounted sideways, the stick orientation can be changed accordingly so that movements are still interpreted correctly). Clicking on “ROTATE RIGHT” changes the orientation by 90°. Alignment settings for 0 / 90 / 180 and 270 degrees are possible, so that any mounting position is possible.")]),e._v(" "),t("h3",{attrs:{id:"setting-the-motion-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-the-motion-parameters"}},[e._v("#")]),e._v(" Setting the motion parameters")]),e._v(" "),t("p",[e._v("The scroll bars make it possible to change the motion parameters of the stick and the behavior of the mouse pointer according to the user’s wishes. The behavior of the following features can be changed:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(588)}})]),e._v("\n*Figure 10: Tab STICK-CONFIG, Setting the motion parameters*\n"),t("h4",{attrs:{id:"sensitivity"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensitivity"}},[e._v("#")]),e._v(" Sensitivity")]),e._v(" "),t("p",[e._v("When using the stick for cursor movement, the sensitivity of the stick can be adjusted via the "),t("em",[e._v("Sensitivity")]),e._v(" scroll bar. A smaller value results in slower cursor movement. To change the value, click and drag the scroll bar knob or click the bar next to the knob.")]),e._v(" "),t("h4",{attrs:{id:"deadzone"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deadzone"}},[e._v("#")]),e._v(" Deadzone")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("Deadzone")]),e._v(" setting defines a passive zone/range for the stick movements: If the deadzone value is low, even very small stick movements will cause the cursor to move (or perform the assigned alternate action - see chapter "),t("em",[e._v("Assigning alternative actions")]),e._v("). If the deadzone is set too low, the cursor may start moving unintentionally. In this case, increase the value of the deadzone so that the amount of deflection is suitable for a particular user. In the "),t("em",[e._v("Alternative actions")]),e._v(" operating mode, it makes sense to use a larger value for the deadzone so that, for example, the directions can be triggered unambiguously when keyboard actions are used.")]),e._v(" "),t("h4",{attrs:{id:"split-axis-control-for-sensitivity-and-deadzone"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#split-axis-control-for-sensitivity-and-deadzone"}},[e._v("#")]),e._v(" Split axis control for sensitivity and deadzone")]),e._v(" "),t("p",[e._v("If desired, the sensitivity- and deadzone-values for horizontal or vertical movements can be changed individually. In order to do that, select “"),t("em",[e._v("show x/y separately")]),e._v("”, as shown below:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(589)}})]),e._v("\n*Figure 11: Tab STICK-CONFIG, splitting x/y-axis*\n"),t("h4",{attrs:{id:"maximum-speed"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#maximum-speed"}},[e._v("#")]),e._v(" Maximum Speed")]),e._v(" "),t("p",[e._v("Turning the maximum speed setting to a low level is useful if a user desires to limit the cursor speed, keeping high sensitivity / acceleration. (Only relevant in operational mode "),t("em",[e._v("Mouse Movement")]),e._v(").")]),e._v(" "),t("h4",{attrs:{id:"acceleration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acceleration"}},[e._v("#")]),e._v(" Acceleration")]),e._v(" "),t("p",[e._v("The acceleration setting allows influencing the acceleration behavior of the mouse cursor: if acceleration is set to a low level, even a strong deflection of the stick will start a slow (but progressing) cursor movement which makes it easier to reach small targets precisely. (Only relevant in operational mode "),t("em",[e._v("Mouse Movement")]),e._v(").")]),e._v(" "),t("h4",{attrs:{id:"sensitivity-profile"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensitivity-profile"}},[e._v("#")]),e._v(" Sensitivity Profile")]),e._v(" "),t("p",[e._v("(This setting is enabled by clicking "),t("em",[e._v("“Show advanced options”")]),e._v(".)\nDue to mechanical reasons, the force sensors of the FLipMouse show small inaccuracies which can result in mouse cursor drifting. The selection box for different Sensitivity Profiles allows to change overall gain/amplification and drift correction settings. Usually (and unless no other sensor variants are in use) the setting “Medium” should be used.")]),e._v(" "),t("h3",{attrs:{id:"applying-the-settings-to-all-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applying-the-settings-to-all-slots"}},[e._v("#")]),e._v(" Applying the settings to all slots")]),e._v(" "),t("p",[e._v("The current controller values for the motion parameters as well as the stick setting can be applied to all existing slots using the two buttons at the end of the tab. (This possibility exists also in other tabs, like the settings of the suction-puff control).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(590),alt:"ConfigManager"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 12: Apply settings to all slots")])]),e._v(" "),t("h2",{attrs:{id:"tab-sip-and-puff"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-sip-and-puff"}},[e._v("#")]),e._v(" Tab SIP AND PUFF")]),e._v(" "),t("p",[e._v("In the tab “SIP-PUFF-CONTROL”, the threshold values for sipping and puffing into the mouthpiece can be set as desired. If the FLipMouse is connected, the current pressure values can be monitored using the horizontal blue column. The current minimum and maximum values can be seen from the vertical blue and red lines). Two threshold values can be set for sip and puff (Strong and Light), to which different actions can be assigned in the “ACTIONS” tab. "),t("strong",[e._v("Tip")]),e._v(": the threshold values for light actuation should be set as sensitively as possible, and the difference to strong actuation should be large enough to prevent accidental triggering of the assigned actions. It may be useful not to use the strong thresholds in the initial learning phase (i.e. set them so that they are not reachable at all).")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(591)}})]),e._v("\n*Figure 13: Tab SIP AND PUFF*\n"),t("p",[e._v("Note that the idle pressure level (without sip or puff) is around 512, and the level increases when you puff\ninto the mouthpiece, indicating increased pressure. With the sliders, the threshold pressure for sip and puff can be regulated. The grey dotted line represents the actual pressure. The blue and red dotted lines represent the limits reached in this session.")]),e._v(" "),t("h4",{attrs:{id:"extended-gestures-for-strong-sip-and-strong-puff"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#extended-gestures-for-strong-sip-and-strong-puff"}},[e._v("#")]),e._v(" Extended gestures for strong sip and strong puff")]),e._v(" "),t("p",[e._v("By combining a strong sip or strong puff with a short stick movement, up to 8 additional actions can be triggered (e.g. “strong sip + up” or “strong puff + left”). The stick must be deflected in the corresponding direction shortly "),t("em",[e._v("after")]),e._v(" the strong sip or puff activity. (If the stick is not moved within one second, the action for strong sip or puff is triggered).")]),e._v(" "),t("h2",{attrs:{id:"tab-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-actions"}},[e._v("#")]),e._v(" Tab ACTIONS")]),e._v(" "),t("p",[e._v("The ACTIONS tab allows the mapping of user activities to desired FlipMouse functions (actions). The user activities are:")]),e._v(" "),t("ul",[t("li",[e._v("pressing or releasing the 3 buttons (built-in button 1 or external button 2 or 3)")]),e._v(" "),t("li",[e._v("stick movements (up/down/left/right) which exceed the deadzone threshold value")]),e._v(" "),t("li",[e._v("sip and puff activities (or extended sip/puff gestures).")])]),e._v(" "),t("p",[e._v("The assignment of user activities to actions is displayed in a table. By using the display options "),t("em",[e._v("Current slot")]),e._v(", "),t("em",[e._v("Table")]),e._v(" or "),t("em",[e._v("List")]),e._v(" it is possible to get an overview of all existing slots or a detailed display of the current slot:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(592)}})]),e._v("\n*Figure 14: Assign different actions to user activities*\n"),t("p",[e._v("The assignment of actions can be changed by clicking on the entry in the table - this opens a window with further options:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(593)}})]),e._v("\n*Figure 15: Pop-up window for choice of desired action*\n"),t("p",[e._v("In the following, the individual action categories and different actions will be briefly described.")]),e._v(" "),t("h3",{attrs:{id:"action-category-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-mouse"}},[e._v("#")]),e._v(" Action category “Mouse”")]),e._v(" "),t("p",[t("strong",[e._v("Hold Left / Middle / Right Mouse Button")]),e._v("\nThe "),t("em",[e._v("hold")]),e._v(" action presses a particular mouse button continuously (for example for dragging an item across the screen). The mouse button is released when the assigned user activity ends (for example when the sip/puff activity ends, when the stick is moved back to middle position or when an external button is released).")]),e._v(" "),t("p",[t("strong",[e._v("Click Left / Middle / Right Mouse Button")]),e._v("\nCreates mouse button clicks. (The left/right or middle mouse button is pressed and released again after a short time).")]),e._v(" "),t("p",[t("strong",[e._v("Double Click Left Mouse Button")]),e._v("\nCreates a double click with the left mouse button.")]),e._v(" "),t("p",[t("strong",[e._v("Toggle Left / Middle / Right Mouse Button")]),e._v("\nThe "),t("em",[e._v("toggle")]),e._v(" action changes the state of a mouse button from pressed to not pressed and vice versa. This is useful e.g. if keeping a user activity up for a longer time (e.g. for dragging an item or for keeping a key pressed while other keys are pressed/released).")]),e._v(" "),t("p",[t("strong",[e._v("Wheel Up / Down")]),e._v("\nThe actions "),t("em",[e._v("Wheel up")]),e._v(" or "),t("em",[e._v("Wheel down")]),e._v(" emulate the mouse scroll wheel. Triggering the "),t("em",[e._v("Wheel up")]),e._v(" action results in upwards scrolling, while "),t("em",[e._v("wheel down")]),e._v(" results in downward scrolling. This action is useful for example for reading documents or web sites.")]),e._v(" "),t("p",[t("strong",[e._v("Move Mouse horizontally / vertically (x-axis / y-axis)")]),e._v("\nThe "),t("em",[e._v("Move mouse horizontally (x-axis)")]),e._v(" and "),t("em",[e._v("Move mouse vertically (y-axis)")]),e._v(" functions generate computer mouse movements along the selected axes. Speed parameters can be set for these functions in the field that appears below. As long as the user activity is present, the mouse pointer is accelerated up to this maximum speed. Please note that:")]),e._v(" "),t("p",[t("em",[e._v("A positive value for the X direction moves the mouse pointer to the right.\nA negative value for the X direction moves the mouse pointer to the left.\nA positive value for the Y direction moves the mouse pointer down.\nA negative value for the Y direction moves the mouse pointer up.")])]),e._v(" "),t("h3",{attrs:{id:"action-category-joystick"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-joystick"}},[e._v("#")]),e._v(" Action category: Joystick")]),e._v(" "),t("p",[t("strong",[e._v("Joystick set x-/y-/z-axis/slider")]),e._v("\nThese actions can be used to send a desired value to the joystick axis. The selectable joystick axes are: "),t("em",[e._v("X / Y / Z / Z-Turn / slider")]),e._v(". The joystick is moved back to middle position when the associated user activity ends.")]),e._v(" "),t("p",[t("strong",[e._v("Press Joystick Button")]),e._v("\nThis action can be used to press a desired joystick button. The FLipMouse device supports 32 buttons, so any value from 1 to 32 is allowed. The joystick button is released when the associated user activity ends.")]),e._v(" "),t("p",[t("strong",[e._v("Joystick hat position")]),e._v("\nThis action sets the orientation of the joystick “hat” (in degrees). Allowed values are:\n"),t("em",[e._v("-1, 0, 45, 90, 135, 180, 225, 270, 315")]),e._v(". The value of -1 sets the hat to the middle (idle) position.\nThe joystick hat is moved back to middle position when the associated user activity ends.")]),e._v(" "),t("h3",{attrs:{id:"action-category-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-keyboard"}},[e._v("#")]),e._v(" Action category: Keyboard")]),e._v(" "),t("p",[t("strong",[e._v("Press / Hold / Toggle Keys")]),e._v("\nThe "),t("em",[e._v("Press Keys")]),e._v(" action allows pressing one or multiple keyboard keys. A second drop-down menu with possible key identifiers is displayed ("),t("em",[t("strong",[e._v("Add keys")])]),e._v("). "),t("strong",[e._v("When a key is selected from this menu, it has to be added (Click ADD)")]),e._v(" to the "),t("em",[e._v("Insert keys text")]),e._v(" field. Thus, multiple keyboard keys can be pressed simultaneously. The keys are released when the associated user activity ends. If you would like to remove or change the assigned keys, you must clear the currently assigned keys by pressing the “CLEAR” button next to the Insert keys field.")]),e._v(" "),t("p",[e._v("Common key combinations include:\nKEY_CTRL + Z: triggers undo function\nKEY_CTRL + C: triggers copy function\nKEY_CTRL + V: triggers paste function\nKEY_CTRL + KEY_ALT + KEY_ DELETE")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("Hold Key")]),e._v(" action keeps the key pressed until the user activity ends.\nThe "),t("em",[e._v("Toggle Key")]),e._v(" action changes the key state from pressed to not pressed and vice versa with each user activity.")]),e._v(" "),t("p",[e._v("For a list of all supported key identifiers, see "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#supported-key-identifiers",target:"_blank",rel:"noopener noreferrer"}},[e._v("appendix"),t("OutboundLink")],1),e._v("\nor have a look at the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki/at-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse Wiki / Github pages"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(594)}})]),e._v("\n*Figure 16: Add keys for the action press / hold / toggle keys*\n"),t("p",[t("strong",[e._v("Write Word")]),e._v("\nThe "),t("em",[e._v("Write word")]),e._v(" action allows typing a particular text/phrase whenever a user activity occurs (for example: write “Hello” whenever you move the FLipMouse stick up). Selecting this action displays a blank text box under the drop-down menu where the text can be entered, as shown below:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(595)}})]),e._v("\n*Figure 17: Write word function*\n"),t("p",[e._v("In this example, “Hello” will be written each time button 2 of the FLipMouse is pressed.")]),e._v(" "),t("h3",{attrs:{id:"action-category-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-device"}},[e._v("#")]),e._v(" Action category: Device")]),e._v(" "),t("p",[t("strong",[e._v("No Command")]),e._v("\nIf the action "),t("em",[e._v("No Command")]),e._v(" is selected, no action will be assigned to the respective user activity.")]),e._v(" "),t("p",[t("strong",[e._v("Load Next Slot")]),e._v("\nThis action is only relevant if you have stored multiple FLipMouse configuration slots. This action switches to the next slot. If the last slot is already reached, triggering this action will switch to the first slot. When you switch the slot, the built-in LED bulbs will change the color of the device front accordingly, showing the active slot. Additionally an acoustic signal indicates the slot number (the number of tones represents the slot number).")]),e._v(" "),t("p",[t("strong",[e._v("Load Slot by Name")]),e._v("\nThis action activates the configuration slot with the given name (if it exists). The name can be specified in the text field. This action is only relevant if you have stored multiple FLipMouse configuration slots. The LEDs indicate the slot number as described above.")]),e._v(" "),t("p",[t("strong",[e._v("Calibrate middle position")]),e._v("\nThis action starts the calibration sequence for the middle position of the stick. Please refer to the description "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#calibration-of-the-sticks-middle-position",target:"_blank",rel:"noopener noreferrer"}},[e._v("“"),t("em",[e._v("Calibration of the stick’s middle position")]),e._v("”"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"action-category-infrared"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-infrared"}},[e._v("#")]),e._v(" Action category: Infrared")]),e._v(" "),t("p",[t("strong",[e._v("Play / Hold / Stop Infrared Command")]),e._v("\nThis action replays the infrared (IR-)code with the given command name. The existing (recorded) IR-commands can be selected from the drop-down menu. The "),t("em",[e._v("play")]),e._v(" action sends the recorded code once, whereas the "),t("em",[e._v("hold")]),e._v(" action repeats the code until the user activity ends.")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"70%",src:o(596)}})]),e._v("\n*Figure 18: Infrared Recording and Replay Configuration Manager*\n"),t("p",[e._v("The FLipMouse device includes an infrared remote control receiver module and a high current IR LED so that it can record and replay remote control codes of many remote control devices used in consumer electronics. If you want to use this feature of the FLipMouse, make sure that the IR sending LED is points towards the device you want to control. For instructions how to connect an external IR LED to increase the transmit power, please visit the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse Wiki pages"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(597),alt:"infrared"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 19: Infrared Code Recording (here: FLipMouse V1 hardware)")])]),e._v(" "),t("p",[e._v("To record a new IR code, go to the tab ACTIONS. Click the desired action and select the action category “"),t("strong",[e._v("Infrared")]),e._v("” in the popup-window. There, three different types of IR-actions can be selected from the combo box:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Play infrared command")]),e._v(": sends the recorded code once")]),e._v(" "),t("li",[t("em",[e._v("Hold infrared command")]),e._v(": repeats the code until the user activity ends")]),e._v(" "),t("li",[t("em",[e._v("Stop infrared command")]),e._v(": stops a currently plaing IR-code")])]),e._v(" "),t("p",[e._v("The existing commands can be chosen from the drop-down menu.")]),e._v(" "),t("p",[e._v("In this window you can also manage IR commands. Next to "),t("em",[e._v("New IR Command")]),e._v(", you can enter a name and then click RECORD - point your IR remote to the side of the FLipMouse where the LEDs stick out and send the IR command (there is a 10 seconds time limit for the recording phase). The new command is now stored in the FLipMouse and can be chosen and replayed by selecting it’s name in the drop down menu. If the command is not correctly replayed, try to increase the IR-Code timeout – for example to 250 milliseconds. Using "),t("em",[e._v("Delete IR command")]),e._v(" commands can be deleted.")]),e._v(" "),t("h3",{attrs:{id:"action-category-macro"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-macro"}},[e._v("#")]),e._v(" Action category: Macro")]),e._v(" "),t("p",[t("strong",[e._v("Execute Command Macro")]),e._v("\nThis action allows running a so-called command macro which consists of several individual actions. Thus, a desired sequence of actions can be performed which consists for example of a number of mouse moves, mouse clicks, text inputs or key presses. This action is powerful, but also a bit more complicated because the individual actions must be specified in form of so-called AT-commands which are separated by semicolons. For example: the following command macro will move the mouse cursor 100 steps to the left, 20 steps up, then wait 100 milliseconds and then perform a left mouse click: “MX 100; MY -20; WA 100; CL”. For a list and detailed explanation of all supported AT-commands see "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#supported-macro-commands",target:"_blank",rel:"noopener noreferrer"}},[e._v("Supported Macro Commands"),t("OutboundLink")],1),e._v(" or have a look at the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki/at-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse Wiki / Github pages"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"tab-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-slots"}},[e._v("#")]),e._v(" Tab SLOTS")]),e._v(" "),t("p",[e._v("In the SLOTS tab you can create new slots, delete existing slots, download a single or all slots (backup settings) and upload a file containing a complete configuration with multiple slots (restore backup). Furthermore, several demo settings (presets) can be applied.")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(598)}})]),e._v("\n*Figure 20: SLOTS Settings Tab*\n"),t("h3",{attrs:{id:"slot-list-slot-selection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slot-list-slot-selection"}},[e._v("#")]),e._v(" Slot List / Slot selection")]),e._v(" "),t("p",[e._v("The Slot List displays all existing slots in the correct order. The current slot is indicated by the green row color. Clicking another slot in the Slot-List activates that particular slot. Furthermore, at the top center of the Configuration Manager window, the current slot is shown in the "),t("em",[e._v("Select Slot")]),e._v(" box and can be changed there. The settings of the current slot will be stored and remembered when changing to another slot. The maximum number of slots is 10.")]),e._v(" "),t("h4",{attrs:{id:"slot-color"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slot-color"}},[e._v("#")]),e._v(" Slot Color")]),e._v(" "),t("p",[e._v("Each slot can be assigned with a color which is displayed on the front panel of the FLipMouse. The color can be chosen from a selection dialog by clicking the colored button.")]),e._v(" "),t("h4",{attrs:{id:"connection-mode-usb-or-bluetooth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connection-mode-usb-or-bluetooth"}},[e._v("#")]),e._v(" Connection mode (USB or Bluetooth)")]),e._v(" "),t("p",[e._v("Clicking the "),t("em",[e._v("Connection")]),e._v(" button in the Slot List switches between USB or Bluetooth mode for this particular slot. The Bluetooth mode allows control of cell phones, tablets and computers which provide Bluetooth capability. In this way, custom slots can be created for USB or Bluetooth, so that it is possible to switch e.g. from a laptop (USB) to a wireless connection (phone / tablet) and back (using the "),t("em",[e._v("Next Slot")]),e._v(" or "),t("em",[e._v("Load Slot by Name")]),e._v(" actions.")]),e._v(" "),t("p",[t("strong",[e._v("Bluetooth pairing")]),e._v("\nThe Bluetooth function can only work if a host devices is connected (paired) with the FLipMouse. (A host device can be for example, a cell phone with Android or iOS operating system.) The FLipMouse can only be paired with a host device if no other device is currently connected and thus pairing mode is active. An active pairing mode of the FlipMouse is indicated via slow dimming of the light color on the front of the FLipMouse module. As soon as a Bluetooth connection is established, the light color lights up continuously. To establish the pairing, open the Bluetooth settings of your host device, enable the Bluetooth feature, select "),t("em",[e._v("Add new BT device")]),e._v(", and then select the FLipMouse from the list of available devices.")]),e._v(" "),t("h4",{attrs:{id:"delete-slot"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#delete-slot"}},[e._v("#")]),e._v(" Delete slot")]),e._v(" "),t("p",[e._v("A slot can be removed by clicking the "),t("em",[e._v("Delete")]),e._v(" button in the Slot List.")]),e._v(" "),t("h4",{attrs:{id:"download-slot"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#download-slot"}},[e._v("#")]),e._v(" Download slot")]),e._v(" "),t("p",[e._v("A slot can be stored on the computer by clicking the "),t("em",[e._v("Download Slot")]),e._v(" button in the Slot List (a file will be downloaded from your browser - you can store it wherever you like).")]),e._v(" "),t("h3",{attrs:{id:"create-a-new-slot-copy-existing-slot"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-a-new-slot-copy-existing-slot"}},[e._v("#")]),e._v(" Create a new Slot / Copy existing Slot")]),e._v(" "),t("p",[e._v("A new slot can be created by copying the settings of the currently active slot. In order to do this, enter the desired name for the new slot into the corresponding text field ("),t("em",[e._v("Insert name for new slot")]),e._v("). Then, click the “CREATE SLOT” button. This "),t("strong",[e._v("appends a copy of the currently active slot")]),e._v(" to the end of the Slot List and assigns a new name for it.")]),e._v(" "),t("h3",{attrs:{id:"upload-slots-to-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upload-slots-to-device"}},[e._v("#")]),e._v(" Upload Slots to device")]),e._v(" "),t("h4",{attrs:{id:"upload-slots-from-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upload-slots-from-file"}},[e._v("#")]),e._v(" Upload Slots from file")]),e._v(" "),t("p",[e._v("This function lets you select a Slots-file (.set) from your computer and upload it to the FLipMouse (restore a backup). Be careful - this deletes all existing Slot-settings of your device!")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(599)}})]),e._v(" "),t("p",[t("em",[e._v("Figure 21: Upload slots (resore Backup)")])]),e._v(" "),t("h4",{attrs:{id:"appy-demo-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#appy-demo-settings"}},[e._v("#")]),e._v(" Appy Demo Settings")]),e._v(" "),t("p",[e._v("This function lets you apply existing demo settings which have bee made by us to show different functions and applications scenarios of the FLipMouse. The existing presets can be chosen from the Selection box. In case a short description is available, it can be opened in a pop-up window. The selected demo-preset is applied when the corresponding button is clicked.")]),e._v(" "),t("h3",{attrs:{id:"create-backup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-backup"}},[e._v("#")]),e._v(" Create Backup")]),e._v(" "),t("p",[e._v("Clicking the button "),t("em",[e._v("Download all slots")]),e._v(" transfers all current slots to a settings file (.set) which is the stored on your computer. All settings can thus be transferred to the same or to another FLipMouse device. Multiple setups (for example for individual users or use-cases) can be kept on a computer and applied with a single click. A file chooser window will be opened which allows selection of the desired filename for saving or loading the configuration.")]),e._v(" "),t("h2",{attrs:{id:"tab-general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-general"}},[e._v("#")]),e._v(" Tab GENERAL")]),e._v(" "),t("p",[e._v("The GENERAL tab allows changing the USB/Bluetooth mode and apply firmware updates of the FLipmouse device and the Bluetooth Add-On module (if installed):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(600),alt:"general"}}),e._v(" "),t("em",[e._v("Figure 22: General Settings")])]),e._v(" "),t("h3",{attrs:{id:"slot-test-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slot-test-mode"}},[e._v("#")]),e._v(" Slot Test Mode")]),e._v(" "),t("p",[e._v("The Slot test mode allows a temporary application of settings in order to perform a slot test and then return to a working FLipmouse configuration. When the Slot test mode is enabled, modifications in the settings are not applied to the FlipMouse as usual. This feature allows FLipMouse users to experiment with slot settings without the risk of “locking themselfes out”. For example: for creating and testing a slot with keyboard key actions for a gaming application, a user can click "),t("em",[e._v("Test current slot")]),e._v(", then switch to the gaming application during the countdown time of 10 seconds, then test the current slot settings with the FLipMouse for 90 seconds, and then automatically return to the previous mouse cursor control settings. If the settings work as desired, the current slot can be saved, else the slot settings may be reverted.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(601),alt:"general"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 23: SLOT Test Mode")])]),e._v(" "),t("h3",{attrs:{id:"firmware-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#firmware-version"}},[e._v("#")]),e._v(" Firmware Version")]),e._v(" "),t("p",[e._v("Here you can see the installed version of the FLipMouse software (firmware). If the installed version is older than the version available online in the FLipMouse github repository, the option “UPDATE FIRMWARE” is displayed (otherwise “OVERWRITE FIRMWARE” is displayed). Clicking this button will attempt to download and install the firmware version which is available in the repository. This process should only be done on a laptop or desktop computer. The FLipMouse will temporarily appear as a USB drive, and the downloaded file must be copied to that drive. After that, the FLipMouse restarts with the updated software. (This process is also explained in the configuration manager, please follow the instructions step by step).")]),e._v(" "),t("h2",{attrs:{id:"tab-visualization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-visualization"}},[e._v("#")]),e._v(" Tab VISUALIZATION")]),e._v(" "),t("p",[e._v("The FLipMouse stick is attached to four force sensors – one for each movement direction (up, down, left, right). The numeric value of each of those sensors is displayed in the “VISUALIZATION” tab. The live values can be monitored when the FLipMouse device is connected. Whenever the stick is moved, the sensor values change. Specifically, a movement in each direction increases the respective sensor value. Significant deviation in one direction indicates a sensor problem - in this case, the sensors should be checked and might need to be replaced.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(602),alt:"visualisation"}}),e._v(" "),t("em",[e._v("Figure 24: Left: Live display of force sensor values; Middle: current slot with the 3 buttons (if one button is pressed, the corresponding circle will get yellow; Right: Sip and Puff live value and current thresholds")])]),e._v(" "),t("h1",{attrs:{id:"instructions-for-cleaning-and-maintenance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions-for-cleaning-and-maintenance"}},[e._v("#")]),e._v(" Instructions for cleaning and maintenance")]),e._v(" "),t("p",[e._v("If the mouthpiece is used to actuate the cursor movements via lip/mouth movements, a careful cleaning procedure is essential to avoid bacteria and health problems! Read this section carefully and apply the needed cleaning procedures whenever necessary.")]),e._v(" "),t("h2",{attrs:{id:"hygienic-considerations-and-risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hygienic-considerations-and-risks"}},[e._v("#")]),e._v(" Hygienic considerations and risks")]),e._v(" "),t("p",[e._v("If the mouthpiece is actuated with the lips, it is important to respect the following hygienic precautions:")]),e._v(" "),t("ol",[t("li",[e._v("One mouthpiece must be used exclusively by one person")]),e._v(" "),t("li",[e._v("The filter tip must be replaced whenever saliva or dirt have formed")]),e._v(" "),t("li",[e._v("The mouthpiece must be cleaned whenever saliva or dirt have formed\n(see chapter “"),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#instructions-for-cleaning-and-maintenance",target:"_blank",rel:"noopener noreferrer"}},[e._v("Instructions for cleaning and maintenance"),t("OutboundLink")],1),e._v("”)")])]),e._v(" "),t("p",[e._v("With the lack of hygiene concerning the mouthpiece, especially when the mouthpiece is used by more than one person, it is possible that")]),e._v(" "),t("ol",[t("li",[e._v("skin rash arises")]),e._v(" "),t("li",[e._v("viruses and bacteria are transmitted causing diseases")]),e._v(" "),t("li",[e._v("dirt formats in the mouthpiece, which is dangerous to health")])]),e._v(" "),t("p",[e._v("With wrong positioning of the FLipMouse there is the risk of feeling uncomfortable after longer periods of use, and it is possible to get muscle cramps or muscle pain due to unusual head positioning – pay attention to a convenient position and schedule pauses if you work for longer time periods!")]),e._v(" "),t("h3",{attrs:{id:"exchanging-the-saliva-filter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#exchanging-the-saliva-filter"}},[e._v("#")]),e._v(" Exchanging the saliva filter")]),e._v(" "),t("p",[e._v("The saliva filter is placed inside the mouthpiece. Usually, no (or nearly no) saliva should enter the stick – but it strongly depends on the person using the mouthpiece. If saliva enters the mouthpiece, the saliva filters reduces the moisture entering the inner parts of the FLipMouse (respectively the pressure sensor). If necessary, a hydrophobic membrane filter can be used additionally / instead of the simple saliva filter. This membrane filter can be insterted between the acrylic pipe an dhte Lur Lock Adapter (it it compatible with the Luer Lock standard).")]),e._v(" "),t("p",[e._v("The standard filter can be replaced as shown below:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"50%",src:o(603)}})]),e._v("\n*Figure 25.1: Removal of the saliva filter, using a normal screw to grab the filter*\n"),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"50%",src:o(604)}})]),e._v("\n*Figure 25.2: The removed filter*\n"),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"50%",src:o(605)}})]),e._v("\n*Figure 25.3: Inserting a new filter (pushing it back into the hygienic stick)*\n"),t("h3",{attrs:{id:"disinfection-of-the-mouthpiece"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disinfection-of-the-mouthpiece"}},[e._v("#")]),e._v(" Disinfection of the mouthpiece")]),e._v(" "),t("p",[e._v("Use boiling water to disinfect a mouthpiece: place the mouthpiece (without saliva filter) in boiling water for at least five minutes, then allow it to dry before the next use.")]),e._v(" "),t("h3",{attrs:{id:"replacement-sticks-and-filters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#replacement-sticks-and-filters"}},[e._v("#")]),e._v(" Replacement sticks and filters")]),e._v(" "),t("p",[e._v("Transparent acrylic mouthpieces can be ordered from the "),t("a",{attrs:{href:"https://www.asterics-foundation.org/webshop",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Foundation Webshop"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"modification-of-the-mouthpiece-stick"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#modification-of-the-mouthpiece-stick"}},[e._v("#")]),e._v(" Modification of the Mouthpiece / Stick")]),e._v(" "),t("p",[e._v("Several users reported that they would prefer a different shape of the mouthpiece. It is of course possible to apply your own modifications and extensions which feel comfortable to you. Here we want to give some suggestions using affordable, disposable cigarette holders. The link between the standard mouthpiece and the cigarette holder is established with a small brass tube. It is also possible to cut the cigarette holder and insert it into the acrylic pipe so that a tight fit is ensured:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(606),alt:"mouthpiece"}}),e._v(" "),t("img",{attrs:{src:o(607),alt:"mouthpiece1"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 26: Modified shape of the mouthpiece")])]),e._v(" "),t("p",[e._v("Regardless of your desired mouthpiece modifications: Always take care for a hygienic operation and apply the cleaning procedures as described in this chapter!")]),e._v(" "),t("h1",{attrs:{id:"macro-commands-and-key-codes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#macro-commands-and-key-codes"}},[e._v("#")]),e._v(" Macro commands and Key codes")]),e._v(" "),t("h2",{attrs:{id:"supported-macro-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-macro-commands"}},[e._v("#")]),e._v(" Supported Macro commands:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Abbreviation")])]),e._v(" "),t("th",[t("strong",[e._v("Function")])]),e._v(" "),t("th",[t("strong",[e._v("example")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("CL")]),e._v(" "),t("td",[e._v("click left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CR")]),e._v(" "),t("td",[e._v("click right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CM")]),e._v(" "),t("td",[e._v("click middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CD")]),e._v(" "),t("td",[e._v("click double with left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HL")]),e._v(" "),t("td",[e._v("hold the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HR")]),e._v(" "),t("td",[e._v("hold the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HM")]),e._v(" "),t("td",[e._v("hold the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TL")]),e._v(" "),t("td",[e._v("toggle left mouse button")]),e._v(" "),t("td",[e._v("changes the state of the mouse button")])]),e._v(" "),t("tr",[t("td",[e._v("TM")]),e._v(" "),t("td",[e._v("toggle middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TR")]),e._v(" "),t("td",[e._v("toggle right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RL")]),e._v(" "),t("td",[e._v("release the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RR")]),e._v(" "),t("td",[e._v("release the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RM")]),e._v(" "),t("td",[e._v("release the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WU")]),e._v(" "),t("td",[e._v("move mouse wheel up")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WD")]),e._v(" "),t("td",[e._v("move mouse wheel down")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("MX "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in x direction")]),e._v(" "),t("td",[e._v("MX 4 -> moves cursor 4 pixels to the right")])]),e._v(" "),t("tr",[t("td",[e._v("MY "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in y direction")]),e._v(" "),t("td",[e._v("MY -10 -> moves cursor 10 pixels up")])]),e._v(" "),t("tr",[t("td",[e._v("RO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("rotate stick orientation")]),e._v(" "),t("td",[e._v("RO 180 -> flips x and y movements of stick/mouthpiece")])]),e._v(" "),t("tr",[t("td",[e._v("KW "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("keyboard write string")]),e._v(" "),t("td",[e._v("KW Hello! -> writes “Hello!” on the keyboard")])]),e._v(" "),t("tr",[t("td",[e._v("KP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key press: Press keyboard keys (once). Keys are identified by keyboard shortcuts (see list below)")]),e._v(" "),t("td",[e._v("KP KEY_UP -> presses the “Cursor-Up” key; KP KEY_CTRL KEY_ALT KEY_DELETE presses all 3 keys")])]),e._v(" "),t("tr",[t("td",[e._v("KH "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key hold: hold keyboard keys")]),e._v(" "),t("td",[e._v("sKH KEY_LEFT -> holds the “Cursor-Left” key")])]),e._v(" "),t("tr",[t("td",[e._v("KT "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key toggle: toggle keyboard keys; the key will remain pressed until “AT KT” command is sent again or a “AT KR” command is sent")]),e._v(" "),t("td",[e._v("KT KEY_DOWN -> toggles the “Cursor-Down” key")])]),e._v(" "),t("tr",[t("td",[e._v("KR "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key release")]),e._v(" "),t("td",[e._v("KR KEY_UP -> releases the “Cursor-Up” key")])]),e._v(" "),t("tr",[t("td",[e._v("RA")]),e._v(" "),t("td",[e._v("releases all = Release all currently pressed keys and mouse buttons")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WA "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("wait a certain number of milliseconds")]),e._v(" "),t("td",[e._v("WA 100 -> waits 100 milliseconds")])]),e._v(" "),t("tr",[t("td",[e._v("NE")]),e._v(" "),t("td",[e._v("next slot: load next slot")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("LO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("Load slot per name, changes to the given slot")]),e._v(" "),t("td",[e._v("LO mouse")])]),e._v(" "),t("tr",[t("td",[e._v("NC")]),e._v(" "),t("td",[e._v("No command")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("JX "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick x axis")]),e._v(" "),t("td",[e._v("JX 512 -> sets the x-axis to middle position")])]),e._v(" "),t("tr",[t("td",[e._v("JY "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick y axis")]),e._v(" "),t("td",[e._v("JY 1023 -> sets the y-axis to full up position")])]),e._v(" "),t("tr",[t("td",[e._v("JZ "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick z axis")]),e._v(" "),t("td",[e._v("JZ 0 -> sets the z-axis to lowest poistion")])]),e._v(" "),t("tr",[t("td",[e._v("JT "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick turn axis")]),e._v(" "),t("td",[e._v("JT 512 -> sets the rotation to middle position")])]),e._v(" "),t("tr",[t("td",[e._v("JS "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick slider position")]),e._v(" "),t("td",[e._v("JS 512 -> sets the slider to middle position")])]),e._v(" "),t("tr",[t("td",[e._v("JP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("press joystick button")]),e._v(" "),t("td",[e._v("JP 1 -> presses joystick button 1")])]),e._v(" "),t("tr",[t("td",[e._v("JR "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("release joystick button")]),e._v(" "),t("td",[e._v("JR 2 -> releases joystick button 2")])]),e._v(" "),t("tr",[t("td",[e._v("JH "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick hat position")]),e._v(" "),t("td",[e._v("JH 45 -> sets joystick hat to 45 degrees; possible values are: 0, 45, 90, 135, 180, 225, 270, 315 and -1 to set center position")])]),e._v(" "),t("tr",[t("td",[e._v("MM "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("mouse mode: cursor on (int=1) or alternative functions on (int=0)")]),e._v(" "),t("td",[e._v("MM1 -> switches to mouse mode")])]),e._v(" "),t("tr",[t("td",[e._v("CA")]),e._v(" "),t("td",[e._v("Calibrate zero position")]),e._v(" "),t("td",[e._v("calibrates stick / mouthpiece middle position")])]),e._v(" "),t("tr",[t("td",[e._v("IP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("play infrared command")]),e._v(" "),t("td",[e._v("IP channelUp; plays infrared command “channelUp” (if this IR-command name has been recorded)")])])])]),e._v(" "),t("p",[e._v("Please note that certain commands for adjusting FLipMouse settings are not shown in this table (for example setting thresholds or accelerations, recording IR-commands etc.). For a full list of commands please refer to the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki/at-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse wiki"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"supported-key-identifiers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-key-identifiers"}},[e._v("#")]),e._v(" Supported Key Identifiers:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Supported KEY Identifiers:")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[t("strong",[e._v("Letters")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_A  KEY_B  KEY_C  KEY_D  KEY_E  KEY_F  KEY_G  KEY_H  "),t("br"),e._v("KEY_I  KEY_J  KEY_K  KEY_L  KEY_M  KEY_N  KEY_O  KEY_P  "),t("br"),e._v("KEY_Q  KEY_R  KEY_S  KEY_T  KEY_U  KEY_V  KEY_W  KEY_X")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Digits")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_1  KEY_2  KEY_3  KEY_4  KEY_5  KEY_6  KEY_7  KEY_8  KEY_9  KEY_0")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Function keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_F1  KEY_F2  KEY_F3  KEY_F4  KEY_F5  KEY_F6  KEY_F7  KEY_F8  KEY_F9  KEY_F10  "),t("br"),e._v("KEY_F11  KEY_F12  KEY_F13  KEY_F14  KEY_F15  KEY_F16  KEY_F17  KEY_F18  KEY_F19 "),t("br"),e._v("KEY_F20  KEY_F21  KEY_F22  KEY_F23  KEY_F24")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Navigation keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_UP  KEY_DOWN  KEY_LEFT  KEY_RIGHT  KEY_TAB  KEY_PAGE_UP  KEY_PAGE_DOWN "),t("br"),e._v("KEY_HOME  KEY_END")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Special keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_ENTER  KEY_SPACE  KEY_BACKSPACE  KEY_DELETE  KEY_INSERT  KEY_ESC  KEY_NUM_LOCK"),t("br"),e._v("KEY_SCROLL_LOCK  KEY_CAPS_LOCK  KEY_PAUSE"),t("br"),t("br"),e._v("KEY_SEMICOLON  KEY_COMMA  KEY_PERIOD  KEY_MINUS  KEY_EQUAL  KEY_SLASH"),t("br"),e._v("KEY_BACKSLASH  KEY_LEFT_BRACE  KEY_RIGHT_BRACE  KEY_QUOTE  KEY_TILDE  KEY_MENU")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Keypad keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEYPAD_1  KEYPAD_2  KEYPAD_3  KEYPAD_4  KEYPAD_5  KEYPAD_6  KEYPAD_7  KEYPAD_8"),t("br"),e._v("KEYPAD_9  KEYPAD_0  "),t("br"),e._v("KEYPAD_SLASH  KEYPAD_ASTERIX  KEYPAD_MINUS  KEYPAD_PLUS  KEYPAD_ENTER  KEYPAD_PERIOD")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Keys for alternative functions")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_SHIFT  KEY_CTRL  KEY_ALT  KEY_RIGHT_ALT  KEY_GUI  KEY_RIGHT_GUI")])])])]),e._v(" "),t("h1",{attrs:{id:"contact-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contact-information"}},[e._v("#")]),e._v(" Contact Information")]),e._v(" "),t("p",[t("strong",[e._v("University of Applied Sciences Technikum Wien")]),e._v("\nDepartment Electronic Engineering\nHöchstädtplatz 6\nA-1200 Wien\nAUSTRIA")]),e._v(" "),t("p",[t("strong",[e._v("AsTeRICS Foundation")]),e._v("\nWebpage: "),t("a",{attrs:{href:"http://www.asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.asterics-foundation.org"),t("OutboundLink")],1),e._v("\nEmail: "),t("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[e._v("office@asterics-foundation.org")])]),e._v(" "),t("h2",{attrs:{id:"disclaimer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[e._v("#")]),e._v(" Disclaimer")]),e._v(" "),t("p",[e._v("The University of Applied Sciences Technikum Wien and the AsTeRICS Foundation do not assume any warranty and liability for the functionality of the described devices, software and the correctness of the documents handed over.")]),e._v(" "),t("p",[e._v("Additionally, the UAS TW is not liable for any damages to health due to the use of described hardware or software. The provided software applications and hardware modules are to be used at own risk!")]),e._v(" "),t("h2",{attrs:{id:"acknowledgement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acknowledgement"}},[e._v("#")]),e._v(" Acknowledgement")]),e._v(" "),t("p",[e._v("This project was partly funded by the City of Vienna,\nMunicipal department of Economic Affairs, Labor and Statistics (MA 23),\nin course of the projects AsTeRICS Academy (14-02), ToRaDes (18-04)\nand Wissensdrehscheibe für Barrierefreie Technologien (26-02)")]),e._v(" "),t("p",[t("img",{attrs:{src:o(608),alt:"Logos"}})])])}),[],!1,null,null,null);t.default=i.exports},576:function(e,t,o){e.exports=o.p+"assets/img/flipmouseLogo.115b0ada.svg"},577:function(e,t,o){e.exports=o.p+"assets/img/flip1.0ad60902.svg"},578:function(e,t,o){e.exports=o.p+"assets/img/f2.9459b77d.svg"},579:function(e,t,o){e.exports=o.p+"assets/img/f5.993e34bc.JPG"},580:function(e,t,o){e.exports=o.p+"assets/img/f2.a5b481b8.PNG"},581:function(e,t,o){e.exports=o.p+"assets/img/f10.de94e67a.PNG"},582:function(e,t,o){e.exports=o.p+"assets/img/f12.0968304a.PNG"},583:function(e,t,o){e.exports=o.p+"assets/img/f13.e4f28906.PNG"},584:function(e,t,o){e.exports=o.p+"assets/img/fig1.d23bc4fc.PNG"},585:function(e,t,o){e.exports=o.p+"assets/img/header_en.4ea05680.jpg"},586:function(e,t,o){e.exports=o.p+"assets/img/tab_stick_en.3d1865f1.jpg"},587:function(e,t,o){e.exports=o.p+"assets/img/fig20.1.3a671358.svg"},588:function(e,t,o){e.exports=o.p+"assets/img/fig3.a3e5172a.svg"},589:function(e,t,o){e.exports=o.p+"assets/img/fig3.1.86589023.svg"},590:function(e,t,o){e.exports=o.p+"assets/img/footer_en.4a5ea909.jpg"},591:function(e,t,o){e.exports=o.p+"assets/img/fig5.1.222be187.svg"},592:function(e,t,o){e.exports=o.p+"assets/img/fig6.1.728afeab.svg"},593:function(e,t,o){e.exports=o.p+"assets/img/fig7.472c48b9.PNG"},594:function(e,t,o){e.exports=o.p+"assets/img/fig8.1.2324d0d1.svg"},595:function(e,t,o){e.exports=o.p+"assets/img/fig9.13fb4fdc.PNG"},596:function(e,t,o){e.exports=o.p+"assets/img/fig13.64a619aa.PNG"},597:function(e,t,o){e.exports=o.p+"assets/img/fig30.4625741e.PNG"},598:function(e,t,o){e.exports=o.p+"assets/img/tab_slots1_en.fd32cba0.jpg"},599:function(e,t,o){e.exports=o.p+"assets/img/tab_slots2_en.8d31d491.jpg"},600:function(e,t,o){e.exports=o.p+"assets/img/tab_general_en.78de5896.jpg"},601:function(e,t,o){e.exports=o.p+"assets/img/slot_testmode_en.4f688a45.jpg"},602:function(e,t,o){e.exports=o.p+"assets/img/fig12.c885238e.PNG"},603:function(e,t,o){e.exports=o.p+"assets/img/fig34.1.f4c90c14.jpg"},604:function(e,t,o){e.exports=o.p+"assets/img/fig34.2.2e78b5e2.jpg"},605:function(e,t,o){e.exports=o.p+"assets/img/fig34.3.b598f656.jpg"},606:function(e,t,o){e.exports=o.p+"assets/img/fig33.72c12add.PNG"},607:function(e,t,o){e.exports=o.p+"assets/img/fig33.1.e14db2e2.PNG"},608:function(e,t,o){e.exports=o.p+"assets/img/logo.a7651da9.svg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{1064:function(e,t,o){"use strict";o.r(t);var s=o(2),i=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"flipmouse-finger-lip-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#flipmouse-finger-lip-mouse"}},[e._v("#")]),e._v(" FLipMouse - Finger & Lip Mouse")]),e._v(" "),t("p",[t("strong",[e._v("User Manual v3.1")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(577),alt:"FLipMouseLogo"}})]),e._v(" "),t("p",[t("strong",[e._v("Table of Contents")])]),e._v(" "),t("p",[e._v("[TOC]")]),e._v(" "),t("hr"),e._v(" "),t("h1",{attrs:{id:"preface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preface"}},[e._v("#")]),e._v(" Preface")]),e._v(" "),t("p",[e._v("The FLipMouse is an open source Assistive Technology module which is developed at the "),t("a",{attrs:{href:"https://www.technikum-wien.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of Applied Sciences Technikum Wien"),t("OutboundLink")],1),e._v(" and delivered as a DIY-construction kit by the "),t("a",{attrs:{href:"https://asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Foundation"),t("OutboundLink")],1),e._v(". The FLipMouse allows control of a standard computer mouse, a joystick or keyboard keys via minimal finger- or lip-movements. Furthermore, other devices can be controlled via Bluetooth or infrared.")]),e._v(" "),t("p",[e._v("The FLipMouse can be configured via a web-based "),t("em",[e._v("configuration manager")]),e._v(" which can be found at the website "),t("a",{attrs:{href:"https://flipmouse.asterics.eu/index_fm.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("flipmouse.asterics.eu"),t("OutboundLink")],1),e._v(". This user manual includes a description of the configuration manager and explains how to use the different functions and features of the FLipMouse. The FLipMouse can be used on Windows-, Mac- or Linux computers without installation of special software, because it behaves like a standard mouse / joystick / keyboard device. By using the Bluetooth function, smart phones or tablet computers can be controlled - which will also be explained in this manual.")]),e._v(" "),t("p",[e._v("Furthermore, this manual covers important guidelines for using the FLipMouse, in particular cleaning procedures and hygienic precautions.")]),e._v(" "),t("p",[e._v("All design files for the electronics and the 3d-printed enclosure - as well as the software source code - are available as open source and are distributed via the AsTeRICS Foundation website and via GitHub. Detailed instructions are provided in the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/ConstructionKit/ConstructionManual.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("FlipMouse construction manual"),t("OutboundLink")],1),e._v(". Have fun building and using your FLipMouse!")]),e._v(" "),t("p",[e._v("The AsTeRICS Foundation")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://asterics-foundation.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.asterics-foundation.org"),t("OutboundLink")],1)]),e._v(" "),t("p",{attrs:{align:"center",width:"100%"}},[t("img",{attrs:{width:"33%",src:o(578),alt:"Flip, the vagabound grasshopper cartoon character"}})]),e._v(" "),t("h1",{attrs:{id:"hardware-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hardware-overview"}},[e._v("#")]),e._v(" Hardware overview")]),e._v(" "),t("p",[e._v("The FLipMouse is available with a 3d-printed enclosure. Design files for the 3d-printed case are provided in the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/tree/master/Hardware/case-design/3D_printer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github repository"),t("OutboundLink")],1),e._v(". The primary method for interacting with the FLipMouse is the transparent stick (“mouthpiece” or “finger-joystick”) which is attached to the front of the FLipMouse. Replacement sticks can be ordered via the "),t("a",{attrs:{href:"https://www.asterics-foundation.org/webshop",target:"_blank",rel:"noopener noreferrer"}},[e._v("Webshop"),t("OutboundLink")],1),e._v(". (Please note the cleaning instructions in the dedicated section of this manual.)")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"60%",src:o(579)}})]),e._v("\n*Figure 1*: Using the FLipMouse (here: version 2) as mouth-joystick for computers\n"),t("p",[e._v("Additionally, two external momentary switches can be attached to the jack plug connectors on the sides of the FlipMouse enclosure and one button is already integrated on the device.")]),e._v(" "),t("p",[t("strong",[e._v("Users can interact with the FLipMouse in several ways:")])]),e._v(" "),t("ol",[t("li",[e._v("by touching the mouthpiece with the lips or fingers and applying small forces in vertical or horizontal direction")]),e._v(" "),t("li",[e._v("by increasing or reducing pressure in the mouthpiece (puffing or sipping)")]),e._v(" "),t("li",[e._v("by actuating (up to) 3 momentary switches / pushbuttons")]),e._v(" "),t("li",[e._v("if desired, a longer plastic tube can be attached to the pressure sensor so that the joystick can be used with a finger and a separate mouthpiece allows sip/puff control. Alternatively, pressure can be influenced by attaching a rubber ball to the plastic tube (pillow switch / soft switch).")])]),e._v(" "),t("p",[t("strong",[e._v("The hardware features of the FLipMouse:")])]),e._v(" "),t("p",[e._v("(a)    “Zero-way” finger joystick / mouthpiece: very low forces are sufficient to create up/down/left/right movement")]),e._v(" "),t("p",[e._v("o  The zero-way joystick can be used with e.g. fingers or toes")]),e._v(" "),t("p",[e._v("o It can also be used as a mouthpiece (actuated by lips / mouth movements)")]),e._v(" "),t("p",[e._v("o If desired, sip / puff activities into the mouthpiece can trigger additional functions - here 2 different levels of sip/puff force can be used.")]),e._v(" "),t("p",[e._v("(b)    One built-in switch ("),t("em",[e._v("Button1")]),e._v(") on the device, e.g. to change the active configuration (functions)")]),e._v(" "),t("p",[e._v("©    Two 3.5 mm jack plug sockets for attaching external switches to trigger additional functions ("),t("em",[e._v("Button2")]),e._v(" and "),t("em",[e._v("Button3")]),e._v(")")]),e._v(" "),t("p",[e._v("(d)    Color Light Indicator on front side for showing the active configuration, calibration procedure etc.")]),e._v(" "),t("p",[e._v("(e)    Universal infrared remote control receiver and transmitter")]),e._v(" "),t("p",[e._v("(f)    Bluetooth-support e.g. to control smartphones or iOS devices")]),e._v(" "),t("p",[e._v("(g)    “Hot Shoe” Adapter for mounting to a Manfrotto Magic Arm or similar mounting system")]),e._v(" "),t("p",[e._v("(h)    Firmware upgrade via FLipMouse web application on "),t("a",{attrs:{href:"flipmouse.asterics.eu"}},[e._v("flipmouse.asterics.eu")])]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"60%",src:o(580)}})]),e._v("\n*Figure 2*: FLipMouse in 3D-printed enclosure \n"),t("p",[e._v("On the left side of the FLipMouse is a button (B1) that provides a configurable function (e.g. changing the operating mode). A 3.5 mm jack socket allows the connection of an external button.")]),e._v(" "),t("p",[e._v("On the right side of the FLipMouse housing, the infrared (IR) receiver module is accessible. This module can be used to record any infrared remote control commands (e.g. to change the volume or channel settings of a TV set). The IR signals can then be played back via the IR transmitter diode on the back of the FLipMouse. Furthermore, a second external button (B3) can be connected.")]),e._v(" "),t("p",[e._v("The front of the housing offers a connection possibility for the mouthpiece / finger joystick. The current operating mode is also indicated here by an adjustable light color.")]),e._v(" "),t("h1",{attrs:{id:"mounting-and-usage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mounting-and-usage"}},[e._v("#")]),e._v(" Mounting and usage")]),e._v(" "),t("p",[t("strong",[e._v("1. Attach the mouthpiece / joystick")])]),e._v(" "),t("p",[e._v("Put the transparent acrylic tube which is provided with the FLipMouse on the front connector (Luer Lock adapter) and turn it clockwise until it is well seated (please do not turn too hard, because this could damage the Luer Lock adapter or the attachment!)")]),e._v(" "),t("p",[t("strong",[e._v("2. Mount the FLipMouse device appropriately for the user")])]),e._v(" "),t("p",[e._v("The picture shows a “"),t("a",{attrs:{href:"https://www.manfrotto.com/global/single-arm-2-section-196ab-2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manfrotto Gelenkarm"),t("OutboundLink")],1),e._v("” + ”"),t("a",{attrs:{href:"https://www.manfrotto.com/global/super-photo-clamp-without-stud-aluminium-035/",target:"_blank",rel:"noopener noreferrer"}},[e._v("SuperClamp"),t("OutboundLink")],1),e._v("” mount combination. You could also use the "),t("a",{attrs:{href:"https://www.manfrotto.com/global/magic-photo-arm-smart-centre-lever-and-flexible-extension-143n/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manfrotto Magic Arm"),t("OutboundLink")],1),e._v(" or any other kind of mounting solution which fits to the 3/8”-HotShoe-Adapter of the FLipMouse.")]),e._v(" "),t("p",[t("em",[e._v("Usage as Mouth Joystick")]),e._v(" "),t("img",{attrs:{src:o(581),alt:"Usage as Mouth Controller"}}),e._v(" "),t("em",[e._v("Figure 3")]),e._v(": Using the FLipMouse with Mouth/Lips")]),e._v(" "),t("p",[e._v("Ensure that the head of the user rests comfortably. The mouthpiece should gently touch the lips. It is not useful to insert the mouthpiece into the mouth - this could be uncomfortable and make it harder to control the lateral movement.")]),e._v(" "),t("p",[t("em",[e._v("Usage as Finger Joystick")]),e._v(" "),t("img",{attrs:{src:o(582),alt:"Usage as Finger-Joystick"}}),e._v(" "),t("em",[e._v("Figure 4")]),e._v(": Using the FLipMouse with fingers")]),e._v(" "),t("p",[e._v("If the user desires to actuate the FLipMouse with a finger or the thumb, mount the system appropriately so that the hand is in a resting position and the finger can touch the joystick without stress. Attach one or two additional external switches if desired, and mount the switches at suitable locations (for example at the legs/toes/shoulder etc.).")]),e._v(" "),t("p",[t("em",[e._v("Soft-Switch using a rubber ball")]),e._v("\nA plastic tube can be attached to the front connector of the FLipMouse using a "),t("em",[e._v("Luer Lock")]),e._v(" adapter. This plastic tube can be connected to a soft ball, so that pressing the ball results in usable pressure changes. This solution could be used as a soft head-switch / pillow-switch or shoulder-switch and can be combined with other external switches.")]),e._v(" "),t("p",[t("strong",[e._v("3. Attach the FLipMouse to a Computer, Tablet or Smart Phone")]),e._v(" using a desired interface (USB, Bluetooth or USB-OTG). Please note that the FLipMouse settings can only be changed if the FLipMouse is attached to a PC running via USB.")]),e._v(" "),t("h4",{attrs:{id:"using-the-flipmouse-via-usb"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-flipmouse-via-usb"}},[e._v("#")]),e._v(" Using the FLipMouse via USB")]),e._v(" "),t("p",[e._v("The FLipMouse can be connected via a USB-micro cable to a computer. After attaching the FLipMouse, a zero-calibration is performed which takes about 2 seconds. During that time, the mouthpiece should not be touched.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(583),alt:"USB micro cable connection"}}),e._v(" "),t("em",[e._v("Figure 5")]),e._v(": Connecting the FLipMouse with the computer")]),e._v(" "),t("p",[t("strong",[e._v("Please be careful")]),e._v(" when attaching the USB plug, strong forces might damage the connector!")]),e._v(" "),t("h4",{attrs:{id:"using-the-flipmouse-via-bluetooth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-flipmouse-via-bluetooth"}},[e._v("#")]),e._v(" Using the FLipMouse via Bluetooth")]),e._v(" "),t("p",[e._v("The Bluetooth–feature for the FLipMouse allows wireless mouse/keyboard control of computers, tablets and smart phones. Furthermore, iPhones or iPads can be used via VoiceOver & assistive switch support. In case the FLipMouse should only be used via Bluetooth, the power supply has to be established via a USB micro cable (either from a 5V wall adapter or from a USB power bank).")]),e._v(" "),t("h4",{attrs:{id:"using-the-flipmouse-via-usb-otg"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-flipmouse-via-usb-otg"}},[e._v("#")]),e._v(" Using the FLipMouse via USB-OTG")]),e._v(" "),t("p",[e._v("The FLipMouse should work with any operating system which supports USB HID (Mouse/Keyboard/Joystick) devices, such as Windows, Linux or MacOS. Several Android devices provide an USB port with USB-OTG (“on-the-go”) functionality. If your device supports “OTG”, you can attach the FLipMouse using an USB-OTG-adapter/cable (see picture below). After attaching, you should see a mouse cursor and/or on-screen keyboard. You can test if your Android phone or tablet supports the USB-OTG function with the “OTG checker” app.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(584),alt:"smartphone"}}),e._v(" "),t("em",[e._v("Figure 6")]),e._v(": Using the FLipMouse with a Smartphone or Tablet via USB-OTG")]),e._v(" "),t("h1",{attrs:{id:"the-flipmouse-configuration-manager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-flipmouse-configuration-manager"}},[e._v("#")]),e._v(" The FLipMouse Configuration Manager")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("FLipMouse Configuration Manager")]),e._v(" offers a Graphical User Interface (GUI) for the adaptation of the FLipMouse device to personal preferences and needs. The Configuration Manager is available via the website: "),t("a",{attrs:{href:"https://flipmouse.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://flipmouse.asterics.eu"),t("OutboundLink")],1),e._v(". The FLipMouse Configuration Manager sends and receives information from/to the FLipMouse through a communication port (COM port). "),t("strong",[e._v("Please note that currently supported Webbrowsers are: Chrome, Chromium, Edge and Safari")]),e._v(".")]),e._v(" "),t("p",[e._v("The following figure shows the welcome page of the FLipmouse Configuration Manager:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"70%",src:o(585)}})]),e._v("\n*Figure 7: Welcome page of the FLipMouse Configuration Manager*\n"),t("h2",{attrs:{id:"establishing-connection-with-the-flipmouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#establishing-connection-with-the-flipmouse"}},[e._v("#")]),e._v(" Establishing connection with the FLipMouse")]),e._v(" "),t("ol",[t("li",[e._v("Make sure the FLipMouse is connected to your computer via an USB port and that a supported webbrowser - Chrome, Chromium, Edge or Safari - is used. (The Test Mode allows using the Configuration Manager without a real FlipMouse, which can be useful e.g. to view or change settings from a backup-file.)")]),e._v(" "),t("li",[e._v("Click "),t("em",[e._v("CONNECT TO FLIPMOUSE CONNECTED VIA USB")]),e._v(" and select the appropriate COM port (communication port) in the selection box. If the selection box appears empty, this means that no communication port has been detected. In this case, please reconnect the FLipMouse device and wait for the COM port to be updated. If no COM port can be selected even after repeated attempts, there is probably a problem with the driver. In this case, please create an "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("Issue in the Github Repository"),t("OutboundLink")],1),e._v(" or look for possible solutions there.")]),e._v(" "),t("li",[e._v("Once the COM port is selected, click the “Connect” button at the bottom of the selection box.")]),e._v(" "),t("li",[e._v("After successful connection of the COM port, the main window is opened. The title bar shows the COM port status “connected” in the upper right corner of the window. The selection box "),t("em",[e._v("Select slot")]),e._v(" shows the active configuration settings (slot). Below this, the tabs with the main functions can be selected:")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(586),alt:"ConfigManager Title bar"}}),e._v(" "),t("em",[e._v("Figure 8: Title bar of the FLipMouse Configuration Manager")])]),e._v(" "),t("h2",{attrs:{id:"changing-settings-and-features"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changing-settings-and-features"}},[e._v("#")]),e._v(" Changing Settings and Features")]),e._v(" "),t("h3",{attrs:{id:"memory-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#memory-slots"}},[e._v("#")]),e._v(" Memory Slots")]),e._v(" "),t("p",[e._v("The Configuration Manager allows adjustment of all settings an operational modes of the FLipMouse. The settings are stored in individual "),t("strong",[e._v("slots")]),e._v(" - for example one slot for fast mouse operation, one slot for slow mouse operation, one slot for keyboard-keys ASDW etc. All settings are stored in the FLipMouse. The settings can also be saved to (or loaded from) a file on your computer.\nSettings which were stored in the FLipMouse stay valid also after the power supply has been removed. When the FLipMouse is plugged in the next time, the settings will be available – also if you use another computer or operating system!")]),e._v(" "),t("h2",{attrs:{id:"tab-stick-config"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-stick-config"}},[e._v("#")]),e._v(" Tab STICK-CONFIG")]),e._v(" "),t("p",[e._v("In the STICK-CONFIG tab, the "),t("strong",[e._v("operational mode of the mouthpiece/joystick for the active slot is set")]),e._v(". Furthermore, the "),t("em",[e._v("sensitivity")]),e._v(", the "),t("em",[e._v("deadzone")]),e._v(" and other parameters can be changed. The ability to configure multiple slots with different stick settings allows flexible application scenarios for the FLipMouse. The individual slots can be switched by any action of the user (e.g. pressing an external button or puffing strongly into the mouthpiece, see section "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#tab-actions",target:"_blank",rel:"noopener noreferrer"}},[t("em",[e._v("Assigning different actions")]),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[t("img",{attrs:{src:o(587),alt:"ConfigManager"}})]),e._v(" "),t("h3",{attrs:{id:"operational-mode-use-stick-for"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#operational-mode-use-stick-for"}},[e._v("#")]),e._v(" Operational Mode (“Use stick for …”)")]),e._v(" "),t("p",[e._v("This setting determines the effect of touching the stick:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Mouse movement:")]),e._v(" The stick moves the mouse pointer (this is the default mode to control computers or smartphones). If this setting is active, the other parameters (e.g. sensitivity or deadzone) directly affect the speed of the mouse pointer.")]),e._v(" "),t("li",[t("strong",[e._v("Alternative Actions:")]),e._v(" If this mode is selected, the stick can be used for a whole range of different actions (e.g. pressing the ‘A’ key when the stick is pressed upwards, or playing an infrared command when the stick is pressed to the right). These actions can be set in the ACTIONS tab (see section "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#tab-actions",target:"_blank",rel:"noopener noreferrer"}},[t("em",[e._v("Assigning different actions")]),t("OutboundLink")],1),e._v("). If this setting is active, the deadzone parameter is primarily decisive for the actuation strength from which the assigned action is triggered.")]),e._v(" "),t("li",[t("strong",[e._v("Joystick (XY):")]),e._v(" In this mode, the stick mimics the X and Y axis of a joystick/gamepad.")]),e._v(" "),t("li",[t("strong",[e._v("Joystick (ZR):")]),e._v(" In this mode, the stick mimics the Z and R axis of a joystick/gamepad.")]),e._v(" "),t("li",[t("strong",[e._v("Joystick (Slider):")]),e._v(" In this mode, the stick mimics two slider axes of a joystick/gamepad.")])]),e._v(" "),t("p",[e._v("If one of the joystick modes is selected, the FLipMouse behaves like a gamepad with 6 axes ("),t("em",[e._v("X/Y")]),e._v(", "),t("em",[e._v("Z/Rotation")]),e._v(" and "),t("em",[e._v("Slider1/Slider2")]),e._v("). Since the FLipMouse stick can only provide 2 deflections at a time, a selection of joystick axes must be made:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(588)}})]),e._v(" "),t("p",[t("em",[e._v("Figure 9: Set stick configuration for joystick movement")])]),e._v(" "),t("p",[e._v("Please note that the joystick function must be supported by corresponding software applications - e.g. computer games. (Microsoft Windows offers a test software for live display of joystick axis and button activities - this tool can be started by entering “"),t("em",[e._v("joy.cpl")]),e._v("” in the search dialog).")]),e._v(" "),t("h4",{attrs:{id:"calibrate-center-position"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#calibrate-center-position"}},[e._v("#")]),e._v(" Calibrate center position")]),e._v(" "),t("p",[e._v("Pressing this button performs a calibration of the rest position of the stick. This takes about 1 second - then the calibration sequence is completed. During this time the stick should not be touched. (Calibration can also be assigned as an "),t("em",[e._v("Alternate Action")]),e._v(" if required, so that it can be performed while the FLipMouse device is in use.")]),e._v(" "),t("h4",{attrs:{id:"rotate-right-change-stick-orientation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rotate-right-change-stick-orientation"}},[e._v("#")]),e._v(" Rotate Right (Change Stick Orientation)")]),e._v(" "),t("p",[e._v("The FLipMouse is attached with a "),t("em",[e._v('HotShoe 3/8"')]),e._v(" mounting screw, located on the bottom of the FLipMouse housing. The orientation can be changed as needed (for example, if the FLipMouse is mounted sideways, the stick orientation can be changed accordingly so that movements are still interpreted correctly). Clicking on “ROTATE RIGHT” changes the orientation by 90°. Alignment settings for 0 / 90 / 180 and 270 degrees are possible, so that any mounting position is possible.")]),e._v(" "),t("h3",{attrs:{id:"setting-the-motion-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-the-motion-parameters"}},[e._v("#")]),e._v(" Setting the motion parameters")]),e._v(" "),t("p",[e._v("The scroll bars make it possible to change the motion parameters of the stick and the behavior of the mouse pointer according to the user’s wishes. The behavior of the following features can be changed:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(589)}})]),e._v("\n*Figure 10: Tab STICK-CONFIG, Setting the motion parameters*\n"),t("h4",{attrs:{id:"sensitivity"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensitivity"}},[e._v("#")]),e._v(" Sensitivity")]),e._v(" "),t("p",[e._v("When using the stick for cursor movement, the sensitivity of the stick can be adjusted via the "),t("em",[e._v("Sensitivity")]),e._v(" scroll bar. A smaller value results in slower cursor movement. To change the value, click and drag the scroll bar knob or click the bar next to the knob.")]),e._v(" "),t("h4",{attrs:{id:"deadzone"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deadzone"}},[e._v("#")]),e._v(" Deadzone")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("Deadzone")]),e._v(" setting defines a passive zone/range for the stick movements: If the deadzone value is low, even very small stick movements will cause the cursor to move (or perform the assigned alternate action - see chapter "),t("em",[e._v("Assigning alternative actions")]),e._v("). If the deadzone is set too low, the cursor may start moving unintentionally. In this case, increase the value of the deadzone so that the amount of deflection is suitable for a particular user. In the "),t("em",[e._v("Alternative actions")]),e._v(" operating mode, it makes sense to use a larger value for the deadzone so that, for example, the directions can be triggered unambiguously when keyboard actions are used.")]),e._v(" "),t("h4",{attrs:{id:"split-axis-control-for-sensitivity-and-deadzone"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#split-axis-control-for-sensitivity-and-deadzone"}},[e._v("#")]),e._v(" Split axis control for sensitivity and deadzone")]),e._v(" "),t("p",[e._v("If desired, the sensitivity- and deadzone-values for horizontal or vertical movements can be changed individually. In order to do that, select “"),t("em",[e._v("show x/y separately")]),e._v("”, as shown below:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(590)}})]),e._v("\n*Figure 11: Tab STICK-CONFIG, splitting x/y-axis*\n"),t("h4",{attrs:{id:"maximum-speed"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#maximum-speed"}},[e._v("#")]),e._v(" Maximum Speed")]),e._v(" "),t("p",[e._v("Turning the maximum speed setting to a low level is useful if a user desires to limit the cursor speed, keeping high sensitivity / acceleration. (Only relevant in operational mode "),t("em",[e._v("Mouse Movement")]),e._v(").")]),e._v(" "),t("h4",{attrs:{id:"acceleration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acceleration"}},[e._v("#")]),e._v(" Acceleration")]),e._v(" "),t("p",[e._v("The acceleration setting allows influencing the acceleration behavior of the mouse cursor: if acceleration is set to a low level, even a strong deflection of the stick will start a slow (but progressing) cursor movement which makes it easier to reach small targets precisely. (Only relevant in operational mode "),t("em",[e._v("Mouse Movement")]),e._v(").")]),e._v(" "),t("h4",{attrs:{id:"sensitivity-profile"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensitivity-profile"}},[e._v("#")]),e._v(" Sensitivity Profile")]),e._v(" "),t("p",[e._v("(This setting is enabled by clicking "),t("em",[e._v("“Show advanced options”")]),e._v(".)\nDue to mechanical reasons, the force sensors of the FLipMouse show small inaccuracies which can result in mouse cursor drifting. The selection box for different Sensitivity Profiles allows to change overall gain/amplification and drift correction settings. Usually (and unless no other sensor variants are in use) the setting “Medium” should be used.")]),e._v(" "),t("h3",{attrs:{id:"applying-the-settings-to-all-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applying-the-settings-to-all-slots"}},[e._v("#")]),e._v(" Applying the settings to all slots")]),e._v(" "),t("p",[e._v("The current controller values for the motion parameters as well as the stick setting can be applied to all existing slots using the two buttons at the end of the tab. (This possibility exists also in other tabs, like the settings of the suction-puff control).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(591),alt:"ConfigManager"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 12: Apply settings to all slots")])]),e._v(" "),t("h2",{attrs:{id:"tab-sip-and-puff"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-sip-and-puff"}},[e._v("#")]),e._v(" Tab SIP AND PUFF")]),e._v(" "),t("p",[e._v("In the tab “SIP-PUFF-CONTROL”, the threshold values for sipping and puffing into the mouthpiece can be set as desired. If the FLipMouse is connected, the current pressure values can be monitored using the horizontal blue column. The current minimum and maximum values can be seen from the vertical blue and red lines). Two threshold values can be set for sip and puff (Strong and Light), to which different actions can be assigned in the “ACTIONS” tab. "),t("strong",[e._v("Tip")]),e._v(": the threshold values for light actuation should be set as sensitively as possible, and the difference to strong actuation should be large enough to prevent accidental triggering of the assigned actions. It may be useful not to use the strong thresholds in the initial learning phase (i.e. set them so that they are not reachable at all).")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(592)}})]),e._v("\n*Figure 13: Tab SIP AND PUFF*\n"),t("p",[e._v("Note that the idle pressure level (without sip or puff) is around 512, and the level increases when you puff\ninto the mouthpiece, indicating increased pressure. With the sliders, the threshold pressure for sip and puff can be regulated. The grey dotted line represents the actual pressure. The blue and red dotted lines represent the limits reached in this session.")]),e._v(" "),t("h4",{attrs:{id:"extended-gestures-for-strong-sip-and-strong-puff"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#extended-gestures-for-strong-sip-and-strong-puff"}},[e._v("#")]),e._v(" Extended gestures for strong sip and strong puff")]),e._v(" "),t("p",[e._v("By combining a strong sip or strong puff with a short stick movement, up to 8 additional actions can be triggered (e.g. “strong sip + up” or “strong puff + left”). The stick must be deflected in the corresponding direction shortly "),t("em",[e._v("after")]),e._v(" the strong sip or puff activity. (If the stick is not moved within one second, the action for strong sip or puff is triggered).")]),e._v(" "),t("h2",{attrs:{id:"tab-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-actions"}},[e._v("#")]),e._v(" Tab ACTIONS")]),e._v(" "),t("p",[e._v("The ACTIONS tab allows the mapping of user activities to desired FlipMouse functions (actions). The user activities are:")]),e._v(" "),t("ul",[t("li",[e._v("pressing or releasing the 3 buttons (built-in button 1 or external button 2 or 3)")]),e._v(" "),t("li",[e._v("stick movements (up/down/left/right) which exceed the deadzone threshold value")]),e._v(" "),t("li",[e._v("sip and puff activities (or extended sip/puff gestures).")])]),e._v(" "),t("p",[e._v("The assignment of user activities to actions is displayed in a table. By using the display options "),t("em",[e._v("Current slot")]),e._v(", "),t("em",[e._v("Table")]),e._v(" or "),t("em",[e._v("List")]),e._v(" it is possible to get an overview of all existing slots or a detailed display of the current slot:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(593)}})]),e._v("\n*Figure 14: Assign different actions to user activities*\n"),t("p",[e._v("The assignment of actions can be changed by clicking on the entry in the table - this opens a window with further options:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(594)}})]),e._v("\n*Figure 15: Pop-up window for choice of desired action*\n"),t("p",[e._v("In the following, the individual action categories and different actions will be briefly described.")]),e._v(" "),t("h3",{attrs:{id:"action-category-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-mouse"}},[e._v("#")]),e._v(" Action category “Mouse”")]),e._v(" "),t("p",[t("strong",[e._v("Hold Left / Middle / Right Mouse Button")]),e._v("\nThe "),t("em",[e._v("hold")]),e._v(" action presses a particular mouse button continuously (for example for dragging an item across the screen). The mouse button is released when the assigned user activity ends (for example when the sip/puff activity ends, when the stick is moved back to middle position or when an external button is released).")]),e._v(" "),t("p",[t("strong",[e._v("Click Left / Middle / Right Mouse Button")]),e._v("\nCreates mouse button clicks. (The left/right or middle mouse button is pressed and released again after a short time).")]),e._v(" "),t("p",[t("strong",[e._v("Double Click Left Mouse Button")]),e._v("\nCreates a double click with the left mouse button.")]),e._v(" "),t("p",[t("strong",[e._v("Toggle Left / Middle / Right Mouse Button")]),e._v("\nThe "),t("em",[e._v("toggle")]),e._v(" action changes the state of a mouse button from pressed to not pressed and vice versa. This is useful e.g. if keeping a user activity up for a longer time (e.g. for dragging an item or for keeping a key pressed while other keys are pressed/released).")]),e._v(" "),t("p",[t("strong",[e._v("Wheel Up / Down")]),e._v("\nThe actions "),t("em",[e._v("Wheel up")]),e._v(" or "),t("em",[e._v("Wheel down")]),e._v(" emulate the mouse scroll wheel. Triggering the "),t("em",[e._v("Wheel up")]),e._v(" action results in upwards scrolling, while "),t("em",[e._v("wheel down")]),e._v(" results in downward scrolling. This action is useful for example for reading documents or web sites.")]),e._v(" "),t("p",[t("strong",[e._v("Move Mouse horizontally / vertically (x-axis / y-axis)")]),e._v("\nThe "),t("em",[e._v("Move mouse horizontally (x-axis)")]),e._v(" and "),t("em",[e._v("Move mouse vertically (y-axis)")]),e._v(" functions generate computer mouse movements along the selected axes. Speed parameters can be set for these functions in the field that appears below. As long as the user activity is present, the mouse pointer is accelerated up to this maximum speed. Please note that:")]),e._v(" "),t("p",[t("em",[e._v("A positive value for the X direction moves the mouse pointer to the right.\nA negative value for the X direction moves the mouse pointer to the left.\nA positive value for the Y direction moves the mouse pointer down.\nA negative value for the Y direction moves the mouse pointer up.")])]),e._v(" "),t("h3",{attrs:{id:"action-category-joystick"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-joystick"}},[e._v("#")]),e._v(" Action category: Joystick")]),e._v(" "),t("p",[t("strong",[e._v("Joystick set x-/y-/z-axis/slider")]),e._v("\nThese actions can be used to send a desired value to the joystick axis. The selectable joystick axes are: "),t("em",[e._v("X / Y / Z / Z-Turn / slider")]),e._v(". The joystick is moved back to middle position when the associated user activity ends.")]),e._v(" "),t("p",[t("strong",[e._v("Press Joystick Button")]),e._v("\nThis action can be used to press a desired joystick button. The FLipMouse device supports 32 buttons, so any value from 1 to 32 is allowed. The joystick button is released when the associated user activity ends.")]),e._v(" "),t("p",[t("strong",[e._v("Joystick hat position")]),e._v("\nThis action sets the orientation of the joystick “hat” (in degrees). Allowed values are:\n"),t("em",[e._v("-1, 0, 45, 90, 135, 180, 225, 270, 315")]),e._v(". The value of -1 sets the hat to the middle (idle) position.\nThe joystick hat is moved back to middle position when the associated user activity ends.")]),e._v(" "),t("h3",{attrs:{id:"action-category-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-keyboard"}},[e._v("#")]),e._v(" Action category: Keyboard")]),e._v(" "),t("p",[t("strong",[e._v("Press / Hold / Toggle Keys")]),e._v("\nThe "),t("em",[e._v("Press Keys")]),e._v(" action allows pressing one or multiple keyboard keys. A second drop-down menu with possible key identifiers is displayed ("),t("em",[t("strong",[e._v("Add keys")])]),e._v("). "),t("strong",[e._v("When a key is selected from this menu, it has to be added (Click ADD)")]),e._v(" to the "),t("em",[e._v("Insert keys text")]),e._v(" field. Thus, multiple keyboard keys can be pressed simultaneously. The keys are released when the associated user activity ends. If you would like to remove or change the assigned keys, you must clear the currently assigned keys by pressing the “CLEAR” button next to the Insert keys field.")]),e._v(" "),t("p",[e._v("Common key combinations include:\nKEY_CTRL + Z: triggers undo function\nKEY_CTRL + C: triggers copy function\nKEY_CTRL + V: triggers paste function\nKEY_CTRL + KEY_ALT + KEY_ DELETE")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("Hold Key")]),e._v(" action keeps the key pressed until the user activity ends.\nThe "),t("em",[e._v("Toggle Key")]),e._v(" action changes the key state from pressed to not pressed and vice versa with each user activity.")]),e._v(" "),t("p",[e._v("For a list of all supported key identifiers, see "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#supported-key-identifiers",target:"_blank",rel:"noopener noreferrer"}},[e._v("appendix"),t("OutboundLink")],1),e._v("\nor have a look at the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki/at-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse Wiki / Github pages"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(595)}})]),e._v("\n*Figure 16: Add keys for the action press / hold / toggle keys*\n"),t("p",[t("strong",[e._v("Write Word")]),e._v("\nThe "),t("em",[e._v("Write word")]),e._v(" action allows typing a particular text/phrase whenever a user activity occurs (for example: write “Hello” whenever you move the FLipMouse stick up). Selecting this action displays a blank text box under the drop-down menu where the text can be entered, as shown below:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"80%",src:o(596)}})]),e._v("\n*Figure 17: Write word function*\n"),t("p",[e._v("In this example, “Hello” will be written each time button 2 of the FLipMouse is pressed.")]),e._v(" "),t("h3",{attrs:{id:"action-category-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-device"}},[e._v("#")]),e._v(" Action category: Device")]),e._v(" "),t("p",[t("strong",[e._v("No Command")]),e._v("\nIf the action "),t("em",[e._v("No Command")]),e._v(" is selected, no action will be assigned to the respective user activity.")]),e._v(" "),t("p",[t("strong",[e._v("Load Next Slot")]),e._v("\nThis action is only relevant if you have stored multiple FLipMouse configuration slots. This action switches to the next slot. If the last slot is already reached, triggering this action will switch to the first slot. When you switch the slot, the built-in LED bulbs will change the color of the device front accordingly, showing the active slot. Additionally an acoustic signal indicates the slot number (the number of tones represents the slot number).")]),e._v(" "),t("p",[t("strong",[e._v("Load Slot by Name")]),e._v("\nThis action activates the configuration slot with the given name (if it exists). The name can be specified in the text field. This action is only relevant if you have stored multiple FLipMouse configuration slots. The LEDs indicate the slot number as described above.")]),e._v(" "),t("p",[t("strong",[e._v("Calibrate middle position")]),e._v("\nThis action starts the calibration sequence for the middle position of the stick. Please refer to the description "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#calibration-of-the-sticks-middle-position",target:"_blank",rel:"noopener noreferrer"}},[e._v("“"),t("em",[e._v("Calibration of the stick’s middle position")]),e._v("”"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"action-category-infrared"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-infrared"}},[e._v("#")]),e._v(" Action category: Infrared")]),e._v(" "),t("p",[t("strong",[e._v("Play / Hold / Stop Infrared Command")]),e._v("\nThis action replays the infrared (IR-)code with the given command name. The existing (recorded) IR-commands can be selected from the drop-down menu. The "),t("em",[e._v("play")]),e._v(" action sends the recorded code once, whereas the "),t("em",[e._v("hold")]),e._v(" action repeats the code until the user activity ends.")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"70%",src:o(597)}})]),e._v("\n*Figure 18: Infrared Recording and Replay Configuration Manager*\n"),t("p",[e._v("The FLipMouse device includes an infrared remote control receiver module and a high current IR LED so that it can record and replay remote control codes of many remote control devices used in consumer electronics. If you want to use this feature of the FLipMouse, make sure that the IR sending LED is points towards the device you want to control. For instructions how to connect an external IR LED to increase the transmit power, please visit the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse Wiki pages"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(598),alt:"infrared"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 19: Infrared Code Recording (here: FLipMouse V1 hardware)")])]),e._v(" "),t("p",[e._v("To record a new IR code, go to the tab ACTIONS. Click the desired action and select the action category “"),t("strong",[e._v("Infrared")]),e._v("” in the popup-window. There, three different types of IR-actions can be selected from the combo box:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Play infrared command")]),e._v(": sends the recorded code once")]),e._v(" "),t("li",[t("em",[e._v("Hold infrared command")]),e._v(": repeats the code until the user activity ends")]),e._v(" "),t("li",[t("em",[e._v("Stop infrared command")]),e._v(": stops a currently plaing IR-code")])]),e._v(" "),t("p",[e._v("The existing commands can be chosen from the drop-down menu.")]),e._v(" "),t("p",[e._v("In this window you can also manage IR commands. Next to "),t("em",[e._v("New IR Command")]),e._v(", you can enter a name and then click RECORD - point your IR remote to the side of the FLipMouse where the LEDs stick out and send the IR command (there is a 10 seconds time limit for the recording phase). The new command is now stored in the FLipMouse and can be chosen and replayed by selecting it’s name in the drop down menu. If the command is not correctly replayed, try to increase the IR-Code timeout – for example to 250 milliseconds. Using "),t("em",[e._v("Delete IR command")]),e._v(" commands can be deleted.")]),e._v(" "),t("h3",{attrs:{id:"action-category-macro"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-macro"}},[e._v("#")]),e._v(" Action category: Macro")]),e._v(" "),t("p",[t("strong",[e._v("Execute Command Macro")]),e._v("\nThis action allows running a so-called command macro which consists of several individual actions. Thus, a desired sequence of actions can be performed which consists for example of a number of mouse moves, mouse clicks, text inputs or key presses. This action is powerful, but also a bit more complicated because the individual actions must be specified in form of so-called AT-commands which are separated by semicolons. For example: the following command macro will move the mouse cursor 100 steps to the left, 20 steps up, then wait 100 milliseconds and then perform a left mouse click: “MX 100; MY -20; WA 100; CL”. For a list and detailed explanation of all supported AT-commands see "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#supported-macro-commands",target:"_blank",rel:"noopener noreferrer"}},[e._v("Supported Macro Commands"),t("OutboundLink")],1),e._v(" or have a look at the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki/at-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse Wiki / Github pages"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"tab-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-slots"}},[e._v("#")]),e._v(" Tab SLOTS")]),e._v(" "),t("p",[e._v("In the SLOTS tab you can create new slots, delete existing slots, download a single or all slots (backup settings) and upload a file containing a complete configuration with multiple slots (restore backup). Furthermore, several demo settings (presets) can be applied.")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(599)}})]),e._v("\n*Figure 20: SLOTS Settings Tab*\n"),t("h3",{attrs:{id:"slot-list-slot-selection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slot-list-slot-selection"}},[e._v("#")]),e._v(" Slot List / Slot selection")]),e._v(" "),t("p",[e._v("The Slot List displays all existing slots in the correct order. The current slot is indicated by the green row color. Clicking another slot in the Slot-List activates that particular slot. Furthermore, at the top center of the Configuration Manager window, the current slot is shown in the "),t("em",[e._v("Select Slot")]),e._v(" box and can be changed there. The settings of the current slot will be stored and remembered when changing to another slot. The maximum number of slots is 10.")]),e._v(" "),t("h4",{attrs:{id:"slot-color"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slot-color"}},[e._v("#")]),e._v(" Slot Color")]),e._v(" "),t("p",[e._v("Each slot can be assigned with a color which is displayed on the front panel of the FLipMouse. The color can be chosen from a selection dialog by clicking the colored button.")]),e._v(" "),t("h4",{attrs:{id:"connection-mode-usb-or-bluetooth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connection-mode-usb-or-bluetooth"}},[e._v("#")]),e._v(" Connection mode (USB or Bluetooth)")]),e._v(" "),t("p",[e._v("Clicking the "),t("em",[e._v("Connection")]),e._v(" button in the Slot List switches between USB or Bluetooth mode for this particular slot. The Bluetooth mode allows control of cell phones, tablets and computers which provide Bluetooth capability. In this way, custom slots can be created for USB or Bluetooth, so that it is possible to switch e.g. from a laptop (USB) to a wireless connection (phone / tablet) and back (using the "),t("em",[e._v("Next Slot")]),e._v(" or "),t("em",[e._v("Load Slot by Name")]),e._v(" actions.")]),e._v(" "),t("p",[t("strong",[e._v("Bluetooth pairing")]),e._v("\nThe Bluetooth function can only work if a host devices is connected (paired) with the FLipMouse. (A host device can be for example, a cell phone with Android or iOS operating system.) The FLipMouse can only be paired with a host device if no other device is currently connected and thus pairing mode is active. An active pairing mode of the FlipMouse is indicated via slow dimming of the light color on the front of the FLipMouse module. As soon as a Bluetooth connection is established, the light color lights up continuously. To establish the pairing, open the Bluetooth settings of your host device, enable the Bluetooth feature, select "),t("em",[e._v("Add new BT device")]),e._v(", and then select the FLipMouse from the list of available devices.")]),e._v(" "),t("h4",{attrs:{id:"delete-slot"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#delete-slot"}},[e._v("#")]),e._v(" Delete slot")]),e._v(" "),t("p",[e._v("A slot can be removed by clicking the "),t("em",[e._v("Delete")]),e._v(" button in the Slot List.")]),e._v(" "),t("h4",{attrs:{id:"download-slot"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#download-slot"}},[e._v("#")]),e._v(" Download slot")]),e._v(" "),t("p",[e._v("A slot can be stored on the computer by clicking the "),t("em",[e._v("Download Slot")]),e._v(" button in the Slot List (a file will be downloaded from your browser - you can store it wherever you like).")]),e._v(" "),t("h3",{attrs:{id:"create-a-new-slot-copy-existing-slot"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-a-new-slot-copy-existing-slot"}},[e._v("#")]),e._v(" Create a new Slot / Copy existing Slot")]),e._v(" "),t("p",[e._v("A new slot can be created by copying the settings of the currently active slot. In order to do this, enter the desired name for the new slot into the corresponding text field ("),t("em",[e._v("Insert name for new slot")]),e._v("). Then, click the “CREATE SLOT” button. This "),t("strong",[e._v("appends a copy of the currently active slot")]),e._v(" to the end of the Slot List and assigns a new name for it.")]),e._v(" "),t("h3",{attrs:{id:"upload-slots-to-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upload-slots-to-device"}},[e._v("#")]),e._v(" Upload Slots to device")]),e._v(" "),t("h4",{attrs:{id:"upload-slots-from-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upload-slots-from-file"}},[e._v("#")]),e._v(" Upload Slots from file")]),e._v(" "),t("p",[e._v("This function lets you select a Slots-file (.set) from your computer and upload it to the FLipMouse (restore a backup). Be careful - this deletes all existing Slot-settings of your device!")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"100%",src:o(600)}})]),e._v(" "),t("p",[t("em",[e._v("Figure 21: Upload slots (resore Backup)")])]),e._v(" "),t("h4",{attrs:{id:"appy-demo-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#appy-demo-settings"}},[e._v("#")]),e._v(" Appy Demo Settings")]),e._v(" "),t("p",[e._v("This function lets you apply existing demo settings which have bee made by us to show different functions and applications scenarios of the FLipMouse. The existing presets can be chosen from the Selection box. In case a short description is available, it can be opened in a pop-up window. The selected demo-preset is applied when the corresponding button is clicked.")]),e._v(" "),t("h3",{attrs:{id:"create-backup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-backup"}},[e._v("#")]),e._v(" Create Backup")]),e._v(" "),t("p",[e._v("Clicking the button "),t("em",[e._v("Download all slots")]),e._v(" transfers all current slots to a settings file (.set) which is the stored on your computer. All settings can thus be transferred to the same or to another FLipMouse device. Multiple setups (for example for individual users or use-cases) can be kept on a computer and applied with a single click. A file chooser window will be opened which allows selection of the desired filename for saving or loading the configuration.")]),e._v(" "),t("h2",{attrs:{id:"tab-general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-general"}},[e._v("#")]),e._v(" Tab GENERAL")]),e._v(" "),t("p",[e._v("The GENERAL tab allows changing the USB/Bluetooth mode and apply firmware updates of the FLipmouse device and the Bluetooth Add-On module (if installed):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(601),alt:"general"}}),e._v(" "),t("em",[e._v("Figure 22: General Settings")])]),e._v(" "),t("h3",{attrs:{id:"slot-test-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slot-test-mode"}},[e._v("#")]),e._v(" Slot Test Mode")]),e._v(" "),t("p",[e._v("The Slot test mode allows a temporary application of settings in order to perform a slot test and then return to a working FLipmouse configuration. When the Slot test mode is enabled, modifications in the settings are not applied to the FlipMouse as usual. This feature allows FLipMouse users to experiment with slot settings without the risk of “locking themselfes out”. For example: for creating and testing a slot with keyboard key actions for a gaming application, a user can click "),t("em",[e._v("Test current slot")]),e._v(", then switch to the gaming application during the countdown time of 10 seconds, then test the current slot settings with the FLipMouse for 90 seconds, and then automatically return to the previous mouse cursor control settings. If the settings work as desired, the current slot can be saved, else the slot settings may be reverted.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(602),alt:"general"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 23: SLOT Test Mode")])]),e._v(" "),t("h3",{attrs:{id:"firmware-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#firmware-version"}},[e._v("#")]),e._v(" Firmware Version")]),e._v(" "),t("p",[e._v("Here you can see the installed version of the FLipMouse software (firmware). If the installed version is older than the version available online in the FLipMouse github repository, the option “UPDATE FIRMWARE” is displayed (otherwise “OVERWRITE FIRMWARE” is displayed). Clicking this button will attempt to download and install the firmware version which is available in the repository. This process should only be done on a laptop or desktop computer. The FLipMouse will temporarily appear as a USB drive, and the downloaded file must be copied to that drive. After that, the FLipMouse restarts with the updated software. (This process is also explained in the configuration manager, please follow the instructions step by step).")]),e._v(" "),t("h2",{attrs:{id:"tab-visualization"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tab-visualization"}},[e._v("#")]),e._v(" Tab VISUALIZATION")]),e._v(" "),t("p",[e._v("The FLipMouse stick is attached to four force sensors – one for each movement direction (up, down, left, right). The numeric value of each of those sensors is displayed in the “VISUALIZATION” tab. The live values can be monitored when the FLipMouse device is connected. Whenever the stick is moved, the sensor values change. Specifically, a movement in each direction increases the respective sensor value. Significant deviation in one direction indicates a sensor problem - in this case, the sensors should be checked and might need to be replaced.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(603),alt:"visualisation"}}),e._v(" "),t("em",[e._v("Figure 24: Left: Live display of force sensor values; Middle: current slot with the 3 buttons (if one button is pressed, the corresponding circle will get yellow; Right: Sip and Puff live value and current thresholds")])]),e._v(" "),t("h1",{attrs:{id:"instructions-for-cleaning-and-maintenance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions-for-cleaning-and-maintenance"}},[e._v("#")]),e._v(" Instructions for cleaning and maintenance")]),e._v(" "),t("p",[e._v("If the mouthpiece is used to actuate the cursor movements via lip/mouth movements, a careful cleaning procedure is essential to avoid bacteria and health problems! Read this section carefully and apply the needed cleaning procedures whenever necessary.")]),e._v(" "),t("h2",{attrs:{id:"hygienic-considerations-and-risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hygienic-considerations-and-risks"}},[e._v("#")]),e._v(" Hygienic considerations and risks")]),e._v(" "),t("p",[e._v("If the mouthpiece is actuated with the lips, it is important to respect the following hygienic precautions:")]),e._v(" "),t("ol",[t("li",[e._v("One mouthpiece must be used exclusively by one person")]),e._v(" "),t("li",[e._v("The filter tip must be replaced whenever saliva or dirt have formed")]),e._v(" "),t("li",[e._v("The mouthpiece must be cleaned whenever saliva or dirt have formed\n(see chapter “"),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md#instructions-for-cleaning-and-maintenance",target:"_blank",rel:"noopener noreferrer"}},[e._v("Instructions for cleaning and maintenance"),t("OutboundLink")],1),e._v("”)")])]),e._v(" "),t("p",[e._v("With the lack of hygiene concerning the mouthpiece, especially when the mouthpiece is used by more than one person, it is possible that")]),e._v(" "),t("ol",[t("li",[e._v("skin rash arises")]),e._v(" "),t("li",[e._v("viruses and bacteria are transmitted causing diseases")]),e._v(" "),t("li",[e._v("dirt formats in the mouthpiece, which is dangerous to health")])]),e._v(" "),t("p",[e._v("With wrong positioning of the FLipMouse there is the risk of feeling uncomfortable after longer periods of use, and it is possible to get muscle cramps or muscle pain due to unusual head positioning – pay attention to a convenient position and schedule pauses if you work for longer time periods!")]),e._v(" "),t("h3",{attrs:{id:"exchanging-the-saliva-filter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#exchanging-the-saliva-filter"}},[e._v("#")]),e._v(" Exchanging the saliva filter")]),e._v(" "),t("p",[e._v("The saliva filter is placed inside the mouthpiece. Usually, no (or nearly no) saliva should enter the stick – but it strongly depends on the person using the mouthpiece. If saliva enters the mouthpiece, the saliva filters reduces the moisture entering the inner parts of the FLipMouse (respectively the pressure sensor). If necessary, a hydrophobic membrane filter can be used additionally / instead of the simple saliva filter. This membrane filter can be insterted between the acrylic pipe an dhte Lur Lock Adapter (it it compatible with the Luer Lock standard).")]),e._v(" "),t("p",[e._v("The standard filter can be replaced as shown below:")]),e._v(" "),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"50%",src:o(604)}})]),e._v("\n*Figure 25.1: Removal of the saliva filter, using a normal screw to grab the filter*\n"),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"50%",src:o(605)}})]),e._v("\n*Figure 25.2: The removed filter*\n"),t("p",{attrs:{align:"left",width:"100%"}},[t("img",{attrs:{width:"50%",src:o(606)}})]),e._v("\n*Figure 25.3: Inserting a new filter (pushing it back into the hygienic stick)*\n"),t("h3",{attrs:{id:"disinfection-of-the-mouthpiece"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disinfection-of-the-mouthpiece"}},[e._v("#")]),e._v(" Disinfection of the mouthpiece")]),e._v(" "),t("p",[e._v("Use boiling water to disinfect a mouthpiece: place the mouthpiece (without saliva filter) in boiling water for at least five minutes, then allow it to dry before the next use.")]),e._v(" "),t("h3",{attrs:{id:"replacement-sticks-and-filters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#replacement-sticks-and-filters"}},[e._v("#")]),e._v(" Replacement sticks and filters")]),e._v(" "),t("p",[e._v("Transparent acrylic mouthpieces can be ordered from the "),t("a",{attrs:{href:"https://www.asterics-foundation.org/webshop",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Foundation Webshop"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"modification-of-the-mouthpiece-stick"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#modification-of-the-mouthpiece-stick"}},[e._v("#")]),e._v(" Modification of the Mouthpiece / Stick")]),e._v(" "),t("p",[e._v("Several users reported that they would prefer a different shape of the mouthpiece. It is of course possible to apply your own modifications and extensions which feel comfortable to you. Here we want to give some suggestions using affordable, disposable cigarette holders. The link between the standard mouthpiece and the cigarette holder is established with a small brass tube. It is also possible to cut the cigarette holder and insert it into the acrylic pipe so that a tight fit is ensured:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(607),alt:"mouthpiece"}}),e._v(" "),t("img",{attrs:{src:o(608),alt:"mouthpiece1"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 26: Modified shape of the mouthpiece")])]),e._v(" "),t("p",[e._v("Regardless of your desired mouthpiece modifications: Always take care for a hygienic operation and apply the cleaning procedures as described in this chapter!")]),e._v(" "),t("h1",{attrs:{id:"macro-commands-and-key-codes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#macro-commands-and-key-codes"}},[e._v("#")]),e._v(" Macro commands and Key codes")]),e._v(" "),t("h2",{attrs:{id:"supported-macro-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-macro-commands"}},[e._v("#")]),e._v(" Supported Macro commands:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Abbreviation")])]),e._v(" "),t("th",[t("strong",[e._v("Function")])]),e._v(" "),t("th",[t("strong",[e._v("example")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("CL")]),e._v(" "),t("td",[e._v("click left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CR")]),e._v(" "),t("td",[e._v("click right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CM")]),e._v(" "),t("td",[e._v("click middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CD")]),e._v(" "),t("td",[e._v("click double with left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HL")]),e._v(" "),t("td",[e._v("hold the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HR")]),e._v(" "),t("td",[e._v("hold the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HM")]),e._v(" "),t("td",[e._v("hold the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TL")]),e._v(" "),t("td",[e._v("toggle left mouse button")]),e._v(" "),t("td",[e._v("changes the state of the mouse button")])]),e._v(" "),t("tr",[t("td",[e._v("TM")]),e._v(" "),t("td",[e._v("toggle middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TR")]),e._v(" "),t("td",[e._v("toggle right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RL")]),e._v(" "),t("td",[e._v("release the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RR")]),e._v(" "),t("td",[e._v("release the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RM")]),e._v(" "),t("td",[e._v("release the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WU")]),e._v(" "),t("td",[e._v("move mouse wheel up")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WD")]),e._v(" "),t("td",[e._v("move mouse wheel down")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("MX "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in x direction")]),e._v(" "),t("td",[e._v("MX 4 -> moves cursor 4 pixels to the right")])]),e._v(" "),t("tr",[t("td",[e._v("MY "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in y direction")]),e._v(" "),t("td",[e._v("MY -10 -> moves cursor 10 pixels up")])]),e._v(" "),t("tr",[t("td",[e._v("RO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("rotate stick orientation")]),e._v(" "),t("td",[e._v("RO 180 -> flips x and y movements of stick/mouthpiece")])]),e._v(" "),t("tr",[t("td",[e._v("KW "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("keyboard write string")]),e._v(" "),t("td",[e._v("KW Hello! -> writes “Hello!” on the keyboard")])]),e._v(" "),t("tr",[t("td",[e._v("KP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key press: Press keyboard keys (once). Keys are identified by keyboard shortcuts (see list below)")]),e._v(" "),t("td",[e._v("KP KEY_UP -> presses the “Cursor-Up” key; KP KEY_CTRL KEY_ALT KEY_DELETE presses all 3 keys")])]),e._v(" "),t("tr",[t("td",[e._v("KH "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key hold: hold keyboard keys")]),e._v(" "),t("td",[e._v("sKH KEY_LEFT -> holds the “Cursor-Left” key")])]),e._v(" "),t("tr",[t("td",[e._v("KT "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key toggle: toggle keyboard keys; the key will remain pressed until “AT KT” command is sent again or a “AT KR” command is sent")]),e._v(" "),t("td",[e._v("KT KEY_DOWN -> toggles the “Cursor-Down” key")])]),e._v(" "),t("tr",[t("td",[e._v("KR "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key release")]),e._v(" "),t("td",[e._v("KR KEY_UP -> releases the “Cursor-Up” key")])]),e._v(" "),t("tr",[t("td",[e._v("RA")]),e._v(" "),t("td",[e._v("releases all = Release all currently pressed keys and mouse buttons")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WA "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("wait a certain number of milliseconds")]),e._v(" "),t("td",[e._v("WA 100 -> waits 100 milliseconds")])]),e._v(" "),t("tr",[t("td",[e._v("NE")]),e._v(" "),t("td",[e._v("next slot: load next slot")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("LO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("Load slot per name, changes to the given slot")]),e._v(" "),t("td",[e._v("LO mouse")])]),e._v(" "),t("tr",[t("td",[e._v("NC")]),e._v(" "),t("td",[e._v("No command")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("JX "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick x axis")]),e._v(" "),t("td",[e._v("JX 512 -> sets the x-axis to middle position")])]),e._v(" "),t("tr",[t("td",[e._v("JY "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick y axis")]),e._v(" "),t("td",[e._v("JY 1023 -> sets the y-axis to full up position")])]),e._v(" "),t("tr",[t("td",[e._v("JZ "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick z axis")]),e._v(" "),t("td",[e._v("JZ 0 -> sets the z-axis to lowest poistion")])]),e._v(" "),t("tr",[t("td",[e._v("JT "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick turn axis")]),e._v(" "),t("td",[e._v("JT 512 -> sets the rotation to middle position")])]),e._v(" "),t("tr",[t("td",[e._v("JS "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick slider position")]),e._v(" "),t("td",[e._v("JS 512 -> sets the slider to middle position")])]),e._v(" "),t("tr",[t("td",[e._v("JP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("press joystick button")]),e._v(" "),t("td",[e._v("JP 1 -> presses joystick button 1")])]),e._v(" "),t("tr",[t("td",[e._v("JR "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("release joystick button")]),e._v(" "),t("td",[e._v("JR 2 -> releases joystick button 2")])]),e._v(" "),t("tr",[t("td",[e._v("JH "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("set joystick hat position")]),e._v(" "),t("td",[e._v("JH 45 -> sets joystick hat to 45 degrees; possible values are: 0, 45, 90, 135, 180, 225, 270, 315 and -1 to set center position")])]),e._v(" "),t("tr",[t("td",[e._v("MM "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("mouse mode: cursor on (int=1) or alternative functions on (int=0)")]),e._v(" "),t("td",[e._v("MM1 -> switches to mouse mode")])]),e._v(" "),t("tr",[t("td",[e._v("CA")]),e._v(" "),t("td",[e._v("Calibrate zero position")]),e._v(" "),t("td",[e._v("calibrates stick / mouthpiece middle position")])]),e._v(" "),t("tr",[t("td",[e._v("IP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("play infrared command")]),e._v(" "),t("td",[e._v("IP channelUp; plays infrared command “channelUp” (if this IR-command name has been recorded)")])])])]),e._v(" "),t("p",[e._v("Please note that certain commands for adjusting FLipMouse settings are not shown in this table (for example setting thresholds or accelerations, recording IR-commands etc.). For a full list of commands please refer to the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/wiki/at-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipMouse wiki"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"supported-key-identifiers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-key-identifiers"}},[e._v("#")]),e._v(" Supported Key Identifiers:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Supported KEY Identifiers:")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[t("strong",[e._v("Letters")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_A  KEY_B  KEY_C  KEY_D  KEY_E  KEY_F  KEY_G  KEY_H  "),t("br"),e._v("KEY_I  KEY_J  KEY_K  KEY_L  KEY_M  KEY_N  KEY_O  KEY_P  "),t("br"),e._v("KEY_Q  KEY_R  KEY_S  KEY_T  KEY_U  KEY_V  KEY_W  KEY_X")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Digits")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_1  KEY_2  KEY_3  KEY_4  KEY_5  KEY_6  KEY_7  KEY_8  KEY_9  KEY_0")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Function keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_F1  KEY_F2  KEY_F3  KEY_F4  KEY_F5  KEY_F6  KEY_F7  KEY_F8  KEY_F9  KEY_F10  "),t("br"),e._v("KEY_F11  KEY_F12  KEY_F13  KEY_F14  KEY_F15  KEY_F16  KEY_F17  KEY_F18  KEY_F19 "),t("br"),e._v("KEY_F20  KEY_F21  KEY_F22  KEY_F23  KEY_F24")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Navigation keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_UP  KEY_DOWN  KEY_LEFT  KEY_RIGHT  KEY_TAB  KEY_PAGE_UP  KEY_PAGE_DOWN "),t("br"),e._v("KEY_HOME  KEY_END")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Special keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_ENTER  KEY_SPACE  KEY_BACKSPACE  KEY_DELETE  KEY_INSERT  KEY_ESC  KEY_NUM_LOCK"),t("br"),e._v("KEY_SCROLL_LOCK  KEY_CAPS_LOCK  KEY_PAUSE"),t("br"),t("br"),e._v("KEY_SEMICOLON  KEY_COMMA  KEY_PERIOD  KEY_MINUS  KEY_EQUAL  KEY_SLASH"),t("br"),e._v("KEY_BACKSLASH  KEY_LEFT_BRACE  KEY_RIGHT_BRACE  KEY_QUOTE  KEY_TILDE  KEY_MENU")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Keypad keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEYPAD_1  KEYPAD_2  KEYPAD_3  KEYPAD_4  KEYPAD_5  KEYPAD_6  KEYPAD_7  KEYPAD_8"),t("br"),e._v("KEYPAD_9  KEYPAD_0  "),t("br"),e._v("KEYPAD_SLASH  KEYPAD_ASTERIX  KEYPAD_MINUS  KEYPAD_PLUS  KEYPAD_ENTER  KEYPAD_PERIOD")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Keys for alternative functions")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_SHIFT  KEY_CTRL  KEY_ALT  KEY_RIGHT_ALT  KEY_GUI  KEY_RIGHT_GUI")])])])]),e._v(" "),t("h1",{attrs:{id:"contact-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contact-information"}},[e._v("#")]),e._v(" Contact Information")]),e._v(" "),t("p",[t("strong",[e._v("University of Applied Sciences Technikum Wien")]),e._v("\nDepartment Electronic Engineering\nHöchstädtplatz 6\nA-1200 Wien\nAUSTRIA")]),e._v(" "),t("p",[t("strong",[e._v("AsTeRICS Foundation")]),e._v("\nWebpage: "),t("a",{attrs:{href:"http://www.asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.asterics-foundation.org"),t("OutboundLink")],1),e._v("\nEmail: "),t("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[e._v("office@asterics-foundation.org")])]),e._v(" "),t("h2",{attrs:{id:"disclaimer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[e._v("#")]),e._v(" Disclaimer")]),e._v(" "),t("p",[e._v("The University of Applied Sciences Technikum Wien and the AsTeRICS Foundation do not assume any warranty and liability for the functionality of the described devices, software and the correctness of the documents handed over.")]),e._v(" "),t("p",[e._v("Additionally, the UAS TW is not liable for any damages to health due to the use of described hardware or software. The provided software applications and hardware modules are to be used at own risk!")]),e._v(" "),t("h2",{attrs:{id:"acknowledgement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acknowledgement"}},[e._v("#")]),e._v(" Acknowledgement")]),e._v(" "),t("p",[e._v("This project was partly funded by the City of Vienna,\nMunicipal department of Economic Affairs, Labor and Statistics (MA 23),\nin course of the projects AsTeRICS Academy (14-02), ToRaDes (18-04)\nand Wissensdrehscheibe für Barrierefreie Technologien (26-02)")]),e._v(" "),t("p",[t("img",{attrs:{src:o(609),alt:"Logos"}})])])}),[],!1,null,null,null);t.default=i.exports},577:function(e,t,o){e.exports=o.p+"assets/img/flipmouseLogo.115b0ada.svg"},578:function(e,t,o){e.exports=o.p+"assets/img/flip1.0ad60902.svg"},579:function(e,t,o){e.exports=o.p+"assets/img/f2.9459b77d.svg"},580:function(e,t,o){e.exports=o.p+"assets/img/f5.993e34bc.JPG"},581:function(e,t,o){e.exports=o.p+"assets/img/f2.a5b481b8.PNG"},582:function(e,t,o){e.exports=o.p+"assets/img/f10.de94e67a.PNG"},583:function(e,t,o){e.exports=o.p+"assets/img/f12.0968304a.PNG"},584:function(e,t,o){e.exports=o.p+"assets/img/f13.e4f28906.PNG"},585:function(e,t,o){e.exports=o.p+"assets/img/fig1.d23bc4fc.PNG"},586:function(e,t,o){e.exports=o.p+"assets/img/header_en.4ea05680.jpg"},587:function(e,t,o){e.exports=o.p+"assets/img/tab_stick_en.3d1865f1.jpg"},588:function(e,t,o){e.exports=o.p+"assets/img/fig20.1.3a671358.svg"},589:function(e,t,o){e.exports=o.p+"assets/img/fig3.a3e5172a.svg"},590:function(e,t,o){e.exports=o.p+"assets/img/fig3.1.86589023.svg"},591:function(e,t,o){e.exports=o.p+"assets/img/footer_en.4a5ea909.jpg"},592:function(e,t,o){e.exports=o.p+"assets/img/fig5.1.222be187.svg"},593:function(e,t,o){e.exports=o.p+"assets/img/fig6.1.728afeab.svg"},594:function(e,t,o){e.exports=o.p+"assets/img/fig7.472c48b9.PNG"},595:function(e,t,o){e.exports=o.p+"assets/img/fig8.1.2324d0d1.svg"},596:function(e,t,o){e.exports=o.p+"assets/img/fig9.13fb4fdc.PNG"},597:function(e,t,o){e.exports=o.p+"assets/img/fig13.64a619aa.PNG"},598:function(e,t,o){e.exports=o.p+"assets/img/fig30.4625741e.PNG"},599:function(e,t,o){e.exports=o.p+"assets/img/tab_slots1_en.fd32cba0.jpg"},600:function(e,t,o){e.exports=o.p+"assets/img/tab_slots2_en.8d31d491.jpg"},601:function(e,t,o){e.exports=o.p+"assets/img/tab_general_en.78de5896.jpg"},602:function(e,t,o){e.exports=o.p+"assets/img/slot_testmode_en.4f688a45.jpg"},603:function(e,t,o){e.exports=o.p+"assets/img/fig12.c885238e.PNG"},604:function(e,t,o){e.exports=o.p+"assets/img/fig34.1.f4c90c14.jpg"},605:function(e,t,o){e.exports=o.p+"assets/img/fig34.2.2e78b5e2.jpg"},606:function(e,t,o){e.exports=o.p+"assets/img/fig34.3.b598f656.jpg"},607:function(e,t,o){e.exports=o.p+"assets/img/fig33.72c12add.PNG"},608:function(e,t,o){e.exports=o.p+"assets/img/fig33.1.e14db2e2.PNG"},609:function(e,t,o){e.exports=o.p+"assets/img/logo.a7651da9.svg"}}]); \ No newline at end of file diff --git a/assets/js/40.dc23e853.js b/assets/js/40.e4a566f4.js similarity index 98% rename from assets/js/40.dc23e853.js rename to assets/js/40.e4a566f4.js index 990cc55ca5..62d2bea8e4 100644 --- a/assets/js/40.dc23e853.js +++ b/assets/js/40.e4a566f4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{1077:function(A,e,t){"use strict";t.r(e);var a=t(2),r=Object(a.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"easyhomecontrol"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#easyhomecontrol"}},[A._v("#")]),A._v(" EasyHomeControl")]),A._v(" "),e("p",[A._v("Component Type: Actuator (Subcategory: Home Control)")]),A._v(" "),e("p",[A._v("With the EasyHomeControl, commands for the EasyHome house automation system can be sent over the PCS device sold by ELV electronics. See "),e("a",{attrs:{href:"http://www.elro.eu/de/produkte/cat/home-automation/home-easy-next",target:"_blank",rel:"noopener noreferrer"}},[A._v("the EasyHome homepage"),e("OutboundLink")],1),A._v(" for details.")]),A._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[A._v("#")]),A._v(" Requirements")]),A._v(" "),e("p",[A._v("The EasyHome sender must be attached to the system!")]),A._v(" "),e("p",[e("img",{attrs:{src:t(623),alt:"Picture of the EasyHome sender",title:"Picture of the EasyHome sender"}})]),A._v(" "),e("p",[e("img",{attrs:{src:t(624),alt:"Picture of the EasyHome switch",title:"Picture of the EasyHome switch"}})]),A._v(" "),e("p",[e("img",{attrs:{src:t(625),alt:"Picture of the EasyHome dimmer",title:"Picture of the EasyHome dimmer"}})]),A._v(" "),e("h2",{attrs:{id:"supported-oses"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#supported-oses"}},[A._v("#")]),A._v(" Supported OSes")]),A._v(" "),e("ul",[e("li",[A._v("Windows ("),e("code",[A._v("x86")]),A._v(", "),e("code",[A._v("x64")]),A._v(")")]),A._v(" "),e("li",[A._v("Linux ("),e("code",[A._v("x86")]),A._v(", "),e("code",[A._v("x64")]),A._v(", "),e("code",[A._v("ARM")]),A._v(" - (Raspberry Pi))")]),A._v(" "),e("li",[A._v("macOS X ("),e("code",[A._v("x86")]),A._v(", "),e("code",[A._v("x64")]),A._v(")")])]),A._v(" "),e("h2",{attrs:{id:"troubleshooting-problems-under-win8-win8-1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting-problems-under-win8-win8-1"}},[A._v("#")]),A._v(" Troubleshooting problems under Win8/Win8.1")]),A._v(" "),e("p",[A._v("Under Windows 8 and Windows 8.1, there can be problems concering the operation of the EasyHome device: If the red control led stays stays dark eaven if a command is send and the EasyHome sender cannot be used, the reason could be that the power management settings on Win8/8.1 switch the device off per default - this can be changed by applying the following steps:")]),A._v(" "),e("ul",[e("li",[A._v("Open the Device Manager (usually can be selected by right-clicking at the bottom left corner of your windows desktop)")]),A._v(" "),e("li",[A._v("Open the device group “Human Interface Devices”")]),A._v(" "),e("li",[A._v("Locate the device which pops up when you insert or remove the EasyHome module to/from an USB port It should be a “HID compliant supplier defined device”. You can distinguish different devices by right-clicking a device and looking into rider “details” and “properites” - there you can find the VID and PID values, e.g. under property “last known parent”")]),A._v(" "),e("li",[A._v("Note the VID and PID values. For example if you see a line like "),e("code",[A._v('"USB\\\\VID_1B1F&PID_C00F\\\\EEE0000473"')]),A._v(" the values are "),e("code",[A._v("VID:1B1F")]),A._v(" and "),e("code",[A._v("PID:C00F")])]),A._v(" "),e("li",[A._v("Press the Windows-Key and “R” to open the command window. Type “regedit” and press enter")]),A._v(" "),e("li",[A._v("Select the entry "),e("code",[A._v('"HKEY_LOCAL_MACHINE" > "SYSTEM" > "CurrentControlSet" > "Enum" > "USB"')]),A._v(".")]),A._v(" "),e("li",[A._v("In this list, select the entry for the EasyHome device (given by VID und PID you noted)")]),A._v(" "),e("li",[A._v("Open the Subfolder “Device Paramteters” and double click the property “EnhancedPowerManagementEnabled” which appears in the right window section")]),A._v(" "),e("li",[A._v("Change the property value from 1 to 0 and commit by clicking “OK”")]),A._v(" "),e("li",[A._v("Restart you PC - now hopefully the EasyHome works as intended.")])]),A._v(" "),e("h2",{attrs:{id:"udev-rules-linux"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#udev-rules-linux"}},[A._v("#")]),A._v(" Udev rules Linux")]),A._v(" "),e("p",[A._v("You must run the ARE as root for being able to access the device. Alternatively you can define a "),e("a",{attrs:{href:"https://github.com/signal11/hidapi/blob/master/udev/99-hid.rules",target:"_blank",rel:"noopener noreferrer"}},[A._v("udev rule"),e("OutboundLink")],1)]),A._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[A._v("#")]),A._v(" Event Listener Description")]),A._v(" "),e("p",[A._v("See table below for a list of all commands that can be triggered")]),A._v(" "),e("table",[e("thead",[e("tr",[e("th",[A._v("Command")]),A._v(" "),e("th",[A._v("ID")])])]),A._v(" "),e("tbody",[e("tr",[e("td",[A._v("OffDevice1-15")]),A._v(" "),e("td",[A._v("0")])]),A._v(" "),e("tr",[e("td",[A._v("OnDevice1-15")]),A._v(" "),e("td",[A._v("1")])])])]),A._v(" "),e("p",[A._v("To dim the light you have to sent an on signal when the light is already turned on.")]),A._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("nameDevice [string]:")]),A._v(" Set the device name.")]),A._v(" "),e("li",[e("strong",[A._v("numberDevice [integer]:")]),A._v(" Set the number of the device. The number must be the same if the shwitches shoud akt synchronized")])])])}),[],!1,null,null,null);e.default=r.exports},623:function(A,e){A.exports="data:image/jpeg;base64,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"},624:function(A,e){A.exports="data:image/jpeg;base64,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"},625:function(A,e){A.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{1079:function(A,e,t){"use strict";t.r(e);var a=t(2),r=Object(a.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"easyhomecontrol"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#easyhomecontrol"}},[A._v("#")]),A._v(" EasyHomeControl")]),A._v(" "),e("p",[A._v("Component Type: Actuator (Subcategory: Home Control)")]),A._v(" "),e("p",[A._v("With the EasyHomeControl, commands for the EasyHome house automation system can be sent over the PCS device sold by ELV electronics. See "),e("a",{attrs:{href:"http://www.elro.eu/de/produkte/cat/home-automation/home-easy-next",target:"_blank",rel:"noopener noreferrer"}},[A._v("the EasyHome homepage"),e("OutboundLink")],1),A._v(" for details.")]),A._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[A._v("#")]),A._v(" Requirements")]),A._v(" "),e("p",[A._v("The EasyHome sender must be attached to the system!")]),A._v(" "),e("p",[e("img",{attrs:{src:t(625),alt:"Picture of the EasyHome sender",title:"Picture of the EasyHome sender"}})]),A._v(" "),e("p",[e("img",{attrs:{src:t(626),alt:"Picture of the EasyHome switch",title:"Picture of the EasyHome switch"}})]),A._v(" "),e("p",[e("img",{attrs:{src:t(627),alt:"Picture of the EasyHome dimmer",title:"Picture of the EasyHome dimmer"}})]),A._v(" "),e("h2",{attrs:{id:"supported-oses"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#supported-oses"}},[A._v("#")]),A._v(" Supported OSes")]),A._v(" "),e("ul",[e("li",[A._v("Windows ("),e("code",[A._v("x86")]),A._v(", "),e("code",[A._v("x64")]),A._v(")")]),A._v(" "),e("li",[A._v("Linux ("),e("code",[A._v("x86")]),A._v(", "),e("code",[A._v("x64")]),A._v(", "),e("code",[A._v("ARM")]),A._v(" - (Raspberry Pi))")]),A._v(" "),e("li",[A._v("macOS X ("),e("code",[A._v("x86")]),A._v(", "),e("code",[A._v("x64")]),A._v(")")])]),A._v(" "),e("h2",{attrs:{id:"troubleshooting-problems-under-win8-win8-1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting-problems-under-win8-win8-1"}},[A._v("#")]),A._v(" Troubleshooting problems under Win8/Win8.1")]),A._v(" "),e("p",[A._v("Under Windows 8 and Windows 8.1, there can be problems concering the operation of the EasyHome device: If the red control led stays stays dark eaven if a command is send and the EasyHome sender cannot be used, the reason could be that the power management settings on Win8/8.1 switch the device off per default - this can be changed by applying the following steps:")]),A._v(" "),e("ul",[e("li",[A._v("Open the Device Manager (usually can be selected by right-clicking at the bottom left corner of your windows desktop)")]),A._v(" "),e("li",[A._v("Open the device group “Human Interface Devices”")]),A._v(" "),e("li",[A._v("Locate the device which pops up when you insert or remove the EasyHome module to/from an USB port It should be a “HID compliant supplier defined device”. You can distinguish different devices by right-clicking a device and looking into rider “details” and “properites” - there you can find the VID and PID values, e.g. under property “last known parent”")]),A._v(" "),e("li",[A._v("Note the VID and PID values. For example if you see a line like "),e("code",[A._v('"USB\\\\VID_1B1F&PID_C00F\\\\EEE0000473"')]),A._v(" the values are "),e("code",[A._v("VID:1B1F")]),A._v(" and "),e("code",[A._v("PID:C00F")])]),A._v(" "),e("li",[A._v("Press the Windows-Key and “R” to open the command window. Type “regedit” and press enter")]),A._v(" "),e("li",[A._v("Select the entry "),e("code",[A._v('"HKEY_LOCAL_MACHINE" > "SYSTEM" > "CurrentControlSet" > "Enum" > "USB"')]),A._v(".")]),A._v(" "),e("li",[A._v("In this list, select the entry for the EasyHome device (given by VID und PID you noted)")]),A._v(" "),e("li",[A._v("Open the Subfolder “Device Paramteters” and double click the property “EnhancedPowerManagementEnabled” which appears in the right window section")]),A._v(" "),e("li",[A._v("Change the property value from 1 to 0 and commit by clicking “OK”")]),A._v(" "),e("li",[A._v("Restart you PC - now hopefully the EasyHome works as intended.")])]),A._v(" "),e("h2",{attrs:{id:"udev-rules-linux"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#udev-rules-linux"}},[A._v("#")]),A._v(" Udev rules Linux")]),A._v(" "),e("p",[A._v("You must run the ARE as root for being able to access the device. Alternatively you can define a "),e("a",{attrs:{href:"https://github.com/signal11/hidapi/blob/master/udev/99-hid.rules",target:"_blank",rel:"noopener noreferrer"}},[A._v("udev rule"),e("OutboundLink")],1)]),A._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[A._v("#")]),A._v(" Event Listener Description")]),A._v(" "),e("p",[A._v("See table below for a list of all commands that can be triggered")]),A._v(" "),e("table",[e("thead",[e("tr",[e("th",[A._v("Command")]),A._v(" "),e("th",[A._v("ID")])])]),A._v(" "),e("tbody",[e("tr",[e("td",[A._v("OffDevice1-15")]),A._v(" "),e("td",[A._v("0")])]),A._v(" "),e("tr",[e("td",[A._v("OnDevice1-15")]),A._v(" "),e("td",[A._v("1")])])])]),A._v(" "),e("p",[A._v("To dim the light you have to sent an on signal when the light is already turned on.")]),A._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("nameDevice [string]:")]),A._v(" Set the device name.")]),A._v(" "),e("li",[e("strong",[A._v("numberDevice [integer]:")]),A._v(" Set the number of the device. The number must be the same if the shwitches shoud akt synchronized")])])])}),[],!1,null,null,null);e.default=r.exports},625:function(A,e){A.exports="data:image/jpeg;base64,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"},626:function(A,e){A.exports="data:image/jpeg;base64,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"},627:function(A,e){A.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/41.b975ec0e.js b/assets/js/41.67442f26.js similarity index 93% rename from assets/js/41.b975ec0e.js rename to assets/js/41.67442f26.js index f5a637e989..abeffd8173 100644 --- a/assets/js/41.b975ec0e.js +++ b/assets/js/41.67442f26.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{1108:function(e,t,o){"use strict";o.r(t);var n=o(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pong"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pong"}},[e._v("#")]),e._v(" Pong")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Others)")]),e._v(" "),t("p",[e._v("The Pong component is an implementation of the classic “pong”-game, where two players control their paddles and try to hit a moving ball. The Pong component offers different input modalities (speed or event-based) so that the game can be played via a wide range (and combination of) sensors. Two users can play the game using different sensors. Several game options can be controlled by the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(660),alt:"Screenshot: Pong plugin",title:"Screenshot: Pong plugin"}})]),e._v(" "),t("p",[e._v("Pong plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:o(661),alt:"Screenshot: Pong game screen",title:"Pong game screen"}})]),e._v(" "),t("p",[e._v("Pong game screen")]),e._v(" "),t("h2",{attrs:{id:"application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application"}},[e._v("#")]),e._v(" Application")]),e._v(" "),t("p",[e._v("A special “bike-Pong” interface has been developed at UAS Technikum Wien, which allows playing the game via bicycle ergometers. For this purpose, the Arduino microcontroller (and corresponding plugin) are utilized to measure the user interactions and deliver the data to the Pong plugin. The energy created by the pong-players can be calculated in calories (this mode makes only sense when the bike-ergonometers are connected, see properties) Please note that the bike mode only works well with a screen resolution of 1920x1090 because of the utilized background graphics.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(662),alt:"bike pong gaming",title:"bike pong gaming"}})]),e._v(" "),t("p",[e._v("bike-ergomenter controlled pong game")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("playerOnePos [integer]:")]),e._v(" This input port defines the position of player one’s paddle (0 to 300)")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoPos [integer]:")]),e._v(" This input port defines the position of player two’s paddle (0 to 300)")]),e._v(" "),t("li",[t("strong",[e._v("playerOneSpeed [integer]:")]),e._v(" This input port defines the speed of player one’s paddle (-10 to 10)")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoSpeed [integer]:")]),e._v(" This input port defines the speed of player two’s paddle (-10 to 10)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startGame:")]),e._v(" An incoming event starts/restarts the game")]),e._v(" "),t("li",[t("strong",[e._v("playerOneToggleDirection:")]),e._v(" An incoming event changes the direction of player one’s paddle (only relevant for event-based paddle control mode).")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoToggleDirection:")]),e._v(" An incoming event changes the direction of player two’s paddle (only relevant for event-based paddle control mode).")]),e._v(" "),t("li",[t("strong",[e._v("playerOneMovement:")]),e._v(" An incoming event moves player one’s paddle one step (only relevant for event-based paddle control mode). This input is also used for the calculation of the total amount of engery.")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoMovement:")]),e._v(" An incoming event moves player two’s paddle one step (only relevant for event-based paddle control mode). This input is also used for the calculation of the total amount of engery.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("controlMode [combobox selection]:")]),e._v(" selects the mode for controlling the paddle positions. possible selections are: absolute position (via input port), speed (via input port) or single events.")]),e._v(" "),t("li",[t("strong",[e._v("speedStep [double]:")]),e._v(" defines the amount of movement caused by one event.")]),e._v(" "),t("li",[t("strong",[e._v("goalsToWin [double]:")]),e._v(" number of goals to win a game (player lives).")]),e._v(" "),t("li",[t("strong",[e._v("eventsToCaloryMultiplier [double]:")]),e._v(" factor to calculate energy (in calories) from incoming events (especially for the bike ergometer application) Setting this property value to 0 deactivates the energy calculation and the respective game report screens (default).")]),e._v(" "),t("li",[t("strong",[e._v("goalScoreBase [integer]:")]),e._v(" game points for one goal.")]),e._v(" "),t("li",[t("strong",[e._v("touchScoreBase [integer]:")]),e._v(" game points for one ball hit.")]),e._v(" "),t("li",[t("strong",[e._v("resetWaitTime [integer]:")]),e._v(" time to wait before resetting game screen.")]),e._v(" "),t("li",[t("strong",[e._v("maxSpeed [double]:")]),e._v(" the maximum speed of the ball.")]),e._v(" "),t("li",[t("strong",[e._v("minXSpeed [double]:")]),e._v(" the minimum X speed of the ball (to avoid deadlocks of the gameplay).")]),e._v(" "),t("li",[t("strong",[e._v("reflectionYImpulse [double]:")]),e._v(" speed impluse gained from a vertical reflection of the ball.")]),e._v(" "),t("li",[t("strong",[e._v("soundFilePaddleTouch [string]:")]),e._v(" a wav file which is played when the ball touches a paddle.")]),e._v(" "),t("li",[t("strong",[e._v("soundFileBoundsTouch [string]:")]),e._v(" a wav file which is played when the ball touches the vertical bounds.")]),e._v(" "),t("li",[t("strong",[e._v("soundFileGoal [string]:")]),e._v(" a wav file which is played when a player missed a ball.")]),e._v(" "),t("li",[t("strong",[e._v("soundFileEndGame [string]:")]),e._v(" a wav file which is played when the game is over.")])])])}),[],!1,null,null,null);t.default=i.exports},660:function(e,t,o){e.exports=o.p+"assets/img/pong.d947bb75.jpg"},661:function(e,t,o){e.exports=o.p+"assets/img/pongscreen.e515f649.jpg"},662:function(e,t,o){e.exports=o.p+"assets/img/pongapplication.a6b7aa94.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{1109:function(e,t,o){"use strict";o.r(t);var n=o(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pong"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pong"}},[e._v("#")]),e._v(" Pong")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Others)")]),e._v(" "),t("p",[e._v("The Pong component is an implementation of the classic “pong”-game, where two players control their paddles and try to hit a moving ball. The Pong component offers different input modalities (speed or event-based) so that the game can be played via a wide range (and combination of) sensors. Two users can play the game using different sensors. Several game options can be controlled by the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(662),alt:"Screenshot: Pong plugin",title:"Screenshot: Pong plugin"}})]),e._v(" "),t("p",[e._v("Pong plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:o(663),alt:"Screenshot: Pong game screen",title:"Pong game screen"}})]),e._v(" "),t("p",[e._v("Pong game screen")]),e._v(" "),t("h2",{attrs:{id:"application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application"}},[e._v("#")]),e._v(" Application")]),e._v(" "),t("p",[e._v("A special “bike-Pong” interface has been developed at UAS Technikum Wien, which allows playing the game via bicycle ergometers. For this purpose, the Arduino microcontroller (and corresponding plugin) are utilized to measure the user interactions and deliver the data to the Pong plugin. The energy created by the pong-players can be calculated in calories (this mode makes only sense when the bike-ergonometers are connected, see properties) Please note that the bike mode only works well with a screen resolution of 1920x1090 because of the utilized background graphics.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(664),alt:"bike pong gaming",title:"bike pong gaming"}})]),e._v(" "),t("p",[e._v("bike-ergomenter controlled pong game")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("playerOnePos [integer]:")]),e._v(" This input port defines the position of player one’s paddle (0 to 300)")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoPos [integer]:")]),e._v(" This input port defines the position of player two’s paddle (0 to 300)")]),e._v(" "),t("li",[t("strong",[e._v("playerOneSpeed [integer]:")]),e._v(" This input port defines the speed of player one’s paddle (-10 to 10)")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoSpeed [integer]:")]),e._v(" This input port defines the speed of player two’s paddle (-10 to 10)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startGame:")]),e._v(" An incoming event starts/restarts the game")]),e._v(" "),t("li",[t("strong",[e._v("playerOneToggleDirection:")]),e._v(" An incoming event changes the direction of player one’s paddle (only relevant for event-based paddle control mode).")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoToggleDirection:")]),e._v(" An incoming event changes the direction of player two’s paddle (only relevant for event-based paddle control mode).")]),e._v(" "),t("li",[t("strong",[e._v("playerOneMovement:")]),e._v(" An incoming event moves player one’s paddle one step (only relevant for event-based paddle control mode). This input is also used for the calculation of the total amount of engery.")]),e._v(" "),t("li",[t("strong",[e._v("playerTwoMovement:")]),e._v(" An incoming event moves player two’s paddle one step (only relevant for event-based paddle control mode). This input is also used for the calculation of the total amount of engery.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("controlMode [combobox selection]:")]),e._v(" selects the mode for controlling the paddle positions. possible selections are: absolute position (via input port), speed (via input port) or single events.")]),e._v(" "),t("li",[t("strong",[e._v("speedStep [double]:")]),e._v(" defines the amount of movement caused by one event.")]),e._v(" "),t("li",[t("strong",[e._v("goalsToWin [double]:")]),e._v(" number of goals to win a game (player lives).")]),e._v(" "),t("li",[t("strong",[e._v("eventsToCaloryMultiplier [double]:")]),e._v(" factor to calculate energy (in calories) from incoming events (especially for the bike ergometer application) Setting this property value to 0 deactivates the energy calculation and the respective game report screens (default).")]),e._v(" "),t("li",[t("strong",[e._v("goalScoreBase [integer]:")]),e._v(" game points for one goal.")]),e._v(" "),t("li",[t("strong",[e._v("touchScoreBase [integer]:")]),e._v(" game points for one ball hit.")]),e._v(" "),t("li",[t("strong",[e._v("resetWaitTime [integer]:")]),e._v(" time to wait before resetting game screen.")]),e._v(" "),t("li",[t("strong",[e._v("maxSpeed [double]:")]),e._v(" the maximum speed of the ball.")]),e._v(" "),t("li",[t("strong",[e._v("minXSpeed [double]:")]),e._v(" the minimum X speed of the ball (to avoid deadlocks of the gameplay).")]),e._v(" "),t("li",[t("strong",[e._v("reflectionYImpulse [double]:")]),e._v(" speed impluse gained from a vertical reflection of the ball.")]),e._v(" "),t("li",[t("strong",[e._v("soundFilePaddleTouch [string]:")]),e._v(" a wav file which is played when the ball touches a paddle.")]),e._v(" "),t("li",[t("strong",[e._v("soundFileBoundsTouch [string]:")]),e._v(" a wav file which is played when the ball touches the vertical bounds.")]),e._v(" "),t("li",[t("strong",[e._v("soundFileGoal [string]:")]),e._v(" a wav file which is played when a player missed a ball.")]),e._v(" "),t("li",[t("strong",[e._v("soundFileEndGame [string]:")]),e._v(" a wav file which is played when the game is over.")])])])}),[],!1,null,null,null);t.default=i.exports},662:function(e,t,o){e.exports=o.p+"assets/img/pong.d947bb75.jpg"},663:function(e,t,o){e.exports=o.p+"assets/img/pongscreen.e515f649.jpg"},664:function(e,t,o){e.exports=o.p+"assets/img/pongapplication.a6b7aa94.jpg"}}]); \ No newline at end of file diff --git a/assets/js/42.5123d0e1.js b/assets/js/42.55ad14cd.js similarity index 89% rename from assets/js/42.5123d0e1.js rename to assets/js/42.55ad14cd.js index 3bad5727a6..688f17eeba 100644 --- a/assets/js/42.5123d0e1.js +++ b/assets/js/42.55ad14cd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{1118:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"teensyrcprototype"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#teensyrcprototype"}},[e._v("#")]),e._v(" TeensyRCprototype")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Others)")]),e._v(" "),t("p",[e._v("The TeensyRCprototype component allows to use radio-controlled toys from within the AsTeRICS framework. As a prerequisite, the Teensy_RC_CIM.hex firmware (see /CIMS/Teensy_RC_CIM) must be installed on a teensy microcontroller (see "),t("a",{attrs:{href:"http://www.pjrc.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.pjrc.com"),t("OutboundLink")],1),e._v("), and the teensy must be connected to a Walkera MTC-01 “MagicCube” or a similar remote control unit with PPM-signal input, which allows sending up to 8 channel values to a connected RC-receiver:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(672),alt:"Screenshot: TeensyRC plugin",title:"Screenshot: TeensyRC plugin"}})]),e._v(" "),t("p",[e._v("TeensyRC plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:r(673),alt:"Screenshot: TeensyRC remote control gear",title:"TeensyRC remote control gear"}})]),e._v(" "),t("p",[e._v("TeensyRC Remot control gear")]),e._v(" "),t("h2",{attrs:{id:"application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application"}},[e._v("#")]),e._v(" Application")]),e._v(" "),t("p",[e._v("The channel values which are sent into the plugin are transformed into so-called “PPM-signals” which are supported by several toy remote controls. For example to use a RC-model car, only 2 channels are needed. For more information about the firmware, the needed modules and their application, please refer to the Bachelor-thesis by Alexander Frimmel in the documentation section (/Documenation/DIYGuides/RC_ToyControl_Frimmel.pdf).")]),e._v(" "),t("p",[t("img",{attrs:{src:r(674),alt:"remote control of a toy car",title:"remote control of a toy car"}})]),e._v(" "),t("p",[e._v("Remote control of a toy car")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("channel1 [integer]:")]),e._v(" This input port accepts the level for channel1 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [integer]:")]),e._v(" This input port accepts the level for channel2 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel3 [integer]:")]),e._v(" This input port accepts the level for channel3 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel4 [integer]:")]),e._v(" This input port accepts the level for channel4 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel5 [integer]:")]),e._v(" This input port accepts the level for channel5 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel6 [integer]:")]),e._v(" This input port accepts the level for channel6 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel7 [integer]:")]),e._v(" This input port accepts the level for channel7 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel8 [integer]:")]),e._v(" This input port accepts the level for channel8 of the RC remote control (values 0-1000 are allowed, center:500)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("p",[e._v("Currently, this plugin does not have any properties.")])])}),[],!1,null,null,null);t.default=n.exports},672:function(e,t,r){e.exports=r.p+"assets/img/teensyrc.3c5cee21.jpg"},673:function(e,t,r){e.exports=r.p+"assets/img/teensyrcremote.9557271e.jpg"},674:function(e,t,r){e.exports=r.p+"assets/img/teensyrcapplication.3fb9faed.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{1116:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"teensyrcprototype"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#teensyrcprototype"}},[e._v("#")]),e._v(" TeensyRCprototype")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Others)")]),e._v(" "),t("p",[e._v("The TeensyRCprototype component allows to use radio-controlled toys from within the AsTeRICS framework. As a prerequisite, the Teensy_RC_CIM.hex firmware (see /CIMS/Teensy_RC_CIM) must be installed on a teensy microcontroller (see "),t("a",{attrs:{href:"http://www.pjrc.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.pjrc.com"),t("OutboundLink")],1),e._v("), and the teensy must be connected to a Walkera MTC-01 “MagicCube” or a similar remote control unit with PPM-signal input, which allows sending up to 8 channel values to a connected RC-receiver:")]),e._v(" "),t("p",[t("img",{attrs:{src:r(671),alt:"Screenshot: TeensyRC plugin",title:"Screenshot: TeensyRC plugin"}})]),e._v(" "),t("p",[e._v("TeensyRC plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:r(672),alt:"Screenshot: TeensyRC remote control gear",title:"TeensyRC remote control gear"}})]),e._v(" "),t("p",[e._v("TeensyRC Remot control gear")]),e._v(" "),t("h2",{attrs:{id:"application"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application"}},[e._v("#")]),e._v(" Application")]),e._v(" "),t("p",[e._v("The channel values which are sent into the plugin are transformed into so-called “PPM-signals” which are supported by several toy remote controls. For example to use a RC-model car, only 2 channels are needed. For more information about the firmware, the needed modules and their application, please refer to the Bachelor-thesis by Alexander Frimmel in the documentation section (/Documenation/DIYGuides/RC_ToyControl_Frimmel.pdf).")]),e._v(" "),t("p",[t("img",{attrs:{src:r(673),alt:"remote control of a toy car",title:"remote control of a toy car"}})]),e._v(" "),t("p",[e._v("Remote control of a toy car")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("channel1 [integer]:")]),e._v(" This input port accepts the level for channel1 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [integer]:")]),e._v(" This input port accepts the level for channel2 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel3 [integer]:")]),e._v(" This input port accepts the level for channel3 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel4 [integer]:")]),e._v(" This input port accepts the level for channel4 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel5 [integer]:")]),e._v(" This input port accepts the level for channel5 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel6 [integer]:")]),e._v(" This input port accepts the level for channel6 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel7 [integer]:")]),e._v(" This input port accepts the level for channel7 of the RC remote control (values 0-1000 are allowed, center:500)")]),e._v(" "),t("li",[t("strong",[e._v("channel8 [integer]:")]),e._v(" This input port accepts the level for channel8 of the RC remote control (values 0-1000 are allowed, center:500)")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("p",[e._v("Currently, this plugin does not have any properties.")])])}),[],!1,null,null,null);t.default=n.exports},671:function(e,t,r){e.exports=r.p+"assets/img/teensyrc.3c5cee21.jpg"},672:function(e,t,r){e.exports=r.p+"assets/img/teensyrcremote.9557271e.jpg"},673:function(e,t,r){e.exports=r.p+"assets/img/teensyrcapplication.3fb9faed.jpg"}}]); \ No newline at end of file diff --git a/assets/js/43.5092921a.js b/assets/js/43.318192a2.js similarity index 98% rename from assets/js/43.5092921a.js rename to assets/js/43.318192a2.js index 4a56688027..65cc3407c9 100644 --- a/assets/js/43.5092921a.js +++ b/assets/js/43.318192a2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{1122:function(A,o,i){"use strict";i.r(o);var t=i(2),e=Object(t.a)({},(function(){var A=this,o=A._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[o("h1",{attrs:{id:"tooltip"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[A._v("#")]),A._v(" Tooltip")]),A._v(" "),o("p",[A._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),A._v(" "),o("p",[A._v("The Tooltip component shows tooltips on a specific position on the screen. Tooltips are semi-transparent .png images, that are representing different actions like e.g. a double-click with the mouse or specific key-combinations for the keyboard. The main purpose of this plugin is to provide additional functions it in combination with a mouse control solution like CrosshairCursorControl or AngularCursorControl, but also can be used independently of mouse control.")]),A._v(" "),o("p",[A._v("The position of the Tooltips can be changed by properties and input ports (x/y) and they can be shown and selected by events. The plugin includes a default set of 7 .png images for common used tooltips in combination with mouse control, but alternative .png images can be used setting the property ‘tooltipFolder’.")]),A._v(" "),o("p",[o("img",{attrs:{src:i(678),alt:"Figure 1, Screenshot: Tooltip plugin",title:"Screenshot: Tooltip plugin"}})]),A._v(" "),o("p",[A._v("Fig. 1: Tooltip plugin")]),A._v(" "),o("p",[o("img",{attrs:{src:i(314),alt:"Figure 2, Screenshot: Tooltip in combination with CrosshairCursorPlugin",title:"Screenshot: Tooltip in combination with CrosshairCursorPlugin"}})]),A._v(" "),o("p",[A._v("Fig. 2: Tooltip for double-click shown in a mouse control solution using the CrosshairCursorPlugin")]),A._v(" "),o("p",[o("img",{attrs:{src:i(679),alt:"Figure 3, Screenshot: Default icon set of tooltips",title:"Screenshot:Default icon set of tooltips"}})]),A._v(" "),o("p",[A._v("Fig. 3: Default icon set of tooltips")]),A._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[A._v("#")]),A._v(" Input Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("x [double]:")]),A._v(" The x-value of the center of the tooltip position (= e.g. mouse cursor position). The tooltip is always shown left/right, above/below of this center position, depending on the available space on the screen.")]),A._v(" "),o("li",[o("strong",[A._v("y [double]:")]),A._v(" The y-value of the center of the tooltip position (= e.g. mouse cursor position).")])]),A._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[A._v("#")]),A._v(" Output Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("tooltip [string]:")]),A._v(" When a tooltip is selected, the filename of the chosen tooltip icon (without file extension) is sent to this output port.")])]),A._v(" "),o("h2",{attrs:{id:"event-listener-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[A._v("#")]),A._v(" Event Listener Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("activateTooltips:")]),A._v(" displays the first tooltip icon (see property ‘tooltipStartIndex’) and activates tooltip mode.")]),A._v(" "),o("li",[o("strong",[A._v("deactivateTooltips:")]),A._v(" deactivates tooltip mode, if currently active.")]),A._v(" "),o("li",[o("strong",[A._v("nextTooltip:")]),A._v(" navigates to next tooltip, if tooltip mode is currently active.")]),A._v(" "),o("li",[o("strong",[A._v("previousTooltip:")]),A._v(" navigates to previous tooltip, if tooltip mode is currently active.")]),A._v(" "),o("li",[o("strong",[A._v("selectTooltip:")]),A._v(" selects the currently shown tooltip and disables tooltip mode afterwards.")])]),A._v(" "),o("h2",{attrs:{id:"event-trigger-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[A._v("#")]),A._v(" Event Trigger Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("tooltipActivated:")]),A._v(" This event is fired after the tooltip mode was activated.")]),A._v(" "),o("li",[o("strong",[A._v("tooltipDeactivated:")]),A._v(" This event is fired after the tooltip mode was deactivated, either by event ‘deactivateTooltip’, by inactivity timeout of ‘selectTime’ or by navigating to an index without corresponding .png file.")])]),A._v(" "),o("h2",{attrs:{id:"properties"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("initialX [boolean]:")]),A._v(" The initial x-value of the center of the tooltip position (= e.g. mouse cursor position). The tooltip is always shown left/right, above/below of this center position, depending on the available space on the screen.")]),A._v(" "),o("li",[o("strong",[A._v("initialY [boolean]:")]),A._v(" The initial y-value of the center of the tooltip position (= e.g. mouse cursor position).")]),A._v(" "),o("li",[o("strong",[A._v("selectTime [integer]:")]),A._v(" The time of inactivity (in milliseconds) after which the currently shown tooltip is selected. After selection the filename of the selected tooltip is sent to output port ‘tooltip’ and the tooltip mode is disabled. Use selectTime zero to deactivate automatic selection.")]),A._v(" "),o("li",[o("strong",[A._v("tooltipFolder [integer]:")]),A._v(" Path of a folder (./relative file path from the ARE/data folder, e.g. ‘pictures/tooltips’) which contains the tooltip icons in .png format. The expected filenames are 1.png, 2.png, 3.png and so on. A set of seven (index 1-7) default tooltips is provided by default in the folder ‘pictures/tooltips’ (see Fig.3):"),o("br"),A._v("\n(1) mouse drag, (2) mouse double-click, (3) mouse right-click, (3) keys Ctrl+C, (4) keys Ctrl+V, (5) keys Ctrl+X, (6) keys Ctrl+A")]),A._v(" "),o("li",[o("strong",[A._v("tooltipStartIndex [integer]:")]),A._v(" Index of the first tooltip to show, after tooltips are activated.")])])])}),[],!1,null,null,null);o.default=e.exports},314:function(A,o){A.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAFpAXoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD4zooor9EP5HCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq8l+MXiqfTLCDTLLd9t1M7Pl+8EzjA92Jx+dZU5qFBSfY78XhZ4nMpUKe7YeKvjFb6Ze/YtMgbU73O35MlA3oMcsfp+dZy6n4/wBTIdLWC1RhkArGuPwYlvzrpvAXgG28FaaoCrJeuv76bHJPoPRa36+Fx3FlXnaw607n9V8LfR9wKwsaubyfO1flVtPVtNX9Fp3Z5V4n8Q+NfCVolxe3cSRSP5a7Y4m5wT/d9jXuA/YT/aKbTYrqHStNu0lQSKEvrMMQRkdSK8p/aB/5FS0/6+x/6A9fsf4T/wCRV0z/AK9Iv/QBXr5XmFfEYdVaj112PzjjvhHLMnzeeAwkLwSi/eSb1SfRI/Jjx98NPjF8CLH7b4w8EXsemjJkuYlWWOID+9JCzon/AALFReEPHNj40tC9q5EiD95C/Dp/iPcV+vUsS3ETI6q6ONrKwyGHoRX51f8ABS79jO0+Ad9a/E3wLaJp2lSXCwatYQjbDbSOcLIi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"},678:function(A,o,i){A.exports=i.p+"assets/img/tooltip.d0d624d9.jpg"},679:function(A,o,i){A.exports=i.p+"assets/img/tooltip_default_iconset.9a39fb44.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{1119:function(A,o,i){"use strict";i.r(o);var t=i(2),e=Object(t.a)({},(function(){var A=this,o=A._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[o("h1",{attrs:{id:"tooltip"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[A._v("#")]),A._v(" Tooltip")]),A._v(" "),o("p",[A._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),A._v(" "),o("p",[A._v("The Tooltip component shows tooltips on a specific position on the screen. Tooltips are semi-transparent .png images, that are representing different actions like e.g. a double-click with the mouse or specific key-combinations for the keyboard. The main purpose of this plugin is to provide additional functions it in combination with a mouse control solution like CrosshairCursorControl or AngularCursorControl, but also can be used independently of mouse control.")]),A._v(" "),o("p",[A._v("The position of the Tooltips can be changed by properties and input ports (x/y) and they can be shown and selected by events. The plugin includes a default set of 7 .png images for common used tooltips in combination with mouse control, but alternative .png images can be used setting the property ‘tooltipFolder’.")]),A._v(" "),o("p",[o("img",{attrs:{src:i(676),alt:"Figure 1, Screenshot: Tooltip plugin",title:"Screenshot: Tooltip plugin"}})]),A._v(" "),o("p",[A._v("Fig. 1: Tooltip plugin")]),A._v(" "),o("p",[o("img",{attrs:{src:i(314),alt:"Figure 2, Screenshot: Tooltip in combination with CrosshairCursorPlugin",title:"Screenshot: Tooltip in combination with CrosshairCursorPlugin"}})]),A._v(" "),o("p",[A._v("Fig. 2: Tooltip for double-click shown in a mouse control solution using the CrosshairCursorPlugin")]),A._v(" "),o("p",[o("img",{attrs:{src:i(677),alt:"Figure 3, Screenshot: Default icon set of tooltips",title:"Screenshot:Default icon set of tooltips"}})]),A._v(" "),o("p",[A._v("Fig. 3: Default icon set of tooltips")]),A._v(" "),o("h2",{attrs:{id:"input-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[A._v("#")]),A._v(" Input Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("x [double]:")]),A._v(" The x-value of the center of the tooltip position (= e.g. mouse cursor position). The tooltip is always shown left/right, above/below of this center position, depending on the available space on the screen.")]),A._v(" "),o("li",[o("strong",[A._v("y [double]:")]),A._v(" The y-value of the center of the tooltip position (= e.g. mouse cursor position).")])]),A._v(" "),o("h2",{attrs:{id:"output-port-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[A._v("#")]),A._v(" Output Port Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("tooltip [string]:")]),A._v(" When a tooltip is selected, the filename of the chosen tooltip icon (without file extension) is sent to this output port.")])]),A._v(" "),o("h2",{attrs:{id:"event-listener-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[A._v("#")]),A._v(" Event Listener Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("activateTooltips:")]),A._v(" displays the first tooltip icon (see property ‘tooltipStartIndex’) and activates tooltip mode.")]),A._v(" "),o("li",[o("strong",[A._v("deactivateTooltips:")]),A._v(" deactivates tooltip mode, if currently active.")]),A._v(" "),o("li",[o("strong",[A._v("nextTooltip:")]),A._v(" navigates to next tooltip, if tooltip mode is currently active.")]),A._v(" "),o("li",[o("strong",[A._v("previousTooltip:")]),A._v(" navigates to previous tooltip, if tooltip mode is currently active.")]),A._v(" "),o("li",[o("strong",[A._v("selectTooltip:")]),A._v(" selects the currently shown tooltip and disables tooltip mode afterwards.")])]),A._v(" "),o("h2",{attrs:{id:"event-trigger-description"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[A._v("#")]),A._v(" Event Trigger Description")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("tooltipActivated:")]),A._v(" This event is fired after the tooltip mode was activated.")]),A._v(" "),o("li",[o("strong",[A._v("tooltipDeactivated:")]),A._v(" This event is fired after the tooltip mode was deactivated, either by event ‘deactivateTooltip’, by inactivity timeout of ‘selectTime’ or by navigating to an index without corresponding .png file.")])]),A._v(" "),o("h2",{attrs:{id:"properties"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),o("ul",[o("li",[o("strong",[A._v("initialX [boolean]:")]),A._v(" The initial x-value of the center of the tooltip position (= e.g. mouse cursor position). The tooltip is always shown left/right, above/below of this center position, depending on the available space on the screen.")]),A._v(" "),o("li",[o("strong",[A._v("initialY [boolean]:")]),A._v(" The initial y-value of the center of the tooltip position (= e.g. mouse cursor position).")]),A._v(" "),o("li",[o("strong",[A._v("selectTime [integer]:")]),A._v(" The time of inactivity (in milliseconds) after which the currently shown tooltip is selected. After selection the filename of the selected tooltip is sent to output port ‘tooltip’ and the tooltip mode is disabled. Use selectTime zero to deactivate automatic selection.")]),A._v(" "),o("li",[o("strong",[A._v("tooltipFolder [integer]:")]),A._v(" Path of a folder (./relative file path from the ARE/data folder, e.g. ‘pictures/tooltips’) which contains the tooltip icons in .png format. The expected filenames are 1.png, 2.png, 3.png and so on. A set of seven (index 1-7) default tooltips is provided by default in the folder ‘pictures/tooltips’ (see Fig.3):"),o("br"),A._v("\n(1) mouse drag, (2) mouse double-click, (3) mouse right-click, (3) keys Ctrl+C, (4) keys Ctrl+V, (5) keys Ctrl+X, (6) keys Ctrl+A")]),A._v(" "),o("li",[o("strong",[A._v("tooltipStartIndex [integer]:")]),A._v(" Index of the first tooltip to show, after tooltips are activated.")])])])}),[],!1,null,null,null);o.default=e.exports},314:function(A,o){A.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAFpAXoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD4zooor9EP5HCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq5mpw/wDCRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/8AI3Wn/A//AEBqxq2fh/8A8jdaf8D/APQGrKt/Dl6M7Mv/AN6p/wCJfmXfip/yMMP/AF7r/wChNXM103xU/wCRhh/691/9CauZqcP/AAkbZv8A75U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/wD8jdaf8D/9Aasatn4f/wDI3Wn/AAP/ANAasq38OXozsy//AHqn/iX5l34qf8jDD/17r/6E1czXTfFT/kYYf+vdf/QmrmanD/wkbZv/AL5U9Qooorc80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK2fh/8A8jdaf8D/APQGrGrZ+H//ACN1p/wP/wBAasq38OXozsy//eqf+JfmXfip/wAjDD/17r/6E1czXTfFT/kYYf8Ar3X/ANCauZqcP/CRtm/++VPUKKKK3PNCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtn4f/wDI3Wn/AAP/ANAasatn4f8A/I3Wn/A//QGrKt/Dl6M7Mv8A96p/4l+Zd+Kn/Iww/wDXuv8A6E1czXTfFT/kYYf+vdf/AEJq8l+MXiqfTLCDTLLd9t1M7Pl+8EzjA92Jx+dZU5qFBSfY78XhZ4nMpUKe7YeKvjFb6Ze/YtMgbU73O35MlA3oMcsfp+dZy6n4/wBTIdLWC1RhkArGuPwYlvzrpvAXgG28FaaoCrJeuv76bHJPoPRa36+Fx3FlXnaw607n9V8LfR9wKwsaubyfO1flVtPVtNX9Fp3Z5V4n8Q+NfCVolxe3cSRSP5a7Y4m5wT/d9jXuA/YT/aKbTYrqHStNu0lQSKEvrMMQRkdSK8p/aB/5FS0/6+x/6A9fsf4T/wCRV0z/AK9Iv/QBXr5XmFfEYdVaj112PzjjvhHLMnzeeAwkLwSi/eSb1SfRI/Jjx98NPjF8CLH7b4w8EXsemjJkuYlWWOID+9JCzon/AALFReEPHNj40tC9q5EiD95C/Dp/iPcV+vUsS3ETI6q6ONrKwyGHoRX51f8ABS79jO0+Ad9a/E3wLaJp2lSXCwatYQjbDbSOcLIi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"},676:function(A,o,i){A.exports=i.p+"assets/img/tooltip.d0d624d9.jpg"},677:function(A,o,i){A.exports=i.p+"assets/img/tooltip_default_iconset.9a39fb44.jpg"}}]); \ No newline at end of file diff --git a/assets/js/44.8df58e2c.js b/assets/js/44.225eb7c8.js similarity index 93% rename from assets/js/44.8df58e2c.js rename to assets/js/44.225eb7c8.js index f27261da6d..a45b5d2dc1 100644 --- a/assets/js/44.8df58e2c.js +++ b/assets/js/44.225eb7c8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{1135:function(e,t,i){"use strict";i.r(t);var n=i(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"blink-detector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blink-detector"}},[e._v("#")]),e._v(" Blink Detector")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component detects the shape that a blink produces in an electro-oculogram signal. The plugin analyses the input samples and recognises both a single blink and a double blink. Here a single blink is defined by an action whereby both eyes are simultaneously and voluntary closed and open. A double blink refers to the repletion of this action twice in an consecutive way. When one of these conditions is found the corresponding event is fired."),t("br"),e._v("\nNote that the plugin will only detect simple or double blinks with a duration smaller than BlinkLength miliseconds. Similarly, it will only detect double blinks that are separated by less than DoubleBlinkSeparation miliseconds. In addition, the “strength” of the blinks is defined by the maxThreshold and minThreshodld properties:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(697),alt:"Screenshot: EEG signal double blink",title:"Screenshot: EEG signal double blink"}})]),e._v(" "),t("p",[e._v("EEG signal double blink")]),e._v(" "),t("p",[t("img",{attrs:{src:i(698),alt:"Screenshot: Double blink derivative",title:"Screenshot: Double blink derivative"}})]),e._v(" "),t("p",[e._v("Double blink derivative")]),e._v(" "),t("p",[e._v("In order to propperly configure these 4 properties, they should be previously obtained by running the "),t("a",{attrs:{href:"../processors/BlinkDetectorTrainer.htm"}},[e._v("BlinkDetectorTrainer")]),e._v(" plugin for each different subject."),t("br"),e._v("\nIn order to correctly detect simple and double blinks, the input signal is internally decimated by a factor of 11 and derivated. For debugging purposes, the decimated samples and the derivated samples are output to the corresponding output ports.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(699),alt:"Screenshot: Blink Detector plugin",title:"Screenshot: Blink Detector plugin"}})]),e._v(" "),t("p",[e._v("Blink Detector plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The input signal shall correspond to a 250-Hz sampled electro-oculogram signal, i.e., an output port of the "),t("a",{attrs:{href:"../sensors/Enobio.htm"}},[e._v("Enobio")]),e._v(" component when the corresponding electrode is placed on the user’s forehead.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [integer]:")]),e._v(" Input values that correspond to a 250-Hz sampled electro-oculogram signal.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Filtered Sample [integer]:")]),e._v(" For each input sample, this output port delivers the decimated sample with a decimation factor of 11.")]),e._v(" "),t("li",[t("strong",[e._v("Differential [integer]:")]),e._v(" For each input sample, this output port delivers the derivated sample (after the decimation).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("BlinkDetected:")]),e._v(" This event port fires an event if a blink is detected in the input sequence of integers.")]),e._v(" "),t("li",[t("strong",[e._v("DoubleblinkDetected:")]),e._v(" This event port fires an event if a double blink is detected in the input sequence of integers.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sampleRate [integer]:")]),e._v(" Sample rate of the input signal in Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("maxThreshold [integer]:")]),e._v(" Positive threshold for a peak in the derivated signal to be considered as a potential blink (see “Double blink derivative” figure).")]),e._v(" "),t("li",[t("strong",[e._v("minThreshold [integer]:")]),e._v(" Negative threshold for a peak in the derivated signal to be considered as a potential blink (see “Double blink derivative” figure).")]),e._v(" "),t("li",[t("strong",[e._v("BlinkLength [integer]:")]),e._v(" Duration of one blink in miliseconds (see “Double blink derivative” figure).")]),e._v(" "),t("li",[t("strong",[e._v("DoubleBlinkSeparation [integer]:")]),e._v(" Separation (in miliseconds) between two blinks that correspond to a double blink (see “Double blink derivative” figure).")])])])}),[],!1,null,null,null);t.default=r.exports},697:function(e,t,i){e.exports=i.p+"assets/img/double_original.44573796.jpg"},698:function(e,t,i){e.exports=i.p+"assets/img/double_derivative.02027388.jpg"},699:function(e,t,i){e.exports=i.p+"assets/img/blinkdetector.0ba0e07d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{1135:function(e,t,i){"use strict";i.r(t);var n=i(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"blink-detector"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blink-detector"}},[e._v("#")]),e._v(" Blink Detector")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("This component detects the shape that a blink produces in an electro-oculogram signal. The plugin analyses the input samples and recognises both a single blink and a double blink. Here a single blink is defined by an action whereby both eyes are simultaneously and voluntary closed and open. A double blink refers to the repletion of this action twice in an consecutive way. When one of these conditions is found the corresponding event is fired."),t("br"),e._v("\nNote that the plugin will only detect simple or double blinks with a duration smaller than BlinkLength miliseconds. Similarly, it will only detect double blinks that are separated by less than DoubleBlinkSeparation miliseconds. In addition, the “strength” of the blinks is defined by the maxThreshold and minThreshodld properties:")]),e._v(" "),t("p",[t("img",{attrs:{src:i(699),alt:"Screenshot: EEG signal double blink",title:"Screenshot: EEG signal double blink"}})]),e._v(" "),t("p",[e._v("EEG signal double blink")]),e._v(" "),t("p",[t("img",{attrs:{src:i(700),alt:"Screenshot: Double blink derivative",title:"Screenshot: Double blink derivative"}})]),e._v(" "),t("p",[e._v("Double blink derivative")]),e._v(" "),t("p",[e._v("In order to propperly configure these 4 properties, they should be previously obtained by running the "),t("a",{attrs:{href:"../processors/BlinkDetectorTrainer.htm"}},[e._v("BlinkDetectorTrainer")]),e._v(" plugin for each different subject."),t("br"),e._v("\nIn order to correctly detect simple and double blinks, the input signal is internally decimated by a factor of 11 and derivated. For debugging purposes, the decimated samples and the derivated samples are output to the corresponding output ports.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(701),alt:"Screenshot: Blink Detector plugin",title:"Screenshot: Blink Detector plugin"}})]),e._v(" "),t("p",[e._v("Blink Detector plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The input signal shall correspond to a 250-Hz sampled electro-oculogram signal, i.e., an output port of the "),t("a",{attrs:{href:"../sensors/Enobio.htm"}},[e._v("Enobio")]),e._v(" component when the corresponding electrode is placed on the user’s forehead.")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [integer]:")]),e._v(" Input values that correspond to a 250-Hz sampled electro-oculogram signal.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Filtered Sample [integer]:")]),e._v(" For each input sample, this output port delivers the decimated sample with a decimation factor of 11.")]),e._v(" "),t("li",[t("strong",[e._v("Differential [integer]:")]),e._v(" For each input sample, this output port delivers the derivated sample (after the decimation).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("BlinkDetected:")]),e._v(" This event port fires an event if a blink is detected in the input sequence of integers.")]),e._v(" "),t("li",[t("strong",[e._v("DoubleblinkDetected:")]),e._v(" This event port fires an event if a double blink is detected in the input sequence of integers.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sampleRate [integer]:")]),e._v(" Sample rate of the input signal in Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("maxThreshold [integer]:")]),e._v(" Positive threshold for a peak in the derivated signal to be considered as a potential blink (see “Double blink derivative” figure).")]),e._v(" "),t("li",[t("strong",[e._v("minThreshold [integer]:")]),e._v(" Negative threshold for a peak in the derivated signal to be considered as a potential blink (see “Double blink derivative” figure).")]),e._v(" "),t("li",[t("strong",[e._v("BlinkLength [integer]:")]),e._v(" Duration of one blink in miliseconds (see “Double blink derivative” figure).")]),e._v(" "),t("li",[t("strong",[e._v("DoubleBlinkSeparation [integer]:")]),e._v(" Separation (in miliseconds) between two blinks that correspond to a double blink (see “Double blink derivative” figure).")])])])}),[],!1,null,null,null);t.default=r.exports},699:function(e,t,i){e.exports=i.p+"assets/img/double_original.44573796.jpg"},700:function(e,t,i){e.exports=i.p+"assets/img/double_derivative.02027388.jpg"},701:function(e,t,i){e.exports=i.p+"assets/img/blinkdetector.0ba0e07d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/45.1444b139.js b/assets/js/45.0ea6ff23.js similarity index 88% rename from assets/js/45.1444b139.js rename to assets/js/45.0ea6ff23.js index b3e3cdaa38..ffb02fedd8 100644 --- a/assets/js/45.1444b139.js +++ b/assets/js/45.0ea6ff23.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{1221:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eshoe"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eshoe"}},[e._v("#")]),e._v(" EShoe")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides an interface to the eShoe which is an insole for shoes with sensor inlays, capabale of measuring multiple degrees of freedom (pressure, acceleration and angular velocity) for gait analysis and rehabilitation purposes. See: "),t("a",{attrs:{href:"http://deutsch.ceit.at/ceit-raltec/projekte/aal---eshoe",target:"_blank",rel:"noopener noreferrer"}},[e._v("eShoe-info (german)"),t("OutboundLink")],1),e._v(". The COM Port number for the device must be specified in the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(781),alt:"Screenshot: EShoe plugin",title:"Screenshot: EShoe plugin"}})]),e._v(" "),t("p",[e._v("EShoe plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an EShoe connected via Bluetooth to a COM Port.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(782),alt:"EShoe",title:"EShoe"}})]),e._v(" "),t("p",[e._v("Picture of the EShoe")]),e._v(" "),t("p",[t("img",{attrs:{src:o(783),alt:"Schematic of the EShoe",title:"Schematic of the EShoe"}})]),e._v(" "),t("p",[e._v("Schematic view of the EShoe (left insole), light grey circles mark pressure sensors (big toe (BT), metatarsal head I (M1), metatarsal head V (M5), heel (HE)), the grey box marks the positon of the triaxial acceleration sensor (a) and triaxial gyroscope (ω)."),t("br"),e._v("\nV. David, H. Jagos, S. Litzenberger, and M. Reichel, “Instrumented insole for mobile and long distance motion pattern measurement,” Procedia Eng., vol. 34, pp. 760-765, 2012.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel3 [Short]:")]),e._v(" Output of the acceleration in X, Y and Z direction. The values range for -1285,81632m/s² to 1285,77708m/s².")]),e._v(" "),t("li",[t("strong",[e._v("Channel4 to Channel7 [Unsigned Short]:")]),e._v(" Output of the pressure sensors of heel, metaV, metaI and toe. The unit of the output data is gram.")]),e._v(" "),t("li",[t("strong",[e._v("Channel8 to Channel10 [Short]:")]),e._v(" Output of the gyroscope in X, Y and Z direction. The values range for -2280,6528°/s to 2280,5832°/s.")]),e._v(" "),t("li",[t("strong",[e._v("Channel11 [Short]:")]),e._v(" This is the angle between subsurface and insole of the users foot. The values range for -327,68° to 327,67°.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [String]:")]),e._v(" The name of the COM port, for example COM2 or COM17.")]),e._v(" "),t("li",[t("strong",[e._v("SamplingRate [Integer]:")]),e._v(" The sampling rate of the eShoe. Could be chosen between 50Hz and 200Hz.")]),e._v(" "),t("li",[t("strong",[e._v("SDMemory [Boolean]:")]),e._v(" The storage on the SD card in the eShoe can be turned on if checked.")])])])}),[],!1,null,null,null);t.default=a.exports},781:function(e,t,o){e.exports=o.p+"assets/img/eshoe.5a9af4da.jpg"},782:function(e,t,o){e.exports=o.p+"assets/img/eshoe_picture.b86aa9aa.jpg"},783:function(e,t,o){e.exports=o.p+"assets/img/eshoe_schematic.55bb2db4.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{1222:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eshoe"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eshoe"}},[e._v("#")]),e._v(" EShoe")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides an interface to the eShoe which is an insole for shoes with sensor inlays, capabale of measuring multiple degrees of freedom (pressure, acceleration and angular velocity) for gait analysis and rehabilitation purposes. See: "),t("a",{attrs:{href:"http://deutsch.ceit.at/ceit-raltec/projekte/aal---eshoe",target:"_blank",rel:"noopener noreferrer"}},[e._v("eShoe-info (german)"),t("OutboundLink")],1),e._v(". The COM Port number for the device must be specified in the plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(785),alt:"Screenshot: EShoe plugin",title:"Screenshot: EShoe plugin"}})]),e._v(" "),t("p",[e._v("EShoe plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an EShoe connected via Bluetooth to a COM Port.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(786),alt:"EShoe",title:"EShoe"}})]),e._v(" "),t("p",[e._v("Picture of the EShoe")]),e._v(" "),t("p",[t("img",{attrs:{src:o(787),alt:"Schematic of the EShoe",title:"Schematic of the EShoe"}})]),e._v(" "),t("p",[e._v("Schematic view of the EShoe (left insole), light grey circles mark pressure sensors (big toe (BT), metatarsal head I (M1), metatarsal head V (M5), heel (HE)), the grey box marks the positon of the triaxial acceleration sensor (a) and triaxial gyroscope (ω)."),t("br"),e._v("\nV. David, H. Jagos, S. Litzenberger, and M. Reichel, “Instrumented insole for mobile and long distance motion pattern measurement,” Procedia Eng., vol. 34, pp. 760-765, 2012.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel3 [Short]:")]),e._v(" Output of the acceleration in X, Y and Z direction. The values range for -1285,81632m/s² to 1285,77708m/s².")]),e._v(" "),t("li",[t("strong",[e._v("Channel4 to Channel7 [Unsigned Short]:")]),e._v(" Output of the pressure sensors of heel, metaV, metaI and toe. The unit of the output data is gram.")]),e._v(" "),t("li",[t("strong",[e._v("Channel8 to Channel10 [Short]:")]),e._v(" Output of the gyroscope in X, Y and Z direction. The values range for -2280,6528°/s to 2280,5832°/s.")]),e._v(" "),t("li",[t("strong",[e._v("Channel11 [Short]:")]),e._v(" This is the angle between subsurface and insole of the users foot. The values range for -327,68° to 327,67°.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("COMPort [String]:")]),e._v(" The name of the COM port, for example COM2 or COM17.")]),e._v(" "),t("li",[t("strong",[e._v("SamplingRate [Integer]:")]),e._v(" The sampling rate of the eShoe. Could be chosen between 50Hz and 200Hz.")]),e._v(" "),t("li",[t("strong",[e._v("SDMemory [Boolean]:")]),e._v(" The storage on the SD card in the eShoe can be turned on if checked.")])])])}),[],!1,null,null,null);t.default=a.exports},785:function(e,t,o){e.exports=o.p+"assets/img/eshoe.5a9af4da.jpg"},786:function(e,t,o){e.exports=o.p+"assets/img/eshoe_picture.b86aa9aa.jpg"},787:function(e,t,o){e.exports=o.p+"assets/img/eshoe_schematic.55bb2db4.jpg"}}]); \ No newline at end of file diff --git a/assets/js/46.dcbe7e85.js b/assets/js/46.1c3e3142.js similarity index 87% rename from assets/js/46.dcbe7e85.js rename to assets/js/46.1c3e3142.js index cdbb2e4c47..bca7b9da74 100644 --- a/assets/js/46.dcbe7e85.js +++ b/assets/js/46.1c3e3142.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{1270:function(e,t,s){"use strict";s.r(t);var a=s(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("The Tobi TiC plugin allows obtaining data from a connection to the "),t("a",{attrs:{href:"http://www.tobi-project.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobi Framework"),t("OutboundLink")],1),e._v(" (Tools for Brain Computer Interaction). Tobi defined standard for BCI interfaces, e.g. beteween classification and actuator modues. Tobi supports a wide range of biosignal and EEG acquisition devices. The TiC interface is dedicated to transfer classifier results to actuators. This plugin implements a simple TiC reader via a TCP socket. Up to 5 TOBI class labels can be defined which will be used to extract values from incoming TiC-compatible xml messages. These class labels and the sever socket which is openend by the plugin can be defined viy plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(849),alt:"Screenshot: Tobi TiC plugin",title:"Screenshot: Tobi TiC plugin"}})]),e._v(" "),t("p",[e._v("Tobi TiC plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("TiC-compatible messages must be sent to the server port which is opened by the plugin.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(850),alt:"Screenshot: Internal strcuture of a TOBI iC message",title:"Screenshot: Internal structure of a TOBI iC message"}})]),e._v(" "),t("p",[e._v("Internal structure of a TOBI iC message")]),e._v(" "),t("h3",{attrs:{id:"example-ic-message"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-ic-message"}},[e._v("#")]),e._v(" Example iC message:")]),e._v(" "),t("p",[t("img",{attrs:{src:s(851),alt:"example TOBI iC message",title:"example TOBI iC message"}})]),e._v(" "),t("p",[e._v("Example TOBI iC message")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[e._v("**value1 - value5 [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*these are the output ports for the Tobi class values. Up to 5 signals can be sent")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("tcpPort [integer]:")]),e._v(" the TCP port which is opened by the AsTeRICS plugin to wait for the Tobi connection")]),e._v(" "),t("li",[t("strong",[e._v("classLabel1 - classLabel5 [string]:")]),e._v(" the classLabels to extract values from the Tobi TiC messages. Values will be directed to the corresponding output ports of the plugin.")])])])}),[],!1,null,null,null);t.default=i.exports},849:function(e,t,s){e.exports=s.p+"assets/img/tobi_tic.39c74c4e.jpg"},850:function(e,t,s){e.exports=s.p+"assets/img/tobi_ic_message.063d3114.jpg"},851:function(e,t,s){e.exports=s.p+"assets/img/tobi_example_ic.5e0290b1.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{1269:function(e,t,s){"use strict";s.r(t);var a=s(2),i=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("The Tobi TiC plugin allows obtaining data from a connection to the "),t("a",{attrs:{href:"http://www.tobi-project.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobi Framework"),t("OutboundLink")],1),e._v(" (Tools for Brain Computer Interaction). Tobi defined standard for BCI interfaces, e.g. beteween classification and actuator modues. Tobi supports a wide range of biosignal and EEG acquisition devices. The TiC interface is dedicated to transfer classifier results to actuators. This plugin implements a simple TiC reader via a TCP socket. Up to 5 TOBI class labels can be defined which will be used to extract values from incoming TiC-compatible xml messages. These class labels and the sever socket which is openend by the plugin can be defined viy plugin properties.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(850),alt:"Screenshot: Tobi TiC plugin",title:"Screenshot: Tobi TiC plugin"}})]),e._v(" "),t("p",[e._v("Tobi TiC plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("TiC-compatible messages must be sent to the server port which is opened by the plugin.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(851),alt:"Screenshot: Internal strcuture of a TOBI iC message",title:"Screenshot: Internal structure of a TOBI iC message"}})]),e._v(" "),t("p",[e._v("Internal structure of a TOBI iC message")]),e._v(" "),t("h3",{attrs:{id:"example-ic-message"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-ic-message"}},[e._v("#")]),e._v(" Example iC message:")]),e._v(" "),t("p",[t("img",{attrs:{src:s(852),alt:"example TOBI iC message",title:"example TOBI iC message"}})]),e._v(" "),t("p",[e._v("Example TOBI iC message")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[e._v("**value1 - value5 [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*these are the output ports for the Tobi class values. Up to 5 signals can be sent")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("tcpPort [integer]:")]),e._v(" the TCP port which is opened by the AsTeRICS plugin to wait for the Tobi connection")]),e._v(" "),t("li",[t("strong",[e._v("classLabel1 - classLabel5 [string]:")]),e._v(" the classLabels to extract values from the Tobi TiC messages. Values will be directed to the corresponding output ports of the plugin.")])])])}),[],!1,null,null,null);t.default=i.exports},850:function(e,t,s){e.exports=s.p+"assets/img/tobi_tic.39c74c4e.jpg"},851:function(e,t,s){e.exports=s.p+"assets/img/tobi_ic_message.063d3114.jpg"},852:function(e,t,s){e.exports=s.p+"assets/img/tobi_example_ic.5e0290b1.jpg"}}]); \ No newline at end of file diff --git a/assets/js/47.f50dd0d9.js b/assets/js/47.9e28ab05.js similarity index 97% rename from assets/js/47.f50dd0d9.js rename to assets/js/47.9e28ab05.js index 250a4b7d62..5333e2003e 100644 --- a/assets/js/47.f50dd0d9.js +++ b/assets/js/47.9e28ab05.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{1274:function(A,e,t){"use strict";t.r(e);var i=t(2),n=Object(i.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"tuioreactivision"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tuioreactivision"}},[A._v("#")]),A._v(" TuioReactivision")]),A._v(" "),e("p",[A._v("Component Type: Sensor (Subcategory: Computer Vision)")]),A._v(" "),e("p",[A._v("This component integrates reacTIVision into AsTeRICS")]),A._v(" "),e("p",[e("img",{attrs:{src:t(857),alt:"Screenshot: TuioReactivision plug-in",title:"Screenshot: TuioReactivision plug-in"}})]),A._v(" "),e("p",[A._v("TuioReactivision plug-in")]),A._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[A._v("#")]),A._v(" Requirements")]),A._v(" "),e("p",[A._v("This component requires that the reacTIVision.exe is running --\x3e Download: http://reactivision.sourceforge.net/. It can either be started manually, with the ApplicationLauncher plug-in or via a reference in the tuioReactivision plug-in’s property “reactivisionPath”")]),A._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[A._v("#")]),A._v(" Output Port Description")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("Marker ID [Integer]:")]),A._v(" The fiducial marker’s ID")]),A._v(" "),e("li",[e("strong",[A._v("Session ID [Float]]:")]),A._v(" Temporary object ID")]),A._v(" "),e("li",[e("strong",[A._v("xPos [Float]:")]),A._v(" The marker’s position on the x-axis")]),A._v(" "),e("li",[e("strong",[A._v("yPos [Float]:")]),A._v(" The marker’s position on the y-axis")]),A._v(" "),e("li",[e("strong",[A._v("angel [Float]:")]),A._v(" The marker’s angle")]),A._v(" "),e("li",[e("strong",[A._v("motion speed [Float]:")]),A._v(" Movement vector which shows the marker’s motion speed")]),A._v(" "),e("li",[e("strong",[A._v("rotation speed [Float]:")]),A._v(" Rotation vector which shows the marker’s rotation speed")]),A._v(" "),e("li",[e("strong",[A._v("motionAccel [Float]:")]),A._v(" The marker’s motion acceleration")]),A._v(" "),e("li",[e("strong",[A._v("rotationAccel [Float]:")]),A._v(" The marker’s rotation acceleration")]),A._v(" "),e("li",[e("strong",[A._v("Text [String]:")]),A._v(" Sends the text assigned to the marker which is recognised on the display")])]),A._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("Text Output [Boolean]:")]),A._v(" If it is true, a string can be assigned to a marker. Therefor, a text file is necessary")]),A._v(" "),e("li",[e("strong",[A._v("Marker Allocation [Boolean]:")]),A._v(" If it is true, an event port can be assigned to a marker. Therefor, a text file is necessary. Only Text Output or Marker Allocation can be true")]),A._v(" "),e("li",[e("strong",[A._v("reactivisionPath [Boolean]:")]),A._v(" Contains the path to the reacTIVision.exe")]),A._v(" "),e("li",[e("strong",[A._v("Text File [String]:")]),A._v(" Contains the path of the text file in which the marker is either assigned to a text or an event port (e.g. “1-3” marker three is assigned to event trigger one )")])]),A._v(" "),e("p",[e("img",{attrs:{src:t(858),alt:"Screenshot: examplary text file",title:"Screenshot: examplary text file"}})]),A._v(" "),e("p",[A._v("Examplary text file when a marker should be assigned to a string (Marker number is on the left side)")]),A._v(" "),e("p",[e("img",{attrs:{src:t(859),alt:"Screenshot: exemplary text file",title:"Screenshot: examplary text file"}})]),A._v(" "),e("p",[A._v("Examplary text file ehen a marker should be assigned to an integer (Marker number is on the right side)")]),A._v(" "),e("h2",{attrs:{id:"event-trigger"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger"}},[A._v("#")]),A._v(" Event Trigger")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("Event Trigger")]),A._v(" Port 1-6 can only be used when marker allocation is true.")])])])}),[],!1,null,null,null);e.default=n.exports},857:function(A,e,t){A.exports=t.p+"assets/img/reactivision.093c1cee.jpg"},858:function(A,e){A.exports="data:image/jpeg;base64,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"},859:function(A,e,t){A.exports=t.p+"assets/img/listeint.884b2ee1.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{1274:function(A,e,t){"use strict";t.r(e);var i=t(2),n=Object(i.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"tuioreactivision"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tuioreactivision"}},[A._v("#")]),A._v(" TuioReactivision")]),A._v(" "),e("p",[A._v("Component Type: Sensor (Subcategory: Computer Vision)")]),A._v(" "),e("p",[A._v("This component integrates reacTIVision into AsTeRICS")]),A._v(" "),e("p",[e("img",{attrs:{src:t(858),alt:"Screenshot: TuioReactivision plug-in",title:"Screenshot: TuioReactivision plug-in"}})]),A._v(" "),e("p",[A._v("TuioReactivision plug-in")]),A._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[A._v("#")]),A._v(" Requirements")]),A._v(" "),e("p",[A._v("This component requires that the reacTIVision.exe is running --\x3e Download: http://reactivision.sourceforge.net/. It can either be started manually, with the ApplicationLauncher plug-in or via a reference in the tuioReactivision plug-in’s property “reactivisionPath”")]),A._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[A._v("#")]),A._v(" Output Port Description")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("Marker ID [Integer]:")]),A._v(" The fiducial marker’s ID")]),A._v(" "),e("li",[e("strong",[A._v("Session ID [Float]]:")]),A._v(" Temporary object ID")]),A._v(" "),e("li",[e("strong",[A._v("xPos [Float]:")]),A._v(" The marker’s position on the x-axis")]),A._v(" "),e("li",[e("strong",[A._v("yPos [Float]:")]),A._v(" The marker’s position on the y-axis")]),A._v(" "),e("li",[e("strong",[A._v("angel [Float]:")]),A._v(" The marker’s angle")]),A._v(" "),e("li",[e("strong",[A._v("motion speed [Float]:")]),A._v(" Movement vector which shows the marker’s motion speed")]),A._v(" "),e("li",[e("strong",[A._v("rotation speed [Float]:")]),A._v(" Rotation vector which shows the marker’s rotation speed")]),A._v(" "),e("li",[e("strong",[A._v("motionAccel [Float]:")]),A._v(" The marker’s motion acceleration")]),A._v(" "),e("li",[e("strong",[A._v("rotationAccel [Float]:")]),A._v(" The marker’s rotation acceleration")]),A._v(" "),e("li",[e("strong",[A._v("Text [String]:")]),A._v(" Sends the text assigned to the marker which is recognised on the display")])]),A._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[A._v("#")]),A._v(" Properties")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("Text Output [Boolean]:")]),A._v(" If it is true, a string can be assigned to a marker. Therefor, a text file is necessary")]),A._v(" "),e("li",[e("strong",[A._v("Marker Allocation [Boolean]:")]),A._v(" If it is true, an event port can be assigned to a marker. Therefor, a text file is necessary. Only Text Output or Marker Allocation can be true")]),A._v(" "),e("li",[e("strong",[A._v("reactivisionPath [Boolean]:")]),A._v(" Contains the path to the reacTIVision.exe")]),A._v(" "),e("li",[e("strong",[A._v("Text File [String]:")]),A._v(" Contains the path of the text file in which the marker is either assigned to a text or an event port (e.g. “1-3” marker three is assigned to event trigger one )")])]),A._v(" "),e("p",[e("img",{attrs:{src:t(859),alt:"Screenshot: examplary text file",title:"Screenshot: examplary text file"}})]),A._v(" "),e("p",[A._v("Examplary text file when a marker should be assigned to a string (Marker number is on the left side)")]),A._v(" "),e("p",[e("img",{attrs:{src:t(860),alt:"Screenshot: exemplary text file",title:"Screenshot: examplary text file"}})]),A._v(" "),e("p",[A._v("Examplary text file ehen a marker should be assigned to an integer (Marker number is on the right side)")]),A._v(" "),e("h2",{attrs:{id:"event-trigger"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger"}},[A._v("#")]),A._v(" Event Trigger")]),A._v(" "),e("ul",[e("li",[e("strong",[A._v("Event Trigger")]),A._v(" Port 1-6 can only be used when marker allocation is true.")])])])}),[],!1,null,null,null);e.default=n.exports},858:function(A,e,t){A.exports=t.p+"assets/img/reactivision.093c1cee.jpg"},859:function(A,e){A.exports="data:image/jpeg;base64,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"},860:function(A,e,t){A.exports=t.p+"assets/img/listeint.884b2ee1.jpg"}}]); \ No newline at end of file diff --git a/assets/js/49.c175331d.js b/assets/js/49.3428fe77.js similarity index 61% rename from assets/js/49.c175331d.js rename to assets/js/49.3428fe77.js index d1a36cd411..09cfc616d7 100644 --- a/assets/js/49.c175331d.js +++ b/assets/js/49.3428fe77.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{349:function(t,n,a){},868:function(t,n,a){"use strict";a(349)},911:function(t,n,a){"use strict";a.r(n);var e={name:"Action",props:{path:{type:String,default:"/"},dark:{type:Boolean,default:!1}}},o=(a(868),a(2)),r=Object(o.a)(e,(function(){var t=this;return(0,t._self._c)("router-link",{class:{action:!0,dark:t.dark},attrs:{to:t.path}},[t._t("default",(function(){return[t._v("Action")]}))],2)}),[],!1,null,"66fb803e",null);n.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{348:function(t,n,a){},867:function(t,n,a){"use strict";a(348)},910:function(t,n,a){"use strict";a.r(n);var e={name:"Action",props:{path:{type:String,default:"/"},dark:{type:Boolean,default:!1}}},o=(a(867),a(2)),r=Object(o.a)(e,(function(){var t=this;return(0,t._self._c)("router-link",{class:{action:!0,dark:t.dark},attrs:{to:t.path}},[t._t("default",(function(){return[t._v("Action")]}))],2)}),[],!1,null,"66fb803e",null);n.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/5.efd69906.js b/assets/js/5.43c8b579.js similarity index 93% rename from assets/js/5.efd69906.js rename to assets/js/5.43c8b579.js index 0e5dcea8e7..d5aba4c095 100644 --- a/assets/js/5.efd69906.js +++ b/assets/js/5.43c8b579.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{1054:function(e,t,o){"use strict";o.r(t);var i=o(2),a=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"grid-element-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-element-actions"}},[e._v("#")]),e._v(" Grid element actions")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=GAhtjs8bts0&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=14&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Edit actions"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("This chapter is about actions that can be performed if a grid element is selected and how to configure them:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#edit-actions-modal"}},[e._v("Edit actions modal")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#action-types"}},[e._v("Action Types")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#speak-label"}},[e._v("Speak label")]),e._v(": speaks the label of the element using a computer voice (text-to-speech)")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#navigate-to-other-grid"}},[e._v("Navigate to other grid")]),e._v(": navigates to another grid")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#speak-custom-text"}},[e._v("Speak custom text")]),e._v(": speaks a customizeable text using a computer voice (text-to-speech)")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#play-recorded-audio"}},[e._v("Play recorded audio")]),e._v(": plays custom audio, previously recorded via the microphone of the device")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#fill-prediction-elements"}},[e._v("Fill prediction elements")]),e._v(": fills all "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("prediction elements")]),e._v(" in the current grid with word suggestions")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#collect-element-action"}},[e._v("Collect element action")]),e._v(": performs actions on "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("collect elements")]),e._v(" in the current grid, e.g. clearing it or copying it’s text to clipboard")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#asterics-action"}},[e._v("AsTeRICS Action")]),e._v(": does an action in a running "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-framework"}},[e._v("AsTeRICS Framework")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#web-radio-action"}},[e._v("Web radio action")]),e._v(": plays a web radio station")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#YouTube-Action"}},[e._v("YouTube Action")]),e._v(": links to a YouTube video and shows it without leaving the communicator")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#Change-Content-Language"}},[e._v("Change Content Language")]),e._v(": changes the content language (description of grid elements / language of the communicator grid(s))")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#Open-webpage-in-new-tab"}},[e._v("Open webpage in new tab")]),e._v(": allows to assign an external web page to a cell and opens it in a new tab")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#openhab-action"}},[e._v("openHAB Action")]),e._v(": allows to do environmental control using devices interfaced by the OpenHAB framework")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#http-action"}},[e._v("HTTP action")]),e._v(": allows to execute commands on programs and devices providing a REST API through HTTP.")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#uart-action"}},[e._v("UART action")]),e._v(": allows to execute commands on microcontrollers providing a UART (Serial) interface (wired or Bluetooth).")],1)])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"edit-actions-modal"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#edit-actions-modal"}},[e._v("#")]),e._v(" Edit actions modal")]),e._v(" "),t("p",[t("img",{attrs:{src:o(529),alt:"edit element menu"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 1: Grid element menu")])]),e._v(" "),t("p",[e._v("Choosing “Edit” in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#editing-grid-elements"}},[e._v("Edit grid element menu")]),e._v(" (Fig.1) and clicking on the "),t("em",[e._v("Actions")]),e._v(" Tab opens the following configuration modal (Fig. 2):")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(313),alt:"edit grid element actions"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 2: Edit Actions modal")])]),e._v(" "),t("p",[e._v("This modal configures the actions that will be performed if the grid element is selected. These are the elements in the action modal:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New action")]),e._v(": select a new action to the grid, in the combobox the action type has to be selected")]),e._v(" "),t("li",[t("strong",[e._v("Add action")]),e._v(": adds the selected action type as a new action to the grid")]),e._v(" "),t("li",[t("strong",[e._v("Current actions")]),e._v(": list of currently configured actions that will be performed if the grid element is selected")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": edit and configure the particular action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete the action from this grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": tests the action, e.g. speaks the label. This button is not available for all types of actions.")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard any changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes and edit the actions of the previous element")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes and edit the actions of the next element")])]),e._v(" "),t("h2",{attrs:{id:"action-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-types"}},[e._v("#")]),e._v(" Action types")]),e._v(" "),t("p",[e._v("These are the types of actions that are selectable (Fig. 2, number 1).")]),e._v(" "),t("h3",{attrs:{id:"speak-label"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#speak-label"}},[e._v("#")]),e._v(" Speak label")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “speak label” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 3):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(530),alt:"action speak label"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 3: Configuration possibilites of “Speak label”")])]),e._v(" "),t("p",[e._v("By default the language of the browser/system is selected. Available languages can differ depending on the browser, from experience "),t("a",{attrs:{href:"https://www.google.com/chrome/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google Chrome"),t("OutboundLink")],1),e._v(" offers most languages. Clicking on the “Test” button speaks the label in the selected language.")]),e._v(" "),t("p",[e._v("You can change the language and voice settings in the "),t("strong",[e._v("Settings")]),e._v(" menu.")]),e._v(" "),t("p",[t("em",[e._v("Note: Some browsers like Internet Explorer (old default Windows browser) do not support text-to-speech. In these browsers, speak actions will do nothing. In contrast, the Microsoft Edge browser (new default Windows browser) supports many text-to-speech voices.")])]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note: In case of problems when speaking the label (e.g. no spoken label or bad quality voice), check the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_faq.html"}},[e._v("FAQ page")]),e._v(".")],1)])]),e._v(" "),t("h3",{attrs:{id:"navigate-to-other-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#navigate-to-other-grid"}},[e._v("#")]),e._v(" Navigate to other grid")]),e._v(" "),t("p",[t("img",{attrs:{src:o(531),alt:"action navigate to other grid"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 4: Configuration possibilites of “Navigate to other grid”")])]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “navigate to other grid” action (or creating a new one) shows the following configuration possibilities (Fig. 4):")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Navigation type")]),e._v(": allows to choose which type of navigation should be performed:\n"),t("ul",[t("li",[t("strong",[e._v("Navigate to grid")]),e._v(": navigates to any other grid that is selected by name. This type has this additional property:\n"),t("ul",[t("li",[t("em",[e._v("Navigate to grid")]),e._v(": allows you to select the grid to switch to if this action is performed. The combobox contains a list of the names of all available grids of the current user.")])])]),e._v(" "),t("li",[t("strong",[e._v("Navigate to home grid")]),e._v(": navigates to the home grid, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#home-grid"}},[e._v("documentation for home grid")])],1),e._v(" "),t("li",[t("strong",[e._v("Navigate to last opened grid")]),e._v(": navigates to the previously opened grid, can be used for a “back” functionality")]),e._v(" "),t("li",[t("strong",[e._v("Open search dialog")]),e._v(": opens the search dialog, which allows to navigate to any element in the current configuration, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#search-function"}},[e._v("documentation of search function")]),e._v(". This type has these additional properties:\n"),t("ul",[t("li",[t("em",[e._v("Search for custom text")]),e._v(": if specified the custom text is used to pre-fill the text in the search bar (optional)")]),e._v(" "),t("li",[t("em",[e._v("Search for collected text")]),e._v(": if checked the currently collected text of the collect element is used to pre-fill the search bar")])])],1)])]),e._v(" "),t("li",[t("strong",[e._v("Add this element to collection elements despite navigating")]),e._v(": if checked, this element is added to the collect element, despite the fact that it navigates to another grid.")])]),e._v(" "),t("h3",{attrs:{id:"speak-custom-text"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#speak-custom-text"}},[e._v("#")]),e._v(" Speak custom text")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “speak custom text” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(532),alt:"Speak custom text"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 5: Configuration possibilites of “Speak custom text”")])]),e._v(" "),t("p",[e._v("For language selection the same conditions as for "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#speak-label"}},[e._v("speak label")]),e._v(" actions apply. “Text to speak” is the custom text that should be spoken. The button “Test” tests the configuration and speaks the current text.")],1),e._v(" "),t("h3",{attrs:{id:"play-recorded-audio"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#play-recorded-audio"}},[e._v("#")]),e._v(" Play recorded audio")]),e._v(" "),t("p",[t("img",{attrs:{src:o(533),alt:"Play recorded audio"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 6: Configuration possibilities of action “Play recorded audio”")])]),e._v(" "),t("p",[e._v("After clicking "),t("strong",[e._v("Record")]),e._v(" for the first time, the browser will show a confirmation popup to ask if it’s allowed to access the microphone. After confirmation the record starts and can be stopped by clicking on the same button again.")]),e._v(" "),t("p",[e._v("With the button "),t("strong",[e._v("Play")]),e._v(" an existing recording can be played.")]),e._v(" "),t("p",[t("strong",[e._v("Notes")]),e._v(":")]),e._v(" "),t("ul",[t("li",[e._v("an existing action containing recorded audio has priority over actions "),t("em",[e._v("Speak label")]),e._v(" and "),t("em",[e._v("Speak custom text")]),e._v(". So if an action with recorded audio is present, these types of actions won’t be performed.")]),e._v(" "),t("li",[e._v("if items are collected in collect elements, recorded audio is only played for collect element actions in mode “speak separately”, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#collect-element-action"}},[e._v("Collect element action")]),e._v(".")],1)]),e._v(" "),t("h3",{attrs:{id:"fill-prediction-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fill-prediction-elements"}},[e._v("#")]),e._v(" Fill prediction elements")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=t0FWZcM9TMg&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=22&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prediction elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The action “fill prediction elements” fills all "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("prediction elements")]),e._v(" in the grid with word suggestions. Suggestions are calculated on the basis of the label of the current element, so an “fill prediction elements” action of an element with label “A” will fill the prediction elements with the most common words starting with character “A”:")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(534),alt:"fill prediction elements animation"}})]),e._v(" "),t("p",[e._v("Clicking on “Edit” on a “fill prediction elements” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(535),alt:"fill prediction elements action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 7: Configuration possibilites of “Fill prediction elements”")])]),e._v(" "),t("p",[t("strong",[e._v("Dictionary to use")]),e._v(": select the dictionary you want to use (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-dictionaries---view"}},[e._v("manage dictionaries")]),e._v("). If nothing selected words from all available dictionaries will be suggested.")],1),e._v(" "),t("h3",{attrs:{id:"collect-element-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#collect-element-action"}},[e._v("#")]),e._v(" Collect element action")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=X6YrWJW2ZoM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=21&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Collect elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("Collect element actions are various actions that are related to "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("collect elements")]),e._v(".")],1),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “collect element action” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(536),alt:"Collect element action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 8: Configuration possibilites of “Collect element action”")])]),e._v(" "),t("p",[e._v("The possible actions to choose are (when opening the combo box):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Speak collect element content (separately)")]),e._v(": speaks out the content of the collect element, where each collected element is spoken one by one, highlighting the currently spoken element.")]),e._v(" "),t("li",[t("strong",[e._v("Speak collect element content (continuously)")]),e._v(": speaks out the content of the collect element as continuous text, not highlighting the currently spoken element.")]),e._v(" "),t("li",[t("strong",[e._v("Speak collect element content (separately) and clear afterwards")]),e._v(": see above, clears collect element content after speaking")]),e._v(" "),t("li",[t("strong",[e._v("Speak collect element content (continuously) and clear afterwards")]),e._v(": see above, clears collect element content after speaking")]),e._v(" "),t("li",[t("strong",[e._v("Clear collect element")]),e._v(" empties the collect element")]),e._v(" "),t("li",[t("strong",[e._v("Delete last word/image")]),e._v(" deletes the last word/image of the collection elements: "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:o(537),alt:"Delete last word animation",width:"350"}})])]),e._v(" "),t("li",[t("strong",[e._v("Delete last character")]),e._v(": "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:o(538),alt:"Delete last character animation",width:"350"}})])]),e._v(" "),t("li",[t("strong",[e._v("Copy text to clipboard")]),e._v(": copies the current text of the collect element to clipboard in order to be available for paste in other programs")]),e._v(" "),t("li",[t("strong",[e._v("Append text to clipboard")]),e._v(": appends the current text of the collect element to clipboard making it possible to collect longer texts in the clipboard which can be used in another program afterwards")]),e._v(" "),t("li",[t("strong",[e._v("Clear clipboard")]),e._v(": empties the clipboard")]),e._v(" "),t("li",[t("strong",[e._v("Search text on YouTube")]),e._v(": searches the currently collected text on YouTube and loads the first video of the result in a YouTube player element. The YouTube player element can be located within the current grid or within another one to which is concurrently navigated to.")])]),e._v(" "),t("h3",{attrs:{id:"asterics-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-action"}},[e._v("#")]),e._v(" AsTeRICS Action")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=geLtm07HRKc&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=24&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS actions"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("An “AsTeRICS action” performs an action in a running "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-framework"}},[e._v("AsTeRICS Framework")]),e._v(". This can be any action that is possible with the AsTeRICS Framework, e.g. controlling a TV or performing computer actions like opening a program.")],1),e._v(" "),t("p",[e._v("Figure 8 shows how an AsTeRICS action that controls a TV is working in more detail:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(539),alt:"asterics action detail concept"}}),e._v(" "),t("em",[e._v("Fig. 9: AsTeRICS action concept, example of controlling a TV")])]),e._v(" "),t("p",[e._v("The following steps are shown in Figure 8:")]),e._v(" "),t("ol",[t("li",[e._v("A user selects a grid element with an associated AsTeRICS action. An "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("AsTeRICS model")]),e._v(" which can perform the desired action (e.g. controlling a TV) is saved within the current grid.")],1),e._v(" "),t("li",[e._v("The AsTeRICS model is uploaded to a running instance of the AsTeRICS Framework (ARE) and afterwards started. The model contains so-called “plugins” which are elements capable of communicating with external hardware, e.g. attached to the computer or accessible via network. In the example the “IrTrans” plugin is capable of communicating with an IrTrans device, which is a replacement for infrared remotes.")]),e._v(" "),t("li",[e._v("After uploading and starting the model on the AsTeRICS Framework, data is sent to a plugin contained in the model. In Fig. 9 some data is sent to the “action” port of the IrTrans plugin.")]),e._v(" "),t("li",[e._v("Sending data to the plugin causes the AsTeRICS Framework to communicate with the external real “IrTrans” hardware. The action contains the needed information to perform the desired action, for instance sending a “Volume down” command to a TV.")]),e._v(" "),t("li",[e._v("Finally the IrTrans device sends the infrared signal to the TV causing it to reduce the volume.")])]),e._v(" "),t("p",[e._v("Clicking on “Edit” on a “AsTeRICS action” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(540),alt:"asterics action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 10: Configuration possibilites of “AsTeRICS action”")])]),e._v(" "),t("p",[e._v("These are the possibilities while configuring an AsTeRICS action:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("ARE URL")]),e._v(": the URL of a running ARE (AsTeRICS Framework) to connect with. Standard URL is "),t("code",[e._v("http://127.0.0.1:8081/rest/")]),e._v(" for a locally running ARE.")]),e._v(" "),t("li",[t("strong",[e._v("Test URL")]),e._v(": click in order to test the current URL. A tick (✓) or times (×) symbol will indicate if the test was successful or has failed.")]),e._v(" "),t("li",[t("strong",[e._v("ARE Model")]),e._v(": if there is already a "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" of this action defined, the name of it is shown here. A click on the link downloads the model.")],1),e._v(" "),t("li",[t("strong",[e._v("Download from ARE")]),e._v(": downloads the currently running model from a running AsTeRICS Framework (ARE) instance and saves it to the grid. The current ARE model is replaced by this action.")]),e._v(" "),t("li",[t("strong",[e._v("Upload to ARE")]),e._v(": uploads the saved model to a running AsTeRICS Framework (ARE) for testing purpose or in order to adapt it.")]),e._v(" "),t("li",[t("strong",[e._v("Component")]),e._v(": selection of the component (plugin) of the selected model that should be used")]),e._v(" "),t("li",[t("strong",[e._v("Send data to port")]),e._v(": define port the data should be sent")]),e._v(" "),t("li",[t("strong",[e._v("Data")]),e._v(": define data that should be sent to the port determined above (number 7)")]),e._v(" "),t("li",[t("strong",[e._v("Event-Port")]),e._v(": define the event that should be triggered (optional)")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard any changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes and edit the actions of the previous element")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes and edit the actions of the next element")]),e._v(" "),t("li",[t("strong",[e._v("End edit")]),e._v(": apply changes and close edit mode of this AsTeRICS action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this action from this grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": performs the defined AsTeRICS action for testing, same as will be later performed if the grid element is selected")])]),e._v(" "),t("p",[t("strong",[e._v("Trigger event")]),e._v(": selects an event that should be triggered on the selected component (optional, either “send data”, “trigger event” or both can be used)")]),e._v(" "),t("h3",{attrs:{id:"web-radio-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#web-radio-action"}},[e._v("#")]),e._v(" Web radio action")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=dKZwan9dZV4&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=23&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web radio"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("AsTeRICS Grid is capable of searching and playing web radio stations. The station search capabilities are powered by the API of "),t("a",{attrs:{href:"https://www.radio-browser.info/gui/#!/",target:"_blank"}},[e._v("radio-browser.info")]),e._v(".")]),e._v(" "),t("p",[e._v("Clicking on “Edit” on a “Web radio action” (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(541),alt:"Web radio action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 11: Configuration possibilites of “Web radio action”")])]),e._v(" "),t("p",[e._v("These are the elements in this configuration dialog:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("End edit")]),e._v(": apply changes and close edit mode of this Web radio action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this action from this grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": performs the defined Web radio action for testing, same as will be later performed if the grid element is selected")]),e._v(" "),t("li",[t("strong",[e._v("Web radio action")]),e._v(": chooses the type of web radio action to perform which can be one of the following:\n"),t("ul",[t("li",[t("em",[e._v("Turn radio on")]),e._v(": turns on the radio with the channel selected at "),t("em",[e._v("Webradio to play")])]),e._v(" "),t("li",[t("em",[e._v("Turn radio on/off")]),e._v(": toggles the radio on/off state with the channel selected at "),t("em",[e._v("Webradio to play")])]),e._v(" "),t("li",[t("em",[e._v("Turn radio off")]),e._v(": turns the radio off")]),e._v(" "),t("li",[t("em",[e._v("Next radio channel")]),e._v(": moves to next radio channel in the list of selected radio stations, see (4)")]),e._v(" "),t("li",[t("em",[e._v("Previous radio channel")]),e._v(": moves to previous radio channel in the list of selected radio stations, see (4)")]),e._v(" "),t("li",[t("em",[e._v("Radio volume up")]),e._v(": increases the radio volume")]),e._v(" "),t("li",[t("em",[e._v("Radio volume down")]),e._v(": decreases the radio volume")])])]),e._v(" "),t("li",[t("strong",[e._v("Webradio to play")]),e._v(": chooses which radio to play (only visible for "),t("em",[e._v("Turn radio on")]),e._v(" and "),t("em",[e._v("Turn radio on/off")]),e._v("), possible channels to select are defined in selected radio stations list, see (4)")]),e._v(" "),t("li",[t("strong",[e._v("Manage webradio list")]),e._v(": accordion which folds/unfolds the section where radio stations can be searched and selected")]),e._v(" "),t("li",[t("strong",[e._v("Create grid elements for webradios")]),e._v(": As many radio stations selected, as many grid elements will be created, each element corresponding to one of the selected radio stations")]),e._v(" "),t("li",[t("strong",[e._v("Selected radio stations list")]),e._v(": list of selected radio stations which are available within the current grid")]),e._v(" "),t("li",[t("strong",[e._v("Up")]),e._v(": moves the station up in the list (reordering)")]),e._v(" "),t("li",[t("strong",[e._v("Play")]),e._v(": plays the radio channel")]),e._v(" "),t("li",[t("strong",[e._v("Remove")]),e._v(": removes the radio channel from the list of selected radio stations")]),e._v(" "),t("li",[t("strong",[e._v("Search term input")]),e._v(": search bar for searching new radio stations. By default search is done for radio station name, but the following additional properties are possible (see "),t("a",{attrs:{href:"http://www.radio-browser.info/webservice#Advanced_station_search",target:"_blank",rel:"noopener noreferrer"}},[e._v("API documentation"),t("OutboundLink")],1),e._v("): "),t("em",[e._v("name (default), country, state, language, tag, tagList, order")]),e._v(". To use this additional properties they have to be added with semicolon to the search term.\n"),t("ul",[t("li",[t("em",[e._v("Examples")]),e._v(": The search term for looking for austrian radio stations with name "),t("code",[e._v("Hitradio")]),e._v(" would be: "),t("code",[e._v("name:Hitradio country:austria")]),e._v(". If the search term is just "),t("code",[e._v("Hitradio")]),e._v(" search will be done for radio stations with this name.")])])]),e._v(" "),t("li",[t("strong",[e._v("Webradio search result list")]),e._v(": result list for the current search term")]),e._v(" "),t("li",[t("strong",[e._v("Play")]),e._v(": plays the radio station")]),e._v(" "),t("li",[t("strong",[e._v("Select")]),e._v(": adds the radio station to the list of selected radio stations, see (8)")]),e._v(" "),t("li",[t("strong",[e._v("Previous page")]),e._v(": navigates to the previous page of search results (if available)")]),e._v(" "),t("li",[t("strong",[e._v("Next page")]),e._v(": navigates to the next page of search results (if available)")])]),e._v(" "),t("h3",{attrs:{id:"youtube-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#youtube-action"}},[e._v("#")]),e._v(" YouTube Action")]),e._v(" "),t("p",[e._v("The YouTube Action allows you to link videos from this web page to the communicator and view them without leavting the communicator. Different control functions can be assigned to the cells for the display of the videos.")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “YouTube” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 12):")]),e._v(" "),t("img",{attrs:{src:o(542),width:"800"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 12: Configuration possibilites of “YouTube Action”")])]),e._v(" "),t("p",[e._v("The possible actions/functions to choose are (when opening the combo box):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Play video")]),e._v(" "),t("ul",[t("li",[e._v("Play type (Play single video, Play playlist, Play videos from search query, Play videos from channel)")]),e._v(" "),t("li",[e._v("Video link: insert the YouTube Video link here")]),e._v(" "),t("li",[e._v("Show video subtitles (if available): can be de/activated")]),e._v(" "),t("li",[e._v("Start video muted: can be de/activated")]),e._v(" "),t("li",[e._v("Perfrom action after navigation: can be de/activated")])])]),e._v(" "),t("li",[t("strong",[e._v("Pause video")])]),e._v(" "),t("li",[t("strong",[e._v("Play/Pause video")]),e._v(": same options like in "),t("em",[e._v("Play video")])]),e._v(" "),t("li",[t("strong",[e._v("Restart video")]),e._v(": same options like in "),t("em",[e._v("Play video")])]),e._v(" "),t("li",[t("strong",[e._v("Stop video")])]),e._v(" "),t("li",[t("strong",[e._v("Step forward within video")]),e._v(" "),t("ul",[t("li",[e._v("Step forward within video (seconds): the number typed in represents the time in seconds the video will be fast-forwarded")])])]),e._v(" "),t("li",[t("strong",[e._v("Step backward within video")]),e._v(" "),t("ul",[t("li",[e._v("Step backward within video (seconds): the number typed in represents the time in seconds the video will be rewound")])])]),e._v(" "),t("li",[t("strong",[e._v("Next video")])]),e._v(" "),t("li",[t("strong",[e._v("Previous video")])]),e._v(" "),t("li",[t("strong",[e._v("Show video in fullscreen")])]),e._v(" "),t("li",[t("strong",[e._v("Video volume up")]),e._v(" "),t("ul",[t("li",[e._v("Vido volume up (percent): the number typed in represents the percentage the volume will be volumed up")])])]),e._v(" "),t("li",[t("strong",[e._v("Video volume down")]),e._v(" "),t("ul",[t("li",[e._v("Vido volume down (percent): the number typed in represents the percentage the volume will be volumed down")])])]),e._v(" "),t("li",[t("strong",[e._v("Mute/unmute video")])])]),e._v(" "),t("p",[e._v('To add a “YouTube Grid”, one grid element hast to be a “YouTube Player”, which can be created in the “Editing on view” in the menu “more” → ‘New’ → " New You Tube Player", as can be seen in Figure 12:')]),e._v(" "),t("p",[t("img",{attrs:{src:o(543),alt:"action youtubeplayer"}})]),e._v(" "),t("p",[t("em",[e._v('Fig. 13: Creating a New YouTube Player element"')])]),e._v(" "),t("p",[e._v("Other (“normal”) grid elements can be assigned with the functions listed above and a corresponding image can be chosen in the "),t("em",[e._v("Image Tab")]),e._v(". In ARASAAC, a collection of multimedia buttons is prepared, just type the word "),t("em",[e._v("button")]),e._v(" in the "),t("em",[e._v("Image search")]),e._v(" field of the "),t("em",[e._v("Image Tab")]),e._v(". If different grid elements are assigned with the "),t("em",[e._v("Play video")]),e._v(" functions and are linked to different YouTube videos, the selected video will be played in the “YouTube Player” element, which has been created as shown in Figure 10.")]),e._v(" "),t("h3",{attrs:{id:"change-content-language"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-content-language"}},[e._v("#")]),e._v(" Change Content Language")]),e._v(" "),t("p",[e._v("This action is used to change the language of the communicator grid(s) by clicking on a grid element that we have configured to perform this action.")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “Change content language” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 14):")]),e._v(" "),t("img",{attrs:{src:o(544),width:"850"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 14: Configuration possibilites of “Change content language - Action”")])]),e._v(" "),t("p",[e._v("The language in which the application language shall be changed to can be selected in the corresponding combobox.")]),e._v(" "),t("p",[e._v("In the following two figures an example is show, where the content language can be switched from english to french or inversely by clicking on the corresponding flag (Fig. 15 and 16).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(545),alt:"action changecontentEN"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 15: Content language in English")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(546),alt:"action changecontentEN"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 16: Content language in French")])]),e._v(" "),t("p",[e._v("First of all, you have to check if the grid content can already be translated in the desired language. To do that, you click on the “more” button in the “Edtiting on” view and select the "),t("em",[e._v("Translate grid")]),e._v(" option as shown in Fig. 17:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(547),alt:"action changecontentEN"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 17: Translate grid option")])]),e._v(" "),t("p",[e._v("After clicking on the “Translate grid” option, the following window opens (Fig. 18):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(548),alt:"action translategrid1"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 18: Translate grid - select language and translate the content")])]),e._v(" "),t("p",[e._v("Here, the language, in which the grid content shall be translated, can be chosen. The right column shows the translations which are already stored in the application. Missing translations have to be filled in here.")]),e._v(" "),t("h3",{attrs:{id:"open-webpage-in-new-tab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-webpage-in-new-tab"}},[e._v("#")]),e._v(" Open webpage in new tab")]),e._v(" "),t("p",[e._v("This action allows to assign an external web page to a grid element and, by clicking on it, to access the information contained therein.")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “Open webpage in new tab” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 19):")]),e._v(" "),t("img",{attrs:{src:o(549),width:"850"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 19: Configuration possibilites of “Open webpage in new tab”")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Webpage URL")]),e._v(": copy the URL of the desired webpage and enter it here")]),e._v(" "),t("li",[t("strong",[e._v("Automatically close timeout in seconds")]),e._v(": enter time in seconds you want the tab remains open. After this time, the web page will close and the communicator grid will be displayed again")])]),e._v(" "),t("p",[e._v("By clicking on the grid elemnt this action is assigned to, the chosen webpage is accessed and the user can navigate in it for the time which was set. After this time, the webpage will be closed and the user will return to the communicator.")]),e._v(" "),t("h3",{attrs:{id:"openhab-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openhab-action"}},[e._v("#")]),e._v(" openHAB Action")]),e._v(" "),t("p",[e._v("AsTeRICS Grid is capable of controlling a local openHAB installation through the browser. This action utilizes the REST\nAPI of openHAB (see "),t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("openHAB API documentation"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[e._v("Figure 20 shows the configuration possibilities of an openHAB action:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(550),alt:"openHAB action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 20: Defining a new openHAB action")])]),e._v(" "),t("p",[e._v("These are the elements in this configuration dialog:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("openHAB URL")]),e._v(": the URL of a running openHAB instance to connect with. Standard URL is "),t("code",[e._v("http://127.0.0.1:8080/rest/items/")]),e._v(" for a local openHAB instance.")]),e._v(" "),t("li",[t("strong",[e._v("Fetch Items")]),e._v(": click in order to fetch all available items from the current URL. A tick (✓) or times (×) symbol will indicate if fetching was successful or has failed.")]),e._v(" "),t("li",[t("strong",[e._v("Filter through item types")]),e._v(": filter fetched items with its item type (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#controllable-items"}},[e._v("controllable Items")]),e._v(" for what items are controllable). By default, all items are selected.")],1),e._v(" "),t("li",[t("strong",[e._v("Search for items by name")]),e._v(": search for items by name.")]),e._v(" "),t("li",[t("strong",[e._v("Select item")]),e._v(": all or filtered items will be listed in a dropdown menu.")]),e._v(" "),t("li",[t("strong",[e._v("Choose command to send")]),e._v(": according to the item type, a selection of commands will be available.")]),e._v(" "),t("li",[t("strong",[e._v("Create grid elements")]),e._v(": this button allows to create grid elements for all actions of the currently selected items. Note that generated grid elements will only appear after clicking “OK” in the grid element edit modal.")]),e._v(" "),t("li",[t("strong",[e._v("Choose custom value for item (optional)")]),e._v(": some items (Dimmer, Color, Roller shutter, Temperature) can be controlled with custom values (e.g.: absolute value for dimmer, custom color). The input variant for the specific item will change accordingly.")])]),e._v(" "),t("p",[e._v("When editing an already created action, selecting a new item will be disabled and only the action for the current command can be changed.\nIf the item should be changed, it is required to fetch the items again.\nAfter the items are fetched, the action can be configured as if it was created new.")]),e._v(" "),t("h4",{attrs:{id:"controllable-items"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#controllable-items"}},[e._v("#")]),e._v(" Controllable items")]),e._v(" "),t("p",[e._v("Following items are implemented and controllable via the action:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Switch")]),e._v(":\nIncludes items like light switches, switches for automations, switches for outlets, …")]),e._v(" "),t("li",[t("strong",[e._v("Dimmer")]),e._v(":\nIncludes all dimmable lights")]),e._v(" "),t("li",[t("strong",[e._v("Roller shutter")]),e._v(":\nIncludes all roller shutter and blinds")]),e._v(" "),t("li",[t("strong",[e._v("Color")]),e._v(":\nIncludes all multicolor lights")]),e._v(" "),t("li",[t("strong",[e._v("Temperature")]),e._v(":\nInlcudes items with a setable temperature like thermostats")]),e._v(" "),t("li",[t("strong",[e._v("Media player")]),e._v(":\nIncludes all media player devices")])]),e._v(" "),t("p",[e._v("An item must be implemented in openHAB in order to be accessible via the action.")]),e._v(" "),t("h4",{attrs:{id:"notes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes:")]),e._v(" "),t("ul",[t("li",[e._v("In order to use this action, CORS must be enabled by your openHAB installation. Otherwise, openHAB will deny the\naction calls.")]),e._v(" "),t("li",[e._v("You must be in the same network as your openHAB installation.")]),e._v(" "),t("li",[e._v("Basic Authentication is not supported.")])]),e._v(" "),t("h4",{attrs:{id:"accessing-openhab-via-http-https"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessing-openhab-via-http-https"}},[e._v("#")]),e._v(" Accessing openHAB via http/https")]),e._v(" "),t("p",[e._v("By default, the action searches for a local openHAB instance on port 8080.\nIf the openHAB installation is hosted in the local network, there are two possible ways to access it via the browser:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("http")]),e._v(":\nIf you are using openHAB over http with port 8080, you need to allow your browser to use "),t("em",[t("strong",[e._v("mixed content")])]),e._v(".\nOtherwise, the browser has no permission to access your local network.\nRead "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_faq.html#allow-mixed-content-httphttps"}},[e._v("Allow mixed content (http/https)")]),e._v(" to enable it.")],1),e._v(" "),t("li",[t("strong",[e._v("https")]),e._v(":\nIf you are using openHAB over https with port 8443, some browser need a one-time-exception to use the resources from\nthe REST-API.\n"),t("ul",[t("li",[t("strong",[e._v("Google Chrome")]),e._v(":\nDoes not require additional steps for using the REST-API over https.")]),e._v(" "),t("li",[t("strong",[e._v("Firefox and Safari")]),e._v(":\nIn order to use the REST-API, a new tab with the address "),t("code",[e._v("https://:8443/rest/items")]),e._v(" must be\nopened. Firefox/Safari will prompt that this resource is insecure. By allowing to show the content of this website,\nan exception is created to allow general connections to the resource. After granting this exception, the\nopenHAB-Action can access openHAB via https. Figure 21 shows an example of such a security prompt.")])])])]),e._v(" "),t("img",{attrs:{src:o(551),title:"openHAB action set browser exception",width:"700"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 21: Example of a security prompt by Firefox")])]),e._v(" "),t("h3",{attrs:{id:"http-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#http-action"}},[e._v("#")]),e._v(" HTTP action")]),e._v(" "),t("p",[e._v("This action can send arbitrary HTTP requests, e.g. for accessing any REST API.\nFor hands-on tutorials, have a look at the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/513_http-action-tutorials.html"}},[e._v("HTTP action tutorials")]),e._v(".")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(552),alt:"Configuration of a HTTP action"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 22: Configuration of a HTTP action")])]),e._v(" "),t("p",[e._v("Figure 22 shows the configuration of a HTTP action, which has these properties:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("HTTP URL")]),e._v(": the URL where the request should be sent to")]),e._v(" "),t("li",[t("strong",[e._v("HTTP body")]),e._v(": the data that should be sent within the request (not applicable for HTTP method "),t("code",[e._v("GET")]),e._v(" and "),t("code",[e._v("HEAD")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("HTTP method")]),e._v(": the method to be used for the request. Can be "),t("code",[e._v("GET")]),e._v(", "),t("code",[e._v("POST")]),e._v(", "),t("code",[e._v("PUT")]),e._v(", "),t("code",[e._v("DELETE")]),e._v(", "),t("code",[e._v("HEAD")]),e._v(", "),t("code",[e._v("OPTIONS")]),e._v(" and "),t("code",[e._v("PATCH")])]),e._v(" "),t("li",[t("strong",[e._v("HTTP Content-Type")]),e._v(": the Content-Type of the request, defaults to "),t("code",[e._v("text/plain")])]),e._v(" "),t("li",[t("strong",[e._v("HTTP Authentication User")]),e._v(": the (optional) username for HTTP authentication")]),e._v(" "),t("li",[t("strong",[e._v("HTTP Authentication Password")]),e._v(": the (optional) password for HTTP authentication")])]),e._v(" "),t("p",[e._v("Any errors from requests will be shown in a popup in the lower right corner of the application.")]),e._v(" "),t("h3",{attrs:{id:"uart-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uart-action"}},[e._v("#")]),e._v(" UART action")]),e._v(" "),t("p",[e._v("This action allows sending commands to microcontrollers using the UART (Serial) interface. The connections can be wired (using "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web Serial"),t("OutboundLink")],1),e._v(", Chrome/Edge-Desktop) or wireless (using "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web Bluetooth"),t("OutboundLink")],1),e._v(", Chrome/Edge-Desktop/Mobile).")]),e._v(" "),t("h4",{attrs:{id:"example-use-cases"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-use-cases"}},[e._v("#")]),e._v(" Example use cases")]),e._v(" "),t("ul",[t("li",[e._v("Creating a remote control for a TV by sending Infrared commands to the Open Source microcontroller "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(". The commands can be directly copied from the "),t("a",{attrs:{href:"https://asterics.github.io/puckmote/",target:"_blank",rel:"noopener noreferrer"}},[e._v("puckmote"),t("OutboundLink")],1),e._v(" online remote control database.")]),e._v(" "),t("li",[e._v("Creating accessible battery-powered toys (e.g. soap bubble machine, disco light or duplo train)")]),e._v(" "),t("li",[e._v("Creating a mouse click or keyboard input using the button interface FABI or the mouth mouse FLipMouse.")])]),e._v(" "),t("p",[e._v("For hands-on tutorials, have a look at the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/514_uart-action-tutorials.html"}},[e._v("UART action tutorials")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"supported-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-devices"}},[e._v("#")]),e._v(" Supported devices")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.espruino.com/Other+Boards#boards-that-espruino-works-on",target:"_blank",rel:"noopener noreferrer"}},[e._v("Devices supported by Espruino"),t("OutboundLink")],1),e._v(", e.g. "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flexible Assistive Button Interface (FABI)"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/the-flipmouse/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Finger and Lip mouse (FLipMouse)"),t("OutboundLink")],1)])]),e._v(" "),t("h4",{attrs:{id:"supported-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-commands"}},[e._v("#")]),e._v(" Supported commands")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/a1f3d53c-0237-4342-a85d-90d745d2f0d9",alt:"image"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 23: Configuration of a UART action.")])]),e._v(" "),t("p",[e._v("The action supports the following input fields:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("UART Type")]),e._v(": Choose between "),t("code",[e._v("Bluetooth")]),e._v(" and "),t("code",[e._v("Serial")]),e._v("(wired)")]),e._v(" "),t("li",[t("strong",[e._v("Data")]),e._v(": A string to be executed on the microcontroller (e.g. Javascript code (Espruino devices) or AT commands (FABI, FLipMouse)).")])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=a.exports},313:function(e,t,o){e.exports=o.p+"assets/img/edit_grid_element_actions_en.8cb3125d.jpg"},529:function(e,t,o){e.exports=o.p+"assets/img/edit_element_menu_en_edit.71e6f08b.jpg"},530:function(e,t,o){e.exports=o.p+"assets/img/action_speak_label_en.fa6d559c.jpg"},531:function(e,t,o){e.exports=o.p+"assets/img/action_navigate_en1.1ab0f66e.jpg"},532:function(e,t,o){e.exports=o.p+"assets/img/action_speak_custom_en.d0ea64af.jpg"},533:function(e,t,o){e.exports=o.p+"assets/img/action_play_recorded_audio.ef999c80.png"},534:function(e,t,o){e.exports=o.p+"assets/img/fill_predictions.b9cbc05d.gif"},535:function(e,t,o){e.exports=o.p+"assets/img/action_fillprediction_en.56c3896c.jpg"},536:function(e,t,o){e.exports=o.p+"assets/img/action_collectelement_en.952cdee0.jpg"},537:function(e,t,o){e.exports=o.p+"assets/img/collect_delete.3acb3ae6.gif"},538:function(e,t,o){e.exports=o.p+"assets/img/collect_delete_c.a3d47cfc.gif"},539:function(e,t,o){e.exports=o.p+"assets/img/asterics-action-are_en.663cadf0.png"},540:function(e,t,o){e.exports=o.p+"assets/img/action_asterics_en.54d3853f.jpg"},541:function(e,t,o){e.exports=o.p+"assets/img/action_webradio_en.bdd8c3be.jpg"},542:function(e,t,o){e.exports=o.p+"assets/img/action_youtube_en.72351919.JPG"},543:function(e,t,o){e.exports=o.p+"assets/img/youtubeplayer_en.aa74d741.JPG"},544:function(e,t,o){e.exports=o.p+"assets/img/action_contentlanguage_en.bc8d0c10.JPG"},545:function(e,t,o){e.exports=o.p+"assets/img/changecontent_en.f73f628c.JPG"},546:function(e,t,o){e.exports=o.p+"assets/img/changecontent_fr.f5d3c74b.JPG"},547:function(e,t,o){e.exports=o.p+"assets/img/translategrid_en.69ebc03f.JPG"},548:function(e,t,o){e.exports=o.p+"assets/img/translategrid1_en.6e489a99.JPG"},549:function(e,t,o){e.exports=o.p+"assets/img/action_openwebpage_en.a15db954.JPG"},550:function(e,t,o){e.exports=o.p+"assets/img/openHAB-configuration.2613f28d.png"},551:function(e,t,o){e.exports=o.p+"assets/img/openHAB-https-exception.efb54332.png"},552:function(e,t,o){e.exports=o.p+"assets/img/action-http.f6bcdfa1.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{1052:function(e,t,o){"use strict";o.r(t);var i=o(2),a=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"grid-element-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#grid-element-actions"}},[e._v("#")]),e._v(" Grid element actions")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=GAhtjs8bts0&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=14&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Edit actions"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("This chapter is about actions that can be performed if a grid element is selected and how to configure them:")]),e._v(" "),t("ol",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#edit-actions-modal"}},[e._v("Edit actions modal")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#action-types"}},[e._v("Action Types")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#speak-label"}},[e._v("Speak label")]),e._v(": speaks the label of the element using a computer voice (text-to-speech)")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#navigate-to-other-grid"}},[e._v("Navigate to other grid")]),e._v(": navigates to another grid")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#speak-custom-text"}},[e._v("Speak custom text")]),e._v(": speaks a customizeable text using a computer voice (text-to-speech)")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#play-recorded-audio"}},[e._v("Play recorded audio")]),e._v(": plays custom audio, previously recorded via the microphone of the device")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#fill-prediction-elements"}},[e._v("Fill prediction elements")]),e._v(": fills all "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("prediction elements")]),e._v(" in the current grid with word suggestions")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#collect-element-action"}},[e._v("Collect element action")]),e._v(": performs actions on "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("collect elements")]),e._v(" in the current grid, e.g. clearing it or copying it’s text to clipboard")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#asterics-action"}},[e._v("AsTeRICS Action")]),e._v(": does an action in a running "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-framework"}},[e._v("AsTeRICS Framework")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#web-radio-action"}},[e._v("Web radio action")]),e._v(": plays a web radio station")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#YouTube-Action"}},[e._v("YouTube Action")]),e._v(": links to a YouTube video and shows it without leaving the communicator")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#Change-Content-Language"}},[e._v("Change Content Language")]),e._v(": changes the content language (description of grid elements / language of the communicator grid(s))")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#Open-webpage-in-new-tab"}},[e._v("Open webpage in new tab")]),e._v(": allows to assign an external web page to a cell and opens it in a new tab")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#openhab-action"}},[e._v("openHAB Action")]),e._v(": allows to do environmental control using devices interfaced by the OpenHAB framework")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#http-action"}},[e._v("HTTP action")]),e._v(": allows to execute commands on programs and devices providing a REST API through HTTP.")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#uart-action"}},[e._v("UART action")]),e._v(": allows to execute commands on microcontrollers providing a UART (Serial) interface (wired or Bluetooth).")],1)])],1)]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1),e._v(" "),t("h2",{attrs:{id:"edit-actions-modal"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#edit-actions-modal"}},[e._v("#")]),e._v(" Edit actions modal")]),e._v(" "),t("p",[t("img",{attrs:{src:o(522),alt:"edit element menu"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 1: Grid element menu")])]),e._v(" "),t("p",[e._v("Choosing “Edit” in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#editing-grid-elements"}},[e._v("Edit grid element menu")]),e._v(" (Fig.1) and clicking on the "),t("em",[e._v("Actions")]),e._v(" Tab opens the following configuration modal (Fig. 2):")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(313),alt:"edit grid element actions"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 2: Edit Actions modal")])]),e._v(" "),t("p",[e._v("This modal configures the actions that will be performed if the grid element is selected. These are the elements in the action modal:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("New action")]),e._v(": select a new action to the grid, in the combobox the action type has to be selected")]),e._v(" "),t("li",[t("strong",[e._v("Add action")]),e._v(": adds the selected action type as a new action to the grid")]),e._v(" "),t("li",[t("strong",[e._v("Current actions")]),e._v(": list of currently configured actions that will be performed if the grid element is selected")]),e._v(" "),t("li",[t("strong",[e._v("Edit")]),e._v(": edit and configure the particular action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete the action from this grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": tests the action, e.g. speaks the label. This button is not available for all types of actions.")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard any changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes and edit the actions of the previous element")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes and edit the actions of the next element")])]),e._v(" "),t("h2",{attrs:{id:"action-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-types"}},[e._v("#")]),e._v(" Action types")]),e._v(" "),t("p",[e._v("These are the types of actions that are selectable (Fig. 2, number 1).")]),e._v(" "),t("h3",{attrs:{id:"speak-label"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#speak-label"}},[e._v("#")]),e._v(" Speak label")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “speak label” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 3):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(523),alt:"action speak label"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 3: Configuration possibilites of “Speak label”")])]),e._v(" "),t("p",[e._v("By default the language of the browser/system is selected. Available languages can differ depending on the browser, from experience "),t("a",{attrs:{href:"https://www.google.com/chrome/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google Chrome"),t("OutboundLink")],1),e._v(" offers most languages. Clicking on the “Test” button speaks the label in the selected language.")]),e._v(" "),t("p",[e._v("You can change the language and voice settings in the "),t("strong",[e._v("Settings")]),e._v(" menu.")]),e._v(" "),t("p",[t("em",[e._v("Note: Some browsers like Internet Explorer (old default Windows browser) do not support text-to-speech. In these browsers, speak actions will do nothing. In contrast, the Microsoft Edge browser (new default Windows browser) supports many text-to-speech voices.")])]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note: In case of problems when speaking the label (e.g. no spoken label or bad quality voice), check the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_faq.html"}},[e._v("FAQ page")]),e._v(".")],1)])]),e._v(" "),t("h3",{attrs:{id:"navigate-to-other-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#navigate-to-other-grid"}},[e._v("#")]),e._v(" Navigate to other grid")]),e._v(" "),t("p",[t("img",{attrs:{src:o(524),alt:"action navigate to other grid"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 4: Configuration possibilites of “Navigate to other grid”")])]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “navigate to other grid” action (or creating a new one) shows the following configuration possibilities (Fig. 4):")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Navigation type")]),e._v(": allows to choose which type of navigation should be performed:\n"),t("ul",[t("li",[t("strong",[e._v("Navigate to grid")]),e._v(": navigates to any other grid that is selected by name. This type has this additional property:\n"),t("ul",[t("li",[t("em",[e._v("Navigate to grid")]),e._v(": allows you to select the grid to switch to if this action is performed. The combobox contains a list of the names of all available grids of the current user.")])])]),e._v(" "),t("li",[t("strong",[e._v("Navigate to home grid")]),e._v(": navigates to the home grid, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#home-grid"}},[e._v("documentation for home grid")])],1),e._v(" "),t("li",[t("strong",[e._v("Navigate to last opened grid")]),e._v(": navigates to the previously opened grid, can be used for a “back” functionality")]),e._v(" "),t("li",[t("strong",[e._v("Open search dialog")]),e._v(": opens the search dialog, which allows to navigate to any element in the current configuration, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#search-function"}},[e._v("documentation of search function")]),e._v(". This type has these additional properties:\n"),t("ul",[t("li",[t("em",[e._v("Search for custom text")]),e._v(": if specified the custom text is used to pre-fill the text in the search bar (optional)")]),e._v(" "),t("li",[t("em",[e._v("Search for collected text")]),e._v(": if checked the currently collected text of the collect element is used to pre-fill the search bar")])])],1)])]),e._v(" "),t("li",[t("strong",[e._v("Add this element to collection elements despite navigating")]),e._v(": if checked, this element is added to the collect element, despite the fact that it navigates to another grid.")])]),e._v(" "),t("h3",{attrs:{id:"speak-custom-text"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#speak-custom-text"}},[e._v("#")]),e._v(" Speak custom text")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “speak custom text” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(525),alt:"Speak custom text"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 5: Configuration possibilites of “Speak custom text”")])]),e._v(" "),t("p",[e._v("For language selection the same conditions as for "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#speak-label"}},[e._v("speak label")]),e._v(" actions apply. “Text to speak” is the custom text that should be spoken. The button “Test” tests the configuration and speaks the current text.")],1),e._v(" "),t("h3",{attrs:{id:"play-recorded-audio"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#play-recorded-audio"}},[e._v("#")]),e._v(" Play recorded audio")]),e._v(" "),t("p",[t("img",{attrs:{src:o(526),alt:"Play recorded audio"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 6: Configuration possibilities of action “Play recorded audio”")])]),e._v(" "),t("p",[e._v("After clicking "),t("strong",[e._v("Record")]),e._v(" for the first time, the browser will show a confirmation popup to ask if it’s allowed to access the microphone. After confirmation the record starts and can be stopped by clicking on the same button again.")]),e._v(" "),t("p",[e._v("With the button "),t("strong",[e._v("Play")]),e._v(" an existing recording can be played.")]),e._v(" "),t("p",[t("strong",[e._v("Notes")]),e._v(":")]),e._v(" "),t("ul",[t("li",[e._v("an existing action containing recorded audio has priority over actions "),t("em",[e._v("Speak label")]),e._v(" and "),t("em",[e._v("Speak custom text")]),e._v(". So if an action with recorded audio is present, these types of actions won’t be performed.")]),e._v(" "),t("li",[e._v("if items are collected in collect elements, recorded audio is only played for collect element actions in mode “speak separately”, see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#collect-element-action"}},[e._v("Collect element action")]),e._v(".")],1)]),e._v(" "),t("h3",{attrs:{id:"fill-prediction-elements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fill-prediction-elements"}},[e._v("#")]),e._v(" Fill prediction elements")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=t0FWZcM9TMg&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=22&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Prediction elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("The action “fill prediction elements” fills all "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("prediction elements")]),e._v(" in the grid with word suggestions. Suggestions are calculated on the basis of the label of the current element, so an “fill prediction elements” action of an element with label “A” will fill the prediction elements with the most common words starting with character “A”:")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(527),alt:"fill prediction elements animation"}})]),e._v(" "),t("p",[e._v("Clicking on “Edit” on a “fill prediction elements” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(528),alt:"fill prediction elements action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 7: Configuration possibilites of “Fill prediction elements”")])]),e._v(" "),t("p",[t("strong",[e._v("Dictionary to use")]),e._v(": select the dictionary you want to use (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html#manage-dictionaries---view"}},[e._v("manage dictionaries")]),e._v("). If nothing selected words from all available dictionaries will be suggested.")],1),e._v(" "),t("h3",{attrs:{id:"collect-element-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#collect-element-action"}},[e._v("#")]),e._v(" Collect element action")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=X6YrWJW2ZoM&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=21&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Collect elements"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("Collect element actions are various actions that are related to "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[e._v("collect elements")]),e._v(".")],1),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “collect element action” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(529),alt:"Collect element action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 8: Configuration possibilites of “Collect element action”")])]),e._v(" "),t("p",[e._v("The possible actions to choose are (when opening the combo box):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Speak collect element content (separately)")]),e._v(": speaks out the content of the collect element, where each collected element is spoken one by one, highlighting the currently spoken element.")]),e._v(" "),t("li",[t("strong",[e._v("Speak collect element content (continuously)")]),e._v(": speaks out the content of the collect element as continuous text, not highlighting the currently spoken element.")]),e._v(" "),t("li",[t("strong",[e._v("Speak collect element content (separately) and clear afterwards")]),e._v(": see above, clears collect element content after speaking")]),e._v(" "),t("li",[t("strong",[e._v("Speak collect element content (continuously) and clear afterwards")]),e._v(": see above, clears collect element content after speaking")]),e._v(" "),t("li",[t("strong",[e._v("Clear collect element")]),e._v(" empties the collect element")]),e._v(" "),t("li",[t("strong",[e._v("Delete last word/image")]),e._v(" deletes the last word/image of the collection elements: "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:o(530),alt:"Delete last word animation",width:"350"}})])]),e._v(" "),t("li",[t("strong",[e._v("Delete last character")]),e._v(": "),t("div",{staticStyle:{"margin-left":"2em"}},[t("img",{attrs:{src:o(531),alt:"Delete last character animation",width:"350"}})])]),e._v(" "),t("li",[t("strong",[e._v("Copy text to clipboard")]),e._v(": copies the current text of the collect element to clipboard in order to be available for paste in other programs")]),e._v(" "),t("li",[t("strong",[e._v("Append text to clipboard")]),e._v(": appends the current text of the collect element to clipboard making it possible to collect longer texts in the clipboard which can be used in another program afterwards")]),e._v(" "),t("li",[t("strong",[e._v("Clear clipboard")]),e._v(": empties the clipboard")]),e._v(" "),t("li",[t("strong",[e._v("Search text on YouTube")]),e._v(": searches the currently collected text on YouTube and loads the first video of the result in a YouTube player element. The YouTube player element can be located within the current grid or within another one to which is concurrently navigated to.")])]),e._v(" "),t("h3",{attrs:{id:"asterics-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-action"}},[e._v("#")]),e._v(" AsTeRICS Action")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=geLtm07HRKc&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=24&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS actions"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("An “AsTeRICS action” performs an action in a running "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-framework"}},[e._v("AsTeRICS Framework")]),e._v(". This can be any action that is possible with the AsTeRICS Framework, e.g. controlling a TV or performing computer actions like opening a program.")],1),e._v(" "),t("p",[e._v("Figure 8 shows how an AsTeRICS action that controls a TV is working in more detail:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(532),alt:"asterics action detail concept"}}),e._v(" "),t("em",[e._v("Fig. 9: AsTeRICS action concept, example of controlling a TV")])]),e._v(" "),t("p",[e._v("The following steps are shown in Figure 8:")]),e._v(" "),t("ol",[t("li",[e._v("A user selects a grid element with an associated AsTeRICS action. An "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("AsTeRICS model")]),e._v(" which can perform the desired action (e.g. controlling a TV) is saved within the current grid.")],1),e._v(" "),t("li",[e._v("The AsTeRICS model is uploaded to a running instance of the AsTeRICS Framework (ARE) and afterwards started. The model contains so-called “plugins” which are elements capable of communicating with external hardware, e.g. attached to the computer or accessible via network. In the example the “IrTrans” plugin is capable of communicating with an IrTrans device, which is a replacement for infrared remotes.")]),e._v(" "),t("li",[e._v("After uploading and starting the model on the AsTeRICS Framework, data is sent to a plugin contained in the model. In Fig. 9 some data is sent to the “action” port of the IrTrans plugin.")]),e._v(" "),t("li",[e._v("Sending data to the plugin causes the AsTeRICS Framework to communicate with the external real “IrTrans” hardware. The action contains the needed information to perform the desired action, for instance sending a “Volume down” command to a TV.")]),e._v(" "),t("li",[e._v("Finally the IrTrans device sends the infrared signal to the TV causing it to reduce the volume.")])]),e._v(" "),t("p",[e._v("Clicking on “Edit” on a “AsTeRICS action” action (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(533),alt:"asterics action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 10: Configuration possibilites of “AsTeRICS action”")])]),e._v(" "),t("p",[e._v("These are the possibilities while configuring an AsTeRICS action:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("ARE URL")]),e._v(": the URL of a running ARE (AsTeRICS Framework) to connect with. Standard URL is "),t("code",[e._v("http://127.0.0.1:8081/rest/")]),e._v(" for a locally running ARE.")]),e._v(" "),t("li",[t("strong",[e._v("Test URL")]),e._v(": click in order to test the current URL. A tick (✓) or times (×) symbol will indicate if the test was successful or has failed.")]),e._v(" "),t("li",[t("strong",[e._v("ARE Model")]),e._v(": if there is already a "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#asterics-model"}},[e._v("model")]),e._v(" of this action defined, the name of it is shown here. A click on the link downloads the model.")],1),e._v(" "),t("li",[t("strong",[e._v("Download from ARE")]),e._v(": downloads the currently running model from a running AsTeRICS Framework (ARE) instance and saves it to the grid. The current ARE model is replaced by this action.")]),e._v(" "),t("li",[t("strong",[e._v("Upload to ARE")]),e._v(": uploads the saved model to a running AsTeRICS Framework (ARE) for testing purpose or in order to adapt it.")]),e._v(" "),t("li",[t("strong",[e._v("Component")]),e._v(": selection of the component (plugin) of the selected model that should be used")]),e._v(" "),t("li",[t("strong",[e._v("Send data to port")]),e._v(": define port the data should be sent")]),e._v(" "),t("li",[t("strong",[e._v("Data")]),e._v(": define data that should be sent to the port determined above (number 7)")]),e._v(" "),t("li",[t("strong",[e._v("Event-Port")]),e._v(": define the event that should be triggered (optional)")]),e._v(" "),t("li",[t("strong",[e._v("Cancel")]),e._v(": discard any changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK")]),e._v(": save all changes and close the modal")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit previous")]),e._v(": save all changes and edit the actions of the previous element")]),e._v(" "),t("li",[t("strong",[e._v("OK, edit next")]),e._v(": save all changes and edit the actions of the next element")]),e._v(" "),t("li",[t("strong",[e._v("End edit")]),e._v(": apply changes and close edit mode of this AsTeRICS action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this action from this grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": performs the defined AsTeRICS action for testing, same as will be later performed if the grid element is selected")])]),e._v(" "),t("p",[t("strong",[e._v("Trigger event")]),e._v(": selects an event that should be triggered on the selected component (optional, either “send data”, “trigger event” or both can be used)")]),e._v(" "),t("h3",{attrs:{id:"web-radio-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#web-radio-action"}},[e._v("#")]),e._v(" Web radio action")]),e._v(" "),t("p",[t("strong",[e._v("Video on YouTube:")]),e._v(" "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=dKZwan9dZV4&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=23&t=0s",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web radio"),t("OutboundLink")],1),e._v(" (German, but auto-translated subtitles available)")]),e._v(" "),t("p",[e._v("AsTeRICS Grid is capable of searching and playing web radio stations. The station search capabilities are powered by the API of "),t("a",{attrs:{href:"https://www.radio-browser.info/gui/#!/",target:"_blank"}},[e._v("radio-browser.info")]),e._v(".")]),e._v(" "),t("p",[e._v("Clicking on “Edit” on a “Web radio action” (or creating a new one) shows the following configuration possibilities:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(534),alt:"Web radio action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 11: Configuration possibilites of “Web radio action”")])]),e._v(" "),t("p",[e._v("These are the elements in this configuration dialog:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("End edit")]),e._v(": apply changes and close edit mode of this Web radio action")]),e._v(" "),t("li",[t("strong",[e._v("Delete")]),e._v(": delete this action from this grid element")]),e._v(" "),t("li",[t("strong",[e._v("Test")]),e._v(": performs the defined Web radio action for testing, same as will be later performed if the grid element is selected")]),e._v(" "),t("li",[t("strong",[e._v("Web radio action")]),e._v(": chooses the type of web radio action to perform which can be one of the following:\n"),t("ul",[t("li",[t("em",[e._v("Turn radio on")]),e._v(": turns on the radio with the channel selected at "),t("em",[e._v("Webradio to play")])]),e._v(" "),t("li",[t("em",[e._v("Turn radio on/off")]),e._v(": toggles the radio on/off state with the channel selected at "),t("em",[e._v("Webradio to play")])]),e._v(" "),t("li",[t("em",[e._v("Turn radio off")]),e._v(": turns the radio off")]),e._v(" "),t("li",[t("em",[e._v("Next radio channel")]),e._v(": moves to next radio channel in the list of selected radio stations, see (4)")]),e._v(" "),t("li",[t("em",[e._v("Previous radio channel")]),e._v(": moves to previous radio channel in the list of selected radio stations, see (4)")]),e._v(" "),t("li",[t("em",[e._v("Radio volume up")]),e._v(": increases the radio volume")]),e._v(" "),t("li",[t("em",[e._v("Radio volume down")]),e._v(": decreases the radio volume")])])]),e._v(" "),t("li",[t("strong",[e._v("Webradio to play")]),e._v(": chooses which radio to play (only visible for "),t("em",[e._v("Turn radio on")]),e._v(" and "),t("em",[e._v("Turn radio on/off")]),e._v("), possible channels to select are defined in selected radio stations list, see (4)")]),e._v(" "),t("li",[t("strong",[e._v("Manage webradio list")]),e._v(": accordion which folds/unfolds the section where radio stations can be searched and selected")]),e._v(" "),t("li",[t("strong",[e._v("Create grid elements for webradios")]),e._v(": As many radio stations selected, as many grid elements will be created, each element corresponding to one of the selected radio stations")]),e._v(" "),t("li",[t("strong",[e._v("Selected radio stations list")]),e._v(": list of selected radio stations which are available within the current grid")]),e._v(" "),t("li",[t("strong",[e._v("Up")]),e._v(": moves the station up in the list (reordering)")]),e._v(" "),t("li",[t("strong",[e._v("Play")]),e._v(": plays the radio channel")]),e._v(" "),t("li",[t("strong",[e._v("Remove")]),e._v(": removes the radio channel from the list of selected radio stations")]),e._v(" "),t("li",[t("strong",[e._v("Search term input")]),e._v(": search bar for searching new radio stations. By default search is done for radio station name, but the following additional properties are possible (see "),t("a",{attrs:{href:"http://www.radio-browser.info/webservice#Advanced_station_search",target:"_blank",rel:"noopener noreferrer"}},[e._v("API documentation"),t("OutboundLink")],1),e._v("): "),t("em",[e._v("name (default), country, state, language, tag, tagList, order")]),e._v(". To use this additional properties they have to be added with semicolon to the search term.\n"),t("ul",[t("li",[t("em",[e._v("Examples")]),e._v(": The search term for looking for austrian radio stations with name "),t("code",[e._v("Hitradio")]),e._v(" would be: "),t("code",[e._v("name:Hitradio country:austria")]),e._v(". If the search term is just "),t("code",[e._v("Hitradio")]),e._v(" search will be done for radio stations with this name.")])])]),e._v(" "),t("li",[t("strong",[e._v("Webradio search result list")]),e._v(": result list for the current search term")]),e._v(" "),t("li",[t("strong",[e._v("Play")]),e._v(": plays the radio station")]),e._v(" "),t("li",[t("strong",[e._v("Select")]),e._v(": adds the radio station to the list of selected radio stations, see (8)")]),e._v(" "),t("li",[t("strong",[e._v("Previous page")]),e._v(": navigates to the previous page of search results (if available)")]),e._v(" "),t("li",[t("strong",[e._v("Next page")]),e._v(": navigates to the next page of search results (if available)")])]),e._v(" "),t("h3",{attrs:{id:"youtube-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#youtube-action"}},[e._v("#")]),e._v(" YouTube Action")]),e._v(" "),t("p",[e._v("The YouTube Action allows you to link videos from this web page to the communicator and view them without leavting the communicator. Different control functions can be assigned to the cells for the display of the videos.")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “YouTube” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 12):")]),e._v(" "),t("img",{attrs:{src:o(535),width:"800"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 12: Configuration possibilites of “YouTube Action”")])]),e._v(" "),t("p",[e._v("The possible actions/functions to choose are (when opening the combo box):")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Play video")]),e._v(" "),t("ul",[t("li",[e._v("Play type (Play single video, Play playlist, Play videos from search query, Play videos from channel)")]),e._v(" "),t("li",[e._v("Video link: insert the YouTube Video link here")]),e._v(" "),t("li",[e._v("Show video subtitles (if available): can be de/activated")]),e._v(" "),t("li",[e._v("Start video muted: can be de/activated")]),e._v(" "),t("li",[e._v("Perfrom action after navigation: can be de/activated")])])]),e._v(" "),t("li",[t("strong",[e._v("Pause video")])]),e._v(" "),t("li",[t("strong",[e._v("Play/Pause video")]),e._v(": same options like in "),t("em",[e._v("Play video")])]),e._v(" "),t("li",[t("strong",[e._v("Restart video")]),e._v(": same options like in "),t("em",[e._v("Play video")])]),e._v(" "),t("li",[t("strong",[e._v("Stop video")])]),e._v(" "),t("li",[t("strong",[e._v("Step forward within video")]),e._v(" "),t("ul",[t("li",[e._v("Step forward within video (seconds): the number typed in represents the time in seconds the video will be fast-forwarded")])])]),e._v(" "),t("li",[t("strong",[e._v("Step backward within video")]),e._v(" "),t("ul",[t("li",[e._v("Step backward within video (seconds): the number typed in represents the time in seconds the video will be rewound")])])]),e._v(" "),t("li",[t("strong",[e._v("Next video")])]),e._v(" "),t("li",[t("strong",[e._v("Previous video")])]),e._v(" "),t("li",[t("strong",[e._v("Show video in fullscreen")])]),e._v(" "),t("li",[t("strong",[e._v("Video volume up")]),e._v(" "),t("ul",[t("li",[e._v("Vido volume up (percent): the number typed in represents the percentage the volume will be volumed up")])])]),e._v(" "),t("li",[t("strong",[e._v("Video volume down")]),e._v(" "),t("ul",[t("li",[e._v("Vido volume down (percent): the number typed in represents the percentage the volume will be volumed down")])])]),e._v(" "),t("li",[t("strong",[e._v("Mute/unmute video")])])]),e._v(" "),t("p",[e._v('To add a “YouTube Grid”, one grid element hast to be a “YouTube Player”, which can be created in the “Editing on view” in the menu “more” → ‘New’ → " New You Tube Player", as can be seen in Figure 12:')]),e._v(" "),t("p",[t("img",{attrs:{src:o(536),alt:"action youtubeplayer"}})]),e._v(" "),t("p",[t("em",[e._v('Fig. 13: Creating a New YouTube Player element"')])]),e._v(" "),t("p",[e._v("Other (“normal”) grid elements can be assigned with the functions listed above and a corresponding image can be chosen in the "),t("em",[e._v("Image Tab")]),e._v(". In ARASAAC, a collection of multimedia buttons is prepared, just type the word "),t("em",[e._v("button")]),e._v(" in the "),t("em",[e._v("Image search")]),e._v(" field of the "),t("em",[e._v("Image Tab")]),e._v(". If different grid elements are assigned with the "),t("em",[e._v("Play video")]),e._v(" functions and are linked to different YouTube videos, the selected video will be played in the “YouTube Player” element, which has been created as shown in Figure 10.")]),e._v(" "),t("h3",{attrs:{id:"change-content-language"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#change-content-language"}},[e._v("#")]),e._v(" Change Content Language")]),e._v(" "),t("p",[e._v("This action is used to change the language of the communicator grid(s) by clicking on a grid element that we have configured to perform this action.")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “Change content language” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 14):")]),e._v(" "),t("img",{attrs:{src:o(537),width:"850"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 14: Configuration possibilites of “Change content language - Action”")])]),e._v(" "),t("p",[e._v("The language in which the application language shall be changed to can be selected in the corresponding combobox.")]),e._v(" "),t("p",[e._v("In the following two figures an example is show, where the content language can be switched from english to french or inversely by clicking on the corresponding flag (Fig. 15 and 16).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(538),alt:"action changecontentEN"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 15: Content language in English")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(539),alt:"action changecontentEN"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 16: Content language in French")])]),e._v(" "),t("p",[e._v("First of all, you have to check if the grid content can already be translated in the desired language. To do that, you click on the “more” button in the “Edtiting on” view and select the "),t("em",[e._v("Translate grid")]),e._v(" option as shown in Fig. 17:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(540),alt:"action changecontentEN"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 17: Translate grid option")])]),e._v(" "),t("p",[e._v("After clicking on the “Translate grid” option, the following window opens (Fig. 18):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(541),alt:"action translategrid1"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 18: Translate grid - select language and translate the content")])]),e._v(" "),t("p",[e._v("Here, the language, in which the grid content shall be translated, can be chosen. The right column shows the translations which are already stored in the application. Missing translations have to be filled in here.")]),e._v(" "),t("h3",{attrs:{id:"open-webpage-in-new-tab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-webpage-in-new-tab"}},[e._v("#")]),e._v(" Open webpage in new tab")]),e._v(" "),t("p",[e._v("This action allows to assign an external web page to a grid element and, by clicking on it, to access the information contained therein.")]),e._v(" "),t("p",[e._v("Clicking on “Edit” of a “Open webpage in new tab” action (or creating a new one by clicking on "),t("em",[e._v("Add action")]),e._v(") shows the following configuration possibilities (Fig. 19):")]),e._v(" "),t("img",{attrs:{src:o(542),width:"850"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 19: Configuration possibilites of “Open webpage in new tab”")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Webpage URL")]),e._v(": copy the URL of the desired webpage and enter it here")]),e._v(" "),t("li",[t("strong",[e._v("Automatically close timeout in seconds")]),e._v(": enter time in seconds you want the tab remains open. After this time, the web page will close and the communicator grid will be displayed again")])]),e._v(" "),t("p",[e._v("By clicking on the grid elemnt this action is assigned to, the chosen webpage is accessed and the user can navigate in it for the time which was set. After this time, the webpage will be closed and the user will return to the communicator.")]),e._v(" "),t("h3",{attrs:{id:"openhab-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openhab-action"}},[e._v("#")]),e._v(" openHAB Action")]),e._v(" "),t("p",[e._v("AsTeRICS Grid is capable of controlling a local openHAB installation through the browser. This action utilizes the REST\nAPI of openHAB (see "),t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("openHAB API documentation"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[e._v("Figure 20 shows the configuration possibilities of an openHAB action:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(543),alt:"openHAB action options"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 20: Defining a new openHAB action")])]),e._v(" "),t("p",[e._v("These are the elements in this configuration dialog:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("openHAB URL")]),e._v(": the URL of a running openHAB instance to connect with. Standard URL is "),t("code",[e._v("http://127.0.0.1:8080/rest/items/")]),e._v(" for a local openHAB instance.")]),e._v(" "),t("li",[t("strong",[e._v("Fetch Items")]),e._v(": click in order to fetch all available items from the current URL. A tick (✓) or times (×) symbol will indicate if fetching was successful or has failed.")]),e._v(" "),t("li",[t("strong",[e._v("Filter through item types")]),e._v(": filter fetched items with its item type (see "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/05_actions.html#controllable-items"}},[e._v("controllable Items")]),e._v(" for what items are controllable). By default, all items are selected.")],1),e._v(" "),t("li",[t("strong",[e._v("Search for items by name")]),e._v(": search for items by name.")]),e._v(" "),t("li",[t("strong",[e._v("Select item")]),e._v(": all or filtered items will be listed in a dropdown menu.")]),e._v(" "),t("li",[t("strong",[e._v("Choose command to send")]),e._v(": according to the item type, a selection of commands will be available.")]),e._v(" "),t("li",[t("strong",[e._v("Create grid elements")]),e._v(": this button allows to create grid elements for all actions of the currently selected items. Note that generated grid elements will only appear after clicking “OK” in the grid element edit modal.")]),e._v(" "),t("li",[t("strong",[e._v("Choose custom value for item (optional)")]),e._v(": some items (Dimmer, Color, Roller shutter, Temperature) can be controlled with custom values (e.g.: absolute value for dimmer, custom color). The input variant for the specific item will change accordingly.")])]),e._v(" "),t("p",[e._v("When editing an already created action, selecting a new item will be disabled and only the action for the current command can be changed.\nIf the item should be changed, it is required to fetch the items again.\nAfter the items are fetched, the action can be configured as if it was created new.")]),e._v(" "),t("h4",{attrs:{id:"controllable-items"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#controllable-items"}},[e._v("#")]),e._v(" Controllable items")]),e._v(" "),t("p",[e._v("Following items are implemented and controllable via the action:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Switch")]),e._v(":\nIncludes items like light switches, switches for automations, switches for outlets, …")]),e._v(" "),t("li",[t("strong",[e._v("Dimmer")]),e._v(":\nIncludes all dimmable lights")]),e._v(" "),t("li",[t("strong",[e._v("Roller shutter")]),e._v(":\nIncludes all roller shutter and blinds")]),e._v(" "),t("li",[t("strong",[e._v("Color")]),e._v(":\nIncludes all multicolor lights")]),e._v(" "),t("li",[t("strong",[e._v("Temperature")]),e._v(":\nInlcudes items with a setable temperature like thermostats")]),e._v(" "),t("li",[t("strong",[e._v("Media player")]),e._v(":\nIncludes all media player devices")])]),e._v(" "),t("p",[e._v("An item must be implemented in openHAB in order to be accessible via the action.")]),e._v(" "),t("h4",{attrs:{id:"notes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes:")]),e._v(" "),t("ul",[t("li",[e._v("In order to use this action, CORS must be enabled by your openHAB installation. Otherwise, openHAB will deny the\naction calls.")]),e._v(" "),t("li",[e._v("You must be in the same network as your openHAB installation.")]),e._v(" "),t("li",[e._v("Basic Authentication is not supported.")])]),e._v(" "),t("h4",{attrs:{id:"accessing-openhab-via-http-https"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessing-openhab-via-http-https"}},[e._v("#")]),e._v(" Accessing openHAB via http/https")]),e._v(" "),t("p",[e._v("By default, the action searches for a local openHAB instance on port 8080.\nIf the openHAB installation is hosted in the local network, there are two possible ways to access it via the browser:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("http")]),e._v(":\nIf you are using openHAB over http with port 8080, you need to allow your browser to use "),t("em",[t("strong",[e._v("mixed content")])]),e._v(".\nOtherwise, the browser has no permission to access your local network.\nRead "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/10_faq.html#allow-mixed-content-httphttps"}},[e._v("Allow mixed content (http/https)")]),e._v(" to enable it.")],1),e._v(" "),t("li",[t("strong",[e._v("https")]),e._v(":\nIf you are using openHAB over https with port 8443, some browser need a one-time-exception to use the resources from\nthe REST-API.\n"),t("ul",[t("li",[t("strong",[e._v("Google Chrome")]),e._v(":\nDoes not require additional steps for using the REST-API over https.")]),e._v(" "),t("li",[t("strong",[e._v("Firefox and Safari")]),e._v(":\nIn order to use the REST-API, a new tab with the address "),t("code",[e._v("https://:8443/rest/items")]),e._v(" must be\nopened. Firefox/Safari will prompt that this resource is insecure. By allowing to show the content of this website,\nan exception is created to allow general connections to the resource. After granting this exception, the\nopenHAB-Action can access openHAB via https. Figure 21 shows an example of such a security prompt.")])])])]),e._v(" "),t("img",{attrs:{src:o(544),title:"openHAB action set browser exception",width:"700"}}),e._v(" "),t("p",[t("em",[e._v("Fig. 21: Example of a security prompt by Firefox")])]),e._v(" "),t("h3",{attrs:{id:"http-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#http-action"}},[e._v("#")]),e._v(" HTTP action")]),e._v(" "),t("p",[e._v("This action can send arbitrary HTTP requests, e.g. for accessing any REST API.\nFor hands-on tutorials, have a look at the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/513_http-action-tutorials.html"}},[e._v("HTTP action tutorials")]),e._v(".")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(545),alt:"Configuration of a HTTP action"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 22: Configuration of a HTTP action")])]),e._v(" "),t("p",[e._v("Figure 22 shows the configuration of a HTTP action, which has these properties:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("HTTP URL")]),e._v(": the URL where the request should be sent to")]),e._v(" "),t("li",[t("strong",[e._v("HTTP body")]),e._v(": the data that should be sent within the request (not applicable for HTTP method "),t("code",[e._v("GET")]),e._v(" and "),t("code",[e._v("HEAD")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("HTTP method")]),e._v(": the method to be used for the request. Can be "),t("code",[e._v("GET")]),e._v(", "),t("code",[e._v("POST")]),e._v(", "),t("code",[e._v("PUT")]),e._v(", "),t("code",[e._v("DELETE")]),e._v(", "),t("code",[e._v("HEAD")]),e._v(", "),t("code",[e._v("OPTIONS")]),e._v(" and "),t("code",[e._v("PATCH")])]),e._v(" "),t("li",[t("strong",[e._v("HTTP Content-Type")]),e._v(": the Content-Type of the request, defaults to "),t("code",[e._v("text/plain")])]),e._v(" "),t("li",[t("strong",[e._v("HTTP Authentication User")]),e._v(": the (optional) username for HTTP authentication")]),e._v(" "),t("li",[t("strong",[e._v("HTTP Authentication Password")]),e._v(": the (optional) password for HTTP authentication")])]),e._v(" "),t("p",[e._v("Any errors from requests will be shown in a popup in the lower right corner of the application.")]),e._v(" "),t("h3",{attrs:{id:"uart-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uart-action"}},[e._v("#")]),e._v(" UART action")]),e._v(" "),t("p",[e._v("This action allows sending commands to microcontrollers using the UART (Serial) interface. The connections can be wired (using "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web Serial"),t("OutboundLink")],1),e._v(", Chrome/Edge-Desktop) or wireless (using "),t("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web Bluetooth"),t("OutboundLink")],1),e._v(", Chrome/Edge-Desktop/Mobile).")]),e._v(" "),t("h4",{attrs:{id:"example-use-cases"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-use-cases"}},[e._v("#")]),e._v(" Example use cases")]),e._v(" "),t("ul",[t("li",[e._v("Creating a remote control for a TV by sending Infrared commands to the Open Source microcontroller "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1),e._v(". The commands can be directly copied from the "),t("a",{attrs:{href:"https://asterics.github.io/puckmote/",target:"_blank",rel:"noopener noreferrer"}},[e._v("puckmote"),t("OutboundLink")],1),e._v(" online remote control database.")]),e._v(" "),t("li",[e._v("Creating accessible battery-powered toys (e.g. soap bubble machine, disco light or duplo train)")]),e._v(" "),t("li",[e._v("Creating a mouse click or keyboard input using the button interface FABI or the mouth mouse FLipMouse.")])]),e._v(" "),t("p",[e._v("For hands-on tutorials, have a look at the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/514_uart-action-tutorials.html"}},[e._v("UART action tutorials")]),e._v(".")],1),e._v(" "),t("h4",{attrs:{id:"supported-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-devices"}},[e._v("#")]),e._v(" Supported devices")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.espruino.com/Other+Boards#boards-that-espruino-works-on",target:"_blank",rel:"noopener noreferrer"}},[e._v("Devices supported by Espruino"),t("OutboundLink")],1),e._v(", e.g. "),t("a",{attrs:{href:"https://www.puck-js.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Puck.js"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/fabi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flexible Assistive Button Interface (FABI)"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.asterics-foundation.org/projects/the-flipmouse/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Finger and Lip mouse (FLipMouse)"),t("OutboundLink")],1)])]),e._v(" "),t("h4",{attrs:{id:"supported-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-commands"}},[e._v("#")]),e._v(" Supported commands")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://github.com/asterics/AsTeRICS-Grid/assets/4621810/a1f3d53c-0237-4342-a85d-90d745d2f0d9",alt:"image"}})]),e._v(" "),t("p",[t("em",[e._v("Fig. 23: Configuration of a UART action.")])]),e._v(" "),t("p",[e._v("The action supports the following input fields:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("UART Type")]),e._v(": Choose between "),t("code",[e._v("Bluetooth")]),e._v(" and "),t("code",[e._v("Serial")]),e._v("(wired)")]),e._v(" "),t("li",[t("strong",[e._v("Data")]),e._v(": A string to be executed on the microcontroller (e.g. Javascript code (Espruino devices) or AT commands (FABI, FLipMouse)).")])]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/04_input_options.html"}},[e._v("← Previous Chapter")]),e._v(" "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[e._v("Next Chapter →")])],1),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[e._v("Back to Overview")])],1)])}),[],!1,null,null,null);t.default=a.exports},313:function(e,t,o){e.exports=o.p+"assets/img/edit_grid_element_actions_en.8cb3125d.jpg"},522:function(e,t,o){e.exports=o.p+"assets/img/edit_element_menu_en_edit.71e6f08b.jpg"},523:function(e,t,o){e.exports=o.p+"assets/img/action_speak_label_en.fa6d559c.jpg"},524:function(e,t,o){e.exports=o.p+"assets/img/action_navigate_en1.1ab0f66e.jpg"},525:function(e,t,o){e.exports=o.p+"assets/img/action_speak_custom_en.d0ea64af.jpg"},526:function(e,t,o){e.exports=o.p+"assets/img/action_play_recorded_audio.ef999c80.png"},527:function(e,t,o){e.exports=o.p+"assets/img/fill_predictions.b9cbc05d.gif"},528:function(e,t,o){e.exports=o.p+"assets/img/action_fillprediction_en.56c3896c.jpg"},529:function(e,t,o){e.exports=o.p+"assets/img/action_collectelement_en.952cdee0.jpg"},530:function(e,t,o){e.exports=o.p+"assets/img/collect_delete.3acb3ae6.gif"},531:function(e,t,o){e.exports=o.p+"assets/img/collect_delete_c.a3d47cfc.gif"},532:function(e,t,o){e.exports=o.p+"assets/img/asterics-action-are_en.663cadf0.png"},533:function(e,t,o){e.exports=o.p+"assets/img/action_asterics_en.54d3853f.jpg"},534:function(e,t,o){e.exports=o.p+"assets/img/action_webradio_en.bdd8c3be.jpg"},535:function(e,t,o){e.exports=o.p+"assets/img/action_youtube_en.72351919.JPG"},536:function(e,t,o){e.exports=o.p+"assets/img/youtubeplayer_en.aa74d741.JPG"},537:function(e,t,o){e.exports=o.p+"assets/img/action_contentlanguage_en.bc8d0c10.JPG"},538:function(e,t,o){e.exports=o.p+"assets/img/changecontent_en.f73f628c.JPG"},539:function(e,t,o){e.exports=o.p+"assets/img/changecontent_fr.f5d3c74b.JPG"},540:function(e,t,o){e.exports=o.p+"assets/img/translategrid_en.69ebc03f.JPG"},541:function(e,t,o){e.exports=o.p+"assets/img/translategrid1_en.6e489a99.JPG"},542:function(e,t,o){e.exports=o.p+"assets/img/action_openwebpage_en.a15db954.JPG"},543:function(e,t,o){e.exports=o.p+"assets/img/openHAB-configuration.2613f28d.png"},544:function(e,t,o){e.exports=o.p+"assets/img/openHAB-https-exception.efb54332.png"},545:function(e,t,o){e.exports=o.p+"assets/img/action-http.f6bcdfa1.png"}}]); \ No newline at end of file diff --git a/assets/js/50.1f0dff25.js b/assets/js/50.1f0dff25.js new file mode 100644 index 0000000000..0d370d0d5d --- /dev/null +++ b/assets/js/50.1f0dff25.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{349:function(t,n,i){},868:function(t,n,i){"use strict";i(349)},911:function(t,n,i){"use strict";i.r(n);var u={name:"ActionGroup"},c=(i(868),i(2)),o=Object(c.a)(u,(function(){return(0,this._self._c)("div",{attrs:{id:"action-group"}},[this._t("default")],2)}),[],!1,null,"9c64e234",null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/50.6dd02dae.js b/assets/js/50.6dd02dae.js deleted file mode 100644 index 2bfa7f695f..0000000000 --- a/assets/js/50.6dd02dae.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{348:function(t,n,i){},867:function(t,n,i){"use strict";i(348)},910:function(t,n,i){"use strict";i.r(n);var u={name:"ActionGroup"},c=(i(867),i(2)),o=Object(c.a)(u,(function(){return(0,this._self._c)("div",{attrs:{id:"action-group"}},[this._t("default")],2)}),[],!1,null,"9c64e234",null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/55.8fe374c1.js b/assets/js/55.5d5deff3.js similarity index 65% rename from assets/js/55.8fe374c1.js rename to assets/js/55.5d5deff3.js index a3f5d14f03..bfe9b5f4af 100644 --- a/assets/js/55.8fe374c1.js +++ b/assets/js/55.5d5deff3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{1285:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(897),n(2)),a=Object(p.a)(i,void 0,void 0,!1,null,"14acdff0",null);e.default=a.exports},378:function(t,e,n){},897:function(t,e,n){"use strict";n(378)}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{1285:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(899),n(2)),a=Object(p.a)(i,void 0,void 0,!1,null,"14acdff0",null);e.default=a.exports},380:function(t,e,n){},899:function(t,e,n){"use strict";n(380)}}]); \ No newline at end of file diff --git a/assets/js/56.2dcee92a.js b/assets/js/56.f868852a.js similarity index 65% rename from assets/js/56.2dcee92a.js rename to assets/js/56.f868852a.js index 591cc50125..3096ef7c61 100644 --- a/assets/js/56.2dcee92a.js +++ b/assets/js/56.f868852a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{379:function(t,e,s){},898:function(t,e,s){"use strict";s(379)},921:function(t,e,s){"use strict";s.r(e);var a={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(s(898),s(2)),n=Object(i.a)(a,(function(){return(0,this._self._c)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"c3402832",null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{378:function(t,e,s){},897:function(t,e,s){"use strict";s(378)},921:function(t,e,s){"use strict";s.r(e);var a={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(s(897),s(2)),n=Object(i.a)(a,(function(){return(0,this._self._c)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"c3402832",null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/57.21aa791f.js b/assets/js/57.cf13c630.js similarity index 88% rename from assets/js/57.21aa791f.js rename to assets/js/57.cf13c630.js index 2d46b724e2..ea853a23f1 100644 --- a/assets/js/57.21aa791f.js +++ b/assets/js/57.cf13c630.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{380:function(e,t,a){},899:function(e,t,a){"use strict";a(380)},922:function(e,t,a){"use strict";a.r(t);var o={name:"CodeGroup",data:()=>({codeTabs:[],activeCodeTabIndex:-1}),watch:{activeCodeTabIndex(e){this.activateCodeTab(e)}},mounted(){this.loadTabs()},methods:{changeCodeTab(e){this.activeCodeTabIndex=e},loadTabs(){this.codeTabs=(this.$slots.default||[]).filter(e=>Boolean(e.componentOptions)).map((e,t)=>(""===e.componentOptions.propsData.active&&(this.activeCodeTabIndex=t),{title:e.componentOptions.propsData.title,elm:e.elm})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab(e){this.codeTabs.forEach(e=>{e.elm&&e.elm.classList.remove("theme-code-block__active")}),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},s=(a(899),a(2)),c=Object(s.a)(o,(function(){var e=this,t=e._self._c;return t("ClientOnly",[t("div",{staticClass:"theme-code-group"},[t("div",{staticClass:"theme-code-group__nav"},[t("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(a,o){return t("li",{key:a.title,staticClass:"theme-code-group__li"},[t("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(a.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?t("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"c02030d4",null);t.default=c.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{379:function(e,t,a){},898:function(e,t,a){"use strict";a(379)},922:function(e,t,a){"use strict";a.r(t);var o={name:"CodeGroup",data:()=>({codeTabs:[],activeCodeTabIndex:-1}),watch:{activeCodeTabIndex(e){this.activateCodeTab(e)}},mounted(){this.loadTabs()},methods:{changeCodeTab(e){this.activeCodeTabIndex=e},loadTabs(){this.codeTabs=(this.$slots.default||[]).filter(e=>Boolean(e.componentOptions)).map((e,t)=>(""===e.componentOptions.propsData.active&&(this.activeCodeTabIndex=t),{title:e.componentOptions.propsData.title,elm:e.elm})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab(e){this.codeTabs.forEach(e=>{e.elm&&e.elm.classList.remove("theme-code-block__active")}),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},s=(a(898),a(2)),c=Object(s.a)(o,(function(){var e=this,t=e._self._c;return t("ClientOnly",[t("div",{staticClass:"theme-code-group"},[t("div",{staticClass:"theme-code-group__nav"},[t("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(a,o){return t("li",{key:a.title,staticClass:"theme-code-group__li"},[t("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(a.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?t("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"c02030d4",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/58.b787c6c0.js b/assets/js/58.b589cf37.js similarity index 93% rename from assets/js/58.b787c6c0.js rename to assets/js/58.b589cf37.js index e9def78478..9724dbb9ed 100644 --- a/assets/js/58.b787c6c0.js +++ b/assets/js/58.b589cf37.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{420:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA6CAIAAABnMn0FAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAA11JREFUaN7t2e9PEnEcB/AvSI44EUVx+cDWhs4MTcxhsrJ0E9BctTXUrc0ftR72J/WgpPXA4daj3AUoJpRwCDo1/NFqc+X8gYdiyaHGtwe33ImId3DcnRuf3RPgbvfaZ28+9707EY7j4GKWGFzYytFz9Bxd8CXh8dxLM9jK3PTeDq4oUdXdvlehrmZ0uIivue6bQIPTU9Rv6vWtN/X3hR6YgMuR4AYAzH5x+iftAg4MhL6Jj0H/VNIfFzA3AOBWS7vw6BBiE+ii35NiF/p6TgNzrvtYP+MeExZdqboiEono7DnnmZz+ZBMAHcLDgxgAQK3RNhse0tR/9X0OuBy80iHEnOiHd6+I/d8AgMraBr3xEU39vNe1uhLkiQ6hd3x0MeCJ4CGb1ULs/2Ha+3mviw86hN7x0aUZjPy0E9q0WYdIfWVtA039Lh7inH7SnbZeXlTMLf2UWypDCouUaehrGvUc0k+5CxTFD56+0DTdZdr769om9Y16rugQYk6U6kbkCoO5j4hG/ZQ5vRPaRIdfp545VXWNurYOroYjhJgTXQx4qG5jz0CMIBwjlhgRpe4bwUPo8BtSr9ZoE/RVdY3N7V0gZZbEvLhT6+m42VuvJ8u3sbufiO7brZaDGJHi0KLSMoO5XypDAADf5gPhrQ1dqwnQmJts0Jn3O6EKlaWmngGprIDbe9P/10tqv029gzEiarcO0XGTybFZLYexGIf0s+eJY+Rt6pwklKq84lJ+Plf0jHPCaJ6wR+fbnS5dAO606MJwM6cLxs2QLiQ3E7rA3LSfwyRbf5t6B+lc5xOqWqtrauvM3E2Pnux+RypDNn6tYmOjfLlprGFOufMkkr9HR2mciV33+VlPcF+r1jx+9lJerOTdfT6d6r5aVXOn8wkiV3T0PleUqBj9L1l3M5gwyrLyli6zWCwmg24w99HsfbVWx8o8SZ8ulSGkm6zLiJxO77PU70xXjlIZYuweSKFna35nSt/bxRcwN7ltr68d689KTvZywpwexv2TdnLbXFulJsdg7s+TSLI9T9i/wYPxeMDloE76rOabNTqMx93o+x/BOc7yzXwNc7KWZ30/vy8DAGLRaHhrneOcZESPhLcj4W0u52AWn35xmRM26by4AY8v2oUSmBw9R8/Rc/Rk9Q+vXlivtCpORwAAAABJRU5ErkJggg=="},421:function(t,e,o){t.exports=o.p+"assets/img/model-property-change.4bb9f80f.png"},932:function(t,e,o){"use strict";o.r(e);var a=o(2),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"model-customization"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#model-customization"}},[t._v("#")]),t._v(" Model Customization")]),t._v(" "),e("p",[t._v("In this tutorial you will learn how to do simple modifications to a model like changing a plugin property. This can be useful if you want to change the camera device to be used or want to change the key triggering a user action.")]),t._v(" "),e("h2",{attrs:{id:"open-model"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#open-model"}},[t._v("#")]),t._v(" Open model")]),t._v(" "),e("p",[t._v("First you have to open the model. There are two ways to do this:")]),t._v(" "),e("h3",{attrs:{id:"model-of-solutions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#model-of-solutions"}},[t._v("#")]),t._v(" Model of Solutions")]),t._v(" "),e("p",[t._v("If you want to customize a model of the "),e("RouterLink",{attrs:{to:"/solutions/"}},[t._v("solutions")]),t._v(" page, click the "),e("code",[t._v("Edit")]),t._v(" button of it. This opens the WebACS with the given model in a new browser tab.")],1),t._v(" "),e("h3",{attrs:{id:"deployed-model"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#deployed-model"}},[t._v("#")]),t._v(" Deployed Model")]),t._v(" "),e("p",[t._v("If the ARE is running, you can press "),e("code",[t._v("F8")]),t._v(" or click the "),e("img",{attrs:{src:o(420),alt:"Edit button"}}),t._v(" button in the control panel. This opens the WebACS with the given model in a new browser tab.")]),t._v(" "),e("h2",{attrs:{id:"change-plugin-property"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-plugin-property"}},[t._v("#")]),t._v(" Change Plugin Property")]),t._v(" "),e("p",[t._v("As soon as the model is opened, you can click onto a plugin to change it’s property values. A property is a configuration item to modify the behaviour of that plugin.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(421),alt:"Screenshot of WebACS with steps for changing a property value"}})]),t._v(" "),e("h3",{attrs:{id:"change-property-value"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-property-value"}},[t._v("#")]),t._v(" Change Property Value")]),t._v(" "),e("ol",[e("li",[t._v("Click on plugin symbol")]),t._v(" "),e("li",[t._v("Press "),e("code",[t._v("F1")]),t._v(" to read about supported properties and their values")]),t._v(" "),e("li",[t._v("Click into the property editor (right panel)")]),t._v(" "),e("li",[t._v("Change value")])]),t._v(" "),e("h3",{attrs:{id:"test-change"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#test-change"}},[t._v("#")]),t._v(" Test Change")]),t._v(" "),e("ol",{attrs:{start:"5"}},[e("li",[t._v("Connect to ARE")]),t._v(" "),e("li",[t._v("Upload Model")]),t._v(" "),e("li",[t._v("Start Model")])]),t._v(" "),e("h2",{attrs:{id:"conclusion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[t._v("#")]),t._v(" Conclusion")]),t._v(" "),e("p",[t._v("Now you know how to change a property value of a plugin, to learn how to create a new model, try the "),e("a",{attrs:{href:"./Model-Creation"}},[t._v("model creation tutorials")]),t._v(". If you want to know more about the WebACS or ACS, check the respective "),e("RouterLink",{attrs:{to:"/manuals/"}},[t._v("manuals")]),t._v(".")],1)])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{412:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA6CAIAAABnMn0FAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAA11JREFUaN7t2e9PEnEcB/AvSI44EUVx+cDWhs4MTcxhsrJ0E9BctTXUrc0ftR72J/WgpPXA4daj3AUoJpRwCDo1/NFqc+X8gYdiyaHGtwe33ImId3DcnRuf3RPgbvfaZ28+9707EY7j4GKWGFzYytFz9Bxd8CXh8dxLM9jK3PTeDq4oUdXdvlehrmZ0uIivue6bQIPTU9Rv6vWtN/X3hR6YgMuR4AYAzH5x+iftAg4MhL6Jj0H/VNIfFzA3AOBWS7vw6BBiE+ii35NiF/p6TgNzrvtYP+MeExZdqboiEono7DnnmZz+ZBMAHcLDgxgAQK3RNhse0tR/9X0OuBy80iHEnOiHd6+I/d8AgMraBr3xEU39vNe1uhLkiQ6hd3x0MeCJ4CGb1ULs/2Ha+3mviw86hN7x0aUZjPy0E9q0WYdIfWVtA039Lh7inH7SnbZeXlTMLf2UWypDCouUaehrGvUc0k+5CxTFD56+0DTdZdr769om9Y16rugQYk6U6kbkCoO5j4hG/ZQ5vRPaRIdfp545VXWNurYOroYjhJgTXQx4qG5jz0CMIBwjlhgRpe4bwUPo8BtSr9ZoE/RVdY3N7V0gZZbEvLhT6+m42VuvJ8u3sbufiO7brZaDGJHi0KLSMoO5XypDAADf5gPhrQ1dqwnQmJts0Jn3O6EKlaWmngGprIDbe9P/10tqv029gzEiarcO0XGTybFZLYexGIf0s+eJY+Rt6pwklKq84lJ+Plf0jHPCaJ6wR+fbnS5dAO606MJwM6cLxs2QLiQ3E7rA3LSfwyRbf5t6B+lc5xOqWqtrauvM3E2Pnux+RypDNn6tYmOjfLlprGFOufMkkr9HR2mciV33+VlPcF+r1jx+9lJerOTdfT6d6r5aVXOn8wkiV3T0PleUqBj9L1l3M5gwyrLyli6zWCwmg24w99HsfbVWx8o8SZ8ulSGkm6zLiJxO77PU70xXjlIZYuweSKFna35nSt/bxRcwN7ltr68d689KTvZywpwexv2TdnLbXFulJsdg7s+TSLI9T9i/wYPxeMDloE76rOabNTqMx93o+x/BOc7yzXwNc7KWZ30/vy8DAGLRaHhrneOcZESPhLcj4W0u52AWn35xmRM26by4AY8v2oUSmBw9R8/Rc/Rk9Q+vXlivtCpORwAAAABJRU5ErkJggg=="},413:function(t,e,o){t.exports=o.p+"assets/img/model-property-change.4bb9f80f.png"},931:function(t,e,o){"use strict";o.r(e);var a=o(2),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"model-customization"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#model-customization"}},[t._v("#")]),t._v(" Model Customization")]),t._v(" "),e("p",[t._v("In this tutorial you will learn how to do simple modifications to a model like changing a plugin property. This can be useful if you want to change the camera device to be used or want to change the key triggering a user action.")]),t._v(" "),e("h2",{attrs:{id:"open-model"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#open-model"}},[t._v("#")]),t._v(" Open model")]),t._v(" "),e("p",[t._v("First you have to open the model. There are two ways to do this:")]),t._v(" "),e("h3",{attrs:{id:"model-of-solutions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#model-of-solutions"}},[t._v("#")]),t._v(" Model of Solutions")]),t._v(" "),e("p",[t._v("If you want to customize a model of the "),e("RouterLink",{attrs:{to:"/solutions/"}},[t._v("solutions")]),t._v(" page, click the "),e("code",[t._v("Edit")]),t._v(" button of it. This opens the WebACS with the given model in a new browser tab.")],1),t._v(" "),e("h3",{attrs:{id:"deployed-model"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#deployed-model"}},[t._v("#")]),t._v(" Deployed Model")]),t._v(" "),e("p",[t._v("If the ARE is running, you can press "),e("code",[t._v("F8")]),t._v(" or click the "),e("img",{attrs:{src:o(412),alt:"Edit button"}}),t._v(" button in the control panel. This opens the WebACS with the given model in a new browser tab.")]),t._v(" "),e("h2",{attrs:{id:"change-plugin-property"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-plugin-property"}},[t._v("#")]),t._v(" Change Plugin Property")]),t._v(" "),e("p",[t._v("As soon as the model is opened, you can click onto a plugin to change it’s property values. A property is a configuration item to modify the behaviour of that plugin.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(413),alt:"Screenshot of WebACS with steps for changing a property value"}})]),t._v(" "),e("h3",{attrs:{id:"change-property-value"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#change-property-value"}},[t._v("#")]),t._v(" Change Property Value")]),t._v(" "),e("ol",[e("li",[t._v("Click on plugin symbol")]),t._v(" "),e("li",[t._v("Press "),e("code",[t._v("F1")]),t._v(" to read about supported properties and their values")]),t._v(" "),e("li",[t._v("Click into the property editor (right panel)")]),t._v(" "),e("li",[t._v("Change value")])]),t._v(" "),e("h3",{attrs:{id:"test-change"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#test-change"}},[t._v("#")]),t._v(" Test Change")]),t._v(" "),e("ol",{attrs:{start:"5"}},[e("li",[t._v("Connect to ARE")]),t._v(" "),e("li",[t._v("Upload Model")]),t._v(" "),e("li",[t._v("Start Model")])]),t._v(" "),e("h2",{attrs:{id:"conclusion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[t._v("#")]),t._v(" Conclusion")]),t._v(" "),e("p",[t._v("Now you know how to change a property value of a plugin, to learn how to create a new model, try the "),e("a",{attrs:{href:"./Model-Creation"}},[t._v("model creation tutorials")]),t._v(". If you want to know more about the WebACS or ACS, check the respective "),e("RouterLink",{attrs:{to:"/manuals/"}},[t._v("manuals")]),t._v(".")],1)])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/59.8fd68130.js b/assets/js/59.d4f4d8d3.js similarity index 82% rename from assets/js/59.8fd68130.js rename to assets/js/59.d4f4d8d3.js index e0b4bba5f7..eb580dd374 100644 --- a/assets/js/59.8fd68130.js +++ b/assets/js/59.d4f4d8d3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{1026:function(e,t,a){"use strict";a.r(t);var n=a(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acs-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acs-manual"}},[e._v("#")]),e._v(" ACS Manual")]),e._v(" "),t("p",[e._v("The figure below shows the main panel of the AsTeRICS Configuration Suite after the application has started. The screen is divided in four main areas, the menu area (1), the "),t("em",[e._v("Deployment")]),e._v(" area (2) (where the drawing will be done), the "),t("em",[e._v("GUI Designer")]),e._v(" area (3), switchable with the "),t("em",[e._v("Deployment")]),e._v(" area and the "),t("em",[e._v("Properties")]),e._v(" area (4), where the settings of the components can be adapted.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(472),alt:"Screenshot: ACS after startup",title:"Screenshot: ACS after startup"}})]),e._v(" "),t("p",[e._v("ACS after Startup")]),e._v(" "),t("p",[e._v("Additionally, the main menu will open, if the AsTeRICS-Button is pressed in the menu bar - see figure below. All functions of the main menu are also reachable via buttons in the tabs, except the "),t("em",[e._v("About")]),e._v(" and the "),t("em",[e._v("Print")]),e._v(" dialog. This dialog shows general information about the ACS and the AsTeRICS project.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(473),alt:"Screenshot: Menu Bar with Open Main Menu",title:"Screenshot: Menu Bar with Open Main Menu"}})]),e._v(" "),t("p",[e._v("Menu Bar with Open Main Menu")])])}),[],!1,null,null,null);t.default=s.exports},472:function(e,t,a){e.exports=a.p+"assets/img/acs_after_startup.fa7c3813.png"},473:function(e,t,a){e.exports=a.p+"assets/img/menubar_open_main_window.8056bf67.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{1022:function(e,t,a){"use strict";a.r(t);var n=a(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acs-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acs-manual"}},[e._v("#")]),e._v(" ACS Manual")]),e._v(" "),t("p",[e._v("The figure below shows the main panel of the AsTeRICS Configuration Suite after the application has started. The screen is divided in four main areas, the menu area (1), the "),t("em",[e._v("Deployment")]),e._v(" area (2) (where the drawing will be done), the "),t("em",[e._v("GUI Designer")]),e._v(" area (3), switchable with the "),t("em",[e._v("Deployment")]),e._v(" area and the "),t("em",[e._v("Properties")]),e._v(" area (4), where the settings of the components can be adapted.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(471),alt:"Screenshot: ACS after startup",title:"Screenshot: ACS after startup"}})]),e._v(" "),t("p",[e._v("ACS after Startup")]),e._v(" "),t("p",[e._v("Additionally, the main menu will open, if the AsTeRICS-Button is pressed in the menu bar - see figure below. All functions of the main menu are also reachable via buttons in the tabs, except the "),t("em",[e._v("About")]),e._v(" and the "),t("em",[e._v("Print")]),e._v(" dialog. This dialog shows general information about the ACS and the AsTeRICS project.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(472),alt:"Screenshot: Menu Bar with Open Main Menu",title:"Screenshot: Menu Bar with Open Main Menu"}})]),e._v(" "),t("p",[e._v("Menu Bar with Open Main Menu")])])}),[],!1,null,null,null);t.default=s.exports},471:function(e,t,a){e.exports=a.p+"assets/img/acs_after_startup.fa7c3813.png"},472:function(e,t,a){e.exports=a.p+"assets/img/menubar_open_main_window.8056bf67.png"}}]); \ No newline at end of file diff --git a/assets/js/6.f215dd70.js b/assets/js/6.3e7ebab7.js similarity index 99% rename from assets/js/6.f215dd70.js rename to assets/js/6.3e7ebab7.js index a8c635360d..212cb9f0c0 100644 --- a/assets/js/6.f215dd70.js +++ b/assets/js/6.3e7ebab7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{1063:function(e,t,o){"use strict";o.r(t);var s=o(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("img",{attrs:{src:o(557),alt:"FabiLogo"}})]),e._v(" "),t("h1",{attrs:{id:"fabi-user-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabi-user-manual"}},[e._v("#")]),e._v(" FABI - User Manual")]),e._v(" "),t("p",[t("img",{attrs:{src:o(558),alt:"FabiFoto"}})]),e._v(" "),t("hr"),e._v(" "),t("h1",{attrs:{id:"welcome-to-fabi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#welcome-to-fabi"}},[e._v("#")]),e._v(" Welcome to FABI")]),e._v(" "),t("p",[e._v("FABI - the “Flexible Assistive Button Interface” - connects up to eight momentary switches (buttons) to a Personal Computer, smartphone or tablet, in order to perform complex mouse- and keyboard actions. A configured FABI module can be used with any PC or mobile device (running Windows, Linux, MacOs, iOS or Android) without installing additional software, because the FABI module behaves like an ordinary computer mouse/keyboard. Using FABI, people with limitied motor capabilities can play computer games, surf the internet, write e-mails and much more.")]),e._v(" "),t("p",[e._v("[TOC]")]),e._v(" "),t("h2",{attrs:{id:"introduction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),t("p",[e._v("The FABI system can be used with commercially available switches, inexpensive arcade buttons, or even homemade electrical contacts. FABI consists of a hardware module (an inexpensive microcontroller that acts as a computer peripheral), and optional add-on modules and sensors (Bluetooth add-on, sip/puff pressure sensor, LC-display). A web-based graphical configuration editor (the "),t("em",[e._v("FABI configuration manager")]),e._v(") is available for setting up desired actions.")]),e._v(" "),t("p",[e._v("Various actions are possible for each button, allowing different configurations to be stored in up to 10 memory slots ("),t("em",[e._v("configuration slots")]),e._v("). The configuration slots can be changed during operation, e.g. via a specific button, making FABI a very flexible alternative input system which allows control of even multiple devices (e.g. connected via USB and BT) via only a few buttons!")]),e._v(" "),t("p",[e._v("FABI is available as an "),t("a",{attrs:{href:"https://github.com/asterics/FABI",target:"_blank",rel:"noopener noreferrer"}},[e._v("open source construction kit"),t("OutboundLink")],1),e._v(" including corresponding assembly instructions for the hardware. The first FABI version was developed in course of the "),t("em",[e._v("AsTeRICS Academy")]),e._v(" project at the FH Technikum Wien. In 2017, the non-profit organization "),t("em",[e._v("AsTeRICS Foundation")]),e._v(" was founded in order to foster open source assistive technology solutions and to make them available at low cost: "),t("a",{attrs:{href:"https://www.asterics-foundation.org/1270-2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.asterics-foundation.org"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("All software modules, hardware design files, and “how-to”-documents are available under free and open source licenses and can be used and modified without fees. We have made every effort to select low-cost components without compromising functionality and flexibility - making FABI an affordable switch interface with extensive capabilities!")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("FABI configuration manager")]),e._v(" enables to assign functions (actions) to connected switches (buttons). Once a configuration has been applied, it remains active, also if the power supply is removed. The FABI system can then be used to control different devices (e.g. Windows/Linux PCs, or Mac computers via USB connection or tablets / smart phones via USB-OTG or Bluetooth connection). The configuration manager is only needed if settings should be changed.")]),e._v(" "),t("p",[e._v("The configuration manager has to be opened in the "),t("em",[e._v("Chrome web browser")]),e._v(" running on a PC or Mac. It can be found at the following web address: "),t("a",{attrs:{href:"https://fabi.asterics.eu/index_fabi.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://fabi.asterics.eu"),t("OutboundLink")],1),e._v(". Figure 1 shows the Welcome page of the configuration manager.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(559),alt:"Abbildung1"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 1")]),e._v(": Welcome page of the configuration manager")]),e._v(" "),t("h4",{attrs:{id:"connecting-the-fabi-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connecting-the-fabi-device"}},[e._v("#")]),e._v(" Connecting the FABI device")]),e._v(" "),t("p",[e._v("After the Welcome page of the configuration manager is visible, connect your FABI device to a USB port and perform the following steps:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(560),alt:"Abbildung2"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 2")]),e._v(": Connecting the USB micro cable")]),e._v(" "),t("ol",[t("li",[e._v("Make sure that the FABI device is connected to the PC via a USB port, using a USB micro cable (see figure 2 above).")]),e._v(" "),t("li",[e._v("Click "),t("strong",[e._v("CONNECT TO FABI CONNECTED VIA USB")]),e._v(" on the configuration manager welcome page. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that you could also have a look at the configuration manager’s functions without connecting the FABI hardware, by using the Test Mode (which simulates a hardware connection).")]),e._v(" "),t("li",[e._v("A communication port identifier with a certain name (e.g. COM4 or /dev/ttyUSB1) should be displayed in a pop-up window. Click on this identifier and then click "),t("strong",[e._v("Connect")]),e._v(".")]),e._v(" "),t("li",[e._v("If you cannot see the user interface of the FABI configuration manager as in Figure 3, open the website again and reselect the communication port in the selection box. Then click "),t("strong",[e._v("Connect")]),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"using-the-configuration-manager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-configuration-manager"}},[e._v("#")]),e._v(" Using the configuration manager")]),e._v(" "),t("p",[e._v("After connecting to the communication port of the FABI system, you will see the user interface of the FABI Configuration Manager, with the "),t("em",[e._v("ACTIONS Tab")]),e._v(" opened (Figure 3).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(561),alt:"Abbildung3"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 3")]),e._v(": FABI Configuration Manager User Interface, "),t("em",[e._v("ACTIONS Tab")]),e._v(" opened")]),e._v(" "),t("h4",{attrs:{id:"port-status"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#port-status"}},[e._v("#")]),e._v(" Port Status")]),e._v(" "),t("p",[e._v("The port status is displayed at the top right corner, it shows whether the FABI device is currently connected to the configuration manager. If the device is disconnected, the Welcome page will automatically be displayed again.")]),e._v(" "),t("h4",{attrs:{id:"save-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#save-settings"}},[e._v("#")]),e._v(" Save settings")]),e._v(" "),t("p",[e._v("Any changes in the settings are automatically applied and saved in the FABI device. The configurations are retained even if the FABI system is disconnected from the USB cable or power supply.")]),e._v(" "),t("h2",{attrs:{id:"actions-tab-assigning-button-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#actions-tab-assigning-button-functions"}},[e._v("#")]),e._v(" "),t("em",[e._v("ACTIONS Tab")]),e._v(": Assigning Button Functions")]),e._v(" "),t("p",[e._v("In the "),t("em",[e._v("ACTIONS Tab")]),e._v(", different functions (actions) can be assigned to (up to) 8 buttons. Possible actions include various mouse clicks, mouse movements, operation of the mouse scroll wheel or keyboard keys. You can change the action for a desired button by clicking the underlined (currently active) action next to the button name - see red square in Figure 4.1. Then, a pop-up window appears where the desired action category and the desired action can be selected. "),t("em",[t("strong",[e._v("Note:")])]),e._v(" If more than 8 buttons are needed, several FABI modules can be operated in parallel.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(562),alt:"Abbildung4.1"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 4.1")]),e._v(": Select/change action for button")]),e._v(" "),t("p",[t("img",{attrs:{src:o(563),alt:"Abbildung4.2"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 4.2")]),e._v(": Select action for a button (here: button 1)")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" The action settings are applied to the active configuration slot by clicking "),t("strong",[e._v("SAVE")]),e._v(", but can also be applied to all slots by clicking "),t("strong",[e._v("Save for all slots")]),e._v(" (see chapter "),t("em",[e._v("Using configuration slots")]),e._v(").")]),e._v(" "),t("h3",{attrs:{id:"action-category-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-mouse"}},[e._v("#")]),e._v(" Action category: Mouse")]),e._v(" "),t("p",[e._v("In the following, the actions of category "),t("em",[e._v("Mouse")]),e._v(" are briefly explained:")]),e._v(" "),t("h4",{attrs:{id:"hold-left-right-middle-mouse-button-as-long-as-input-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hold-left-right-middle-mouse-button-as-long-as-input-action"}},[e._v("#")]),e._v(" Hold Left/Right/Middle Mouse Button (as long as input action)")]),e._v(" "),t("p",[e._v("These actions allow to press (and hold) the left, right or middle mouse button. The mouse button remains pressed as long as the button is held (for example, for dragging files or folders it is necessary to keep the left mouse button pressed).")]),e._v(" "),t("h4",{attrs:{id:"click-left-right-middle-mouse-button"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#click-left-right-middle-mouse-button"}},[e._v("#")]),e._v(" Click left/right/middle mouse button")]),e._v(" "),t("p",[e._v("With these actions, a single click of the left, right or middle mouse button can be executed by pressing the button. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that a click consists of pressing & releasing the corresponding mouse button with a short delay, no matter how long the button is held!")]),e._v(" "),t("h4",{attrs:{id:"double-click-left-mouse-button"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#double-click-left-mouse-button"}},[e._v("#")]),e._v(" Double-click left mouse button")]),e._v(" "),t("p",[e._v("By assigning this action, a double click of the left mouse button can be performed by a single press of the assigned button. (Double-clicking the left mouse button is necessary e.g. in order to to open a file - however, performing quick mouse clicks can be difficult for some users.)")]),e._v(" "),t("h4",{attrs:{id:"press-or-release-left-right-middle-mouse-button-toggle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#press-or-release-left-right-middle-mouse-button-toggle"}},[e._v("#")]),e._v(" Press or release left/right/middle mouse button (toggle).")]),e._v(" "),t("p",[e._v("These actions change the state of the left, right or middle mouse button when the assigned button is pressed. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that the mouse button remains pressed until the button is pressed again!")]),e._v(" "),t("h4",{attrs:{id:"scroll-down-scroll-up"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#scroll-down-scroll-up"}},[e._v("#")]),e._v(" Scroll down / scroll up")]),e._v(" "),t("p",[e._v("The actions “Scroll up” and “Scroll down” create activities with the scroll wheel of the computer mouse. Pressing the button will cause one scroll action (upwards or downwards respectively), with a selectable step size. (Useful for reading documents or web pages).")]),e._v(" "),t("h4",{attrs:{id:"move-mouse-horizontally-vertically-mouse-movement-in-x-or-y-direction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#move-mouse-horizontally-vertically-mouse-movement-in-x-or-y-direction"}},[e._v("#")]),e._v(" Move mouse horizontally / vertically - mouse movement in x or y direction.")]),e._v(" "),t("p",[e._v("The “Move mouse horizontally (x-axis)” and “Move mouse vertically (y-axis)” actions generate computer mouse movements along the selected axes. Speed parameters can be set in the field that appears below. When the button is pressed, the mouse pointer is accelerated up to this maximum speed (e.g. 20 or -20, see figure 5).")]),e._v(" "),t("p",[t("em",[e._v("A positive value for the X direction moves the mouse pointer to the right.\nA negative value for the X-direction moves the mouse pointer to the left.\nA positive value for the Y direction moves the mouse pointer down.\nA negative value for the Y direction moves the mouse pointer upward.")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(564),alt:"Abbildung5"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 5")]),e._v(": Screenshot of the “Move mouse horizontally (x-axis)” action and speed setting.")]),e._v(" "),t("h3",{attrs:{id:"action-category-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-keyboard"}},[e._v("#")]),e._v(" Action category: Keyboard")]),e._v(" "),t("p",[e._v("In the following, the actions of category "),t("em",[e._v("Keyboard")]),e._v(" are briefly explained:")]),e._v(" "),t("h4",{attrs:{id:"hold-key-s-as-long-as-input-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hold-key-s-as-long-as-input-action"}},[e._v("#")]),e._v(" Hold key(s) (as long as input action)")]),e._v(" "),t("p",[e._v("This action presses (and holds) desired keys (or key combinations) as long as the corresponding button is pressed. The desired keyboard key(s) can be selected from a dropdown selection box or recorded directly from the keyboard input (see key selection explaination below, figure 6).")]),e._v(" "),t("h4",{attrs:{id:"press-key-s-release-automatically"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#press-key-s-release-automatically"}},[e._v("#")]),e._v(" Press key(s) + release automatically")]),e._v(" "),t("p",[e._v("This action pressed desired keys (or key combinations). The keyboard keys are pressed and released immediately (i.e. not held down as long as the button is pressed). The desired keyboard key(s) can be selected from a dropdown selection box or recorded directly from the keyboard input (see key selection explaination below, figure 6).")]),e._v(" "),t("h4",{attrs:{id:"press-or-release-key-s-toggle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#press-or-release-key-s-toggle"}},[e._v("#")]),e._v(" Press or release key(s) (toggle)")]),e._v(" "),t("p",[e._v("This action allows desired keys (or key combinations) to change their state (i.e. pressed or released) every time the button is pressed. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that the keyboard key remains pressed until the button is pressed "),t("em",[e._v("again")]),e._v("!")]),e._v(" "),t("p",[t("strong",[e._v("Key selection explained:")]),e._v("\nThe desired keyboard key can be chosen from a selection box (left of the “Add” button). After clicking "),t("strong",[e._v("ADD")]),e._v(", the selected key name (key identifier) appears in “Insert Keys” field, indicating that this key is now assigned to the button. Multiple keys can be added for generating key combinations / keyboard shortcuts.\nFigure 8 shows how to assign keyboard key “KEY_D” to button 1. This will cause a lowercase “d” to be written each time button 1 is pressed.\nAlternatively to the selection box, keys or key combinations can also be recorded from live keyboard input by clicking the “Insert keys” field (left of the “Clear” button).\nKeys that have already been assigned can be removed by clicking "),t("strong",[e._v("CLEAR")]),e._v(".")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" With “KEY_SHIFT” in combination with letter keys, capital letters can be created. All supported key names (identifiers) can be found in the "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/Documentation/UserManual/Markdown/Fabi%20User%20Manual.md#supported-key-identifiers",target:"_blank",rel:"noopener noreferrer"}},[e._v("appendix"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(565),alt:"Abbildung6"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 6")]),e._v(": Key selection (here for the “Press or release key(s) toggle” action)")]),e._v(" "),t("h4",{attrs:{id:"write-word"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#write-word"}},[e._v("#")]),e._v(" Write word")]),e._v(" "),t("p",[e._v("The “Write word” action allows to write a certain text every time the button is pressed. This can be useful for entering passwords, command strings etc. When you select “Write word”, an empty text field appears under the drop-down selection box, where the desired text can be entered:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(566),alt:"Abbildung7"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 7")]),e._v(": Screenshot of the “Write word” action")]),e._v(" "),t("h3",{attrs:{id:"action-category-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-device"}},[e._v("#")]),e._v(" Action category: Device")]),e._v(" "),t("p",[e._v("In the following, the actions of category "),t("em",[e._v("Device")]),e._v(" are briefly explained:")]),e._v(" "),t("h4",{attrs:{id:"no-command-empty"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#no-command-empty"}},[e._v("#")]),e._v(" No command (empty)")]),e._v(" "),t("p",[e._v("If "),t("em",[e._v("No command (empty)")]),e._v(" is selected, the corresponding button will be disabled.")]),e._v(" "),t("h4",{attrs:{id:"load-next-slot-switch-to-next-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#load-next-slot-switch-to-next-configuration"}},[e._v("#")]),e._v(" Load next slot - switch to next configuration")]),e._v(" "),t("p",[e._v("As soon as the button is pressed, the next configuration slot is activated. This allows the individual slots to be changed sequentially, using the assigned button. After the last configuration, the first configuration is automatically activated. (This action is only relevant if you stored configurations into multiple memory slots - for an explaination of the slot system please refer to chapter “Using configuration slots”).")]),e._v(" "),t("h4",{attrs:{id:"load-slot-by-name-switch-to-configuration-with-specific-name"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#load-slot-by-name-switch-to-configuration-with-specific-name"}},[e._v("#")]),e._v(" Load slot by name - switch to configuration with specific name")]),e._v(" "),t("p",[e._v("As soon as the button is pressed, the configuration with the specified name is activated. (This action is only relevant if you stored configurations into multiple memory slots - for an explaination of the slot system please refer to chapter “Using configuration slots” below).")]),e._v(" "),t("h3",{attrs:{id:"action-category-macro"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-macro"}},[e._v("#")]),e._v(" Action category: Macro")]),e._v(" "),t("h4",{attrs:{id:"custom-macro-execute-macro-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#custom-macro-execute-macro-commands"}},[e._v("#")]),e._v(" Custom Macro - Execute Macro Commands")]),e._v(" "),t("p",[e._v("This advanced feature allows multiple commands to be executed using appropriate command shortcuts, providing a high degree of flexibility. The individual commands are entered in the text field, separated by semicolons. Command shortcuts can also be selected using “Add Command” and then be added to the macro using “ADD”. If several commands are added in succession, the semicolons are entered automatically.\nExample: The macro command "),t("code",[e._v("MX 10; WA 500; KP KEY_A;")]),e._v(" moves the mouse cursor 10 pixels to the right, then waits 500 milliseconds and presses the keyboard key “A”.\n"),t("em",[t("strong",[e._v("Note:")])]),e._v(" Supported commands are listed in the combobox “Add command”. However, commands and keyboard shortcuts can also be entered manually into the “Macro” field. A complete list of supported commands can be found in the "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/Documentation/UserManual/Markdown/Fabi%20User%20Manual.md#supported-macro-commands",target:"_blank",rel:"noopener noreferrer"}},[e._v("appendix"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"slots-tab-using-configuration-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slots-tab-using-configuration-slots"}},[e._v("#")]),e._v(" "),t("em",[e._v("SLOTS Tab")]),e._v(": Using Configuration Slots")]),e._v(" "),t("p",[e._v("Various action assignments for the buttons can be stored in up to 10 memory locations ("),t("em",[e._v("configuration slots")]),e._v("). The active configuration slot can also be changed during operation, e.g. via a specific button (see actions). As soon as the FABI device is supplied with power via the USB cable, the first configuration slot is automatically activated. The slots can be created and managed by opening the "),t("em",[e._v("SLOTS Tab")]),e._v(", see figure 8:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(567),alt:"Abbildung8"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 8")]),e._v(": Creating, changing and deleting configuration slots ("),t("em",[e._v("Slots Tab")]),e._v(").")]),e._v(" "),t("p",[e._v("In the top center, the dropdown selection box "),t("strong",[e._v("Select slot")]),e._v(" shows the currently active slot name. By clicking the selection box, all existing slots are shown and the active slot can be changed.\nIn "),t("em",[e._v("Slot configuration")]),e._v(" list you can see all the available slots as well, with the active slot being displayed in bold letters. Here you can change the active slot by clicking one of the inactive slot names. Furthermore, the color of each individual slot can be assigned by clicking "),t("strong",[e._v("Set color")]),e._v(", which opens a pop-up color selection box. The color which is chosen here will be displayed on the FABI device via a built-in mulicolor led whenever the slot is activated. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that this function is only available in the new version (PCB version) of the FABI system.\nA new configuration slot is created by entering a name into the correspnding text field ("),t("em",[e._v("“insert name for new slot”")]),e._v(") and clicking "),t("strong",[e._v("CREATE SLOT")]),e._v(". The settings of the currently active slot are copied to the new slot. The slots can be deleted individually by clicking "),t("strong",[e._v("Delete")]),e._v(". When "),t("strong",[e._v("Download")]),e._v(" is clicked, the configuration data of the respective slot is downloaded to the PC as a file, which is stored in the download-folder of the web browser. This file can then be used to add individual slots to another configuration. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that the complete configuration (all slots) can also be downloaded as as single file, see section “Loading, saving and transferring configurations” below.)")]),e._v(" "),t("h3",{attrs:{id:"loading-saving-and-transferring-configurations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#loading-saving-and-transferring-configurations"}},[e._v("#")]),e._v(" Loading, saving and transferring configurations")]),e._v(" "),t("p",[e._v("If you scroll further down in the "),t("em",[e._v("SLOTS Tab")]),e._v(", you will find functions to backup and restore configurations (Fig. 9). Here you can upload slots from a file: After clicking "),t("strong",[e._v("Select File")]),e._v(", a local file on the computer can be selected. This file must contain a valid FABI configruation with one or more slots (usually, this file has been saved before to your computer). The whole configuration is applied to the FABI device by clicking "),t("strong",[e._v("Upload and replace all slots")]),e._v(". This deletes the active configuration in the process. However, by clicking "),t("strong",[e._v("Show advanced options to upload single slots")]),e._v(" instead - desired slots can be selected from the configuration file, which can then be added to the active FABI configuration by clicking "),t("strong",[e._v("Upload selected slot(s)")]),e._v(".")]),e._v(" "),t("p",[e._v("Saving the current configuration slots of the FABI system is enabled by clicking "),t("strong",[e._v("Download all slots")]),e._v(" (see Figure 9). Here, the entire configuration is downloaded as a single file (.set) to the download-folder of the computer. This file can then be transferred to another computer, and it can be applied to the same or to another FABI device. This allows multiple setups (for example for different users or use cases) to be saved on one computer and to be activated with one click.")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Attention:")])]),e._v(" When downloading configuration data, the files are stored in the download-folder of the computer. It makes sense to move these files to another folder afterwards (and eventually rename them) so that they can be easily found and are not accidentally deleted.")]),e._v(" "),t("h3",{attrs:{id:"predefined-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#predefined-settings"}},[e._v("#")]),e._v(" Predefined settings")]),e._v(" "),t("p",[e._v("Demo configuration settings can be selected at the very bottom of the "),t("em",[e._v("SLOTS Tab")]),e._v(", in section "),t("em",[e._v("Predefined settings")]),e._v(" (see Figure 9). These examples offer an overview of the possibilities of the FABI system and serve as a suggestion for your own applications, such as one- or two-button mouse control setups for PC and smart phone or gaming-keys for different applications. A description for the demo configurations can be displayed in a pop-up window, which provides brief information about the button assignments.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(568),alt:"Abbildung9"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 9")]),e._v(": Loading and saving configuration settings")]),e._v(" "),t("h2",{attrs:{id:"timings-tab-antitremor-and-special-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#timings-tab-antitremor-and-special-functions"}},[e._v("#")]),e._v(" "),t("em",[e._v("TIMINGS Tab")]),e._v(": Antitremor and Special Functions")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("TIMINGS Tab")]),e._v(" tab can be used to set further parameters for the operation of the FABI system: The "),t("em",[e._v("Antitremor settings")]),e._v(" allow to specify minimum durations for pressing and releasing the buttons (in milliseconds). These settings can be useful in order to prevent accidental pressing or releasing of buttons due to hand tremor. Furthermore, thresholds can be set for long presses (to create special actions), double presses (to acctivate the next slot), and dell timings for automatic left clicks. All these settings are explained in more detail below.\n"),t("em",[t("strong",[e._v("Note:")])]),e._v(" these settings apply to the active configuration slot, but can be applied to all slots by clicking "),t("strong",[e._v("Copy config to all slots")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(569),alt:"Abbildung10"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 10")]),e._v(": Screenshot of further settings in the “Timings” tab")]),e._v(" "),t("h3",{attrs:{id:"antitremor-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#antitremor-settings"}},[e._v("#")]),e._v(" Antitremor settings")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("Antitremor")]),e._v(" parameters can be used to define different time periods that are checked by the FABI system when a button is pressed. This can be used to minimize involuntary triggering of buttons in the presence of tremor or fine motor control problems:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Antitremor time for press")]),e._v(" sets the minimum amount of time a button must be pressed for the action to occur.")]),e._v(" "),t("li",[t("strong",[e._v("Antitremor time for release")]),e._v(" sets the minimum amount of time a button must be released for the release to be detected.")]),e._v(" "),t("li",[t("strong",[e._v("Antitremor idle time")]),e._v(" sets the minimum amount of time that must elapse between successive presses of a button.")])]),e._v(" "),t("h3",{attrs:{id:"thresholds-for-special-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#thresholds-for-special-functions"}},[e._v("#")]),e._v(" Thresholds for special functions")]),e._v(" "),t("h4",{attrs:{id:"threshold-for-long-press"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold-for-long-press"}},[e._v("#")]),e._v(" Threshold for long press")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("Threshold for long press")]),e._v(" specifies a time threshold (in milliseconds) above which a button press is interpreted as a “Long press” and consequently an alternative action can be performed. This is particularly useful if a person can only use a small number of buttons. A long button press can then be used to perform an alternative function (e.g. switching the configuration slot). The corresponding functions can be defined in the "),t("em",[e._v("ACTIONS Tab")]),e._v(", function "),t("em",[e._v("Button x long press")]),e._v(".\nThe long press function is "),t("em",[e._v("disabled if a threshold value of 0 milliseconds is set")]),e._v(".\nCurrently, only buttons that are plugged into ports 1, 2 or 3 support the long press function.")]),e._v(" "),t("h4",{attrs:{id:"using-the-double-press-function"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-double-press-function"}},[e._v("#")]),e._v(" Using the “Double Press” Function")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("Threshold for slot change by double press")]),e._v(" defines the maximum duration of a “double press”-activity in milliseconds. If a fast double press of a button is detected, an "),t("em",[e._v("automatic slot change to the next slot")]),e._v(" is performed. This is especially useful if a person can only use a single button: Two quick presses can change the function of this button. For example, several keyboard keys could be pressed alternately (e.g. for game control) or the mouse pointer can be moved in different directions using a single button!")]),e._v(" "),t("h4",{attrs:{id:"threshold-automatic-left-click"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold-automatic-left-click"}},[e._v("#")]),e._v(" Threshold automatic left click")]),e._v(" "),t("p",[e._v("This setting makes it possible to generate a left mouse click after the mouse has been moved (dwell clicking). If the selected time period (in milliseconds) elapses without further mouse movements, the left mouse click will be generated automatically. This allows complete control of a mouse pointer with a small number of buttons or (in combination with the automatic slot change function) with only one button. "),t("em",[e._v("A value of 0 milliseconds disables the automatic click function")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"sip-and-puff-tab-using-a-pressure-sensor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sip-and-puff-tab-using-a-pressure-sensor"}},[e._v("#")]),e._v(" "),t("em",[e._v("SIP AND PUFF Tab")]),e._v(": Using a Pressure Sensor")]),e._v(" "),t("p",[e._v("If an analog pressure sensor like e.g. the sensor type MPXV7007GP is connected to the FABI system, actions for Sip and Puff (suck and blow) can be defined. The analog voltage value must be connected to the solder contact A0 of the microcontroller board. Furthermore, the sensor needs the correct supply voltage (connect 5V and GND correctly).")]),e._v(" "),t("p",[e._v("In the "),t("em",[e._v("SIP AND PUFF Tab")]),e._v(", corresponding threshold values for the strength of sipping or puffing can be set. In the "),t("em",[e._v("ACTIONS Tab")]),e._v(", corresponding actions can be selected that can be triggered by these activities. The idle value of the sensor (when neither sipping nor puffing is performed) is in the middle of the value range, around 512.")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" these settings apply to the active configuration slot, but can be applied to all slots by clicking "),t("strong",[e._v("Copy config to all slots")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(570),alt:"Abbildung11"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 11")]),e._v(": Screenshot of the settings for sip and puff thresholds")]),e._v(" "),t("h2",{attrs:{id:"general-tab-bluetooth-and-firmware-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-tab-bluetooth-and-firmware-options"}},[e._v("#")]),e._v(" "),t("em",[e._v("GENERAL Tab")]),e._v(": Bluetooth and Firmware Options")]),e._v(" "),t("p",[e._v("In the "),t("em",[e._v("GENERAL Tab")]),e._v(", the Bluetooth settings can be adjusted and the main module firmware and Bluetooth module firmware can be updated.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(571),alt:"Abbildung12"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 12")]),e._v(": Screenshot of USB/BT settings in the “GENERAL” tab")]),e._v(" "),t("h3",{attrs:{id:"usb-mode-bluetooth-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usb-mode-bluetooth-mode"}},[e._v("#")]),e._v(" USB Mode / Bluetooth Mode")]),e._v(" "),t("p",[e._v("The optional Bluetooth module (hardware add-on) allows keyboard- and mouse actions to be sent to a connected (“paired”) Bluetooth-enabled device (such as a smartphone or tablet computer). The "),t("strong",[e._v("Mode for Slot x")]),e._v(" selection defines whether the mouse and keyboard actions shall be generated via USB, Bluetooth or both (see figure 12 and figure 13):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(572),alt:"Abbildung13"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 13")]),e._v(": Bluetooth/USB mode selection")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" The USB/Bluetooh mode selection is only useful if the optional Bluetooth add-on module is connected to the FABI device (see section “Using the Bluetooth module”).\nSince this setting is defined per configuration slot, the same FABI device can be used e.g. to control a laptop via USB and a smartphone/tablet via Bluetooth. Switching control between those devices is done by simply changing the active slot.")]),e._v(" "),t("h3",{attrs:{id:"overwrite-update-firmware"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overwrite-update-firmware"}},[e._v("#")]),e._v(" Overwrite / update firmware")]),e._v(" "),t("p",[e._v("Pressing this button will attempt to install the latest software (firmware) for the FABI main module into the microcontroller. This process may take a few minutes. To the left of the button, the version number of the installed firmware and the most recent available version are displayed.")]),e._v(" "),t("h3",{attrs:{id:"overwrite-update-bluetooth-firmware"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overwrite-update-bluetooth-firmware"}},[e._v("#")]),e._v(" Overwrite / update Bluetooth firmware")]),e._v(" "),t("p",[e._v("Pressing this button will attempt to download the latest software (firmware) for the Bluetooth add-on module. This process can take a few minutes and is only possible if a Bluetooth module is connected to the FABI system. To the left of the button, the version number of the installed firmware and the most recent available version are displayed.\n"),t("em",[t("strong",[e._v("Note:")])]),e._v(" Here it can be determined whether a Bluetooth module is installed and correctly recognized. If “installed version” of the Bluetooth module is “unknown”, this means that the module is not installed or not correctly recognized. If “installed version” is “unknown”, while the Bluetooth module is connected to FABI, sometimes “Overwrite Firmware” can fix the problem.")]),e._v(" "),t("h3",{attrs:{id:"reset-to-default-configuration-key-combinations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reset-to-default-configuration-key-combinations"}},[e._v("#")]),e._v(" Reset to default configuration, key combinations")]),e._v(" "),t("p",[e._v("At the bottom of the "),t("em",[e._v("GENERAL Tab")]),e._v(" you will find the button for resetting the FABI device to the default settings. This is useful if the current settings cause problems with the use of the device. Furthermore, the keyboard shorcuts for switching tabs are displayed here.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(573),alt:"Abbildung14"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 14")]),e._v(": Reset device, keyboard shortcuts")]),e._v(" "),t("p",[t("strong",[e._v("Have fun trying out and creating your own FABI configurations!")])]),e._v(" "),t("h2",{attrs:{id:"using-the-bluetooth-module"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-bluetooth-module"}},[e._v("#")]),e._v(" Using the Bluetooth module")]),e._v(" "),t("p",[e._v("The FABI system allows the use of an optional Bluetooth-“AddOn” module for wireless device connections to cell phones, tablets and computers with Bluetooth capability. The Bluetooth module is either included in your version of the FABI kit, or it is available separately - please contact the AsTeRICS Foundation.")]),e._v(" "),t("h3",{attrs:{id:"installation-of-the-bluetooth-module"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installation-of-the-bluetooth-module"}},[e._v("#")]),e._v(" Installation of the Bluetooth module")]),e._v(" "),t("p",[e._v("The Bluetooth module can be easily installed in the PCB-version of the FABI system. (Use with a single microcontroller is also possible and is described in more detail in the "),t("a",{attrs:{href:"https://github.com/asterics/esp32_mouse_keyboard",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github Repository"),t("OutboundLink")],1),e._v(" of the Bluetooth module.\nThe Bluetooth module is plugged onto the 10-pin connector in the orientation shown on the board. To do this, open the FABI housing and push the module onto the pin header (see Figure 15):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(574),alt:"Abbildung15"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 15")]),e._v(": Bluetooth module, plugged onto the FABI board")]),e._v(" "),t("h3",{attrs:{id:"connecting-to-a-bluetooth-device-pairing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connecting-to-a-bluetooth-device-pairing"}},[e._v("#")]),e._v(" Connecting to a Bluetooth device (pairing)")]),e._v(" "),t("p",[e._v("The Bluetooth module indicates that it is ready to connect to a host device by flashing rapidly (approximately 2 times per second). (The flashing of the module can be perceived on the bottom sider of the FABI housing). The host device for the connection pairing can be e.g. a cell phone or tablet computer. A new device must be added in the Bluetooth settings of the host device. Here it should be possible to select the “FABI” device. If the connection is successful, the LED of the Bluetooth module should flash slowly (approx. 1 time per second). The host device should now be able to receive mouse- and keyboard actions from the FABI system (in parallel to the device connected via USB, see "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/Documentation/UserManual/Markdown/Fabi%20User%20Manual.md#general-tab-bluetooth-and-firmware-options",target:"_blank",rel:"noopener noreferrer"}},[t("em",[e._v("GENERAL Tab")]),t("OutboundLink")],1),e._v(", figure 13).")]),e._v(" "),t("h2",{attrs:{id:"appendix"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#appendix"}},[e._v("#")]),e._v(" Appendix")]),e._v(" "),t("h3",{attrs:{id:"supported-macro-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-macro-commands"}},[e._v("#")]),e._v(" Supported Macro commands:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Abbreviation")])]),e._v(" "),t("th",[t("strong",[e._v("Function")])]),e._v(" "),t("th",[t("strong",[e._v("example")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("CL")]),e._v(" "),t("td",[e._v("click left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CR")]),e._v(" "),t("td",[e._v("click right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CM")]),e._v(" "),t("td",[e._v("click middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CD")]),e._v(" "),t("td",[e._v("click double with left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HL")]),e._v(" "),t("td",[e._v("hold the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HR")]),e._v(" "),t("td",[e._v("hold the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HM")]),e._v(" "),t("td",[e._v("hold the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TL")]),e._v(" "),t("td",[e._v("toggle left mouse button")]),e._v(" "),t("td",[e._v("changes the state of the mouse button")])]),e._v(" "),t("tr",[t("td",[e._v("TM")]),e._v(" "),t("td",[e._v("toggle middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TR")]),e._v(" "),t("td",[e._v("toggle right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RL")]),e._v(" "),t("td",[e._v("release the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RR")]),e._v(" "),t("td",[e._v("release the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RM")]),e._v(" "),t("td",[e._v("release the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WU")]),e._v(" "),t("td",[e._v("move mouse wheel up")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WD")]),e._v(" "),t("td",[e._v("move mouse wheel down")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("MX "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in x direction")]),e._v(" "),t("td",[e._v("MX 4 -> moves cursor 4 pixels to the right")])]),e._v(" "),t("tr",[t("td",[e._v("MY "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in y direction")]),e._v(" "),t("td",[e._v("MY -10 -> moves cursor 10 pixels up")])]),e._v(" "),t("tr",[t("td",[e._v("RO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("rotate stick orientation")]),e._v(" "),t("td",[e._v("RO 180 -> flips x and y movements of stick/mouthpiece")])]),e._v(" "),t("tr",[t("td",[e._v("KW "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("keyboard write string")]),e._v(" "),t("td",[e._v("KW Hello! -> writes “Hello!” on the keyboard")])]),e._v(" "),t("tr",[t("td",[e._v("KP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key press: Press keyboard keys (once). Keys are identified by keyboard shortcuts (see list below)")]),e._v(" "),t("td",[e._v("KP KEY_UP -> presses the “Cursor-Up” key; KP KEY_CTRL KEY_ALT KEY_DELETE presses all 3 keys")])]),e._v(" "),t("tr",[t("td",[e._v("KH "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key hold: hold keyboard keys")]),e._v(" "),t("td",[e._v("sKH KEY_LEFT -> holds the “Cursor-Left” key")])]),e._v(" "),t("tr",[t("td",[e._v("KT "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key toggle: toggle keyboard keys; the key will remain pressed until “AT KT” command is sent again or a “AT KR” command is sent")]),e._v(" "),t("td",[e._v("KT KEY_DOWN -> toggles the “Cursor-Down” key")])]),e._v(" "),t("tr",[t("td",[e._v("KR "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key release")]),e._v(" "),t("td",[e._v("KR KEY_UP -> releases the “Cursor-Up” key")])]),e._v(" "),t("tr",[t("td",[e._v("RA")]),e._v(" "),t("td",[e._v("releases all = Release all currently pressed keys and mouse buttons")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WA "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("wait a certain number of milliseconds")]),e._v(" "),t("td",[e._v("WA 100 -> waits 100 milliseconds")])]),e._v(" "),t("tr",[t("td",[e._v("NE")]),e._v(" "),t("td",[e._v("next slot: load next slot")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("LO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("Load slot per name, changes to the given slot")]),e._v(" "),t("td",[e._v("LO mouse")])]),e._v(" "),t("tr",[t("td",[e._v("NC")]),e._v(" "),t("td",[e._v("No command")]),e._v(" "),t("td")])])]),e._v(" "),t("h3",{attrs:{id:"supported-key-identifiers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-key-identifiers"}},[e._v("#")]),e._v(" Supported Key Identifiers:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Supported KEY Identifiers:")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[t("strong",[e._v("Letters")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_A  KEY_B  KEY_C  KEY_D  KEY_E  KEY_F  KEY_G  KEY_H  "),t("br"),e._v("KEY_I  KEY_J  KEY_K  KEY_L  KEY_M  KEY_N  KEY_O  KEY_P  "),t("br"),e._v("KEY_Q  KEY_R  KEY_S  KEY_T  KEY_U  KEY_V  KEY_W  KEY_X KEY_Y KEY_Z")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Digits")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_1  KEY_2  KEY_3  KEY_4  KEY_5  KEY_6  KEY_7  KEY_8  KEY_9  KEY_0")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Function keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_F1  KEY_F2  KEY_F3  KEY_F4  KEY_F5  KEY_F6  KEY_F7  KEY_F8  KEY_F9  KEY_F10  "),t("br"),e._v("KEY_F11  KEY_F12  KEY_F13  KEY_F14  KEY_F15  KEY_F16  KEY_F17  KEY_F18  KEY_F19 "),t("br"),e._v("KEY_F20  KEY_F21  KEY_F22  KEY_F23  KEY_F24")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Navigation keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_UP  KEY_DOWN  KEY_LEFT  KEY_RIGHT  KEY_TAB  KEY_PAGE_UP  KEY_PAGE_DOWN "),t("br"),e._v("KEY_HOME  KEY_END")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Special keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_ENTER  KEY_SPACE  KEY_BACKSPACE  KEY_DELETE  KEY_INSERT  KEY_ESC  KEY_NUM_LOCK"),t("br"),e._v("KEY_SCROLL_LOCK  KEY_CAPS_LOCK  KEY_PAUSE"),t("br")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Tasten für alternative Funktionen")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_SHIFT  KEY_CTRL  KEY_ALT  KEY_RIGHT_ALT  KEY_GUI  KEY_RIGHT_GUI")])])])]),e._v(" "),t("h3",{attrs:{id:"further-links-and-software-recommendations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#further-links-and-software-recommendations"}},[e._v("#")]),e._v(" Further links and software recommendations")]),e._v(" "),t("p",[e._v("The FABI Button Interface can be applied as an alternative input system for a wide range of applications - including computer/smartphone control, AAC software/device control, accessible gaming and educational software. Depending on the number of buttons that can be used by a person, standard programs with mouse / keyboard input can also be used without further adaptation.")]),e._v(" "),t("p",[e._v("If motor skills are very limited, special applications allow many activities by using just a single switch! Some interesting resources are presented below:")]),e._v(" "),t("h4",{attrs:{id:"asterics-and-asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-and-asterics-grid"}},[e._v("#")]),e._v(" AsTeRICS and AsTeRICS Grid")]),e._v(" "),t("p",[e._v("Other open source developments of the "),t("a",{attrs:{href:"https://www.asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Foundation"),t("OutboundLink")],1),e._v(" allow versatile use of button interfaces. The "),t("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS"),t("OutboundLink")],1),e._v(" system is a construction kit for assistive technologies; it also offers examples for 1-button solutions for computer control. "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Grid"),t("OutboundLink")],1),e._v(" is a flexible system for AAC (Augmentative and Alternative Communiication) that can be used with a single switch.")]),e._v(" "),t("h4",{attrs:{id:"specialeffect-org"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specialeffect-org"}},[e._v("#")]),e._v(" SpecialEffect.org")]),e._v(" "),t("p",[e._v("The non-profit organization SpecialEffect ("),t("a",{attrs:{href:"https://www.specialeffect.org.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.specialeffect.org.uk"),t("OutboundLink")],1),e._v(") is dedicated to spreading accessible gaming in the UK and makes special adaptations for people with disabilities.")]),e._v(" "),t("h4",{attrs:{id:"bltt-org"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bltt-org"}},[e._v("#")]),e._v(" BLTT.org")]),e._v(" "),t("p",[e._v("The Better Living Through Technology website ("),t("a",{attrs:{href:"https://bltt.org/introduction-to-switch-access",target:"_blank",rel:"noopener noreferrer"}},[e._v("bltt.org/introduction-to-switch-access"),t("OutboundLink")],1),e._v(") provides useful information for button-based use of computers and links to many software tools.")]),e._v(" "),t("h4",{attrs:{id:"oneswitch-org"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oneswitch-org"}},[e._v("#")]),e._v(" OneSwitch.org")]),e._v(" "),t("p",[e._v("At "),t("a",{attrs:{href:"https://www.oneswitch.org.uk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.oneswitch.org.uk"),t("OutboundLink")],1),e._v(" Barrie Ellis has collected a wealth of tips and information for single-switch gaming and special adaptations for button controls of computer games. Of particular interest are the game library, the one-switch pulse system, and the use of game consoles via controller adapters like the “Titan-Two”.")]),e._v(" "),t("h4",{attrs:{id:"click2speak"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#click2speak"}},[e._v("#")]),e._v(" Click2Speak")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.click2speak.net",target:"_blank",rel:"noopener noreferrer"}},[e._v("Click2Speak"),t("OutboundLink")],1),e._v(" is a flexible on-screen keyboard for Windows that provides additional useful features - such as a mouse click selection box.")]),e._v(" "),t("h2",{attrs:{id:"contact-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contact-information"}},[e._v("#")]),e._v(" Contact Information")]),e._v(" "),t("p",[t("strong",[e._v("AsTeRICS Foundation")])]),e._v(" "),t("p",[e._v("Webpage: "),t("a",{attrs:{href:"https://www.asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.asterics-foundation.org"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Email: "),t("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[e._v("office@asterics-foundation.org")])]),e._v(" "),t("h2",{attrs:{id:"disclaimer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[e._v("#")]),e._v(" Disclaimer")]),e._v(" "),t("p",[e._v("The University of Applied Sciences Technikum Wien and the AsTeRICS Foundation do not assume any warranty or liability for the functionality of the hardware/software modules or the correctness of the documentation.")]),e._v(" "),t("p",[e._v("Furthermore, the FH Technikum Wien and the AsTeRICS Foundation are not liable for any damage to health caused by the use of the provided hardware/software modules.\nThe use of the provided modules and information is at your own risk!")]),e._v(" "),t("h2",{attrs:{id:"acknowledgements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acknowledgements"}},[e._v("#")]),e._v(" Acknowledgements")]),e._v(" "),t("p",[e._v("We would like to thank Miriam Brenner, Fabian Schiegl and Fanny Peternell for their support in writing this manual and Andreas Fußthaler for developing the FABI-PCB version.")]),e._v(" "),t("p",[e._v("This project was financially supported by the City of Vienna (Magistratsabteilung 23 für Wirtschaft, Arbeit und Statistik, MA 23) (project number 14-02, 18-04).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(575),alt:"Abbildung18"}})])])}),[],!1,null,null,null);t.default=a.exports},557:function(e,t,o){e.exports=o.p+"assets/img/fabi1.9a1ac739.PNG"},558:function(e,t,o){e.exports=o.p+"assets/img/fabi2.32069e31.PNG"},559:function(e,t,o){e.exports=o.p+"assets/img/ENabb1.fa2823c0.PNG"},560:function(e,t,o){e.exports=o.p+"assets/img/ENabb2.cebf8b1c.PNG"},561:function(e,t,o){e.exports=o.p+"assets/img/ENabb3.ded79129.PNG"},562:function(e,t,o){e.exports=o.p+"assets/img/ENabb3a.d2938019.PNG"},563:function(e,t,o){e.exports=o.p+"assets/img/ENabb4.83e0ac4c.PNG"},564:function(e,t,o){e.exports=o.p+"assets/img/ENabb5.f59ee712.PNG"},565:function(e,t,o){e.exports=o.p+"assets/img/ENabb6.c807f09d.PNG"},566:function(e,t,o){e.exports=o.p+"assets/img/ENabb7.80186221.PNG"},567:function(e,t,o){e.exports=o.p+"assets/img/ENabb8.32c00809.PNG"},568:function(e,t,o){e.exports=o.p+"assets/img/ENabb9.2652a273.PNG"},569:function(e,t,o){e.exports=o.p+"assets/img/ENabb10.4d632aa3.PNG"},570:function(e,t,o){e.exports=o.p+"assets/img/ENabb11.8e78c33e.PNG"},571:function(e,t,o){e.exports=o.p+"assets/img/ENabb12.5d7ad861.PNG"},572:function(e,t,o){e.exports=o.p+"assets/img/abb13.57ad6c3b.PNG"},573:function(e,t,o){e.exports=o.p+"assets/img/ENabb14.92210975.PNG"},574:function(e,t,o){e.exports=o.p+"assets/img/abb15.51379cf6.PNG"},575:function(e,t,o){e.exports=o.p+"assets/img/abb18.50272592.PNG"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{1062:function(e,t,o){"use strict";o.r(t);var s=o(2),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("img",{attrs:{src:o(557),alt:"FabiLogo"}})]),e._v(" "),t("h1",{attrs:{id:"fabi-user-manual"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabi-user-manual"}},[e._v("#")]),e._v(" FABI - User Manual")]),e._v(" "),t("p",[t("img",{attrs:{src:o(558),alt:"FabiFoto"}})]),e._v(" "),t("hr"),e._v(" "),t("h1",{attrs:{id:"welcome-to-fabi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#welcome-to-fabi"}},[e._v("#")]),e._v(" Welcome to FABI")]),e._v(" "),t("p",[e._v("FABI - the “Flexible Assistive Button Interface” - connects up to eight momentary switches (buttons) to a Personal Computer, smartphone or tablet, in order to perform complex mouse- and keyboard actions. A configured FABI module can be used with any PC or mobile device (running Windows, Linux, MacOs, iOS or Android) without installing additional software, because the FABI module behaves like an ordinary computer mouse/keyboard. Using FABI, people with limitied motor capabilities can play computer games, surf the internet, write e-mails and much more.")]),e._v(" "),t("p",[e._v("[TOC]")]),e._v(" "),t("h2",{attrs:{id:"introduction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),t("p",[e._v("The FABI system can be used with commercially available switches, inexpensive arcade buttons, or even homemade electrical contacts. FABI consists of a hardware module (an inexpensive microcontroller that acts as a computer peripheral), and optional add-on modules and sensors (Bluetooth add-on, sip/puff pressure sensor, LC-display). A web-based graphical configuration editor (the "),t("em",[e._v("FABI configuration manager")]),e._v(") is available for setting up desired actions.")]),e._v(" "),t("p",[e._v("Various actions are possible for each button, allowing different configurations to be stored in up to 10 memory slots ("),t("em",[e._v("configuration slots")]),e._v("). The configuration slots can be changed during operation, e.g. via a specific button, making FABI a very flexible alternative input system which allows control of even multiple devices (e.g. connected via USB and BT) via only a few buttons!")]),e._v(" "),t("p",[e._v("FABI is available as an "),t("a",{attrs:{href:"https://github.com/asterics/FABI",target:"_blank",rel:"noopener noreferrer"}},[e._v("open source construction kit"),t("OutboundLink")],1),e._v(" including corresponding assembly instructions for the hardware. The first FABI version was developed in course of the "),t("em",[e._v("AsTeRICS Academy")]),e._v(" project at the FH Technikum Wien. In 2017, the non-profit organization "),t("em",[e._v("AsTeRICS Foundation")]),e._v(" was founded in order to foster open source assistive technology solutions and to make them available at low cost: "),t("a",{attrs:{href:"https://www.asterics-foundation.org/1270-2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.asterics-foundation.org"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("All software modules, hardware design files, and “how-to”-documents are available under free and open source licenses and can be used and modified without fees. We have made every effort to select low-cost components without compromising functionality and flexibility - making FABI an affordable switch interface with extensive capabilities!")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("FABI configuration manager")]),e._v(" enables to assign functions (actions) to connected switches (buttons). Once a configuration has been applied, it remains active, also if the power supply is removed. The FABI system can then be used to control different devices (e.g. Windows/Linux PCs, or Mac computers via USB connection or tablets / smart phones via USB-OTG or Bluetooth connection). The configuration manager is only needed if settings should be changed.")]),e._v(" "),t("p",[e._v("The configuration manager has to be opened in the "),t("em",[e._v("Chrome web browser")]),e._v(" running on a PC or Mac. It can be found at the following web address: "),t("a",{attrs:{href:"https://fabi.asterics.eu/index_fabi.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://fabi.asterics.eu"),t("OutboundLink")],1),e._v(". Figure 1 shows the Welcome page of the configuration manager.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(559),alt:"Abbildung1"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 1")]),e._v(": Welcome page of the configuration manager")]),e._v(" "),t("h4",{attrs:{id:"connecting-the-fabi-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connecting-the-fabi-device"}},[e._v("#")]),e._v(" Connecting the FABI device")]),e._v(" "),t("p",[e._v("After the Welcome page of the configuration manager is visible, connect your FABI device to a USB port and perform the following steps:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(560),alt:"Abbildung2"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 2")]),e._v(": Connecting the USB micro cable")]),e._v(" "),t("ol",[t("li",[e._v("Make sure that the FABI device is connected to the PC via a USB port, using a USB micro cable (see figure 2 above).")]),e._v(" "),t("li",[e._v("Click "),t("strong",[e._v("CONNECT TO FABI CONNECTED VIA USB")]),e._v(" on the configuration manager welcome page. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that you could also have a look at the configuration manager’s functions without connecting the FABI hardware, by using the Test Mode (which simulates a hardware connection).")]),e._v(" "),t("li",[e._v("A communication port identifier with a certain name (e.g. COM4 or /dev/ttyUSB1) should be displayed in a pop-up window. Click on this identifier and then click "),t("strong",[e._v("Connect")]),e._v(".")]),e._v(" "),t("li",[e._v("If you cannot see the user interface of the FABI configuration manager as in Figure 3, open the website again and reselect the communication port in the selection box. Then click "),t("strong",[e._v("Connect")]),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"using-the-configuration-manager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-configuration-manager"}},[e._v("#")]),e._v(" Using the configuration manager")]),e._v(" "),t("p",[e._v("After connecting to the communication port of the FABI system, you will see the user interface of the FABI Configuration Manager, with the "),t("em",[e._v("ACTIONS Tab")]),e._v(" opened (Figure 3).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(561),alt:"Abbildung3"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 3")]),e._v(": FABI Configuration Manager User Interface, "),t("em",[e._v("ACTIONS Tab")]),e._v(" opened")]),e._v(" "),t("h4",{attrs:{id:"port-status"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#port-status"}},[e._v("#")]),e._v(" Port Status")]),e._v(" "),t("p",[e._v("The port status is displayed at the top right corner, it shows whether the FABI device is currently connected to the configuration manager. If the device is disconnected, the Welcome page will automatically be displayed again.")]),e._v(" "),t("h4",{attrs:{id:"save-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#save-settings"}},[e._v("#")]),e._v(" Save settings")]),e._v(" "),t("p",[e._v("Any changes in the settings are automatically applied and saved in the FABI device. The configurations are retained even if the FABI system is disconnected from the USB cable or power supply.")]),e._v(" "),t("h2",{attrs:{id:"actions-tab-assigning-button-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#actions-tab-assigning-button-functions"}},[e._v("#")]),e._v(" "),t("em",[e._v("ACTIONS Tab")]),e._v(": Assigning Button Functions")]),e._v(" "),t("p",[e._v("In the "),t("em",[e._v("ACTIONS Tab")]),e._v(", different functions (actions) can be assigned to (up to) 8 buttons. Possible actions include various mouse clicks, mouse movements, operation of the mouse scroll wheel or keyboard keys. You can change the action for a desired button by clicking the underlined (currently active) action next to the button name - see red square in Figure 4.1. Then, a pop-up window appears where the desired action category and the desired action can be selected. "),t("em",[t("strong",[e._v("Note:")])]),e._v(" If more than 8 buttons are needed, several FABI modules can be operated in parallel.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(562),alt:"Abbildung4.1"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 4.1")]),e._v(": Select/change action for button")]),e._v(" "),t("p",[t("img",{attrs:{src:o(563),alt:"Abbildung4.2"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 4.2")]),e._v(": Select action for a button (here: button 1)")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" The action settings are applied to the active configuration slot by clicking "),t("strong",[e._v("SAVE")]),e._v(", but can also be applied to all slots by clicking "),t("strong",[e._v("Save for all slots")]),e._v(" (see chapter "),t("em",[e._v("Using configuration slots")]),e._v(").")]),e._v(" "),t("h3",{attrs:{id:"action-category-mouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-mouse"}},[e._v("#")]),e._v(" Action category: Mouse")]),e._v(" "),t("p",[e._v("In the following, the actions of category "),t("em",[e._v("Mouse")]),e._v(" are briefly explained:")]),e._v(" "),t("h4",{attrs:{id:"hold-left-right-middle-mouse-button-as-long-as-input-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hold-left-right-middle-mouse-button-as-long-as-input-action"}},[e._v("#")]),e._v(" Hold Left/Right/Middle Mouse Button (as long as input action)")]),e._v(" "),t("p",[e._v("These actions allow to press (and hold) the left, right or middle mouse button. The mouse button remains pressed as long as the button is held (for example, for dragging files or folders it is necessary to keep the left mouse button pressed).")]),e._v(" "),t("h4",{attrs:{id:"click-left-right-middle-mouse-button"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#click-left-right-middle-mouse-button"}},[e._v("#")]),e._v(" Click left/right/middle mouse button")]),e._v(" "),t("p",[e._v("With these actions, a single click of the left, right or middle mouse button can be executed by pressing the button. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that a click consists of pressing & releasing the corresponding mouse button with a short delay, no matter how long the button is held!")]),e._v(" "),t("h4",{attrs:{id:"double-click-left-mouse-button"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#double-click-left-mouse-button"}},[e._v("#")]),e._v(" Double-click left mouse button")]),e._v(" "),t("p",[e._v("By assigning this action, a double click of the left mouse button can be performed by a single press of the assigned button. (Double-clicking the left mouse button is necessary e.g. in order to to open a file - however, performing quick mouse clicks can be difficult for some users.)")]),e._v(" "),t("h4",{attrs:{id:"press-or-release-left-right-middle-mouse-button-toggle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#press-or-release-left-right-middle-mouse-button-toggle"}},[e._v("#")]),e._v(" Press or release left/right/middle mouse button (toggle).")]),e._v(" "),t("p",[e._v("These actions change the state of the left, right or middle mouse button when the assigned button is pressed. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that the mouse button remains pressed until the button is pressed again!")]),e._v(" "),t("h4",{attrs:{id:"scroll-down-scroll-up"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#scroll-down-scroll-up"}},[e._v("#")]),e._v(" Scroll down / scroll up")]),e._v(" "),t("p",[e._v("The actions “Scroll up” and “Scroll down” create activities with the scroll wheel of the computer mouse. Pressing the button will cause one scroll action (upwards or downwards respectively), with a selectable step size. (Useful for reading documents or web pages).")]),e._v(" "),t("h4",{attrs:{id:"move-mouse-horizontally-vertically-mouse-movement-in-x-or-y-direction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#move-mouse-horizontally-vertically-mouse-movement-in-x-or-y-direction"}},[e._v("#")]),e._v(" Move mouse horizontally / vertically - mouse movement in x or y direction.")]),e._v(" "),t("p",[e._v("The “Move mouse horizontally (x-axis)” and “Move mouse vertically (y-axis)” actions generate computer mouse movements along the selected axes. Speed parameters can be set in the field that appears below. When the button is pressed, the mouse pointer is accelerated up to this maximum speed (e.g. 20 or -20, see figure 5).")]),e._v(" "),t("p",[t("em",[e._v("A positive value for the X direction moves the mouse pointer to the right.\nA negative value for the X-direction moves the mouse pointer to the left.\nA positive value for the Y direction moves the mouse pointer down.\nA negative value for the Y direction moves the mouse pointer upward.")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(564),alt:"Abbildung5"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 5")]),e._v(": Screenshot of the “Move mouse horizontally (x-axis)” action and speed setting.")]),e._v(" "),t("h3",{attrs:{id:"action-category-keyboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-keyboard"}},[e._v("#")]),e._v(" Action category: Keyboard")]),e._v(" "),t("p",[e._v("In the following, the actions of category "),t("em",[e._v("Keyboard")]),e._v(" are briefly explained:")]),e._v(" "),t("h4",{attrs:{id:"hold-key-s-as-long-as-input-action"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hold-key-s-as-long-as-input-action"}},[e._v("#")]),e._v(" Hold key(s) (as long as input action)")]),e._v(" "),t("p",[e._v("This action presses (and holds) desired keys (or key combinations) as long as the corresponding button is pressed. The desired keyboard key(s) can be selected from a dropdown selection box or recorded directly from the keyboard input (see key selection explaination below, figure 6).")]),e._v(" "),t("h4",{attrs:{id:"press-key-s-release-automatically"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#press-key-s-release-automatically"}},[e._v("#")]),e._v(" Press key(s) + release automatically")]),e._v(" "),t("p",[e._v("This action pressed desired keys (or key combinations). The keyboard keys are pressed and released immediately (i.e. not held down as long as the button is pressed). The desired keyboard key(s) can be selected from a dropdown selection box or recorded directly from the keyboard input (see key selection explaination below, figure 6).")]),e._v(" "),t("h4",{attrs:{id:"press-or-release-key-s-toggle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#press-or-release-key-s-toggle"}},[e._v("#")]),e._v(" Press or release key(s) (toggle)")]),e._v(" "),t("p",[e._v("This action allows desired keys (or key combinations) to change their state (i.e. pressed or released) every time the button is pressed. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that the keyboard key remains pressed until the button is pressed "),t("em",[e._v("again")]),e._v("!")]),e._v(" "),t("p",[t("strong",[e._v("Key selection explained:")]),e._v("\nThe desired keyboard key can be chosen from a selection box (left of the “Add” button). After clicking "),t("strong",[e._v("ADD")]),e._v(", the selected key name (key identifier) appears in “Insert Keys” field, indicating that this key is now assigned to the button. Multiple keys can be added for generating key combinations / keyboard shortcuts.\nFigure 8 shows how to assign keyboard key “KEY_D” to button 1. This will cause a lowercase “d” to be written each time button 1 is pressed.\nAlternatively to the selection box, keys or key combinations can also be recorded from live keyboard input by clicking the “Insert keys” field (left of the “Clear” button).\nKeys that have already been assigned can be removed by clicking "),t("strong",[e._v("CLEAR")]),e._v(".")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" With “KEY_SHIFT” in combination with letter keys, capital letters can be created. All supported key names (identifiers) can be found in the "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/Documentation/UserManual/Markdown/Fabi%20User%20Manual.md#supported-key-identifiers",target:"_blank",rel:"noopener noreferrer"}},[e._v("appendix"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(565),alt:"Abbildung6"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 6")]),e._v(": Key selection (here for the “Press or release key(s) toggle” action)")]),e._v(" "),t("h4",{attrs:{id:"write-word"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#write-word"}},[e._v("#")]),e._v(" Write word")]),e._v(" "),t("p",[e._v("The “Write word” action allows to write a certain text every time the button is pressed. This can be useful for entering passwords, command strings etc. When you select “Write word”, an empty text field appears under the drop-down selection box, where the desired text can be entered:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(566),alt:"Abbildung7"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 7")]),e._v(": Screenshot of the “Write word” action")]),e._v(" "),t("h3",{attrs:{id:"action-category-device"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-device"}},[e._v("#")]),e._v(" Action category: Device")]),e._v(" "),t("p",[e._v("In the following, the actions of category "),t("em",[e._v("Device")]),e._v(" are briefly explained:")]),e._v(" "),t("h4",{attrs:{id:"no-command-empty"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#no-command-empty"}},[e._v("#")]),e._v(" No command (empty)")]),e._v(" "),t("p",[e._v("If "),t("em",[e._v("No command (empty)")]),e._v(" is selected, the corresponding button will be disabled.")]),e._v(" "),t("h4",{attrs:{id:"load-next-slot-switch-to-next-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#load-next-slot-switch-to-next-configuration"}},[e._v("#")]),e._v(" Load next slot - switch to next configuration")]),e._v(" "),t("p",[e._v("As soon as the button is pressed, the next configuration slot is activated. This allows the individual slots to be changed sequentially, using the assigned button. After the last configuration, the first configuration is automatically activated. (This action is only relevant if you stored configurations into multiple memory slots - for an explaination of the slot system please refer to chapter “Using configuration slots”).")]),e._v(" "),t("h4",{attrs:{id:"load-slot-by-name-switch-to-configuration-with-specific-name"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#load-slot-by-name-switch-to-configuration-with-specific-name"}},[e._v("#")]),e._v(" Load slot by name - switch to configuration with specific name")]),e._v(" "),t("p",[e._v("As soon as the button is pressed, the configuration with the specified name is activated. (This action is only relevant if you stored configurations into multiple memory slots - for an explaination of the slot system please refer to chapter “Using configuration slots” below).")]),e._v(" "),t("h3",{attrs:{id:"action-category-macro"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-category-macro"}},[e._v("#")]),e._v(" Action category: Macro")]),e._v(" "),t("h4",{attrs:{id:"custom-macro-execute-macro-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#custom-macro-execute-macro-commands"}},[e._v("#")]),e._v(" Custom Macro - Execute Macro Commands")]),e._v(" "),t("p",[e._v("This advanced feature allows multiple commands to be executed using appropriate command shortcuts, providing a high degree of flexibility. The individual commands are entered in the text field, separated by semicolons. Command shortcuts can also be selected using “Add Command” and then be added to the macro using “ADD”. If several commands are added in succession, the semicolons are entered automatically.\nExample: The macro command "),t("code",[e._v("MX 10; WA 500; KP KEY_A;")]),e._v(" moves the mouse cursor 10 pixels to the right, then waits 500 milliseconds and presses the keyboard key “A”.\n"),t("em",[t("strong",[e._v("Note:")])]),e._v(" Supported commands are listed in the combobox “Add command”. However, commands and keyboard shortcuts can also be entered manually into the “Macro” field. A complete list of supported commands can be found in the "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/Documentation/UserManual/Markdown/Fabi%20User%20Manual.md#supported-macro-commands",target:"_blank",rel:"noopener noreferrer"}},[e._v("appendix"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"slots-tab-using-configuration-slots"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slots-tab-using-configuration-slots"}},[e._v("#")]),e._v(" "),t("em",[e._v("SLOTS Tab")]),e._v(": Using Configuration Slots")]),e._v(" "),t("p",[e._v("Various action assignments for the buttons can be stored in up to 10 memory locations ("),t("em",[e._v("configuration slots")]),e._v("). The active configuration slot can also be changed during operation, e.g. via a specific button (see actions). As soon as the FABI device is supplied with power via the USB cable, the first configuration slot is automatically activated. The slots can be created and managed by opening the "),t("em",[e._v("SLOTS Tab")]),e._v(", see figure 8:")]),e._v(" "),t("p",[t("img",{attrs:{src:o(567),alt:"Abbildung8"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 8")]),e._v(": Creating, changing and deleting configuration slots ("),t("em",[e._v("Slots Tab")]),e._v(").")]),e._v(" "),t("p",[e._v("In the top center, the dropdown selection box "),t("strong",[e._v("Select slot")]),e._v(" shows the currently active slot name. By clicking the selection box, all existing slots are shown and the active slot can be changed.\nIn "),t("em",[e._v("Slot configuration")]),e._v(" list you can see all the available slots as well, with the active slot being displayed in bold letters. Here you can change the active slot by clicking one of the inactive slot names. Furthermore, the color of each individual slot can be assigned by clicking "),t("strong",[e._v("Set color")]),e._v(", which opens a pop-up color selection box. The color which is chosen here will be displayed on the FABI device via a built-in mulicolor led whenever the slot is activated. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that this function is only available in the new version (PCB version) of the FABI system.\nA new configuration slot is created by entering a name into the correspnding text field ("),t("em",[e._v("“insert name for new slot”")]),e._v(") and clicking "),t("strong",[e._v("CREATE SLOT")]),e._v(". The settings of the currently active slot are copied to the new slot. The slots can be deleted individually by clicking "),t("strong",[e._v("Delete")]),e._v(". When "),t("strong",[e._v("Download")]),e._v(" is clicked, the configuration data of the respective slot is downloaded to the PC as a file, which is stored in the download-folder of the web browser. This file can then be used to add individual slots to another configuration. "),t("em",[t("strong",[e._v("Note")])]),e._v(" that the complete configuration (all slots) can also be downloaded as as single file, see section “Loading, saving and transferring configurations” below.)")]),e._v(" "),t("h3",{attrs:{id:"loading-saving-and-transferring-configurations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#loading-saving-and-transferring-configurations"}},[e._v("#")]),e._v(" Loading, saving and transferring configurations")]),e._v(" "),t("p",[e._v("If you scroll further down in the "),t("em",[e._v("SLOTS Tab")]),e._v(", you will find functions to backup and restore configurations (Fig. 9). Here you can upload slots from a file: After clicking "),t("strong",[e._v("Select File")]),e._v(", a local file on the computer can be selected. This file must contain a valid FABI configruation with one or more slots (usually, this file has been saved before to your computer). The whole configuration is applied to the FABI device by clicking "),t("strong",[e._v("Upload and replace all slots")]),e._v(". This deletes the active configuration in the process. However, by clicking "),t("strong",[e._v("Show advanced options to upload single slots")]),e._v(" instead - desired slots can be selected from the configuration file, which can then be added to the active FABI configuration by clicking "),t("strong",[e._v("Upload selected slot(s)")]),e._v(".")]),e._v(" "),t("p",[e._v("Saving the current configuration slots of the FABI system is enabled by clicking "),t("strong",[e._v("Download all slots")]),e._v(" (see Figure 9). Here, the entire configuration is downloaded as a single file (.set) to the download-folder of the computer. This file can then be transferred to another computer, and it can be applied to the same or to another FABI device. This allows multiple setups (for example for different users or use cases) to be saved on one computer and to be activated with one click.")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Attention:")])]),e._v(" When downloading configuration data, the files are stored in the download-folder of the computer. It makes sense to move these files to another folder afterwards (and eventually rename them) so that they can be easily found and are not accidentally deleted.")]),e._v(" "),t("h3",{attrs:{id:"predefined-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#predefined-settings"}},[e._v("#")]),e._v(" Predefined settings")]),e._v(" "),t("p",[e._v("Demo configuration settings can be selected at the very bottom of the "),t("em",[e._v("SLOTS Tab")]),e._v(", in section "),t("em",[e._v("Predefined settings")]),e._v(" (see Figure 9). These examples offer an overview of the possibilities of the FABI system and serve as a suggestion for your own applications, such as one- or two-button mouse control setups for PC and smart phone or gaming-keys for different applications. A description for the demo configurations can be displayed in a pop-up window, which provides brief information about the button assignments.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(568),alt:"Abbildung9"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 9")]),e._v(": Loading and saving configuration settings")]),e._v(" "),t("h2",{attrs:{id:"timings-tab-antitremor-and-special-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#timings-tab-antitremor-and-special-functions"}},[e._v("#")]),e._v(" "),t("em",[e._v("TIMINGS Tab")]),e._v(": Antitremor and Special Functions")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("TIMINGS Tab")]),e._v(" tab can be used to set further parameters for the operation of the FABI system: The "),t("em",[e._v("Antitremor settings")]),e._v(" allow to specify minimum durations for pressing and releasing the buttons (in milliseconds). These settings can be useful in order to prevent accidental pressing or releasing of buttons due to hand tremor. Furthermore, thresholds can be set for long presses (to create special actions), double presses (to acctivate the next slot), and dell timings for automatic left clicks. All these settings are explained in more detail below.\n"),t("em",[t("strong",[e._v("Note:")])]),e._v(" these settings apply to the active configuration slot, but can be applied to all slots by clicking "),t("strong",[e._v("Copy config to all slots")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(569),alt:"Abbildung10"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 10")]),e._v(": Screenshot of further settings in the “Timings” tab")]),e._v(" "),t("h3",{attrs:{id:"antitremor-settings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#antitremor-settings"}},[e._v("#")]),e._v(" Antitremor settings")]),e._v(" "),t("p",[e._v("The "),t("em",[e._v("Antitremor")]),e._v(" parameters can be used to define different time periods that are checked by the FABI system when a button is pressed. This can be used to minimize involuntary triggering of buttons in the presence of tremor or fine motor control problems:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Antitremor time for press")]),e._v(" sets the minimum amount of time a button must be pressed for the action to occur.")]),e._v(" "),t("li",[t("strong",[e._v("Antitremor time for release")]),e._v(" sets the minimum amount of time a button must be released for the release to be detected.")]),e._v(" "),t("li",[t("strong",[e._v("Antitremor idle time")]),e._v(" sets the minimum amount of time that must elapse between successive presses of a button.")])]),e._v(" "),t("h3",{attrs:{id:"thresholds-for-special-functions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#thresholds-for-special-functions"}},[e._v("#")]),e._v(" Thresholds for special functions")]),e._v(" "),t("h4",{attrs:{id:"threshold-for-long-press"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold-for-long-press"}},[e._v("#")]),e._v(" Threshold for long press")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("Threshold for long press")]),e._v(" specifies a time threshold (in milliseconds) above which a button press is interpreted as a “Long press” and consequently an alternative action can be performed. This is particularly useful if a person can only use a small number of buttons. A long button press can then be used to perform an alternative function (e.g. switching the configuration slot). The corresponding functions can be defined in the "),t("em",[e._v("ACTIONS Tab")]),e._v(", function "),t("em",[e._v("Button x long press")]),e._v(".\nThe long press function is "),t("em",[e._v("disabled if a threshold value of 0 milliseconds is set")]),e._v(".\nCurrently, only buttons that are plugged into ports 1, 2 or 3 support the long press function.")]),e._v(" "),t("h4",{attrs:{id:"using-the-double-press-function"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-double-press-function"}},[e._v("#")]),e._v(" Using the “Double Press” Function")]),e._v(" "),t("p",[e._v("The "),t("strong",[e._v("Threshold for slot change by double press")]),e._v(" defines the maximum duration of a “double press”-activity in milliseconds. If a fast double press of a button is detected, an "),t("em",[e._v("automatic slot change to the next slot")]),e._v(" is performed. This is especially useful if a person can only use a single button: Two quick presses can change the function of this button. For example, several keyboard keys could be pressed alternately (e.g. for game control) or the mouse pointer can be moved in different directions using a single button!")]),e._v(" "),t("h4",{attrs:{id:"threshold-automatic-left-click"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold-automatic-left-click"}},[e._v("#")]),e._v(" Threshold automatic left click")]),e._v(" "),t("p",[e._v("This setting makes it possible to generate a left mouse click after the mouse has been moved (dwell clicking). If the selected time period (in milliseconds) elapses without further mouse movements, the left mouse click will be generated automatically. This allows complete control of a mouse pointer with a small number of buttons or (in combination with the automatic slot change function) with only one button. "),t("em",[e._v("A value of 0 milliseconds disables the automatic click function")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"sip-and-puff-tab-using-a-pressure-sensor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sip-and-puff-tab-using-a-pressure-sensor"}},[e._v("#")]),e._v(" "),t("em",[e._v("SIP AND PUFF Tab")]),e._v(": Using a Pressure Sensor")]),e._v(" "),t("p",[e._v("If an analog pressure sensor like e.g. the sensor type MPXV7007GP is connected to the FABI system, actions for Sip and Puff (suck and blow) can be defined. The analog voltage value must be connected to the solder contact A0 of the microcontroller board. Furthermore, the sensor needs the correct supply voltage (connect 5V and GND correctly).")]),e._v(" "),t("p",[e._v("In the "),t("em",[e._v("SIP AND PUFF Tab")]),e._v(", corresponding threshold values for the strength of sipping or puffing can be set. In the "),t("em",[e._v("ACTIONS Tab")]),e._v(", corresponding actions can be selected that can be triggered by these activities. The idle value of the sensor (when neither sipping nor puffing is performed) is in the middle of the value range, around 512.")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" these settings apply to the active configuration slot, but can be applied to all slots by clicking "),t("strong",[e._v("Copy config to all slots")]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:o(570),alt:"Abbildung11"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 11")]),e._v(": Screenshot of the settings for sip and puff thresholds")]),e._v(" "),t("h2",{attrs:{id:"general-tab-bluetooth-and-firmware-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-tab-bluetooth-and-firmware-options"}},[e._v("#")]),e._v(" "),t("em",[e._v("GENERAL Tab")]),e._v(": Bluetooth and Firmware Options")]),e._v(" "),t("p",[e._v("In the "),t("em",[e._v("GENERAL Tab")]),e._v(", the Bluetooth settings can be adjusted and the main module firmware and Bluetooth module firmware can be updated.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(571),alt:"Abbildung12"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 12")]),e._v(": Screenshot of USB/BT settings in the “GENERAL” tab")]),e._v(" "),t("h3",{attrs:{id:"usb-mode-bluetooth-mode"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usb-mode-bluetooth-mode"}},[e._v("#")]),e._v(" USB Mode / Bluetooth Mode")]),e._v(" "),t("p",[e._v("The optional Bluetooth module (hardware add-on) allows keyboard- and mouse actions to be sent to a connected (“paired”) Bluetooth-enabled device (such as a smartphone or tablet computer). The "),t("strong",[e._v("Mode for Slot x")]),e._v(" selection defines whether the mouse and keyboard actions shall be generated via USB, Bluetooth or both (see figure 12 and figure 13):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(572),alt:"Abbildung13"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 13")]),e._v(": Bluetooth/USB mode selection")]),e._v(" "),t("p",[t("em",[t("strong",[e._v("Note:")])]),e._v(" The USB/Bluetooh mode selection is only useful if the optional Bluetooth add-on module is connected to the FABI device (see section “Using the Bluetooth module”).\nSince this setting is defined per configuration slot, the same FABI device can be used e.g. to control a laptop via USB and a smartphone/tablet via Bluetooth. Switching control between those devices is done by simply changing the active slot.")]),e._v(" "),t("h3",{attrs:{id:"overwrite-update-firmware"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overwrite-update-firmware"}},[e._v("#")]),e._v(" Overwrite / update firmware")]),e._v(" "),t("p",[e._v("Pressing this button will attempt to install the latest software (firmware) for the FABI main module into the microcontroller. This process may take a few minutes. To the left of the button, the version number of the installed firmware and the most recent available version are displayed.")]),e._v(" "),t("h3",{attrs:{id:"overwrite-update-bluetooth-firmware"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overwrite-update-bluetooth-firmware"}},[e._v("#")]),e._v(" Overwrite / update Bluetooth firmware")]),e._v(" "),t("p",[e._v("Pressing this button will attempt to download the latest software (firmware) for the Bluetooth add-on module. This process can take a few minutes and is only possible if a Bluetooth module is connected to the FABI system. To the left of the button, the version number of the installed firmware and the most recent available version are displayed.\n"),t("em",[t("strong",[e._v("Note:")])]),e._v(" Here it can be determined whether a Bluetooth module is installed and correctly recognized. If “installed version” of the Bluetooth module is “unknown”, this means that the module is not installed or not correctly recognized. If “installed version” is “unknown”, while the Bluetooth module is connected to FABI, sometimes “Overwrite Firmware” can fix the problem.")]),e._v(" "),t("h3",{attrs:{id:"reset-to-default-configuration-key-combinations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reset-to-default-configuration-key-combinations"}},[e._v("#")]),e._v(" Reset to default configuration, key combinations")]),e._v(" "),t("p",[e._v("At the bottom of the "),t("em",[e._v("GENERAL Tab")]),e._v(" you will find the button for resetting the FABI device to the default settings. This is useful if the current settings cause problems with the use of the device. Furthermore, the keyboard shorcuts for switching tabs are displayed here.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(573),alt:"Abbildung14"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 14")]),e._v(": Reset device, keyboard shortcuts")]),e._v(" "),t("p",[t("strong",[e._v("Have fun trying out and creating your own FABI configurations!")])]),e._v(" "),t("h2",{attrs:{id:"using-the-bluetooth-module"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-bluetooth-module"}},[e._v("#")]),e._v(" Using the Bluetooth module")]),e._v(" "),t("p",[e._v("The FABI system allows the use of an optional Bluetooth-“AddOn” module for wireless device connections to cell phones, tablets and computers with Bluetooth capability. The Bluetooth module is either included in your version of the FABI kit, or it is available separately - please contact the AsTeRICS Foundation.")]),e._v(" "),t("h3",{attrs:{id:"installation-of-the-bluetooth-module"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installation-of-the-bluetooth-module"}},[e._v("#")]),e._v(" Installation of the Bluetooth module")]),e._v(" "),t("p",[e._v("The Bluetooth module can be easily installed in the PCB-version of the FABI system. (Use with a single microcontroller is also possible and is described in more detail in the "),t("a",{attrs:{href:"https://github.com/asterics/esp32_mouse_keyboard",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github Repository"),t("OutboundLink")],1),e._v(" of the Bluetooth module.\nThe Bluetooth module is plugged onto the 10-pin connector in the orientation shown on the board. To do this, open the FABI housing and push the module onto the pin header (see Figure 15):")]),e._v(" "),t("p",[t("img",{attrs:{src:o(574),alt:"Abbildung15"}})]),e._v(" "),t("p",[t("em",[e._v("Figure 15")]),e._v(": Bluetooth module, plugged onto the FABI board")]),e._v(" "),t("h3",{attrs:{id:"connecting-to-a-bluetooth-device-pairing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connecting-to-a-bluetooth-device-pairing"}},[e._v("#")]),e._v(" Connecting to a Bluetooth device (pairing)")]),e._v(" "),t("p",[e._v("The Bluetooth module indicates that it is ready to connect to a host device by flashing rapidly (approximately 2 times per second). (The flashing of the module can be perceived on the bottom sider of the FABI housing). The host device for the connection pairing can be e.g. a cell phone or tablet computer. A new device must be added in the Bluetooth settings of the host device. Here it should be possible to select the “FABI” device. If the connection is successful, the LED of the Bluetooth module should flash slowly (approx. 1 time per second). The host device should now be able to receive mouse- and keyboard actions from the FABI system (in parallel to the device connected via USB, see "),t("a",{attrs:{href:"https://github.com/asterics/FABI/blob/master/Documentation/UserManual/Markdown/Fabi%20User%20Manual.md#general-tab-bluetooth-and-firmware-options",target:"_blank",rel:"noopener noreferrer"}},[t("em",[e._v("GENERAL Tab")]),t("OutboundLink")],1),e._v(", figure 13).")]),e._v(" "),t("h2",{attrs:{id:"appendix"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#appendix"}},[e._v("#")]),e._v(" Appendix")]),e._v(" "),t("h3",{attrs:{id:"supported-macro-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-macro-commands"}},[e._v("#")]),e._v(" Supported Macro commands:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Abbreviation")])]),e._v(" "),t("th",[t("strong",[e._v("Function")])]),e._v(" "),t("th",[t("strong",[e._v("example")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("CL")]),e._v(" "),t("td",[e._v("click left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CR")]),e._v(" "),t("td",[e._v("click right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CM")]),e._v(" "),t("td",[e._v("click middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("CD")]),e._v(" "),t("td",[e._v("click double with left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HL")]),e._v(" "),t("td",[e._v("hold the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HR")]),e._v(" "),t("td",[e._v("hold the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("HM")]),e._v(" "),t("td",[e._v("hold the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TL")]),e._v(" "),t("td",[e._v("toggle left mouse button")]),e._v(" "),t("td",[e._v("changes the state of the mouse button")])]),e._v(" "),t("tr",[t("td",[e._v("TM")]),e._v(" "),t("td",[e._v("toggle middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("TR")]),e._v(" "),t("td",[e._v("toggle right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RL")]),e._v(" "),t("td",[e._v("release the left mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RR")]),e._v(" "),t("td",[e._v("release the right mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("RM")]),e._v(" "),t("td",[e._v("release the middle mouse button")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WU")]),e._v(" "),t("td",[e._v("move mouse wheel up")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WD")]),e._v(" "),t("td",[e._v("move mouse wheel down")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("MX "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in x direction")]),e._v(" "),t("td",[e._v("MX 4 -> moves cursor 4 pixels to the right")])]),e._v(" "),t("tr",[t("td",[e._v("MY "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("move mouse in y direction")]),e._v(" "),t("td",[e._v("MY -10 -> moves cursor 10 pixels up")])]),e._v(" "),t("tr",[t("td",[e._v("RO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("rotate stick orientation")]),e._v(" "),t("td",[e._v("RO 180 -> flips x and y movements of stick/mouthpiece")])]),e._v(" "),t("tr",[t("td",[e._v("KW "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("keyboard write string")]),e._v(" "),t("td",[e._v("KW Hello! -> writes “Hello!” on the keyboard")])]),e._v(" "),t("tr",[t("td",[e._v("KP "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key press: Press keyboard keys (once). Keys are identified by keyboard shortcuts (see list below)")]),e._v(" "),t("td",[e._v("KP KEY_UP -> presses the “Cursor-Up” key; KP KEY_CTRL KEY_ALT KEY_DELETE presses all 3 keys")])]),e._v(" "),t("tr",[t("td",[e._v("KH "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key hold: hold keyboard keys")]),e._v(" "),t("td",[e._v("sKH KEY_LEFT -> holds the “Cursor-Left” key")])]),e._v(" "),t("tr",[t("td",[e._v("KT "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key toggle: toggle keyboard keys; the key will remain pressed until “AT KT” command is sent again or a “AT KR” command is sent")]),e._v(" "),t("td",[e._v("KT KEY_DOWN -> toggles the “Cursor-Down” key")])]),e._v(" "),t("tr",[t("td",[e._v("KR "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("key release")]),e._v(" "),t("td",[e._v("KR KEY_UP -> releases the “Cursor-Up” key")])]),e._v(" "),t("tr",[t("td",[e._v("RA")]),e._v(" "),t("td",[e._v("releases all = Release all currently pressed keys and mouse buttons")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("WA "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("wait a certain number of milliseconds")]),e._v(" "),t("td",[e._v("WA 100 -> waits 100 milliseconds")])]),e._v(" "),t("tr",[t("td",[e._v("NE")]),e._v(" "),t("td",[e._v("next slot: load next slot")]),e._v(" "),t("td")]),e._v(" "),t("tr",[t("td",[e._v("LO "),t("code",[e._v("")])]),e._v(" "),t("td",[e._v("Load slot per name, changes to the given slot")]),e._v(" "),t("td",[e._v("LO mouse")])]),e._v(" "),t("tr",[t("td",[e._v("NC")]),e._v(" "),t("td",[e._v("No command")]),e._v(" "),t("td")])])]),e._v(" "),t("h3",{attrs:{id:"supported-key-identifiers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-key-identifiers"}},[e._v("#")]),e._v(" Supported Key Identifiers:")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[t("strong",[e._v("Supported KEY Identifiers:")])])])]),e._v(" "),t("tbody",[t("tr",[t("td",[t("strong",[e._v("Letters")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_A  KEY_B  KEY_C  KEY_D  KEY_E  KEY_F  KEY_G  KEY_H  "),t("br"),e._v("KEY_I  KEY_J  KEY_K  KEY_L  KEY_M  KEY_N  KEY_O  KEY_P  "),t("br"),e._v("KEY_Q  KEY_R  KEY_S  KEY_T  KEY_U  KEY_V  KEY_W  KEY_X KEY_Y KEY_Z")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Digits")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_1  KEY_2  KEY_3  KEY_4  KEY_5  KEY_6  KEY_7  KEY_8  KEY_9  KEY_0")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Function keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_F1  KEY_F2  KEY_F3  KEY_F4  KEY_F5  KEY_F6  KEY_F7  KEY_F8  KEY_F9  KEY_F10  "),t("br"),e._v("KEY_F11  KEY_F12  KEY_F13  KEY_F14  KEY_F15  KEY_F16  KEY_F17  KEY_F18  KEY_F19 "),t("br"),e._v("KEY_F20  KEY_F21  KEY_F22  KEY_F23  KEY_F24")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Navigation keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_UP  KEY_DOWN  KEY_LEFT  KEY_RIGHT  KEY_TAB  KEY_PAGE_UP  KEY_PAGE_DOWN "),t("br"),e._v("KEY_HOME  KEY_END")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Special keys")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_ENTER  KEY_SPACE  KEY_BACKSPACE  KEY_DELETE  KEY_INSERT  KEY_ESC  KEY_NUM_LOCK"),t("br"),e._v("KEY_SCROLL_LOCK  KEY_CAPS_LOCK  KEY_PAUSE"),t("br")])]),e._v(" "),t("tr",[t("td",[t("strong",[e._v("Tasten für alternative Funktionen")])])]),e._v(" "),t("tr",[t("td",[e._v("KEY_SHIFT  KEY_CTRL  KEY_ALT  KEY_RIGHT_ALT  KEY_GUI  KEY_RIGHT_GUI")])])])]),e._v(" "),t("h3",{attrs:{id:"further-links-and-software-recommendations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#further-links-and-software-recommendations"}},[e._v("#")]),e._v(" Further links and software recommendations")]),e._v(" "),t("p",[e._v("The FABI Button Interface can be applied as an alternative input system for a wide range of applications - including computer/smartphone control, AAC software/device control, accessible gaming and educational software. Depending on the number of buttons that can be used by a person, standard programs with mouse / keyboard input can also be used without further adaptation.")]),e._v(" "),t("p",[e._v("If motor skills are very limited, special applications allow many activities by using just a single switch! Some interesting resources are presented below:")]),e._v(" "),t("h4",{attrs:{id:"asterics-and-asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#asterics-and-asterics-grid"}},[e._v("#")]),e._v(" AsTeRICS and AsTeRICS Grid")]),e._v(" "),t("p",[e._v("Other open source developments of the "),t("a",{attrs:{href:"https://www.asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Foundation"),t("OutboundLink")],1),e._v(" allow versatile use of button interfaces. The "),t("a",{attrs:{href:"https://www.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS"),t("OutboundLink")],1),e._v(" system is a construction kit for assistive technologies; it also offers examples for 1-button solutions for computer control. "),t("a",{attrs:{href:"https://grid.asterics.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("AsTeRICS Grid"),t("OutboundLink")],1),e._v(" is a flexible system for AAC (Augmentative and Alternative Communiication) that can be used with a single switch.")]),e._v(" "),t("h4",{attrs:{id:"specialeffect-org"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specialeffect-org"}},[e._v("#")]),e._v(" SpecialEffect.org")]),e._v(" "),t("p",[e._v("The non-profit organization SpecialEffect ("),t("a",{attrs:{href:"https://www.specialeffect.org.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.specialeffect.org.uk"),t("OutboundLink")],1),e._v(") is dedicated to spreading accessible gaming in the UK and makes special adaptations for people with disabilities.")]),e._v(" "),t("h4",{attrs:{id:"bltt-org"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bltt-org"}},[e._v("#")]),e._v(" BLTT.org")]),e._v(" "),t("p",[e._v("The Better Living Through Technology website ("),t("a",{attrs:{href:"https://bltt.org/introduction-to-switch-access",target:"_blank",rel:"noopener noreferrer"}},[e._v("bltt.org/introduction-to-switch-access"),t("OutboundLink")],1),e._v(") provides useful information for button-based use of computers and links to many software tools.")]),e._v(" "),t("h4",{attrs:{id:"oneswitch-org"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#oneswitch-org"}},[e._v("#")]),e._v(" OneSwitch.org")]),e._v(" "),t("p",[e._v("At "),t("a",{attrs:{href:"https://www.oneswitch.org.uk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("www.oneswitch.org.uk"),t("OutboundLink")],1),e._v(" Barrie Ellis has collected a wealth of tips and information for single-switch gaming and special adaptations for button controls of computer games. Of particular interest are the game library, the one-switch pulse system, and the use of game consoles via controller adapters like the “Titan-Two”.")]),e._v(" "),t("h4",{attrs:{id:"click2speak"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#click2speak"}},[e._v("#")]),e._v(" Click2Speak")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.click2speak.net",target:"_blank",rel:"noopener noreferrer"}},[e._v("Click2Speak"),t("OutboundLink")],1),e._v(" is a flexible on-screen keyboard for Windows that provides additional useful features - such as a mouse click selection box.")]),e._v(" "),t("h2",{attrs:{id:"contact-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contact-information"}},[e._v("#")]),e._v(" Contact Information")]),e._v(" "),t("p",[t("strong",[e._v("AsTeRICS Foundation")])]),e._v(" "),t("p",[e._v("Webpage: "),t("a",{attrs:{href:"https://www.asterics-foundation.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.asterics-foundation.org"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Email: "),t("a",{attrs:{href:"mailto:office@asterics-foundation.org"}},[e._v("office@asterics-foundation.org")])]),e._v(" "),t("h2",{attrs:{id:"disclaimer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[e._v("#")]),e._v(" Disclaimer")]),e._v(" "),t("p",[e._v("The University of Applied Sciences Technikum Wien and the AsTeRICS Foundation do not assume any warranty or liability for the functionality of the hardware/software modules or the correctness of the documentation.")]),e._v(" "),t("p",[e._v("Furthermore, the FH Technikum Wien and the AsTeRICS Foundation are not liable for any damage to health caused by the use of the provided hardware/software modules.\nThe use of the provided modules and information is at your own risk!")]),e._v(" "),t("h2",{attrs:{id:"acknowledgements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acknowledgements"}},[e._v("#")]),e._v(" Acknowledgements")]),e._v(" "),t("p",[e._v("We would like to thank Miriam Brenner, Fabian Schiegl and Fanny Peternell for their support in writing this manual and Andreas Fußthaler for developing the FABI-PCB version.")]),e._v(" "),t("p",[e._v("This project was financially supported by the City of Vienna (Magistratsabteilung 23 für Wirtschaft, Arbeit und Statistik, MA 23) (project number 14-02, 18-04).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(575),alt:"Abbildung18"}})])])}),[],!1,null,null,null);t.default=a.exports},557:function(e,t,o){e.exports=o.p+"assets/img/fabi1.9a1ac739.PNG"},558:function(e,t,o){e.exports=o.p+"assets/img/fabi2.32069e31.PNG"},559:function(e,t,o){e.exports=o.p+"assets/img/ENabb1.fa2823c0.PNG"},560:function(e,t,o){e.exports=o.p+"assets/img/ENabb2.cebf8b1c.PNG"},561:function(e,t,o){e.exports=o.p+"assets/img/ENabb3.ded79129.PNG"},562:function(e,t,o){e.exports=o.p+"assets/img/ENabb3a.d2938019.PNG"},563:function(e,t,o){e.exports=o.p+"assets/img/ENabb4.83e0ac4c.PNG"},564:function(e,t,o){e.exports=o.p+"assets/img/ENabb5.f59ee712.PNG"},565:function(e,t,o){e.exports=o.p+"assets/img/ENabb6.c807f09d.PNG"},566:function(e,t,o){e.exports=o.p+"assets/img/ENabb7.80186221.PNG"},567:function(e,t,o){e.exports=o.p+"assets/img/ENabb8.32c00809.PNG"},568:function(e,t,o){e.exports=o.p+"assets/img/ENabb9.2652a273.PNG"},569:function(e,t,o){e.exports=o.p+"assets/img/ENabb10.4d632aa3.PNG"},570:function(e,t,o){e.exports=o.p+"assets/img/ENabb11.8e78c33e.PNG"},571:function(e,t,o){e.exports=o.p+"assets/img/ENabb12.5d7ad861.PNG"},572:function(e,t,o){e.exports=o.p+"assets/img/abb13.57ad6c3b.PNG"},573:function(e,t,o){e.exports=o.p+"assets/img/ENabb14.92210975.PNG"},574:function(e,t,o){e.exports=o.p+"assets/img/abb15.51379cf6.PNG"},575:function(e,t,o){e.exports=o.p+"assets/img/abb18.50272592.PNG"}}]); \ No newline at end of file diff --git a/assets/js/60.f27ca10e.js b/assets/js/60.dcaad5fc.js similarity index 97% rename from assets/js/60.f27ca10e.js rename to assets/js/60.dcaad5fc.js index 79d829f13a..6fcd23b590 100644 --- a/assets/js/60.f27ca10e.js +++ b/assets/js/60.dcaad5fc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{1029:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"setting-the-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-the-properties"}},[e._v("#")]),e._v(" Setting the Properties")]),e._v(" "),t("p",[e._v("Each component has 0 to several properties, by means of which the behaviour of the component can be adapted or functions can be enabled. These properties are not limited to the component itself. Also the ports (input and output, but not the event ports) can have properties. The usage of the properties and their effects can be found in the documentation of the components. The following figure shows the property editor editing the characteristics of the component “generator”. By default, the property area is on the right hand side of the ACS.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(477),alt:"Screenshot: The Property Tab showing a Component's Properties",title:"Screenshot: The Property Tab showing a Component's Properties"}})]),e._v(" "),t("p",[e._v("The Property Tab showing a Component’s Properties")]),e._v(" "),t("h2",{attrs:{id:"dynamic-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-properties"}},[e._v("#")]),e._v(" Dynamic Properties")]),e._v(" "),t("p",[e._v("Beside the standard properties, components can also have dynamic properties. This means, properties in the property editor can become values from the component on the ARE. This feature might be useful in several cases, as example if a plugin is hardware dependent (selecting a soundcard or a midi player), or depending on files on the target system, like several sound files.")]),e._v(" "),t("p",[e._v("If a plugin is implementing a dynamic property, the values will be requested from the ARE, as soon as the ACS is synchronised with the ARE. Then, the received values can be selected in a combobox within the property editor (as shown in the figure below).")]),e._v(" "),t("p",[t("img",{attrs:{src:r(478),alt:"Plugin with Dynamic Property",title:"Plugin with Dynamic Property"}})]),e._v(" "),t("p",[e._v("Plugin with Dynamic Property")])])}),[],!1,null,null,null);t.default=n.exports},477:function(e,t,r){e.exports=r.p+"assets/img/a_components_properties_in_property_tab.01031940.jpg"},478:function(e,t,r){e.exports=r.p+"assets/img/dynproperty.5006543c.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{1028:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"setting-the-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-the-properties"}},[e._v("#")]),e._v(" Setting the Properties")]),e._v(" "),t("p",[e._v("Each component has 0 to several properties, by means of which the behaviour of the component can be adapted or functions can be enabled. These properties are not limited to the component itself. Also the ports (input and output, but not the event ports) can have properties. The usage of the properties and their effects can be found in the documentation of the components. The following figure shows the property editor editing the characteristics of the component “generator”. By default, the property area is on the right hand side of the ACS.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(477),alt:"Screenshot: The Property Tab showing a Component's Properties",title:"Screenshot: The Property Tab showing a Component's Properties"}})]),e._v(" "),t("p",[e._v("The Property Tab showing a Component’s Properties")]),e._v(" "),t("h2",{attrs:{id:"dynamic-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-properties"}},[e._v("#")]),e._v(" Dynamic Properties")]),e._v(" "),t("p",[e._v("Beside the standard properties, components can also have dynamic properties. This means, properties in the property editor can become values from the component on the ARE. This feature might be useful in several cases, as example if a plugin is hardware dependent (selecting a soundcard or a midi player), or depending on files on the target system, like several sound files.")]),e._v(" "),t("p",[e._v("If a plugin is implementing a dynamic property, the values will be requested from the ARE, as soon as the ACS is synchronised with the ARE. Then, the received values can be selected in a combobox within the property editor (as shown in the figure below).")]),e._v(" "),t("p",[t("img",{attrs:{src:r(478),alt:"Plugin with Dynamic Property",title:"Plugin with Dynamic Property"}})]),e._v(" "),t("p",[e._v("Plugin with Dynamic Property")])])}),[],!1,null,null,null);t.default=n.exports},477:function(e,t,r){e.exports=r.p+"assets/img/a_components_properties_in_property_tab.01031940.jpg"},478:function(e,t,r){e.exports=r.p+"assets/img/dynproperty.5006543c.png"}}]); \ No newline at end of file diff --git a/assets/js/61.28e56d4d.js b/assets/js/61.90bce2cb.js similarity index 98% rename from assets/js/61.28e56d4d.js rename to assets/js/61.90bce2cb.js index eefa6edef1..d8524d070a 100644 --- a/assets/js/61.28e56d4d.js +++ b/assets/js/61.90bce2cb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{1031:function(e,t,o){"use strict";o.r(t);var n=o(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"the-edit-tab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-edit-tab"}},[e._v("#")]),e._v(" The Edit Tab")]),e._v(" "),t("p",[e._v("The edit tab is used for manipulating properties of the components and their interconnections. The list below provides a detailed description of the available operations found on the Edit Tab as shown in the figure.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(479),alt:"Screenshot: The edit tab",title:"Screenshot: The edit tab"}})]),e._v(" "),t("p",[e._v("The Edit Tab")]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Model Properties")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Edit Model ID")]),e._v(" edits the unique model ID. This ID is generated automatically and is used by the ARE to store model based informations belonging to the editing model.")]),e._v(" "),t("li",[t("em",[e._v("Show Model Description")]),e._v(" shows the model description dialog. Within this dialog, the model description will be shown and can be edited. The description is divided in the parts of "),t("em",[e._v("Short Description")]),e._v(", "),t("em",[e._v("Model Requirements")]),e._v(" and "),t("em",[e._v("Detailed Description")])])]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Edit Components")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Move Component")]),e._v(" enables the move mode of a component. Now the component can be moved around the drawing board using the arrow keys. Using the enter-key or tabbing to another component ends the move mode.")]),e._v(" "),t("li",[t("em",[e._v("Component Properties")]),e._v(" shows the properties of the component.")])]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Edit")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("New Channel")]),e._v(" indicates that a channel is about to be drawn. To start drawing a channel, click on an output port or use the context menu.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("New Eventchannel")]),e._v(" indicates that an event channel is about to be drawn. To start drawing an event channel, click on an event trigger port or use the context menu.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Cut")]),e._v(" cuts out the selected elements and store the cutted elements in the clipboard.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Copy")]),e._v(" copies the selected elements to the clipboard.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Paste")]),e._v(" copies the elements from the clipboard to the drawing field.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Delete Selection")]),e._v(" deletes the selected elements. This can also be done with the delete-key.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Undo")]),e._v(" the last editing action like move a component, add/delete a component or also the channel and event channel operations. Setting properties and events (things done in the property window) are excluded form undo.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Redo")]),e._v(" the last editing action that has been undone with "),t("em",[e._v("Undo")]),e._v(". Setting properties and events (things done in the property window) are excluded form redo.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Group")]),e._v(" the selected components (incl. channels and event channels) to one group. The selected components must not contain a group. All connected ports and event ports will be available as external connection points of the group. The figure above shows a very simple example, the grouping of two components to one group.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(480),alt:"Grouping of two components",title:"Grouping of two components"}})]),e._v(" "),t("p",[e._v("Grouping of two components")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Ungroup")]),e._v(" the selected group, showing the single components of the group.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Save Group")]),e._v(" saves a selected group, so the group can be reused in this or in other models. The saved groups are available in "),t("em",[e._v("Components / Saved Groups")])])])]),e._v(" "),t("p",[e._v("After at least two components have been added to the deployment, they can be connected to each other. A connection always has to start at the output port (right hand side of a component) connecting to an input port (left side of the component). One output port can be connected to several input ports, but an input port can only receive data from one output port. Additionally the data types of the ports must match in order to be able to connect them, see the section on Channels.")])])}),[],!1,null,null,null);t.default=i.exports},479:function(e,t,o){e.exports=o.p+"assets/img/edit_tab.a583c192.png"},480:function(e,t,o){e.exports=o.p+"assets/img/group1.29b275e2.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{1029:function(e,t,o){"use strict";o.r(t);var n=o(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"the-edit-tab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-edit-tab"}},[e._v("#")]),e._v(" The Edit Tab")]),e._v(" "),t("p",[e._v("The edit tab is used for manipulating properties of the components and their interconnections. The list below provides a detailed description of the available operations found on the Edit Tab as shown in the figure.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(479),alt:"Screenshot: The edit tab",title:"Screenshot: The edit tab"}})]),e._v(" "),t("p",[e._v("The Edit Tab")]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Model Properties")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Edit Model ID")]),e._v(" edits the unique model ID. This ID is generated automatically and is used by the ARE to store model based informations belonging to the editing model.")]),e._v(" "),t("li",[t("em",[e._v("Show Model Description")]),e._v(" shows the model description dialog. Within this dialog, the model description will be shown and can be edited. The description is divided in the parts of "),t("em",[e._v("Short Description")]),e._v(", "),t("em",[e._v("Model Requirements")]),e._v(" and "),t("em",[e._v("Detailed Description")])])]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Edit Components")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Move Component")]),e._v(" enables the move mode of a component. Now the component can be moved around the drawing board using the arrow keys. Using the enter-key or tabbing to another component ends the move mode.")]),e._v(" "),t("li",[t("em",[e._v("Component Properties")]),e._v(" shows the properties of the component.")])]),e._v(" "),t("p",[e._v("Description of the "),t("em",[e._v("Edit")]),e._v(" Group:")]),e._v(" "),t("ul",[t("li",[t("p",[t("em",[e._v("New Channel")]),e._v(" indicates that a channel is about to be drawn. To start drawing a channel, click on an output port or use the context menu.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("New Eventchannel")]),e._v(" indicates that an event channel is about to be drawn. To start drawing an event channel, click on an event trigger port or use the context menu.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Cut")]),e._v(" cuts out the selected elements and store the cutted elements in the clipboard.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Copy")]),e._v(" copies the selected elements to the clipboard.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Paste")]),e._v(" copies the elements from the clipboard to the drawing field.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Delete Selection")]),e._v(" deletes the selected elements. This can also be done with the delete-key.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Undo")]),e._v(" the last editing action like move a component, add/delete a component or also the channel and event channel operations. Setting properties and events (things done in the property window) are excluded form undo.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Redo")]),e._v(" the last editing action that has been undone with "),t("em",[e._v("Undo")]),e._v(". Setting properties and events (things done in the property window) are excluded form redo.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Group")]),e._v(" the selected components (incl. channels and event channels) to one group. The selected components must not contain a group. All connected ports and event ports will be available as external connection points of the group. The figure above shows a very simple example, the grouping of two components to one group.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(480),alt:"Grouping of two components",title:"Grouping of two components"}})]),e._v(" "),t("p",[e._v("Grouping of two components")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Ungroup")]),e._v(" the selected group, showing the single components of the group.")])]),e._v(" "),t("li",[t("p",[t("em",[e._v("Save Group")]),e._v(" saves a selected group, so the group can be reused in this or in other models. The saved groups are available in "),t("em",[e._v("Components / Saved Groups")])])])]),e._v(" "),t("p",[e._v("After at least two components have been added to the deployment, they can be connected to each other. A connection always has to start at the output port (right hand side of a component) connecting to an input port (left side of the component). One output port can be connected to several input ports, but an input port can only receive data from one output port. Additionally the data types of the ports must match in order to be able to connect them, see the section on Channels.")])])}),[],!1,null,null,null);t.default=i.exports},479:function(e,t,o){e.exports=o.p+"assets/img/edit_tab.a583c192.png"},480:function(e,t,o){e.exports=o.p+"assets/img/group1.29b275e2.png"}}]); \ No newline at end of file diff --git a/assets/js/63.4f221ed1.js b/assets/js/63.a8a24c1e.js similarity index 99% rename from assets/js/63.4f221ed1.js rename to assets/js/63.a8a24c1e.js index 0508af380a..21b9cf4c7a 100644 --- a/assets/js/63.4f221ed1.js +++ b/assets/js/63.a8a24c1e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{1056:function(t,e,i){"use strict";i.r(e);var a=i(2),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dictionaries"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dictionaries"}},[t._v("#")]),t._v(" Dictionaries")]),t._v(" "),e("p",[e("strong",[t._v("Video on YouTube:")]),t._v(" "),e("a",{attrs:{href:"https://www.youtube.com/watch?v=DS9om8MDEDY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=19&t=0s",target:"_blank",rel:"noopener noreferrer"}},[t._v("Manage dictionaries"),e("OutboundLink")],1),t._v(" (German, but auto-translated subtitles available)")]),t._v(" "),e("p",[t._v("This chapter is about dictionaries and how to manage and use them within AsTeRICS Grid.")]),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[t._v("Back to Overview")])],1),t._v(" "),e("p",[t._v("A dictionary is a collection of words and their relations that is saved within AsTeRICS Grid in order to fill "),e("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[t._v("prediction elements")]),t._v(".")],1),t._v(" "),e("h2",{attrs:{id:"edit-dictionaries"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#edit-dictionaries"}},[t._v("#")]),t._v(" Edit dictionaries")]),t._v(" "),e("p",[t._v("The basic functionality of the manage dictionaries view was already described in chapter "),e("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[t._v("navigation and basic functionality")]),t._v(".")],1),t._v(" "),e("p",[t._v("In the manage dictionaries view clicking on “Edit” in the list of dictionaries allows to see the details of a dictionary and editing it:")]),t._v(" "),e("p",[e("img",{attrs:{src:i(553),alt:"edit a dictionary"}}),t._v(" "),e("em",[t._v("Figure 1: Edit a dictionary")])]),t._v(" "),e("p",[t._v("Typing a word or a part of it in the search field filters the list of shown words. Clicking on the recycle bin symbol next to a word deletes it from the dictionary.")]),t._v(" "),e("h2",{attrs:{id:"add-words"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#add-words"}},[t._v("#")]),t._v(" Add words")]),t._v(" "),e("p",[t._v("Clicking on the “Import words” in Figure 1 button opens a modal:")]),t._v(" "),e("p",[e("img",{attrs:{src:i(554),alt:"import words to dictionary"}}),t._v(" "),e("em",[t._v("Figure 2: Import words modal")])]),t._v(" "),e("p",[t._v("These are the elements of the “import words” modal:")]),t._v(" "),e("ol",[e("li",[e("strong",[t._v("Advanced options")]),t._v(": click to toggle visibility of advanced import options (Fig. 2, advanced options are shown on the left, hidden on the right)")]),t._v(" "),e("li",[e("strong",[t._v("Input field")]),t._v(": field to input or paste words that should be imported to the dictionary")]),t._v(" "),e("li",[e("strong",[t._v("Recognized words")]),t._v(": live-updated list of recognized words based on the input options and words typed into the textfield")]),t._v(" "),e("li",[e("strong",[t._v("Cancel")]),t._v(": discard changes and close the modal")]),t._v(" "),e("li",[e("strong",[t._v("Insert words")]),t._v(": import the recognized words to the dictionary and close the modal")]),t._v(" "),e("li",[e("strong",[t._v("Element separator")]),t._v(": separator between words to recognize, can be either a single character or "),e("a",{attrs:{href:"https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp",target:"_blank"}},[t._v("Javascript RegExp syntax")]),t._v(". Default value is the Javascript RegExp "),e("code",[t._v("[\\n; ]")]),t._v(" meaning that line breaks, semicolons and spaces can be used to divide words.")]),t._v(" "),e("li",[e("strong",[t._v("In-element separator")]),t._v(" (optional): single character or Javascript RegExp expression that re-splits elements that are recognized by “element separator”. This is needed if the imported data consists of words and and a rank specifying the position of the word based on it’s frequency.")]),t._v(" "),e("li",[e("strong",[t._v("Word index")]),t._v(": if “in-element separator” is set this property specifies the position of the word")]),t._v(" "),e("li",[e("strong",[t._v("Rank index")]),t._v(": if “in-element separator” is set this property specifies the position of the rank")])]),t._v(" "),e("h3",{attrs:{id:"example-import-a-big-word-list"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example-import-a-big-word-list"}},[t._v("#")]),t._v(" Example: import a big word list")]),t._v(" "),e("p",[t._v("This example shows how to import a big list of words, for instance a list of the "),e("a",{attrs:{href:"http://corpus.leeds.ac.uk/frqc/internet-en-forms.num",target:"_blank"}},[t._v("most frequent 25000 words")]),t._v(" from "),e("a",{attrs:{href:"http://corpus.leeds.ac.uk/",target:"_blank"}},[t._v("Corpus leeds")]),t._v(".")]),t._v(" "),e("p",[t._v("The format of the list looks like this:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("1 43116.72 the\n2 25428.07 of\n3 22833.85 to\n...\n")])])]),e("p",[t._v("Each data record has the format "),e("code",[t._v(" ")]),t._v(" and is separated by a line separator "),e("code",[t._v("\\n")]),t._v(". In order to import this list to AsTeRICS Grid the whole list has to be copied, inserted into the text field of the import modal (Fig. 2, number 2) and the following advanced options have to be set (Fig. 2, number 6-9):")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Element separator")]),t._v(": "),e("code",[t._v("\\n")]),t._v(" - since the data records are separated by line breaks")]),t._v(" "),e("li",[e("strong",[t._v("In-element separator")]),t._v(": "),e("code",[t._v("[ ]")]),t._v(" (space) - since the data inside the lines is separated by spaces")]),t._v(" "),e("li",[e("strong",[t._v("Word index")]),t._v(": "),e("code",[t._v("2")]),t._v(" - since the word is the third element within a data record (zero-based index)")]),t._v(" "),e("li",[e("strong",[t._v("Rank index")]),t._v(": "),e("code",[t._v("0")]),t._v(" - since the rank is the first element within a data record (zero-based index)")])]),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[t._v("← Previous Chapter")]),t._v(" "),e("RouterLink",{attrs:{to:"/manuals/asterics-grid/08_keyboard_shortcuts.html"}},[t._v("Next Chapter →")])],1),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[t._v("Back to Overview")])],1)])}),[],!1,null,null,null);e.default=r.exports},553:function(t,e,i){t.exports=i.p+"assets/img/dictionary_edit_en.03a0c3d0.jpg"},554:function(t,e,i){t.exports=i.p+"assets/img/dictionary_import_en.9c40fcb3.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{1054:function(t,e,i){"use strict";i.r(e);var a=i(2),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dictionaries"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dictionaries"}},[t._v("#")]),t._v(" Dictionaries")]),t._v(" "),e("p",[e("strong",[t._v("Video on YouTube:")]),t._v(" "),e("a",{attrs:{href:"https://www.youtube.com/watch?v=DS9om8MDEDY&list=PL0UXHkT03dGrIHldlEKR0ZWfNMkShuTNz&index=19&t=0s",target:"_blank",rel:"noopener noreferrer"}},[t._v("Manage dictionaries"),e("OutboundLink")],1),t._v(" (German, but auto-translated subtitles available)")]),t._v(" "),e("p",[t._v("This chapter is about dictionaries and how to manage and use them within AsTeRICS Grid.")]),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[t._v("Back to Overview")])],1),t._v(" "),e("p",[t._v("A dictionary is a collection of words and their relations that is saved within AsTeRICS Grid in order to fill "),e("RouterLink",{attrs:{to:"/manuals/asterics-grid/01_terms.html#grid-element"}},[t._v("prediction elements")]),t._v(".")],1),t._v(" "),e("h2",{attrs:{id:"edit-dictionaries"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#edit-dictionaries"}},[t._v("#")]),t._v(" Edit dictionaries")]),t._v(" "),e("p",[t._v("The basic functionality of the manage dictionaries view was already described in chapter "),e("RouterLink",{attrs:{to:"/manuals/asterics-grid/02_navigation.html"}},[t._v("navigation and basic functionality")]),t._v(".")],1),t._v(" "),e("p",[t._v("In the manage dictionaries view clicking on “Edit” in the list of dictionaries allows to see the details of a dictionary and editing it:")]),t._v(" "),e("p",[e("img",{attrs:{src:i(553),alt:"edit a dictionary"}}),t._v(" "),e("em",[t._v("Figure 1: Edit a dictionary")])]),t._v(" "),e("p",[t._v("Typing a word or a part of it in the search field filters the list of shown words. Clicking on the recycle bin symbol next to a word deletes it from the dictionary.")]),t._v(" "),e("h2",{attrs:{id:"add-words"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#add-words"}},[t._v("#")]),t._v(" Add words")]),t._v(" "),e("p",[t._v("Clicking on the “Import words” in Figure 1 button opens a modal:")]),t._v(" "),e("p",[e("img",{attrs:{src:i(554),alt:"import words to dictionary"}}),t._v(" "),e("em",[t._v("Figure 2: Import words modal")])]),t._v(" "),e("p",[t._v("These are the elements of the “import words” modal:")]),t._v(" "),e("ol",[e("li",[e("strong",[t._v("Advanced options")]),t._v(": click to toggle visibility of advanced import options (Fig. 2, advanced options are shown on the left, hidden on the right)")]),t._v(" "),e("li",[e("strong",[t._v("Input field")]),t._v(": field to input or paste words that should be imported to the dictionary")]),t._v(" "),e("li",[e("strong",[t._v("Recognized words")]),t._v(": live-updated list of recognized words based on the input options and words typed into the textfield")]),t._v(" "),e("li",[e("strong",[t._v("Cancel")]),t._v(": discard changes and close the modal")]),t._v(" "),e("li",[e("strong",[t._v("Insert words")]),t._v(": import the recognized words to the dictionary and close the modal")]),t._v(" "),e("li",[e("strong",[t._v("Element separator")]),t._v(": separator between words to recognize, can be either a single character or "),e("a",{attrs:{href:"https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp",target:"_blank"}},[t._v("Javascript RegExp syntax")]),t._v(". Default value is the Javascript RegExp "),e("code",[t._v("[\\n; ]")]),t._v(" meaning that line breaks, semicolons and spaces can be used to divide words.")]),t._v(" "),e("li",[e("strong",[t._v("In-element separator")]),t._v(" (optional): single character or Javascript RegExp expression that re-splits elements that are recognized by “element separator”. This is needed if the imported data consists of words and and a rank specifying the position of the word based on it’s frequency.")]),t._v(" "),e("li",[e("strong",[t._v("Word index")]),t._v(": if “in-element separator” is set this property specifies the position of the word")]),t._v(" "),e("li",[e("strong",[t._v("Rank index")]),t._v(": if “in-element separator” is set this property specifies the position of the rank")])]),t._v(" "),e("h3",{attrs:{id:"example-import-a-big-word-list"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example-import-a-big-word-list"}},[t._v("#")]),t._v(" Example: import a big word list")]),t._v(" "),e("p",[t._v("This example shows how to import a big list of words, for instance a list of the "),e("a",{attrs:{href:"http://corpus.leeds.ac.uk/frqc/internet-en-forms.num",target:"_blank"}},[t._v("most frequent 25000 words")]),t._v(" from "),e("a",{attrs:{href:"http://corpus.leeds.ac.uk/",target:"_blank"}},[t._v("Corpus leeds")]),t._v(".")]),t._v(" "),e("p",[t._v("The format of the list looks like this:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("1 43116.72 the\n2 25428.07 of\n3 22833.85 to\n...\n")])])]),e("p",[t._v("Each data record has the format "),e("code",[t._v(" ")]),t._v(" and is separated by a line separator "),e("code",[t._v("\\n")]),t._v(". In order to import this list to AsTeRICS Grid the whole list has to be copied, inserted into the text field of the import modal (Fig. 2, number 2) and the following advanced options have to be set (Fig. 2, number 6-9):")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Element separator")]),t._v(": "),e("code",[t._v("\\n")]),t._v(" - since the data records are separated by line breaks")]),t._v(" "),e("li",[e("strong",[t._v("In-element separator")]),t._v(": "),e("code",[t._v("[ ]")]),t._v(" (space) - since the data inside the lines is separated by spaces")]),t._v(" "),e("li",[e("strong",[t._v("Word index")]),t._v(": "),e("code",[t._v("2")]),t._v(" - since the word is the third element within a data record (zero-based index)")]),t._v(" "),e("li",[e("strong",[t._v("Rank index")]),t._v(": "),e("code",[t._v("0")]),t._v(" - since the rank is the first element within a data record (zero-based index)")])]),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/manuals/asterics-grid/06_users.html"}},[t._v("← Previous Chapter")]),t._v(" "),e("RouterLink",{attrs:{to:"/manuals/asterics-grid/08_keyboard_shortcuts.html"}},[t._v("Next Chapter →")])],1),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/manuals/asterics-grid/"}},[t._v("Back to Overview")])],1)])}),[],!1,null,null,null);e.default=r.exports},553:function(t,e,i){t.exports=i.p+"assets/img/dictionary_edit_en.03a0c3d0.jpg"},554:function(t,e,i){t.exports=i.p+"assets/img/dictionary_import_en.9c40fcb3.jpg"}}]); \ No newline at end of file diff --git a/assets/js/64.4a61fc21.js b/assets/js/64.9d737588.js similarity index 99% rename from assets/js/64.4a61fc21.js rename to assets/js/64.9d737588.js index 69d5c579d1..8e2dd6f4d1 100644 --- a/assets/js/64.4a61fc21.js +++ b/assets/js/64.9d737588.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{1058:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"word-forms-in-asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#word-forms-in-asterics-grid"}},[e._v("#")]),e._v(" Word forms in AsTeRICS Grid")]),e._v(" "),t("p",[e._v("For simple communication boards it’s sufficient to use static labels (in different languages) for grid elements. However, for more advanced communicators “word forms” can be used in order to allow grammatically correct communication.")]),e._v(" "),t("h2",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("p",[e._v("Word forms can be defined for each element in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#editing-grid-elements"}},[e._v("dialog for editing grid elements")]),e._v(". The tab "),t("code",[e._v("Word forms")]),e._v(" allows to define and edit word forms (see Fig.1).")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(555),alt:"edit view"}}),e._v(" "),t("em",[e._v("Fig.1: Dialog for defining and editing word forms")])]),e._v(" "),t("p",[e._v("The dialog in Figure 1 shows the following options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Language")]),e._v(": (optional) language of the new word form")]),e._v(" "),t("li",[t("strong",[e._v("Tags")]),e._v(": (optional) tags assigned to the new word form (e.g. "),t("code",[e._v("1.PERS")]),e._v(" or "),t("code",[e._v("PLURAL")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("Word form")]),e._v(": the value of the new word form")]),e._v(" "),t("li",[t("strong",[e._v("Pronunciation")]),e._v(": (optional) alternative pronunciation for the new word form")]),e._v(" "),t("li",[t("strong",[e._v("Add word form")]),e._v(": adds the newly defined word form to the list")]),e._v(" "),t("li",[t("strong",[e._v("Import/export data to/from all grids")]),e._v(": if activated, word forms are not only imported/exported for the current element, but for all elements within all grids. This options helps to quickly edit all word forms (e.g. managed in an external spreadsheet). Note that data can only be imported to all grids (globally) if the data to import contains the fourth column "),t("code",[e._v("ID")]),e._v(" (see below) and the target elements contain a word form with tag "),t("code",[e._v("BASE")]),e._v(" (which is used for mapping the word forms correctly).")]),e._v(" "),t("li",[t("strong",[e._v("Override existing word forms")]),e._v(": if activated, all existing word forms are overwritten at import. Always activated if importing globally.")]),e._v(" "),t("li",[t("strong",[e._v("Import from clipboard")]),e._v(": imports word forms from the clipboard, copied from an external spreadsheet. The columns that can be imported are: "),t("code",[e._v("WORD FORM")]),e._v(", "),t("code",[e._v("LANG (2 digits)")]),e._v(", "),t("code",[e._v("TAGS (comma separated)")]),e._v(", "),t("code",[e._v("ID")]),e._v(", "),t("code",[e._v("PRONUNCIATION")]),e._v(". The order of columns is important, but not all have to be existing, so it’s also possible to copy only the first ones. The value "),t("code",[e._v("ID")]),e._v(" is only relevant for importing elements to all grids (globally) and it’s automatically generated at exporting from all grids globally.")]),e._v(" "),t("li",[t("strong",[e._v("Copy to clipboard")]),e._v(": copies word forms to the clipboard in a format that can be pasted to a spreadsheet.")]),e._v(" "),t("li",[t("strong",[e._v("Language filter")]),e._v(": dropdown for selecting a language for filtering the list of word forms")]),e._v(" "),t("li",[t("strong",[e._v("Delete all")]),e._v(": deletes all word forms of the current element")]),e._v(" "),t("li",[t("strong",[e._v("Edit button")]),e._v(": enable/disable edit mode for a specific word form in the list")]),e._v(" "),t("li",[t("strong",[e._v("Trash button")]),e._v(": delete a specific word form")]),e._v(" "),t("li",[t("strong",[e._v("Up button")]),e._v(": moves the word form up within the list")]),e._v(" "),t("li",[t("strong",[e._v("Down button")]),e._v(": moves the word form down within the list")])]),e._v(" "),t("h2",{attrs:{id:"word-form-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#word-form-actions"}},[e._v("#")]),e._v(" Word form actions")]),e._v(" "),t("p",[e._v("Once word forms are defined for different elements, they can be used and selected using the action type "),t("code",[e._v("change word forms")]),e._v(" in tab "),t("code",[e._v("Actions")]),e._v(" of the modal for editing a grid element (see Fig. 1). Figure 2 shows the possibilities for configuring this action.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(556),alt:"edit view"}}),e._v(" "),t("em",[e._v("Fig.2: Configuring an action of type “Change word forms”.")])]),e._v(" "),t("h3",{attrs:{id:"general-function"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-function"}},[e._v("#")]),e._v(" General function")]),e._v(" "),t("p",[e._v("In general most action types for "),t("code",[e._v("change word forms")]),e._v(" allow it to define tags (Figure 2.2) which are added to an internal (hidden) list of current tags, if the action is performed.")]),e._v(" "),t("p",[t("strong",[e._v("Example 1")]),e._v(": for example there could be the following elements within a grid:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Element “You”")]),e._v(": has action "),t("code",[e._v("change word forms")]),e._v(" with tag "),t("code",[e._v("2.PERS")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Element “Past”")]),e._v(": has action "),t("code",[e._v("change word forms")]),e._v(" with tag "),t("code",[e._v("PAST")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Element “to be”")]),e._v(": has defined various word forms with tags like "),t("code",[e._v("am [1.PERS, PRESENT]")]),e._v(", "),t("code",[e._v("are [2.PERS, PRESENT]")]),e._v(", "),t("code",[e._v("were [2.PERS, PAST]")]),e._v(".")])]),e._v(" "),t("p",[e._v("Now using these elements would work as follows:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Select element “You”")]),e._v(": tag "),t("code",[e._v("2.PERS")]),e._v(" is added to internal list, word forms are changed in order to match this tag -> element “to be” is changed to "),t("code",[e._v("are")]),e._v(" because it’s the first word form including the tag "),t("code",[e._v("2.PERS")])]),e._v(" "),t("li",[t("strong",[e._v("Select element “Past”")]),e._v(": tag "),t("code",[e._v("PAST")]),e._v(" is added to internal list, which now includes "),t("code",[e._v("2.PERS, PAST")]),e._v(". Word forms are changed to match these tags -> element “to be” is changed to "),t("code",[e._v("were")]),e._v(" because it’s the first word form including the tags "),t("code",[e._v("2.PERS")]),e._v(" and "),t("code",[e._v("PAST")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"action-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-types"}},[e._v("#")]),e._v(" Action types")]),e._v(" "),t("p",[e._v("These are the action types for "),t("code",[e._v("change word forms")]),e._v(" (Fig. 2.1):")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Change word form in grid elements")]),e._v(": changes the labels of grid elements to the word form that best matches the current internal list of tags.")]),e._v(" "),t("li",[t("strong",[e._v("Change word form in collection element")]),e._v(": changes the last element in the collection element to the word form that best matches the current internal list of tags.")]),e._v(" "),t("li",[t("strong",[e._v("Change word form everywhere")]),e._v(": changes word forms both within grid elements and within the last word of the collect element.")]),e._v(" "),t("li",[t("strong",[e._v("Change this element to next word form")]),e._v(": doesn’t use tags for selecting word forms, but simply iterates through the list of word forms defined within this element. "),t("em",[e._v("Example usage:")]),e._v(" word forms contain a list of names, clicking on the element several times allows to select one of the names.")]),e._v(" "),t("li",[t("strong",[e._v("Reset currently displayed word forms")]),e._v(": resets the word forms, clears the tags currently stored within the internal list. This is done automatically each time an element is selected which doesn’t include any "),t("code",[e._v("change word form")]),e._v(" action.")])]),e._v(" "),t("p",[e._v("Figure 2.3 shows an additional option "),t("code",[e._v("Toggle tags on selecting it multiple times")]),e._v(". If this option is activated, selecting this element several times in a row, toggles the tags of this action in the internal list. So in example 1 (see above) selecting the element “Past” multiple times would add and remove the tag "),t("code",[e._v("PAST")]),e._v(" from the internal list, causing to toggle between the words "),t("code",[e._v("are")]),e._v(" and "),t("code",[e._v("were")]),e._v(".")]),e._v(" "),t("p",[e._v("The action type "),t("code",[e._v("change this element to next word form")]),e._v(" also has an option "),t("code",[e._v("secondary action type")]),e._v(". If selected, the tags of the current word form are used for a secondary action. "),t("em",[e._v("Example usage:")]),e._v(" an element has 2 word forms "),t("code",[e._v("I [1.PERS]")]),e._v(" and "),t("code",[e._v("You [2.PERS]")]),e._v(". Iterating through these values using "),t("code",[e._v("change this element to next word form")]),e._v(" with "),t("code",[e._v("secondary action type")]),e._v(" = "),t("code",[e._v("change word form in grid elements")]),e._v(" will cause changing all other grid elements to "),t("code",[e._v("1.PERS")]),e._v(" after selecting "),t("code",[e._v("I")]),e._v(" and to "),t("code",[e._v("2.PERS")]),e._v(" after selecting "),t("code",[e._v("You")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"example-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-configuration"}},[e._v("#")]),e._v(" Example configuration")]),e._v(" "),t("p",[e._v("A grid configuration including examples for all word form features can be tested here:\n"),t("a",{attrs:{href:"https://grid.asterics.eu/?gridset_filename=grammar-demos.grd.json"}},[e._v("Grid configuration with word form examples")]),e._v(". It contains examples for all different action types of "),t("code",[e._v("change word forms")]),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports},555:function(e,t,o){e.exports=o.p+"assets/img/word-forms-modal.2999b06d.png"},556:function(e,t,o){e.exports=o.p+"assets/img/action-word-forms.189a1c7a.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{1060:function(e,t,o){"use strict";o.r(t);var r=o(2),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"word-forms-in-asterics-grid"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#word-forms-in-asterics-grid"}},[e._v("#")]),e._v(" Word forms in AsTeRICS Grid")]),e._v(" "),t("p",[e._v("For simple communication boards it’s sufficient to use static labels (in different languages) for grid elements. However, for more advanced communicators “word forms” can be used in order to allow grammatically correct communication.")]),e._v(" "),t("h2",{attrs:{id:"general"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[e._v("#")]),e._v(" General")]),e._v(" "),t("p",[e._v("Word forms can be defined for each element in the "),t("RouterLink",{attrs:{to:"/manuals/asterics-grid/03_appearance_layout.html#editing-grid-elements"}},[e._v("dialog for editing grid elements")]),e._v(". The tab "),t("code",[e._v("Word forms")]),e._v(" allows to define and edit word forms (see Fig.1).")],1),e._v(" "),t("p",[t("img",{attrs:{src:o(555),alt:"edit view"}}),e._v(" "),t("em",[e._v("Fig.1: Dialog for defining and editing word forms")])]),e._v(" "),t("p",[e._v("The dialog in Figure 1 shows the following options:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Language")]),e._v(": (optional) language of the new word form")]),e._v(" "),t("li",[t("strong",[e._v("Tags")]),e._v(": (optional) tags assigned to the new word form (e.g. "),t("code",[e._v("1.PERS")]),e._v(" or "),t("code",[e._v("PLURAL")]),e._v(")")]),e._v(" "),t("li",[t("strong",[e._v("Word form")]),e._v(": the value of the new word form")]),e._v(" "),t("li",[t("strong",[e._v("Pronunciation")]),e._v(": (optional) alternative pronunciation for the new word form")]),e._v(" "),t("li",[t("strong",[e._v("Add word form")]),e._v(": adds the newly defined word form to the list")]),e._v(" "),t("li",[t("strong",[e._v("Import/export data to/from all grids")]),e._v(": if activated, word forms are not only imported/exported for the current element, but for all elements within all grids. This options helps to quickly edit all word forms (e.g. managed in an external spreadsheet). Note that data can only be imported to all grids (globally) if the data to import contains the fourth column "),t("code",[e._v("ID")]),e._v(" (see below) and the target elements contain a word form with tag "),t("code",[e._v("BASE")]),e._v(" (which is used for mapping the word forms correctly).")]),e._v(" "),t("li",[t("strong",[e._v("Override existing word forms")]),e._v(": if activated, all existing word forms are overwritten at import. Always activated if importing globally.")]),e._v(" "),t("li",[t("strong",[e._v("Import from clipboard")]),e._v(": imports word forms from the clipboard, copied from an external spreadsheet. The columns that can be imported are: "),t("code",[e._v("WORD FORM")]),e._v(", "),t("code",[e._v("LANG (2 digits)")]),e._v(", "),t("code",[e._v("TAGS (comma separated)")]),e._v(", "),t("code",[e._v("ID")]),e._v(", "),t("code",[e._v("PRONUNCIATION")]),e._v(". The order of columns is important, but not all have to be existing, so it’s also possible to copy only the first ones. The value "),t("code",[e._v("ID")]),e._v(" is only relevant for importing elements to all grids (globally) and it’s automatically generated at exporting from all grids globally.")]),e._v(" "),t("li",[t("strong",[e._v("Copy to clipboard")]),e._v(": copies word forms to the clipboard in a format that can be pasted to a spreadsheet.")]),e._v(" "),t("li",[t("strong",[e._v("Language filter")]),e._v(": dropdown for selecting a language for filtering the list of word forms")]),e._v(" "),t("li",[t("strong",[e._v("Delete all")]),e._v(": deletes all word forms of the current element")]),e._v(" "),t("li",[t("strong",[e._v("Edit button")]),e._v(": enable/disable edit mode for a specific word form in the list")]),e._v(" "),t("li",[t("strong",[e._v("Trash button")]),e._v(": delete a specific word form")]),e._v(" "),t("li",[t("strong",[e._v("Up button")]),e._v(": moves the word form up within the list")]),e._v(" "),t("li",[t("strong",[e._v("Down button")]),e._v(": moves the word form down within the list")])]),e._v(" "),t("h2",{attrs:{id:"word-form-actions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#word-form-actions"}},[e._v("#")]),e._v(" Word form actions")]),e._v(" "),t("p",[e._v("Once word forms are defined for different elements, they can be used and selected using the action type "),t("code",[e._v("change word forms")]),e._v(" in tab "),t("code",[e._v("Actions")]),e._v(" of the modal for editing a grid element (see Fig. 1). Figure 2 shows the possibilities for configuring this action.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(556),alt:"edit view"}}),e._v(" "),t("em",[e._v("Fig.2: Configuring an action of type “Change word forms”.")])]),e._v(" "),t("h3",{attrs:{id:"general-function"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-function"}},[e._v("#")]),e._v(" General function")]),e._v(" "),t("p",[e._v("In general most action types for "),t("code",[e._v("change word forms")]),e._v(" allow it to define tags (Figure 2.2) which are added to an internal (hidden) list of current tags, if the action is performed.")]),e._v(" "),t("p",[t("strong",[e._v("Example 1")]),e._v(": for example there could be the following elements within a grid:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Element “You”")]),e._v(": has action "),t("code",[e._v("change word forms")]),e._v(" with tag "),t("code",[e._v("2.PERS")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Element “Past”")]),e._v(": has action "),t("code",[e._v("change word forms")]),e._v(" with tag "),t("code",[e._v("PAST")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Element “to be”")]),e._v(": has defined various word forms with tags like "),t("code",[e._v("am [1.PERS, PRESENT]")]),e._v(", "),t("code",[e._v("are [2.PERS, PRESENT]")]),e._v(", "),t("code",[e._v("were [2.PERS, PAST]")]),e._v(".")])]),e._v(" "),t("p",[e._v("Now using these elements would work as follows:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Select element “You”")]),e._v(": tag "),t("code",[e._v("2.PERS")]),e._v(" is added to internal list, word forms are changed in order to match this tag -> element “to be” is changed to "),t("code",[e._v("are")]),e._v(" because it’s the first word form including the tag "),t("code",[e._v("2.PERS")])]),e._v(" "),t("li",[t("strong",[e._v("Select element “Past”")]),e._v(": tag "),t("code",[e._v("PAST")]),e._v(" is added to internal list, which now includes "),t("code",[e._v("2.PERS, PAST")]),e._v(". Word forms are changed to match these tags -> element “to be” is changed to "),t("code",[e._v("were")]),e._v(" because it’s the first word form including the tags "),t("code",[e._v("2.PERS")]),e._v(" and "),t("code",[e._v("PAST")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"action-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#action-types"}},[e._v("#")]),e._v(" Action types")]),e._v(" "),t("p",[e._v("These are the action types for "),t("code",[e._v("change word forms")]),e._v(" (Fig. 2.1):")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Change word form in grid elements")]),e._v(": changes the labels of grid elements to the word form that best matches the current internal list of tags.")]),e._v(" "),t("li",[t("strong",[e._v("Change word form in collection element")]),e._v(": changes the last element in the collection element to the word form that best matches the current internal list of tags.")]),e._v(" "),t("li",[t("strong",[e._v("Change word form everywhere")]),e._v(": changes word forms both within grid elements and within the last word of the collect element.")]),e._v(" "),t("li",[t("strong",[e._v("Change this element to next word form")]),e._v(": doesn’t use tags for selecting word forms, but simply iterates through the list of word forms defined within this element. "),t("em",[e._v("Example usage:")]),e._v(" word forms contain a list of names, clicking on the element several times allows to select one of the names.")]),e._v(" "),t("li",[t("strong",[e._v("Reset currently displayed word forms")]),e._v(": resets the word forms, clears the tags currently stored within the internal list. This is done automatically each time an element is selected which doesn’t include any "),t("code",[e._v("change word form")]),e._v(" action.")])]),e._v(" "),t("p",[e._v("Figure 2.3 shows an additional option "),t("code",[e._v("Toggle tags on selecting it multiple times")]),e._v(". If this option is activated, selecting this element several times in a row, toggles the tags of this action in the internal list. So in example 1 (see above) selecting the element “Past” multiple times would add and remove the tag "),t("code",[e._v("PAST")]),e._v(" from the internal list, causing to toggle between the words "),t("code",[e._v("are")]),e._v(" and "),t("code",[e._v("were")]),e._v(".")]),e._v(" "),t("p",[e._v("The action type "),t("code",[e._v("change this element to next word form")]),e._v(" also has an option "),t("code",[e._v("secondary action type")]),e._v(". If selected, the tags of the current word form are used for a secondary action. "),t("em",[e._v("Example usage:")]),e._v(" an element has 2 word forms "),t("code",[e._v("I [1.PERS]")]),e._v(" and "),t("code",[e._v("You [2.PERS]")]),e._v(". Iterating through these values using "),t("code",[e._v("change this element to next word form")]),e._v(" with "),t("code",[e._v("secondary action type")]),e._v(" = "),t("code",[e._v("change word form in grid elements")]),e._v(" will cause changing all other grid elements to "),t("code",[e._v("1.PERS")]),e._v(" after selecting "),t("code",[e._v("I")]),e._v(" and to "),t("code",[e._v("2.PERS")]),e._v(" after selecting "),t("code",[e._v("You")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"example-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example-configuration"}},[e._v("#")]),e._v(" Example configuration")]),e._v(" "),t("p",[e._v("A grid configuration including examples for all word form features can be tested here:\n"),t("a",{attrs:{href:"https://grid.asterics.eu/?gridset_filename=grammar-demos.grd.json"}},[e._v("Grid configuration with word form examples")]),e._v(". It contains examples for all different action types of "),t("code",[e._v("change word forms")]),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports},555:function(e,t,o){e.exports=o.p+"assets/img/word-forms-modal.2999b06d.png"},556:function(e,t,o){e.exports=o.p+"assets/img/action-word-forms.189a1c7a.png"}}]); \ No newline at end of file diff --git a/assets/js/65.121ec1dc.js b/assets/js/65.2dc40b00.js similarity index 96% rename from assets/js/65.121ec1dc.js rename to assets/js/65.2dc40b00.js index 7b4b870f25..dc3b858d19 100644 --- a/assets/js/65.121ec1dc.js +++ b/assets/js/65.2dc40b00.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{1067:function(t,e,n){"use strict";n.r(e);var o=n(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"analogout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#analogout"}},[t._v("#")]),t._v(" AnalogOut")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Generic Control Output)")]),t._v(" "),e("p",[t._v("This plugin communicates with the DAC CIM and operates the analog outputs of the module. The plugin provides four input ports which correspond to the four DAC outputs of the CIM.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(610),alt:"Screenshot: AnalogOut plugin",title:"Screenshot: AnalogOut plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This software component requires an DAC CIM (CIM ID: 0x0401) connected to an USB port.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(611),alt:"ADC/DAC CIM",title:"ADC/DAC CIM"}})]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 to out4 [integer]:")]),t._v(" these input ports correspond to the DAC output of the same number on the CIM.\nThe input is an integer and has a valid range between 0 and 240.\nThe values represent the output voltage in 100mv steps, e.g. a value of 10 represents 1.0V, 143 represents 14.3V.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used.\nThe module flashes a LED for identification when the ID is selected.")])])])}),[],!1,null,null,null);e.default=s.exports},610:function(t,e,n){t.exports=n.p+"assets/img/analogout.502d9254.jpg"},611:function(t,e,n){t.exports=n.p+"assets/img/analogout_cim.c0b8e23d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{1066:function(t,e,n){"use strict";n.r(e);var o=n(2),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"analogout"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#analogout"}},[t._v("#")]),t._v(" AnalogOut")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Generic Control Output)")]),t._v(" "),e("p",[t._v("This plugin communicates with the DAC CIM and operates the analog outputs of the module. The plugin provides four input ports which correspond to the four DAC outputs of the CIM.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(610),alt:"Screenshot: AnalogOut plugin",title:"Screenshot: AnalogOut plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This software component requires an DAC CIM (CIM ID: 0x0401) connected to an USB port.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(611),alt:"ADC/DAC CIM",title:"ADC/DAC CIM"}})]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("out1 to out4 [integer]:")]),t._v(" these input ports correspond to the DAC output of the same number on the CIM.\nThe input is an integer and has a valid range between 0 and 240.\nThe values represent the output voltage in 100mv steps, e.g. a value of 10 represents 1.0V, 143 represents 14.3V.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used.\nThe module flashes a LED for identification when the ID is selected.")])])])}),[],!1,null,null,null);e.default=s.exports},610:function(t,e,n){t.exports=n.p+"assets/img/analogout.502d9254.jpg"},611:function(t,e,n){t.exports=n.p+"assets/img/analogout_cim.c0b8e23d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/66.d0680b67.js b/assets/js/66.0f82d189.js similarity index 98% rename from assets/js/66.d0680b67.js rename to assets/js/66.0f82d189.js index ae77796f76..14eb1c7799 100644 --- a/assets/js/66.d0680b67.js +++ b/assets/js/66.0f82d189.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{1071:function(e,t,A){"use strict";A.r(t);var o=A(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"angularcursorcontrol"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#angularcursorcontrol"}},[e._v("#")]),e._v(" AngularCursorControl")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The AngularCursorControl component allows mouse cursor positioning by software emulation with a limited number of input control channels. An arrow indicator is displayed on the screen next to the mouse cursor. This arrow can be rotated 360 degrees using the angle input port.")]),e._v(" "),t("p",[e._v("If values are received at the move input port, the mouse cursor is moved in the direction of the arrow. Using other components, a stepwise control of angle and movement can be achieved, allowing full control of the cursor position. After a certain time of inactivity (no values received at the input ports), a click event can be created for generating different mouse clicks e.g. via a mouse element.")]),e._v(" "),t("p",[t("img",{attrs:{src:A(615),alt:"Screenshot: AngularCursorControl plugin",title:"Screenshot: AngularCursorControl plugin"}})]),e._v(" "),t("p",[t("img",{attrs:{src:A(616),alt:"Screenshot: AngularCursorControl arrow indicator",title:"Screenshot: AngularCursorControl arrow indicator"}})]),e._v(" "),t("p",[t("strong",[e._v("Please Note:")]),e._v(" The mouse emulation on "),t("strong",[e._v("Windows 7/10")]),e._v(" does not always work as expected due to User Account Control (UAC) settings. Especially when you want to use the Windows 7 On-Screen-Keyboard dragging the keyboard does not work. To troubleshoot "),t("a",{attrs:{href:"http://windows.microsoft.com/en-au/windows/turn-user-account-control-on-off#1TC=windows-7",target:"_blank",rel:"noopener noreferrer"}},[e._v("turn off the User Account Control (UAC)"),t("OutboundLink")],1),e._v(" - change the level to “Never notify”")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("angle [double]:")]),e._v(" The angle (angular changes) of the mouse cursor movement (in degrees). Indicated by arrow icon next to mouse cursor")]),e._v(" "),t("li",[t("strong",[e._v("move [double]:")]),e._v(" The mouse cursor movement (in direction of current angle). Negative values allow backward movement.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outX [double]:")]),e._v(" the current absolute x-value of the center of the arrow indicator. Can be used to control the mouse cursor via the mouse plugin.")]),e._v(" "),t("li",[t("strong",[e._v("outY [double]:")]),e._v(" the current absolute y-value of the center of the arrow indicator. Can be used to control the mouse cursor via the mouse plugin.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enablePlugin:")]),e._v(" Enables all functionality of this plugin.")]),e._v(" "),t("li",[t("strong",[e._v("disablePlugin:")]),e._v(" Disables all functionality of this plugin.")]),e._v(" "),t("li",[t("strong",[e._v("startMoveForward:")]),e._v(" starts automatic movement forward in direction of the arrow indicator, accelerated by propery acceleration.")]),e._v(" "),t("li",[t("strong",[e._v("startMoveBackward:")]),e._v(" starts automatic movement backward in opposite direction of the arrow indicator, accelerated by propery acceleration.")]),e._v(" "),t("li",[t("strong",[e._v("startAngleLeft:")]),e._v(" starts automatic angle rotation to the left (counterclockwise), accelerated by property accelerationAngle.")]),e._v(" "),t("li",[t("strong",[e._v("startAngleRight:")]),e._v(" starts automatic angle rotation to the right (clockwise), accelerated by property accelerationAngle.")]),e._v(" "),t("li",[t("strong",[e._v("stopMoveLeft:")]),e._v(" stops automatic movement to the left.")]),e._v(" "),t("li",[t("strong",[e._v("stopMoveForward:")]),e._v(" stops automatic movement forward.")]),e._v(" "),t("li",[t("strong",[e._v("stopMoveBackward:")]),e._v(" stops automatic movement forward.")]),e._v(" "),t("li",[t("strong",[e._v("stopAngleLeft:")]),e._v(" stops automatic angle rotation to the left (counterclockwise).")]),e._v(" "),t("li",[t("strong",[e._v("stopAngleRight:")]),e._v(" stops automatic angle rotation to the right (clockwise).")]),e._v(" "),t("li",[t("strong",[e._v("stopMove:")]),e._v(" stops all automatic movement.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("clickEvent:")]),e._v(" This event is fired after an adjustable time of inactivity (property clickEventTime).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" If false (default is true), all functionality of this plugin is disabled.")]),e._v(" "),t("li",[t("strong",[e._v("absoluteAngle [boolean]:")]),e._v(" If this property value is set to false (default), incoming values at the angle input port are interpreted as relative movement information (changes of the angle in degrees). If the property value is set to true, the angle input values are interpreted as absolute values (in degrees).")]),e._v(" "),t("li",[t("strong",[e._v("clickEventTime [integer]:")]),e._v(" The time of inactivity (in milliseconds) after which the clickEvent will be created (use zero to deactivate the clickEvent).")]),e._v(" "),t("li",[t("strong",[e._v("arrowWidth [integer]:")]),e._v(" The width of the arrow indicator icon")]),e._v(" "),t("li",[t("strong",[e._v("arrowLength [integer]:")]),e._v(" The length of the arrow indicator icon")]),e._v(" "),t("li",[t("strong",[e._v("acceleration [integer]:")]),e._v(" The cursor movement acceleration in px/second per second (0 to deactive acceleration). This property only applies to automatic movement generated by events, not to movement generated by input port ‘move’.")]),e._v(" "),t("li",[t("strong",[e._v("baseVelocity [integer]:")]),e._v(" The base movement velocity in px per second, starting velocity of automatic movements forward/backward.")]),e._v(" "),t("li",[t("strong",[e._v("maxVelocity [integer]:")]),e._v(" The maximum mouse movement velocity in px per second. This property only applies to automatic movement generated by events, not to movement generated by input port ‘move’.")]),e._v(" "),t("li",[t("strong",[e._v("accelerationAngle [integer]:")]),e._v(" Angle movement acceleration in degrees/second per second (0 to deactive acceleration). This property only applies to automatic movement generated by events, not to movement generated by input port ‘angle’.")]),e._v(" "),t("li",[t("strong",[e._v("baseVelocityAngle [integer]:")]),e._v(" The base angle movement velocity in degrees per second, starting velocity of automatic movements of angle left/right.")]),e._v(" "),t("li",[t("strong",[e._v("maxVelocityAngle [integer]:")]),e._v(" The maximum angle movement velocity in degrees per second. This property only applies to automatic movement generated by events, not to movement generated by input port ‘angle’.")])])])}),[],!1,null,null,null);t.default=r.exports},615:function(e,t,A){e.exports=A.p+"assets/img/angularcursorcontrol.ed1d7c12.jpg"},616:function(e,t){e.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{1071:function(e,t,A){"use strict";A.r(t);var o=A(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"angularcursorcontrol"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#angularcursorcontrol"}},[e._v("#")]),e._v(" AngularCursorControl")]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The AngularCursorControl component allows mouse cursor positioning by software emulation with a limited number of input control channels. An arrow indicator is displayed on the screen next to the mouse cursor. This arrow can be rotated 360 degrees using the angle input port.")]),e._v(" "),t("p",[e._v("If values are received at the move input port, the mouse cursor is moved in the direction of the arrow. Using other components, a stepwise control of angle and movement can be achieved, allowing full control of the cursor position. After a certain time of inactivity (no values received at the input ports), a click event can be created for generating different mouse clicks e.g. via a mouse element.")]),e._v(" "),t("p",[t("img",{attrs:{src:A(616),alt:"Screenshot: AngularCursorControl plugin",title:"Screenshot: AngularCursorControl plugin"}})]),e._v(" "),t("p",[t("img",{attrs:{src:A(617),alt:"Screenshot: AngularCursorControl arrow indicator",title:"Screenshot: AngularCursorControl arrow indicator"}})]),e._v(" "),t("p",[t("strong",[e._v("Please Note:")]),e._v(" The mouse emulation on "),t("strong",[e._v("Windows 7/10")]),e._v(" does not always work as expected due to User Account Control (UAC) settings. Especially when you want to use the Windows 7 On-Screen-Keyboard dragging the keyboard does not work. To troubleshoot "),t("a",{attrs:{href:"http://windows.microsoft.com/en-au/windows/turn-user-account-control-on-off#1TC=windows-7",target:"_blank",rel:"noopener noreferrer"}},[e._v("turn off the User Account Control (UAC)"),t("OutboundLink")],1),e._v(" - change the level to “Never notify”")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("angle [double]:")]),e._v(" The angle (angular changes) of the mouse cursor movement (in degrees). Indicated by arrow icon next to mouse cursor")]),e._v(" "),t("li",[t("strong",[e._v("move [double]:")]),e._v(" The mouse cursor movement (in direction of current angle). Negative values allow backward movement.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("outX [double]:")]),e._v(" the current absolute x-value of the center of the arrow indicator. Can be used to control the mouse cursor via the mouse plugin.")]),e._v(" "),t("li",[t("strong",[e._v("outY [double]:")]),e._v(" the current absolute y-value of the center of the arrow indicator. Can be used to control the mouse cursor via the mouse plugin.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enablePlugin:")]),e._v(" Enables all functionality of this plugin.")]),e._v(" "),t("li",[t("strong",[e._v("disablePlugin:")]),e._v(" Disables all functionality of this plugin.")]),e._v(" "),t("li",[t("strong",[e._v("startMoveForward:")]),e._v(" starts automatic movement forward in direction of the arrow indicator, accelerated by propery acceleration.")]),e._v(" "),t("li",[t("strong",[e._v("startMoveBackward:")]),e._v(" starts automatic movement backward in opposite direction of the arrow indicator, accelerated by propery acceleration.")]),e._v(" "),t("li",[t("strong",[e._v("startAngleLeft:")]),e._v(" starts automatic angle rotation to the left (counterclockwise), accelerated by property accelerationAngle.")]),e._v(" "),t("li",[t("strong",[e._v("startAngleRight:")]),e._v(" starts automatic angle rotation to the right (clockwise), accelerated by property accelerationAngle.")]),e._v(" "),t("li",[t("strong",[e._v("stopMoveLeft:")]),e._v(" stops automatic movement to the left.")]),e._v(" "),t("li",[t("strong",[e._v("stopMoveForward:")]),e._v(" stops automatic movement forward.")]),e._v(" "),t("li",[t("strong",[e._v("stopMoveBackward:")]),e._v(" stops automatic movement forward.")]),e._v(" "),t("li",[t("strong",[e._v("stopAngleLeft:")]),e._v(" stops automatic angle rotation to the left (counterclockwise).")]),e._v(" "),t("li",[t("strong",[e._v("stopAngleRight:")]),e._v(" stops automatic angle rotation to the right (clockwise).")]),e._v(" "),t("li",[t("strong",[e._v("stopMove:")]),e._v(" stops all automatic movement.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("clickEvent:")]),e._v(" This event is fired after an adjustable time of inactivity (property clickEventTime).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" If false (default is true), all functionality of this plugin is disabled.")]),e._v(" "),t("li",[t("strong",[e._v("absoluteAngle [boolean]:")]),e._v(" If this property value is set to false (default), incoming values at the angle input port are interpreted as relative movement information (changes of the angle in degrees). If the property value is set to true, the angle input values are interpreted as absolute values (in degrees).")]),e._v(" "),t("li",[t("strong",[e._v("clickEventTime [integer]:")]),e._v(" The time of inactivity (in milliseconds) after which the clickEvent will be created (use zero to deactivate the clickEvent).")]),e._v(" "),t("li",[t("strong",[e._v("arrowWidth [integer]:")]),e._v(" The width of the arrow indicator icon")]),e._v(" "),t("li",[t("strong",[e._v("arrowLength [integer]:")]),e._v(" The length of the arrow indicator icon")]),e._v(" "),t("li",[t("strong",[e._v("acceleration [integer]:")]),e._v(" The cursor movement acceleration in px/second per second (0 to deactive acceleration). This property only applies to automatic movement generated by events, not to movement generated by input port ‘move’.")]),e._v(" "),t("li",[t("strong",[e._v("baseVelocity [integer]:")]),e._v(" The base movement velocity in px per second, starting velocity of automatic movements forward/backward.")]),e._v(" "),t("li",[t("strong",[e._v("maxVelocity [integer]:")]),e._v(" The maximum mouse movement velocity in px per second. This property only applies to automatic movement generated by events, not to movement generated by input port ‘move’.")]),e._v(" "),t("li",[t("strong",[e._v("accelerationAngle [integer]:")]),e._v(" Angle movement acceleration in degrees/second per second (0 to deactive acceleration). This property only applies to automatic movement generated by events, not to movement generated by input port ‘angle’.")]),e._v(" "),t("li",[t("strong",[e._v("baseVelocityAngle [integer]:")]),e._v(" The base angle movement velocity in degrees per second, starting velocity of automatic movements of angle left/right.")]),e._v(" "),t("li",[t("strong",[e._v("maxVelocityAngle [integer]:")]),e._v(" The maximum angle movement velocity in degrees per second. This property only applies to automatic movement generated by events, not to movement generated by input port ‘angle’.")])])])}),[],!1,null,null,null);t.default=r.exports},616:function(e,t,A){e.exports=A.p+"assets/img/angularcursorcontrol.ed1d7c12.jpg"},617:function(e,t){e.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/67.89bf4ef1.js b/assets/js/67.54c08f24.js similarity index 98% rename from assets/js/67.89bf4ef1.js rename to assets/js/67.54c08f24.js index 7e196c5684..be0e311d61 100644 --- a/assets/js/67.89bf4ef1.js +++ b/assets/js/67.54c08f24.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{1076:function(t,e,o){"use strict";o.r(e);var i=o(2),a=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dotmeter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dotmeter"}},[t._v("#")]),t._v(" DotMeter")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The Dot Meter generates a graphical representation of a 2-dimensional signal (for example x/y-coordinates) using a colored dot.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(621),alt:"Screenshot: DotMeter plugin",title:"Screenshot: DotMeter plugin"}})]),t._v(" "),e("p",[e("img",{attrs:{src:o(622),alt:"Screenshot: DotMeter example",title:"Screenshot: DotMeter example"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("Computer Monitor or LC-Display available for graphics output.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("x [double]:")]),t._v(" The x-input port for the signal to be displayed. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("y [double]:")]),t._v(" The y-input port for the signal to be displayed. "),e("strong",[t._v("This input port supports synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dotOn:")]),t._v(" fill the dot with color.")]),t._v(" "),e("li",[e("strong",[t._v("dotOff:")]),t._v(" show only outline of the dot (can be used to create a led indicator).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("xMin [double]:")]),t._v(" The default x-minimum of the signal range at model start (this value is automatically updated as lower values come in).")]),t._v(" "),e("li",[e("strong",[t._v("xMax [double]:")]),t._v(" The default x-maximum of the signal range at model start (this value is automatically updated as higher values come in).")]),t._v(" "),e("li",[e("strong",[t._v("yMin [double]:")]),t._v(" The default y-minimum of the signal range at model start (this value is automatically updated as lower values come in).")]),t._v(" "),e("li",[e("strong",[t._v("yMax [double]:")]),t._v(" The default y-maximum of the signal range at model start (this value is automatically updated as higher values come in).")]),t._v(" "),e("li",[e("strong",[t._v("mode [integer]:")]),t._v(" Via this property the way how values which exceed the current min/max range of the bar graph component are handled: “clip to min and max” crops incoming values to the min/max range, “autoupdate min and max” scales the bar graph window and updates the min/max values to cover the incoming value.")]),t._v(" "),e("li",[e("strong",[t._v("dotSize [integer]:")]),t._v(" The radius of the dot.")]),t._v(" "),e("li",[e("strong",[t._v("centerLine [boolean]:")]),t._v(" defines if a line to the window center is shown or not.")]),t._v(" "),e("li",[e("strong",[t._v("displayDot [boolean]:")]),t._v(" defines if the dot is filled or not.")]),t._v(" "),e("li",[e("strong",[t._v("displayCaptions [boolean]:")]),t._v(" defines if the value / captions are shown or not.")]),t._v(" "),e("li",[e("strong",[t._v("gridColor [integer]:")]),t._v(" The colour of the graph grid and descriptions.")]),t._v(" "),e("li",[e("strong",[t._v("dotColor [integer]:")]),t._v(" The colour of the dot.")]),t._v(" "),e("li",[e("strong",[t._v("backgroundColour [integer]:")]),t._v(" The colour of the window background.")]),t._v(" "),e("li",[e("strong",[t._v("fontSize [integer]:")]),t._v(" The font size of the display’s caption.")]),t._v(" "),e("li",[e("strong",[t._v("caption [string]:")]),t._v(" The text of the display’s caption.")]),t._v(" "),e("li",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);e.default=a.exports},621:function(t,e,o){t.exports=o.p+"assets/img/dotmeter.f1cc0200.jpg"},622:function(t,e,o){t.exports=o.p+"assets/img/dotmeter_example.6039baa6.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{1075:function(t,e,o){"use strict";o.r(e);var i=o(2),a=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dotmeter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dotmeter"}},[t._v("#")]),t._v(" DotMeter")]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Graphical User Interface)")]),t._v(" "),e("p",[t._v("The Dot Meter generates a graphical representation of a 2-dimensional signal (for example x/y-coordinates) using a colored dot.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(621),alt:"Screenshot: DotMeter plugin",title:"Screenshot: DotMeter plugin"}})]),t._v(" "),e("p",[e("img",{attrs:{src:o(622),alt:"Screenshot: DotMeter example",title:"Screenshot: DotMeter example"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("Computer Monitor or LC-Display available for graphics output.")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("x [double]:")]),t._v(" The x-input port for the signal to be displayed. "),e("strong",[t._v("This input port supports synchronization")])]),t._v(" "),e("li",[e("strong",[t._v("y [double]:")]),t._v(" The y-input port for the signal to be displayed. "),e("strong",[t._v("This input port supports synchronization")])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("dotOn:")]),t._v(" fill the dot with color.")]),t._v(" "),e("li",[e("strong",[t._v("dotOff:")]),t._v(" show only outline of the dot (can be used to create a led indicator).")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("xMin [double]:")]),t._v(" The default x-minimum of the signal range at model start (this value is automatically updated as lower values come in).")]),t._v(" "),e("li",[e("strong",[t._v("xMax [double]:")]),t._v(" The default x-maximum of the signal range at model start (this value is automatically updated as higher values come in).")]),t._v(" "),e("li",[e("strong",[t._v("yMin [double]:")]),t._v(" The default y-minimum of the signal range at model start (this value is automatically updated as lower values come in).")]),t._v(" "),e("li",[e("strong",[t._v("yMax [double]:")]),t._v(" The default y-maximum of the signal range at model start (this value is automatically updated as higher values come in).")]),t._v(" "),e("li",[e("strong",[t._v("mode [integer]:")]),t._v(" Via this property the way how values which exceed the current min/max range of the bar graph component are handled: “clip to min and max” crops incoming values to the min/max range, “autoupdate min and max” scales the bar graph window and updates the min/max values to cover the incoming value.")]),t._v(" "),e("li",[e("strong",[t._v("dotSize [integer]:")]),t._v(" The radius of the dot.")]),t._v(" "),e("li",[e("strong",[t._v("centerLine [boolean]:")]),t._v(" defines if a line to the window center is shown or not.")]),t._v(" "),e("li",[e("strong",[t._v("displayDot [boolean]:")]),t._v(" defines if the dot is filled or not.")]),t._v(" "),e("li",[e("strong",[t._v("displayCaptions [boolean]:")]),t._v(" defines if the value / captions are shown or not.")]),t._v(" "),e("li",[e("strong",[t._v("gridColor [integer]:")]),t._v(" The colour of the graph grid and descriptions.")]),t._v(" "),e("li",[e("strong",[t._v("dotColor [integer]:")]),t._v(" The colour of the dot.")]),t._v(" "),e("li",[e("strong",[t._v("backgroundColour [integer]:")]),t._v(" The colour of the window background.")]),t._v(" "),e("li",[e("strong",[t._v("fontSize [integer]:")]),t._v(" The font size of the display’s caption.")]),t._v(" "),e("li",[e("strong",[t._v("caption [string]:")]),t._v(" The text of the display’s caption.")]),t._v(" "),e("li",[e("strong",[t._v("displayGUI [boolean]:")]),t._v(" if selected, the GUI of this component will be displayed - if not, the GUI will be hidden and disabled.")])])])}),[],!1,null,null,null);e.default=a.exports},621:function(t,e,o){t.exports=o.p+"assets/img/dotmeter.f1cc0200.jpg"},622:function(t,e,o){t.exports=o.p+"assets/img/dotmeter_example.6039baa6.jpg"}}]); \ No newline at end of file diff --git a/assets/js/68.652146e4.js b/assets/js/68.c70eeb8b.js similarity index 94% rename from assets/js/68.652146e4.js rename to assets/js/68.c70eeb8b.js index b8379cdb32..f755ff5a2e 100644 --- a/assets/js/68.652146e4.js +++ b/assets/js/68.c70eeb8b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{1083:function(e,t,n){"use strict";n.r(t);var r=n(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"flickeringlightstimulator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#flickeringlightstimulator"}},[e._v("#")]),e._v(" FlickeringLightStimulator")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-brain-computer-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-brain-computer-interface"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Brain Computer Interface)")]),e._v(" "),t("p",[e._v("This plug-in allows the user to interact with the Flickering Light Stimulator panels by configuring their properties (stimulation frequency, duty cycle, intensity and colour) and start/stop the light stimulation. The stimulation frequency of the panels can be modified while the stimulation is running.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(630),alt:"Screenshot: Flickering Light Stimulator plugin",title:"Screenshot: Flickering Light Stimulator plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires at least one of the four Flickering Light Stimulator panels to be connected to any available COM port. The COM port number to which the panels are connected must be configured in the properties before starting the plugin.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(631),alt:"Screenshot: Flickering Panels setup",title:"Screenshot: Flickering Panels setup"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("panel1 to panel4 [integer]:")]),e._v(" input ports for the stimulation frequency of each panel in Hertz. Their value ranges from 1 to 50 Hertz.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startStim:")]),e._v(" starts the stimulation of the flickering light panels when receiving an event.")]),e._v(" "),t("li",[t("strong",[e._v("stopStim:")]),e._v(" stops the stimulation of the flickering light panels when receiving an event.")]),e._v(" "),t("li",[t("strong",[e._v("updateConfiguration:")]),e._v(" updates the configuration of the panels (stimulation frequency, duty cycle, intensity and colour) when receiving an event.")]),e._v(" "),t("li",[t("strong",[e._v("startStimPeriod:")]),e._v(" starts a stimulation of N miliseconds.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stimPeriodFinished:")]),e._v(" an event is emitted through this port when the stimulation period of N miliseconds has finished.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("frequencyPanel1 [integer]:")]),e._v(" stimulation frequency of panel 1 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("frequencyPanel2 [integer]:")]),e._v(" stimulation frequency of panel 2 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("frequencyPanel3 [integer]:")]),e._v(" stimulation frequency of panel 3 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("frequencyPanel4 [integer]:")]),e._v(" stimulation frequency of panel 4 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel1 [integer]:")]),e._v(" duty cycle of panel 1. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel2 [integer]:")]),e._v(" duty cycle of panel 2. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel3 [integer]:")]),e._v(" duty cycle of panel 3. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel4 [integer]:")]),e._v(" duty cycle of panel 4. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel1 [integer]:")]),e._v(" light intensity of panel 1. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel2 [integer]:")]),e._v(" light intensity of panel 2. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel3 [integer]:")]),e._v(" light intensity of panel 3. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel4 [integer]:")]),e._v(" light intensity of panel 4. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("red [boolean]:")]),e._v(" presence of red colour in all the panels.")]),e._v(" "),t("li",[t("strong",[e._v("blue [boolean]:")]),e._v(" presence of blue colour in all the panels.")]),e._v(" "),t("li",[t("strong",[e._v("green [boolean]:")]),e._v(" presence of green colour in all the panels.")]),e._v(" "),t("li",[t("strong",[e._v("comPort [string]:")]),e._v(" COM port number to which the panels are connected. The string must be expressed as “COMx”, where x is the COM port number.")]),e._v(" "),t("li",[t("strong",[e._v("N [integer]:")]),e._v(" duration in miliseconds of the stimulation started by the startStimPeriod event.")])])])}),[],!1,null,null,null);t.default=i.exports},630:function(e,t,n){e.exports=n.p+"assets/img/flickeringlightstimulator.f486f940.jpg"},631:function(e,t,n){e.exports=n.p+"assets/img/flickeringpanels.8094335e.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{1085:function(e,t,n){"use strict";n.r(t);var r=n(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"flickeringlightstimulator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#flickeringlightstimulator"}},[e._v("#")]),e._v(" FlickeringLightStimulator")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-brain-computer-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-brain-computer-interface"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Brain Computer Interface)")]),e._v(" "),t("p",[e._v("This plug-in allows the user to interact with the Flickering Light Stimulator panels by configuring their properties (stimulation frequency, duty cycle, intensity and colour) and start/stop the light stimulation. The stimulation frequency of the panels can be modified while the stimulation is running.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(633),alt:"Screenshot: Flickering Light Stimulator plugin",title:"Screenshot: Flickering Light Stimulator plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires at least one of the four Flickering Light Stimulator panels to be connected to any available COM port. The COM port number to which the panels are connected must be configured in the properties before starting the plugin.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(634),alt:"Screenshot: Flickering Panels setup",title:"Screenshot: Flickering Panels setup"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("panel1 to panel4 [integer]:")]),e._v(" input ports for the stimulation frequency of each panel in Hertz. Their value ranges from 1 to 50 Hertz.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startStim:")]),e._v(" starts the stimulation of the flickering light panels when receiving an event.")]),e._v(" "),t("li",[t("strong",[e._v("stopStim:")]),e._v(" stops the stimulation of the flickering light panels when receiving an event.")]),e._v(" "),t("li",[t("strong",[e._v("updateConfiguration:")]),e._v(" updates the configuration of the panels (stimulation frequency, duty cycle, intensity and colour) when receiving an event.")]),e._v(" "),t("li",[t("strong",[e._v("startStimPeriod:")]),e._v(" starts a stimulation of N miliseconds.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("stimPeriodFinished:")]),e._v(" an event is emitted through this port when the stimulation period of N miliseconds has finished.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("frequencyPanel1 [integer]:")]),e._v(" stimulation frequency of panel 1 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("frequencyPanel2 [integer]:")]),e._v(" stimulation frequency of panel 2 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("frequencyPanel3 [integer]:")]),e._v(" stimulation frequency of panel 3 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("frequencyPanel4 [integer]:")]),e._v(" stimulation frequency of panel 4 in Hertz. This property ranges from 1 to 50 Hertz.")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel1 [integer]:")]),e._v(" duty cycle of panel 1. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel2 [integer]:")]),e._v(" duty cycle of panel 2. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel3 [integer]:")]),e._v(" duty cycle of panel 3. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("dcPanel4 [integer]:")]),e._v(" duty cycle of panel 4. This property ranges from 1 (short cycle) to 100 (large cycle).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel1 [integer]:")]),e._v(" light intensity of panel 1. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel2 [integer]:")]),e._v(" light intensity of panel 2. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel3 [integer]:")]),e._v(" light intensity of panel 3. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("intPanel4 [integer]:")]),e._v(" light intensity of panel 4. This property ranges from 1 (low intensity) to 100 (high intensity).")]),e._v(" "),t("li",[t("strong",[e._v("red [boolean]:")]),e._v(" presence of red colour in all the panels.")]),e._v(" "),t("li",[t("strong",[e._v("blue [boolean]:")]),e._v(" presence of blue colour in all the panels.")]),e._v(" "),t("li",[t("strong",[e._v("green [boolean]:")]),e._v(" presence of green colour in all the panels.")]),e._v(" "),t("li",[t("strong",[e._v("comPort [string]:")]),e._v(" COM port number to which the panels are connected. The string must be expressed as “COMx”, where x is the COM port number.")]),e._v(" "),t("li",[t("strong",[e._v("N [integer]:")]),e._v(" duration in miliseconds of the stimulation started by the startStimPeriod event.")])])])}),[],!1,null,null,null);t.default=i.exports},633:function(e,t,n){e.exports=n.p+"assets/img/flickeringlightstimulator.f486f940.jpg"},634:function(e,t,n){e.exports=n.p+"assets/img/flickeringpanels.8094335e.jpg"}}]); \ No newline at end of file diff --git a/assets/js/69.d440a280.js b/assets/js/69.3fbb7cfb.js similarity index 99% rename from assets/js/69.d440a280.js rename to assets/js/69.3fbb7cfb.js index 255917cdf5..e82d1da570 100644 --- a/assets/js/69.d440a280.js +++ b/assets/js/69.3fbb7cfb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{1088:function(e,t,o){"use strict";o.r(t);var r=o(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"irtrans"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#irtrans"}},[e._v("#")]),e._v(" IRTrans")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("This component sends transmission commands to an infrared-transmitter. The different commands can be selected by the different events. The commands must be programmed into the IR-transmitter, before this component can be used. Furthermore, commands can also be sent to this component’s input port (“action”).")]),e._v(" "),t("h3",{attrs:{id:"ir-command-by-action-string"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-command-by-action-string"}},[e._v("#")]),e._v(" IR command by action string")]),e._v(" "),t("p",[e._v("You can send an IR command by sending an "),t("em",[e._v("action string")]),e._v(" to the input port "),t("code",[e._v("action")]),e._v(". The string must start with "),t("code",[e._v("@IRTRANS:")]),e._v(" and contain the remote control name and the command name. For example, if the IR-Transmitter is programmed with a database called "),t("code",[e._v("LG-TV")]),e._v(" and the desired command is called "),t("code",[e._v("TvOn")]),e._v(", the action string to play the IR-code is:")]),e._v(" "),t("p",[t("code",[e._v("@IRTRANS: snd LG-TV,TvOn")]),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"send-hex-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#send-hex-data"}},[e._v("#")]),e._v(" Send hex data")]),e._v(" "),t("p",[e._v("HEX data of a stored command can be retrieved within the IrServer software at the menu entry "),t("code",[e._v("IR Hexcode abrufen")]),e._v(". This data then can be sent directly to the "),t("code",[e._v("action")]),e._v(" port with the advantage that it works independently of the current IrServer database on the current device.")]),e._v(" "),t("p",[t("strong",[e._v("Important:")]),e._v(" if the HEX data is something like "),t("code",[e._v("4E0100000000222...")]),e._v(" the correct command to send to the "),t("code",[e._v("action")]),e._v(" port would be "),t("code",[e._v("@IRTRANS: sndhex H4E0100000000222...")]),e._v(" (note the added "),t("code",[e._v("H")]),e._v(" at the beginning of the code).")]),e._v(" "),t("h3",{attrs:{id:"ir-command-by-event"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-command-by-event"}},[e._v("#")]),e._v(" IR command by event")]),e._v(" "),t("p",[e._v("You can send an IR command using the event listener port of the plugin. Use the property "),t("code",[e._v("prestring")]),e._v(" to set the name of the remote control device containing the IR commands you need. Then you can use the properties "),t("code",[e._v("send<1-n>")]),e._v(" to set the name of the IR command.")]),e._v(" "),t("h3",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("ul",[t("li",[e._v("prestring: "),t("code",[e._v("snd LG-TV,")])]),e._v(" "),t("li",[e._v("send1: "),t("code",[e._v("TvOn")])])]),e._v(" "),t("p",[t("img",{attrs:{src:o(636),alt:"Screenshot: IRTrans plugin",title:"Screenshot: IRTrans plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"http://www.irtrans.de",target:"_blank",rel:"noopener noreferrer"}},[e._v("IRTrans module"),t("OutboundLink")],1),e._v(" (USB, LAN or WiFi version).")]),e._v(" "),t("li",[e._v("Install and start IRTrans SW (USB model only):\n"),t("ul",[t("li",[t("a",{attrs:{href:"http://www.irtrans.de/de/download/",target:"_blank",rel:"noopener noreferrer"}},[e._v("IRTrans SW"),t("OutboundLink")],1),e._v(": Install the respective SW for your platform.")]),e._v(" "),t("li",[e._v("Start IRTrans Server")])])]),e._v(" "),t("li",[e._v("Train the IRTrans database with IR commands, using the IRTrans Server SW or the Web-Interface of the Wifi-based IRTrans module.")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(637),alt:"IRTrans universal IR remote module",title:"IRTrans universal IR remote module"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action[string]:")]),e._v(" A string, which will be sent to the IRTrans module, must start with “@IRTRANS”."),t("br"),e._v("\nFor possible commands see "),t("a",{attrs:{href:"http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Interface_EN.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("official IrTrans protocol guide"),t("OutboundLink")],1),e._v("."),t("br"),e._v(" "),t("strong",[e._v("Note:")]),e._v(" the action string sent to the input port must not contain the prefix “A” like described in the protocol guide. This is because of compatibility reasons with the old UDP protocol.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output[string]:")]),e._v(" The IRTrans can also receive IR-Commands. With the IRTrans Configuration tool string commands can be defined for every received IR-Command. Received IR-commands are sent to this port, e.g. "),t("code",[e._v("\\*\\*00028 RCV\\_COM test,on,0,0")]),e._v(" (see protocol guide for format details)")]),e._v(" "),t("li",[t("strong",[e._v("outputResult[string]:")]),e._v(" Receives the result of an action string that was previously sent to action-port.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendprop1:")]),e._v(" sends the command, stored in the property send1 to the IRTrans (including the prestring).")]),e._v(" "),t("li",[e._v("…")]),e._v(" "),t("li",[t("strong",[e._v("sendprop24:")]),e._v(" sends the command, stored in the property send24 to the IRTrans (including the prestring).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("hostname[string]:")]),e._v(" The hostname/IP-address of the IRTrans. Use "),t("code",[e._v("localhost")]),e._v(" if you have the IRTrans USB Version (IRTrans server tool must be running), or use the IP address of your IRTrans LAN or WiFi module.")]),e._v(" "),t("li",[t("strong",[e._v("port[string]:")]),e._v(" The port of the IRTrans (default is 21000).")]),e._v(" "),t("li",[t("strong",[e._v("prestring[string]:")]),e._v(" A string, being added before the strings of properties "),t("code",[e._v("send1")]),e._v(" to "),t("code",[e._v("send24")]),e._v(". Typically "),t("code",[e._v("snd ,")]),e._v(" should be used.")]),e._v(" "),t("li",[t("strong",[e._v("Send1[string]:")]),e._v(" This string (including the prestring) will be sent, if the event EventProp1 will be triggered.")]),e._v(" "),t("li",[e._v("…")]),e._v(" "),t("li",[t("strong",[e._v("Send24[string]:")]),e._v(" This string (including the prestring) will be sent, if the event EventProp24 will be triggered.")])]),e._v(" "),t("p",[t("em",[e._v("Comment:")]),e._v(" This component is exactly tailored to the IRTrans module and needs expert knowledge to be configured.")]),e._v(" "),t("h2",{attrs:{id:"references"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[e._v("#")]),e._v(" References")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"http://www.irtrans.de",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.irtrans.de"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Interface_EN.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Interface_EN.pdf"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports},636:function(e,t,o){e.exports=o.p+"assets/img/irtrans.7b56a6e8.jpg"},637:function(e,t){e.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{1087:function(e,t,o){"use strict";o.r(t);var r=o(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"irtrans"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#irtrans"}},[e._v("#")]),e._v(" IRTrans")]),e._v(" "),t("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[e._v("#")]),e._v(" Component Type: Actuator (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("This component sends transmission commands to an infrared-transmitter. The different commands can be selected by the different events. The commands must be programmed into the IR-transmitter, before this component can be used. Furthermore, commands can also be sent to this component’s input port (“action”).")]),e._v(" "),t("h3",{attrs:{id:"ir-command-by-action-string"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-command-by-action-string"}},[e._v("#")]),e._v(" IR command by action string")]),e._v(" "),t("p",[e._v("You can send an IR command by sending an "),t("em",[e._v("action string")]),e._v(" to the input port "),t("code",[e._v("action")]),e._v(". The string must start with "),t("code",[e._v("@IRTRANS:")]),e._v(" and contain the remote control name and the command name. For example, if the IR-Transmitter is programmed with a database called "),t("code",[e._v("LG-TV")]),e._v(" and the desired command is called "),t("code",[e._v("TvOn")]),e._v(", the action string to play the IR-code is:")]),e._v(" "),t("p",[t("code",[e._v("@IRTRANS: snd LG-TV,TvOn")]),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"send-hex-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#send-hex-data"}},[e._v("#")]),e._v(" Send hex data")]),e._v(" "),t("p",[e._v("HEX data of a stored command can be retrieved within the IrServer software at the menu entry "),t("code",[e._v("IR Hexcode abrufen")]),e._v(". This data then can be sent directly to the "),t("code",[e._v("action")]),e._v(" port with the advantage that it works independently of the current IrServer database on the current device.")]),e._v(" "),t("p",[t("strong",[e._v("Important:")]),e._v(" if the HEX data is something like "),t("code",[e._v("4E0100000000222...")]),e._v(" the correct command to send to the "),t("code",[e._v("action")]),e._v(" port would be "),t("code",[e._v("@IRTRANS: sndhex H4E0100000000222...")]),e._v(" (note the added "),t("code",[e._v("H")]),e._v(" at the beginning of the code).")]),e._v(" "),t("h3",{attrs:{id:"ir-command-by-event"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ir-command-by-event"}},[e._v("#")]),e._v(" IR command by event")]),e._v(" "),t("p",[e._v("You can send an IR command using the event listener port of the plugin. Use the property "),t("code",[e._v("prestring")]),e._v(" to set the name of the remote control device containing the IR commands you need. Then you can use the properties "),t("code",[e._v("send<1-n>")]),e._v(" to set the name of the IR command.")]),e._v(" "),t("h3",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("ul",[t("li",[e._v("prestring: "),t("code",[e._v("snd LG-TV,")])]),e._v(" "),t("li",[e._v("send1: "),t("code",[e._v("TvOn")])])]),e._v(" "),t("p",[t("img",{attrs:{src:o(636),alt:"Screenshot: IRTrans plugin",title:"Screenshot: IRTrans plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"http://www.irtrans.de",target:"_blank",rel:"noopener noreferrer"}},[e._v("IRTrans module"),t("OutboundLink")],1),e._v(" (USB, LAN or WiFi version).")]),e._v(" "),t("li",[e._v("Install and start IRTrans SW (USB model only):\n"),t("ul",[t("li",[t("a",{attrs:{href:"http://www.irtrans.de/de/download/",target:"_blank",rel:"noopener noreferrer"}},[e._v("IRTrans SW"),t("OutboundLink")],1),e._v(": Install the respective SW for your platform.")]),e._v(" "),t("li",[e._v("Start IRTrans Server")])])]),e._v(" "),t("li",[e._v("Train the IRTrans database with IR commands, using the IRTrans Server SW or the Web-Interface of the Wifi-based IRTrans module.")])]),e._v(" "),t("p",[t("img",{attrs:{src:o(637),alt:"IRTrans universal IR remote module",title:"IRTrans universal IR remote module"}})]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("action[string]:")]),e._v(" A string, which will be sent to the IRTrans module, must start with “@IRTRANS”."),t("br"),e._v("\nFor possible commands see "),t("a",{attrs:{href:"http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Interface_EN.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("official IrTrans protocol guide"),t("OutboundLink")],1),e._v("."),t("br"),e._v(" "),t("strong",[e._v("Note:")]),e._v(" the action string sent to the input port must not contain the prefix “A” like described in the protocol guide. This is because of compatibility reasons with the old UDP protocol.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("output[string]:")]),e._v(" The IRTrans can also receive IR-Commands. With the IRTrans Configuration tool string commands can be defined for every received IR-Command. Received IR-commands are sent to this port, e.g. "),t("code",[e._v("\\*\\*00028 RCV\\_COM test,on,0,0")]),e._v(" (see protocol guide for format details)")]),e._v(" "),t("li",[t("strong",[e._v("outputResult[string]:")]),e._v(" Receives the result of an action string that was previously sent to action-port.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sendprop1:")]),e._v(" sends the command, stored in the property send1 to the IRTrans (including the prestring).")]),e._v(" "),t("li",[e._v("…")]),e._v(" "),t("li",[t("strong",[e._v("sendprop24:")]),e._v(" sends the command, stored in the property send24 to the IRTrans (including the prestring).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("hostname[string]:")]),e._v(" The hostname/IP-address of the IRTrans. Use "),t("code",[e._v("localhost")]),e._v(" if you have the IRTrans USB Version (IRTrans server tool must be running), or use the IP address of your IRTrans LAN or WiFi module.")]),e._v(" "),t("li",[t("strong",[e._v("port[string]:")]),e._v(" The port of the IRTrans (default is 21000).")]),e._v(" "),t("li",[t("strong",[e._v("prestring[string]:")]),e._v(" A string, being added before the strings of properties "),t("code",[e._v("send1")]),e._v(" to "),t("code",[e._v("send24")]),e._v(". Typically "),t("code",[e._v("snd ,")]),e._v(" should be used.")]),e._v(" "),t("li",[t("strong",[e._v("Send1[string]:")]),e._v(" This string (including the prestring) will be sent, if the event EventProp1 will be triggered.")]),e._v(" "),t("li",[e._v("…")]),e._v(" "),t("li",[t("strong",[e._v("Send24[string]:")]),e._v(" This string (including the prestring) will be sent, if the event EventProp24 will be triggered.")])]),e._v(" "),t("p",[t("em",[e._v("Comment:")]),e._v(" This component is exactly tailored to the IRTrans module and needs expert knowledge to be configured.")]),e._v(" "),t("h2",{attrs:{id:"references"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[e._v("#")]),e._v(" References")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"http://www.irtrans.de",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.irtrans.de"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Interface_EN.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Interface_EN.pdf"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports},636:function(e,t,o){e.exports=o.p+"assets/img/irtrans.7b56a6e8.jpg"},637:function(e,t){e.exports="data:image/jpeg;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/70.81b8029d.js b/assets/js/70.3b8aac09.js similarity index 98% rename from assets/js/70.81b8029d.js rename to assets/js/70.3b8aac09.js index 215d5598ce..f5b8e180e0 100644 --- a/assets/js/70.81b8029d.js +++ b/assets/js/70.3b8aac09.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{1092:function(t,e,a){"use strict";a.r(e);var o=a(2),r=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"legacy-digital-out"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#legacy-digital-out"}},[t._v("#")]),t._v(" Legacy Digital Out")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-generic-control-output"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-generic-control-output"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Generic Control Output)")]),t._v(" "),e("p",[t._v("The DigitalOut plugin operates the output ports of the legacy GPIO CIM (CIM Id: 0x0201). The output ports 1-4 are open-collector outputs, where a pull-up resistor can be activated or deactivated using the plugin’s properties. The output ports 5-8 are relais outputs where loads can be connected via a galvanic isolation barrier. The plugin provides event listener ports which serve the activation or deactivation of an output channel, and a command port which accepts string parameters to set, clear and toggle particular output channels.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(641),alt:"Screenshot: Legacy DigitalOut plugin",title:"Screenshot: LegacyDigitalOut plugin"}})]),t._v(" "),e("p",[t._v("Legacy DigitalOut plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the GPIO CIM (CIM Id: 0x0201) to be connected to an USB port.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(642),alt:"GPIO CIM",title:"GPIO CIM"}})]),t._v(" "),e("p",[t._v("Legacy GPIO CIM")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("action [string]:")]),t._v(" The plugin reacts to incoming action strings starting with “@GPIO:” and a command. Valid commands are “set”, “clear”, “toggle” and “press”. The command has to be followed by a comma and the port number, for example: “@GPIO:set,1” or “@GPIO:toggle,2”. The “press”-command toggles the given output port two times with a delay of 500 milliseconds. The following examples illustrate the available action strings:\n"),e("ul",[e("li",[e("em",[t._v("“@DIGITALOUT:set,1”:")]),t._v(" Pin 1 of the GPIO CIM will be set")]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:clear,2":_Pin 2 of the GPIO CIM will be cleared')]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:toggle,1”:")]),t._v(" Pin 1 of the GPIO CIM will be changed")]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:press,4”:")]),t._v(" Pin 4 of the GPIO CIM will be cleared and after 500ms it will be set again")])])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setOutput1 to setOutput8:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the high level.")]),t._v(" "),e("li",[e("strong",[t._v("clearOutput1 to clearOutput8:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the low level.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pullupStateOut1 to pullupStateOut4 [boolean]:")]),t._v(" These properties specify if the internal pullup resistor shall be activated on the respective open collector output channels.")])])])}),[],!1,null,null,null);e.default=r.exports},641:function(t,e,a){t.exports=a.p+"assets/img/legacydigitalout.b9ce1088.jpg"},642:function(t,e,a){t.exports=a.p+"assets/img/digitalout_cim.32abc9c9.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{1091:function(t,e,a){"use strict";a.r(e);var o=a(2),r=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"legacy-digital-out"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#legacy-digital-out"}},[t._v("#")]),t._v(" Legacy Digital Out")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-generic-control-output"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-generic-control-output"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Generic Control Output)")]),t._v(" "),e("p",[t._v("The DigitalOut plugin operates the output ports of the legacy GPIO CIM (CIM Id: 0x0201). The output ports 1-4 are open-collector outputs, where a pull-up resistor can be activated or deactivated using the plugin’s properties. The output ports 5-8 are relais outputs where loads can be connected via a galvanic isolation barrier. The plugin provides event listener ports which serve the activation or deactivation of an output channel, and a command port which accepts string parameters to set, clear and toggle particular output channels.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(641),alt:"Screenshot: Legacy DigitalOut plugin",title:"Screenshot: LegacyDigitalOut plugin"}})]),t._v(" "),e("p",[t._v("Legacy DigitalOut plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("This component requires the GPIO CIM (CIM Id: 0x0201) to be connected to an USB port.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(642),alt:"GPIO CIM",title:"GPIO CIM"}})]),t._v(" "),e("p",[t._v("Legacy GPIO CIM")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("action [string]:")]),t._v(" The plugin reacts to incoming action strings starting with “@GPIO:” and a command. Valid commands are “set”, “clear”, “toggle” and “press”. The command has to be followed by a comma and the port number, for example: “@GPIO:set,1” or “@GPIO:toggle,2”. The “press”-command toggles the given output port two times with a delay of 500 milliseconds. The following examples illustrate the available action strings:\n"),e("ul",[e("li",[e("em",[t._v("“@DIGITALOUT:set,1”:")]),t._v(" Pin 1 of the GPIO CIM will be set")]),t._v(" "),e("li",[t._v('_"@DIGITALOUT:clear,2":_Pin 2 of the GPIO CIM will be cleared')]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:toggle,1”:")]),t._v(" Pin 1 of the GPIO CIM will be changed")]),t._v(" "),e("li",[e("em",[t._v("“@DIGITALOUT:press,4”:")]),t._v(" Pin 4 of the GPIO CIM will be cleared and after 500ms it will be set again")])])])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setOutput1 to setOutput8:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the high level.")]),t._v(" "),e("li",[e("strong",[t._v("clearOutput1 to clearOutput8:")]),t._v(" an incoming event on these ports will cause the corresponding output port on the CIM to go to the low level.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pullupStateOut1 to pullupStateOut4 [boolean]:")]),t._v(" These properties specify if the internal pullup resistor shall be activated on the respective open collector output channels.")])])])}),[],!1,null,null,null);e.default=r.exports},641:function(t,e,a){t.exports=a.p+"assets/img/legacydigitalout.b9ce1088.jpg"},642:function(t,e,a){t.exports=a.p+"assets/img/digitalout_cim.32abc9c9.jpg"}}]); \ No newline at end of file diff --git a/assets/js/71.6c95c950.js b/assets/js/71.7a4cf88d.js similarity index 94% rename from assets/js/71.6c95c950.js rename to assets/js/71.7a4cf88d.js index 4b3ae14661..70d11cca78 100644 --- a/assets/js/71.6c95c950.js +++ b/assets/js/71.7a4cf88d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{1094:function(e,t,i){"use strict";i.r(t);var n=i(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The MidiPlayer component can generate midi tone output on the default midi device of the system. This can be used for audio feedback (e.g. for a selection or click) or for creation of musical instruments. The MidiPlayer Plugin features an optional GUI where the currently played tone can be seen.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(644),alt:"Screenshot: MidiPlayer GUI",title:"Screenshot: MidiPlayer GUI"}})]),e._v(" "),t("p",[e._v("MidiPlayer GUI")]),e._v(" "),t("p",[t("img",{attrs:{src:i(645),alt:"Screenshot: MidiPlayer plugin",title:"Screenshot: MidiPlayer plugin"}})]),e._v(" "),t("p",[e._v("MidiPlayer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("trigger [integer]:")]),e._v(" The input strength (tone trigger).")]),e._v(" "),t("li",[t("strong",[e._v("pitch [integer]:")]),e._v(" The tone height input.")]),e._v(" "),t("li",[t("strong",[e._v("instrument [string]:")]),e._v(" accepts a string which contains a valid instrument name to select this instrument")]),e._v(" "),t("li",[t("strong",[e._v("scale [string]:")]),e._v(" accepts a string which contains a tone scale name to select this tone scale")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("midiDevice [combobox]:")]),e._v(" The Midi Output device. This combobox allows selection of an installed Midi device for tone output. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("channel [combobox]:")]),e._v(" The midi channel (1-16, 10 usually is the drum channel).")]),e._v(" "),t("li",[t("strong",[e._v("instrument [combobox]:")]),e._v(" The midi instrument or controller (the first 127 selections are instruments, then 127 controllers are available. if a controller is selected, the incoming pitch value is use as control change value). "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("triggerThreshold [integer]:")]),e._v(" The value of the trigger input threshold. Tones will only be generated if the trigger input is bigger than this value. If the trigger inptu is not used, all tone heights received at the pitch input port are played with full volume.")]),e._v(" "),t("li",[t("strong",[e._v("triggerMax [integer]:")]),e._v(" The maximum value of the trigger input. This value influences the volume of the played tones: Tones will get louder as the trigger input value approaches the triggerMax value.")]),e._v(" "),t("li",[t("strong",[e._v("pitchMin [integer]:")]),e._v(" The minimum value for pitch input. Defines the pitch input value for the lowest tone output.")]),e._v(" "),t("li",[t("strong",[e._v("pitchMax [integer]:")]),e._v(" The maximum value for pitch input Defines the pitch input value for the highest tone output.")]),e._v(" "),t("li",[t("strong",[e._v("toneScale [integer]:")]),e._v(" One of several tone scales can be selected. The tonscales are stored in the plugin’s subfolder in the ARE. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("playOnlyChangingNotes [boolean]:")]),e._v(" If selected, only different note values are triggered (else, same note values can be played multiple times)")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" If this property value is set to true, the GUI window for the MidiPlugin will be displayed. The GUI window shows the current tone height and the available feedback tone scale.")])])])}),[],!1,null,null,null);t.default=r.exports},644:function(e,t,i){e.exports=i.p+"assets/img/midipanel.3dc01ab6.jpg"},645:function(e,t,i){e.exports=i.p+"assets/img/midiplayer.6599e758.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{1094:function(e,t,i){"use strict";i.r(t);var n=i(2),r=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Audio and Voice)")]),e._v(" "),t("p",[e._v("The MidiPlayer component can generate midi tone output on the default midi device of the system. This can be used for audio feedback (e.g. for a selection or click) or for creation of musical instruments. The MidiPlayer Plugin features an optional GUI where the currently played tone can be seen.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(645),alt:"Screenshot: MidiPlayer GUI",title:"Screenshot: MidiPlayer GUI"}})]),e._v(" "),t("p",[e._v("MidiPlayer GUI")]),e._v(" "),t("p",[t("img",{attrs:{src:i(646),alt:"Screenshot: MidiPlayer plugin",title:"Screenshot: MidiPlayer plugin"}})]),e._v(" "),t("p",[e._v("MidiPlayer plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("trigger [integer]:")]),e._v(" The input strength (tone trigger).")]),e._v(" "),t("li",[t("strong",[e._v("pitch [integer]:")]),e._v(" The tone height input.")]),e._v(" "),t("li",[t("strong",[e._v("instrument [string]:")]),e._v(" accepts a string which contains a valid instrument name to select this instrument")]),e._v(" "),t("li",[t("strong",[e._v("scale [string]:")]),e._v(" accepts a string which contains a tone scale name to select this tone scale")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("midiDevice [combobox]:")]),e._v(" The Midi Output device. This combobox allows selection of an installed Midi device for tone output. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("channel [combobox]:")]),e._v(" The midi channel (1-16, 10 usually is the drum channel).")]),e._v(" "),t("li",[t("strong",[e._v("instrument [combobox]:")]),e._v(" The midi instrument or controller (the first 127 selections are instruments, then 127 controllers are available. if a controller is selected, the incoming pitch value is use as control change value). "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("triggerThreshold [integer]:")]),e._v(" The value of the trigger input threshold. Tones will only be generated if the trigger input is bigger than this value. If the trigger inptu is not used, all tone heights received at the pitch input port are played with full volume.")]),e._v(" "),t("li",[t("strong",[e._v("triggerMax [integer]:")]),e._v(" The maximum value of the trigger input. This value influences the volume of the played tones: Tones will get louder as the trigger input value approaches the triggerMax value.")]),e._v(" "),t("li",[t("strong",[e._v("pitchMin [integer]:")]),e._v(" The minimum value for pitch input. Defines the pitch input value for the lowest tone output.")]),e._v(" "),t("li",[t("strong",[e._v("pitchMax [integer]:")]),e._v(" The maximum value for pitch input Defines the pitch input value for the highest tone output.")]),e._v(" "),t("li",[t("strong",[e._v("toneScale [integer]:")]),e._v(" One of several tone scales can be selected. The tonscales are stored in the plugin’s subfolder in the ARE. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("playOnlyChangingNotes [boolean]:")]),e._v(" If selected, only different note values are triggered (else, same note values can be played multiple times)")]),e._v(" "),t("li",[t("strong",[e._v("displayGUI [boolean]:")]),e._v(" If this property value is set to true, the GUI window for the MidiPlugin will be displayed. The GUI window shows the current tone height and the available feedback tone scale.")])])])}),[],!1,null,null,null);t.default=r.exports},645:function(e,t,i){e.exports=i.p+"assets/img/midipanel.3dc01ab6.jpg"},646:function(e,t,i){e.exports=i.p+"assets/img/midiplayer.6599e758.jpg"}}]); \ No newline at end of file diff --git a/assets/js/72.0fbe9df4.js b/assets/js/72.a88af099.js similarity index 97% rename from assets/js/72.0fbe9df4.js rename to assets/js/72.a88af099.js index c6c8684106..50f93a32b2 100644 --- a/assets/js/72.0fbe9df4.js +++ b/assets/js/72.a88af099.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{1101:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"philipshue"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#philipshue"}},[t._v("#")]),t._v(" PhilipsHue")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("The PhilipsHue component provides an interface to the\n"),e("a",{attrs:{href:"https://www2.meethue.com/en-us",target:"_blank",rel:"noopener noreferrer"}},[t._v("Philips Hue smart lighting system"),e("OutboundLink")],1),t._v(".\nYou can also use "),e("a",{attrs:{href:"https://www.youtube.com/watch?v=z9ayFNhmoBo",target:"_blank",rel:"noopener noreferrer"}},[t._v("Ikea Tradfri bulbs"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("One instance of this plugin can be used to control one specific Philips Hue light\nor all lights connected to the Philips Hue bridge at the same time.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(652),alt:"Screenshot: PhilipsHue plugin",title:"Screenshot: PhilipsHue plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("ul",[e("li",[t._v("A Philips Hue hardware Bridge")]),t._v(" "),e("li",[t._v("A Philips Hue Light (such as a fixture, a light bulb or an LED strip)")])]),t._v(" "),e("h2",{attrs:{id:"initial-setup"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup"}},[t._v("#")]),t._v(" Initial Setup")]),t._v(" "),e("h3",{attrs:{id:"hardware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hardware"}},[t._v("#")]),t._v(" Hardware")]),t._v(" "),e("p",[t._v("The bridge has to be connected to the ethernet port of the router. The light has to be paired with the bridge.")]),t._v(" "),e("p",[t._v("Any device that ships with the bridge is already paired and ready to be used.")]),t._v(" "),e("p",[t._v("If they have been acquired separately you can "),e("strong",[t._v("pair")]),t._v(" them like so:")]),t._v(" "),e("ol",[e("li",[t._v("Connect the new light to an outlet or fixture "),e("strong",[t._v("close to the bridge")]),t._v(". If the bridge is not in the same room the pairing might not work. In case of Ikea Tradfri bulbs you must switch on/off it 6 times first, to unpair it from any Ikea gateway and make it findable for a Hue bridge.")]),t._v(" "),e("li",[t._v("Open the Philips Hue app on your phone")]),t._v(" "),e("li",[t._v("Go to "),e("em",[t._v("Settings")]),t._v(", select "),e("em",[t._v("Light Setup")]),t._v(" and press the "),e("em",[t._v("plus")]),t._v(" icon")]),t._v(" "),e("li",[t._v("Tap on "),e("em",[t._v("search")]),t._v(" to search for the new light")])]),t._v(" "),e("p",[t._v("If the light is not found you can enter the serial number (printed on the light)\nand tap search again.")]),t._v(" "),e("h3",{attrs:{id:"bridge-ip-address-and-api-key"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#bridge-ip-address-and-api-key"}},[t._v("#")]),t._v(" Bridge IP address and API key")]),t._v(" "),e("p",[t._v("The plugin requires the IP address of the bridge and an API key.")]),t._v(" "),e("p",[t._v("First let’s find out the IP address:")]),t._v(" "),e("ol",[e("li",[t._v("Open the "),e("a",{attrs:{href:"https://www2.meethue.com/de-at/philips-hue-app",target:"_blank",rel:"noopener noreferrer"}},[t._v("Philips Hue app"),e("OutboundLink")],1),t._v(" on your phone. If this does not work, try "),e("a",{attrs:{href:"https://www.hueessentials.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Hue Essentials App"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("li",[t._v("Go to "),e("em",[t._v("Settings")]),t._v(", select "),e("em",[t._v("Hue Bridges")]),t._v(" and press the "),e("em",[t._v("i")]),t._v(" icon")]),t._v(" "),e("li",[t._v("Look for the line that says "),e("em",[t._v("IP address")])])]),t._v(" "),e("p",[t._v("Now let’s create a new API key using the CLIP API debugger.")]),t._v(" "),e("ol",[e("li",[t._v("Open "),e("code",[t._v("http:///debug/clip.html")]),t._v(" in your browser")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("/api")]),t._v(" in the "),e("em",[t._v("URL")]),t._v(" text field")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v('{"devicetype": ""}')]),t._v(" in the "),e("em",[t._v("Message Body")]),t._v(" text field")]),t._v(" "),e("li",[t._v("Press the round link button on the Hue bridge")]),t._v(" "),e("li",[t._v("Click on the "),e("em",[t._v("POST")]),t._v(" button")]),t._v(" "),e("li",[t._v("The string in the double quotes to the right of "),e("code",[t._v("username")]),t._v(" is your API key")])]),t._v(" "),e("p",[t._v("After adding the PhilipsHue plugin in the Model Designer you can fill out those properties.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(653),alt:"Screenshot: PhilipsHue plugin",title:"Screenshot: PhilipsHue plugin"}})]),t._v(" "),e("p",[t._v("The target light ids are assigned from the bridge to the lights in order, starting with 1.")]),t._v(" "),e("p",[t._v("You can also send a "),e("em",[t._v("GET")]),t._v(" request to the URL "),e("code",[t._v("http:///api//lights")]),t._v("\nwith the CLIP API debugger.\nThis return a JSON dictionary. The keys of that dictionaries are the light ids,\nand the values can be used to identify the lights (by name, model or serial number).")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("cmd [string]:")]),t._v(" This port expects JSON (see "),e("a",{attrs:{href:"https://developers.meethue.com/develop/hue-api/lights-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Hue Lights API"),e("OutboundLink")],1),t._v(") and sends the command to the specified light.\n"),e("ul",[e("li",[t._v("Example 1: turn light off: "),e("code",[t._v('{"on": false}')])]),t._v(" "),e("li",[t._v("Example 2: set light to red with full saturation: "),e("code",[t._v('{"hue": 0, "sat": 254}')])]),t._v(" "),e("li",[t._v("Example 3: turn light on and enable color loop effect: "),e("code",[t._v('{"on": true, "effect": "colorloop"}')])])])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("cmdResponse [string]:")]),t._v(" This port returns the reply from the bridge (in JSON).")]),t._v(" "),e("li",[e("strong",[t._v("currentState [string]:")]),t._v(" This port periodically returns the state the target light. The polling rate can be set via the updateRate property (in milliseconds).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("lightOn:")]),t._v(" turn target light on")]),t._v(" "),e("li",[e("strong",[t._v("lightOff:")]),t._v(" turn target light off")]),t._v(" "),e("li",[e("strong",[t._v("lightWhite:")]),t._v(" turn target light white (neutral color, 100% brightness)")]),t._v(" "),e("li",[e("strong",[t._v("lightRed:")]),t._v(" turn target light red")]),t._v(" "),e("li",[e("strong",[t._v("lightGreen:")]),t._v(" turn target light green")]),t._v(" "),e("li",[e("strong",[t._v("lightBlue:")]),t._v(" turn target light blue")]),t._v(" "),e("li",[e("strong",[t._v("lightBriLow:")]),t._v(" set brightness of target light to 10%")]),t._v(" "),e("li",[e("strong",[t._v("lightBriHalf:")]),t._v(" set brightness of target light to 50%")]),t._v(" "),e("li",[e("strong",[t._v("lightBriFull:")]),t._v(" set brightness of target light to 100%")]),t._v(" "),e("li",[e("strong",[t._v("lightSaturate:")]),t._v(" set saturation of target light to 100%")]),t._v(" "),e("li",[e("strong",[t._v("lightDesaturate:")]),t._v(" set saturation of target light to 0%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsOn:")]),t._v(" turn all lights on")]),t._v(" "),e("li",[e("strong",[t._v("allLightsOff:")]),t._v(" turn all lights off")]),t._v(" "),e("li",[e("strong",[t._v("allLightsWhite:")]),t._v(" reset all lights (neutral color, 100% brightness)")]),t._v(" "),e("li",[e("strong",[t._v("allLightsRed:")]),t._v(" turn all lights red")]),t._v(" "),e("li",[e("strong",[t._v("allLightsGreen:")]),t._v(" turn all lights green")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBlue:")]),t._v(" turn all lights blue")]),t._v(" "),e("li",[e("strong",[t._v("allLightsColorloop:")]),t._v(" activate the colorloop effect for all lights")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBriLow:")]),t._v(" set brightness for all lights to 10%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBriHalf:")]),t._v(" set brightness for all lights to 50%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBriFull:")]),t._v(" set brightness for all lights to 100%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsSaturate:")]),t._v(" set saturation for all lights to 100%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsDesaturate:")]),t._v(" set saturation for all lights to 0%")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("statusChanged:")]),t._v(" fires when any light changes its status")]),t._v(" "),e("li",[e("strong",[t._v("tick:")]),t._v(" fires for each tick (depends on updateRate property)")]),t._v(" "),e("li",[e("strong",[t._v("turnedOn:")]),t._v(" fires if the light is turned on")]),t._v(" "),e("li",[e("strong",[t._v("turnedOff:")]),t._v(" fires if the light is turned off")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("apiKey [string]:")]),t._v(" API key for the REST API of the bridge")]),t._v(" "),e("li",[e("strong",[t._v("ip [string]:")]),t._v(" IP address of the bridge")]),t._v(" "),e("li",[e("strong",[t._v("target [string]:")]),t._v(" light to be controlled in the form "),e("code",[t._v("/light/")])]),t._v(" "),e("li",[e("strong",[t._v("updateRate [integer]:")]),t._v(" polling rate for "),e("strong",[t._v("currentState")]),t._v(" and the event triggers\n"),e("ul",[e("li",[t._v("value in milliseconds")]),t._v(" "),e("li",[t._v("the lower this value is, the faster you will be notified of changes")]),t._v(" "),e("li",[t._v("don’t set this too low or the bridge might slow down (500 milliseconds is a good compromise)")])])])]),t._v(" "),e("h2",{attrs:{id:"notes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes")]),t._v(" "),e("ul",[e("li",[t._v("There is an example file ("),e("code",[t._v("philipshue.acs")]),t._v(") that demonstrates the full capabilities of the plugin.\nit can be found in the folder: "),e("code",[t._v("bin/ARE/models/useCaseDemos/environmentControl/")]),t._v(".")]),t._v(" "),e("li",[t._v("The CLIP API debugger will not work if your browser has strict XSS (cross-site scripting) protection enabled.\nIn that case you can use another REST API debugger (like "),e("a",{attrs:{href:"https://www.getpostman.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Postman"),e("OutboundLink")],1),t._v("). You can also\ninstall a "),e("a",{attrs:{href:"https://github.com/PhilGrayson/chrome-csp-disable",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chrome extension"),e("OutboundLink")],1),t._v(" that disables strict XSS checking\nfor specific sites.")]),t._v(" "),e("li",[t._v("If you have any other issue or need help you can drop the author a line: "),e("a",{attrs:{href:"mailto:bmedicke@gmail.com"}},[t._v("bmedicke@gmail.com")])])])])}),[],!1,null,null,null);e.default=s.exports},652:function(t,e,i){t.exports=i.p+"assets/img/philipshue.66692d2e.png"},653:function(t,e,i){t.exports=i.p+"assets/img/philipshue_properties.aab9dfb0.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{1102:function(t,e,i){"use strict";i.r(e);var r=i(2),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"philipshue"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#philipshue"}},[t._v("#")]),t._v(" PhilipsHue")]),t._v(" "),e("h2",{attrs:{id:"component-type-actuator-subcategory-home-control"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#component-type-actuator-subcategory-home-control"}},[t._v("#")]),t._v(" Component Type: Actuator (Subcategory: Home Control)")]),t._v(" "),e("p",[t._v("The PhilipsHue component provides an interface to the\n"),e("a",{attrs:{href:"https://www2.meethue.com/en-us",target:"_blank",rel:"noopener noreferrer"}},[t._v("Philips Hue smart lighting system"),e("OutboundLink")],1),t._v(".\nYou can also use "),e("a",{attrs:{href:"https://www.youtube.com/watch?v=z9ayFNhmoBo",target:"_blank",rel:"noopener noreferrer"}},[t._v("Ikea Tradfri bulbs"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("One instance of this plugin can be used to control one specific Philips Hue light\nor all lights connected to the Philips Hue bridge at the same time.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(654),alt:"Screenshot: PhilipsHue plugin",title:"Screenshot: PhilipsHue plugin"}})]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("ul",[e("li",[t._v("A Philips Hue hardware Bridge")]),t._v(" "),e("li",[t._v("A Philips Hue Light (such as a fixture, a light bulb or an LED strip)")])]),t._v(" "),e("h2",{attrs:{id:"initial-setup"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup"}},[t._v("#")]),t._v(" Initial Setup")]),t._v(" "),e("h3",{attrs:{id:"hardware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hardware"}},[t._v("#")]),t._v(" Hardware")]),t._v(" "),e("p",[t._v("The bridge has to be connected to the ethernet port of the router. The light has to be paired with the bridge.")]),t._v(" "),e("p",[t._v("Any device that ships with the bridge is already paired and ready to be used.")]),t._v(" "),e("p",[t._v("If they have been acquired separately you can "),e("strong",[t._v("pair")]),t._v(" them like so:")]),t._v(" "),e("ol",[e("li",[t._v("Connect the new light to an outlet or fixture "),e("strong",[t._v("close to the bridge")]),t._v(". If the bridge is not in the same room the pairing might not work. In case of Ikea Tradfri bulbs you must switch on/off it 6 times first, to unpair it from any Ikea gateway and make it findable for a Hue bridge.")]),t._v(" "),e("li",[t._v("Open the Philips Hue app on your phone")]),t._v(" "),e("li",[t._v("Go to "),e("em",[t._v("Settings")]),t._v(", select "),e("em",[t._v("Light Setup")]),t._v(" and press the "),e("em",[t._v("plus")]),t._v(" icon")]),t._v(" "),e("li",[t._v("Tap on "),e("em",[t._v("search")]),t._v(" to search for the new light")])]),t._v(" "),e("p",[t._v("If the light is not found you can enter the serial number (printed on the light)\nand tap search again.")]),t._v(" "),e("h3",{attrs:{id:"bridge-ip-address-and-api-key"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#bridge-ip-address-and-api-key"}},[t._v("#")]),t._v(" Bridge IP address and API key")]),t._v(" "),e("p",[t._v("The plugin requires the IP address of the bridge and an API key.")]),t._v(" "),e("p",[t._v("First let’s find out the IP address:")]),t._v(" "),e("ol",[e("li",[t._v("Open the "),e("a",{attrs:{href:"https://www2.meethue.com/de-at/philips-hue-app",target:"_blank",rel:"noopener noreferrer"}},[t._v("Philips Hue app"),e("OutboundLink")],1),t._v(" on your phone. If this does not work, try "),e("a",{attrs:{href:"https://www.hueessentials.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Hue Essentials App"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("li",[t._v("Go to "),e("em",[t._v("Settings")]),t._v(", select "),e("em",[t._v("Hue Bridges")]),t._v(" and press the "),e("em",[t._v("i")]),t._v(" icon")]),t._v(" "),e("li",[t._v("Look for the line that says "),e("em",[t._v("IP address")])])]),t._v(" "),e("p",[t._v("Now let’s create a new API key using the CLIP API debugger.")]),t._v(" "),e("ol",[e("li",[t._v("Open "),e("code",[t._v("http:///debug/clip.html")]),t._v(" in your browser")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v("/api")]),t._v(" in the "),e("em",[t._v("URL")]),t._v(" text field")]),t._v(" "),e("li",[t._v("Enter "),e("code",[t._v('{"devicetype": ""}')]),t._v(" in the "),e("em",[t._v("Message Body")]),t._v(" text field")]),t._v(" "),e("li",[t._v("Press the round link button on the Hue bridge")]),t._v(" "),e("li",[t._v("Click on the "),e("em",[t._v("POST")]),t._v(" button")]),t._v(" "),e("li",[t._v("The string in the double quotes to the right of "),e("code",[t._v("username")]),t._v(" is your API key")])]),t._v(" "),e("p",[t._v("After adding the PhilipsHue plugin in the Model Designer you can fill out those properties.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(655),alt:"Screenshot: PhilipsHue plugin",title:"Screenshot: PhilipsHue plugin"}})]),t._v(" "),e("p",[t._v("The target light ids are assigned from the bridge to the lights in order, starting with 1.")]),t._v(" "),e("p",[t._v("You can also send a "),e("em",[t._v("GET")]),t._v(" request to the URL "),e("code",[t._v("http:///api//lights")]),t._v("\nwith the CLIP API debugger.\nThis return a JSON dictionary. The keys of that dictionaries are the light ids,\nand the values can be used to identify the lights (by name, model or serial number).")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("cmd [string]:")]),t._v(" This port expects JSON (see "),e("a",{attrs:{href:"https://developers.meethue.com/develop/hue-api/lights-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Hue Lights API"),e("OutboundLink")],1),t._v(") and sends the command to the specified light.\n"),e("ul",[e("li",[t._v("Example 1: turn light off: "),e("code",[t._v('{"on": false}')])]),t._v(" "),e("li",[t._v("Example 2: set light to red with full saturation: "),e("code",[t._v('{"hue": 0, "sat": 254}')])]),t._v(" "),e("li",[t._v("Example 3: turn light on and enable color loop effect: "),e("code",[t._v('{"on": true, "effect": "colorloop"}')])])])])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("cmdResponse [string]:")]),t._v(" This port returns the reply from the bridge (in JSON).")]),t._v(" "),e("li",[e("strong",[t._v("currentState [string]:")]),t._v(" This port periodically returns the state the target light. The polling rate can be set via the updateRate property (in milliseconds).")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("lightOn:")]),t._v(" turn target light on")]),t._v(" "),e("li",[e("strong",[t._v("lightOff:")]),t._v(" turn target light off")]),t._v(" "),e("li",[e("strong",[t._v("lightWhite:")]),t._v(" turn target light white (neutral color, 100% brightness)")]),t._v(" "),e("li",[e("strong",[t._v("lightRed:")]),t._v(" turn target light red")]),t._v(" "),e("li",[e("strong",[t._v("lightGreen:")]),t._v(" turn target light green")]),t._v(" "),e("li",[e("strong",[t._v("lightBlue:")]),t._v(" turn target light blue")]),t._v(" "),e("li",[e("strong",[t._v("lightBriLow:")]),t._v(" set brightness of target light to 10%")]),t._v(" "),e("li",[e("strong",[t._v("lightBriHalf:")]),t._v(" set brightness of target light to 50%")]),t._v(" "),e("li",[e("strong",[t._v("lightBriFull:")]),t._v(" set brightness of target light to 100%")]),t._v(" "),e("li",[e("strong",[t._v("lightSaturate:")]),t._v(" set saturation of target light to 100%")]),t._v(" "),e("li",[e("strong",[t._v("lightDesaturate:")]),t._v(" set saturation of target light to 0%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsOn:")]),t._v(" turn all lights on")]),t._v(" "),e("li",[e("strong",[t._v("allLightsOff:")]),t._v(" turn all lights off")]),t._v(" "),e("li",[e("strong",[t._v("allLightsWhite:")]),t._v(" reset all lights (neutral color, 100% brightness)")]),t._v(" "),e("li",[e("strong",[t._v("allLightsRed:")]),t._v(" turn all lights red")]),t._v(" "),e("li",[e("strong",[t._v("allLightsGreen:")]),t._v(" turn all lights green")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBlue:")]),t._v(" turn all lights blue")]),t._v(" "),e("li",[e("strong",[t._v("allLightsColorloop:")]),t._v(" activate the colorloop effect for all lights")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBriLow:")]),t._v(" set brightness for all lights to 10%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBriHalf:")]),t._v(" set brightness for all lights to 50%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsBriFull:")]),t._v(" set brightness for all lights to 100%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsSaturate:")]),t._v(" set saturation for all lights to 100%")]),t._v(" "),e("li",[e("strong",[t._v("allLightsDesaturate:")]),t._v(" set saturation for all lights to 0%")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("statusChanged:")]),t._v(" fires when any light changes its status")]),t._v(" "),e("li",[e("strong",[t._v("tick:")]),t._v(" fires for each tick (depends on updateRate property)")]),t._v(" "),e("li",[e("strong",[t._v("turnedOn:")]),t._v(" fires if the light is turned on")]),t._v(" "),e("li",[e("strong",[t._v("turnedOff:")]),t._v(" fires if the light is turned off")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("apiKey [string]:")]),t._v(" API key for the REST API of the bridge")]),t._v(" "),e("li",[e("strong",[t._v("ip [string]:")]),t._v(" IP address of the bridge")]),t._v(" "),e("li",[e("strong",[t._v("target [string]:")]),t._v(" light to be controlled in the form "),e("code",[t._v("/light/")])]),t._v(" "),e("li",[e("strong",[t._v("updateRate [integer]:")]),t._v(" polling rate for "),e("strong",[t._v("currentState")]),t._v(" and the event triggers\n"),e("ul",[e("li",[t._v("value in milliseconds")]),t._v(" "),e("li",[t._v("the lower this value is, the faster you will be notified of changes")]),t._v(" "),e("li",[t._v("don’t set this too low or the bridge might slow down (500 milliseconds is a good compromise)")])])])]),t._v(" "),e("h2",{attrs:{id:"notes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes")]),t._v(" "),e("ul",[e("li",[t._v("There is an example file ("),e("code",[t._v("philipshue.acs")]),t._v(") that demonstrates the full capabilities of the plugin.\nit can be found in the folder: "),e("code",[t._v("bin/ARE/models/useCaseDemos/environmentControl/")]),t._v(".")]),t._v(" "),e("li",[t._v("The CLIP API debugger will not work if your browser has strict XSS (cross-site scripting) protection enabled.\nIn that case you can use another REST API debugger (like "),e("a",{attrs:{href:"https://www.getpostman.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Postman"),e("OutboundLink")],1),t._v("). You can also\ninstall a "),e("a",{attrs:{href:"https://github.com/PhilGrayson/chrome-csp-disable",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chrome extension"),e("OutboundLink")],1),t._v(" that disables strict XSS checking\nfor specific sites.")]),t._v(" "),e("li",[t._v("If you have any other issue or need help you can drop the author a line: "),e("a",{attrs:{href:"mailto:bmedicke@gmail.com"}},[t._v("bmedicke@gmail.com")])])])])}),[],!1,null,null,null);e.default=s.exports},654:function(t,e,i){t.exports=i.p+"assets/img/philipshue.66692d2e.png"},655:function(t,e,i){t.exports=i.p+"assets/img/philipshue_properties.aab9dfb0.png"}}]); \ No newline at end of file diff --git a/assets/js/73.b6282477.js b/assets/js/73.335eeef4.js similarity index 95% rename from assets/js/73.b6282477.js rename to assets/js/73.335eeef4.js index 1119f48265..eb2a8c31f8 100644 --- a/assets/js/73.b6282477.js +++ b/assets/js/73.335eeef4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{1107:function(t,e,o){"use strict";o.r(e);var s=o(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),t._v(" "),e("p",[t._v("The RemoteJoystick component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). The HID actuator emulates a standard HID Joystick device on the target computer (no special driver software is needed). The Joystick controller is compatible to the Playstation3 SixAxis controller and can be used for PS3 game interfacing. The X/Y axis represent the left stick, the Z/R axis represent the right sick. The button numbers correspond to the PS3-controller buttons as labeled in the event port descriptions. The Joystick analog positions, the Point-Of-View angle and up to 13 Buttons can be emulated via desired input values and event triggers. Note that multiple instances of the Remote-components (RemoteJoystick, RemoteKeyboard and RemoteMouse) can be used concurrently with one HID actuator USB dongle, e.g. to provide different actions from up to three different input devices on the target computer.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(659),alt:"Screenshot: RemoteJoystick plugin",title:"Screenshot: RemoteJoystick plugin"}})]),t._v(" "),e("p",[t._v("RemoteJoystick plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),t._v(" "),e("p",[t._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("joystickX [integer]:")]),t._v(" The desired X-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickY [integer]:")]),t._v(" The desired Y-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickZ [integer]:")]),t._v(" The desired Z-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickR [integer]:")]),t._v(" The desired R-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickPov [integer]:")]),t._v(" The desired POV-angle of the Joystick.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pressButton1 - pressButton13:")]),t._v(" An incoming event at this port causes the corresponding button of the Joystick to be pressed.")]),t._v(" "),e("li",[e("strong",[t._v("releaseButton1 - releaseButton13:")]),t._v(" An incoming event at this port causes the corresponding button of the Joystick to be released.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("refreshInterval [integer]:")]),t._v(" This property value sets a minimum time (in milliseconds) between two updates of the remote joystick device. If set to 0, no limit is given to the update rate - which should be okay unless very high update rates (>100 Hz) of the joystick angles are performed.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);e.default=r.exports},277:function(t,e,o){t.exports=o.p+"assets/img/hid_cim.7d2b7157.jpg"},659:function(t,e,o){t.exports=o.p+"assets/img/remotejoystick.6fa6bfd8.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{1105:function(t,e,o){"use strict";o.r(e);var s=o(2),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),t._v(" "),e("p",[t._v("The RemoteJoystick component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). The HID actuator emulates a standard HID Joystick device on the target computer (no special driver software is needed). The Joystick controller is compatible to the Playstation3 SixAxis controller and can be used for PS3 game interfacing. The X/Y axis represent the left stick, the Z/R axis represent the right sick. The button numbers correspond to the PS3-controller buttons as labeled in the event port descriptions. The Joystick analog positions, the Point-Of-View angle and up to 13 Buttons can be emulated via desired input values and event triggers. Note that multiple instances of the Remote-components (RemoteJoystick, RemoteKeyboard and RemoteMouse) can be used concurrently with one HID actuator USB dongle, e.g. to provide different actions from up to three different input devices on the target computer.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(658),alt:"Screenshot: RemoteJoystick plugin",title:"Screenshot: RemoteJoystick plugin"}})]),t._v(" "),e("p",[t._v("RemoteJoystick plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),t._v(" "),e("p",[t._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("joystickX [integer]:")]),t._v(" The desired X-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickY [integer]:")]),t._v(" The desired Y-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickZ [integer]:")]),t._v(" The desired Z-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickR [integer]:")]),t._v(" The desired R-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("joystickPov [integer]:")]),t._v(" The desired POV-angle of the Joystick.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pressButton1 - pressButton13:")]),t._v(" An incoming event at this port causes the corresponding button of the Joystick to be pressed.")]),t._v(" "),e("li",[e("strong",[t._v("releaseButton1 - releaseButton13:")]),t._v(" An incoming event at this port causes the corresponding button of the Joystick to be released.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("refreshInterval [integer]:")]),t._v(" This property value sets a minimum time (in milliseconds) between two updates of the remote joystick device. If set to 0, no limit is given to the update rate - which should be okay unless very high update rates (>100 Hz) of the joystick angles are performed.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);e.default=r.exports},277:function(t,e,o){t.exports=o.p+"assets/img/hid_cim.7d2b7157.jpg"},658:function(t,e,o){t.exports=o.p+"assets/img/remotejoystick.6fa6bfd8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/74.85ad1ff1.js b/assets/js/74.bd00a339.js similarity index 97% rename from assets/js/74.85ad1ff1.js rename to assets/js/74.bd00a339.js index 4c08895971..d6d40bc744 100644 --- a/assets/js/74.85ad1ff1.js +++ b/assets/js/74.bd00a339.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{1109:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),t._v(" "),e("p",[t._v("The RemoteKeyboard component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). The HID actuator emulates a standard USB keyboard device on the target computer (no special driver software is needed). The component supports key press/release actions and sending key sequences and special keycodes. Note that multiple instances of the Remote-components (RemoteJoystick, RemoteKeyboard and RemoteMouse) can be used concurrently with one HID actuator USB dongle, e.g. to provide different actions for up to three different input devices on the target computer.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(663),alt:"Screenshot: RemoteKeyboard plugin",title:"Screenshot: RemoteKeyboard plugin"}})]),t._v(" "),e("p",[t._v("RemoteKeyboard plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),t._v(" "),e("p",[t._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("keyCodes [string]:")]),t._v(" An incoming string which consists of alphanumeric characters and special key codes. The keys are sequentially sent to the target computer via the HID actuator as the string is received and as the elp_sendkey(s) events of the component are being triggered.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendKeys:")]),t._v(" An incoming event at this port sends the whole keycodes string to the target computer. The key will be released immediately after it has been pressed.")]),t._v(" "),e("li",[e("strong",[t._v("pressKey:")]),t._v(" An incoming event at this port sends the next keycode of the keycode string to the target computer. After the last character, the send position will be reset to the first character.")]),t._v(" "),e("li",[e("strong",[t._v("holdKey:")]),t._v(" An incoming event at this port holds the current key of the keycode string on the target computer (the key is pressed but not released). The holdKey function can be used together with the releaseKey function to create long key presses of single keys (e.g. of the cursor keys) to allow game control etc.")]),t._v(" "),e("li",[e("strong",[t._v("releaseKey:")]),t._v(" An incoming event at this port releases the current key of the keycode string on the target computer.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("keyCodeString [string]:")]),t._v(" A string containing keys and keycodes. Please note that this string will be replaced by an incoming string at the keycodes input port. The keycode-string can contain alphanumeric characters and special characters. Special characters are written in parentheses, for example {SHIFT}, {CTRL}, {ALT}, {BACKSPACE}, {ENTER} etc. Modifier keys like {SHIFT} or {ALT} are combined as they appear consecutively in the keystring, and are sent with the next a printable character. For example, the keystrings “{SHIFT}a” or “{CTRL}{ALT}{DEL}” are sent as single key-values to the target computer.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])]),t._v(" "),e("h2",{attrs:{id:"list-of-supported-special-key-code-identifiers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#list-of-supported-special-key-code-identifiers"}},[t._v("#")]),t._v(" List of supported special key code identifiers:")]),t._v(" "),e("ul",[e("li",{attrs:{LEFTCTRL:""}}),t._v(" "),e("li",{attrs:{LEFTSHIFT:""}}),t._v(" "),e("li",{attrs:{LEFTALT:""}},[t._v("{ALT},")]),t._v(" "),e("li",{attrs:{LEFTGUI:""}},[t._v("{WIN},")]),t._v(" "),e("li",{attrs:{RIGHTCTRL:""}},[t._v("{CTRL},")]),t._v(" "),e("li",{attrs:{RIGHTSHIFT:""}},[t._v("{SHIFT},")]),t._v(" "),e("li",{attrs:{RIGHTALT:""}},[t._v("{ALTGR},")]),t._v(" "),e("li",{attrs:{RIGHTGUI:""}}),t._v(" "),e("li",{attrs:{F1:""}}),t._v(" "),e("li",{attrs:{F2:""}}),t._v(" "),e("li",{attrs:{F3:""}}),t._v(" "),e("li",{attrs:{F4:""}}),t._v(" "),e("li",{attrs:{F5:""}}),t._v(" "),e("li",{attrs:{F6:""}}),t._v(" "),e("li",{attrs:{F7:""}}),t._v(" "),e("li",{attrs:{F8:""}}),t._v(" "),e("li",{attrs:{F9:""}}),t._v(" "),e("li",{attrs:{F10:""}}),t._v(" "),e("li",{attrs:{F11:""}}),t._v(" "),e("li",{attrs:{F12:""}}),t._v(" "),e("li",{attrs:{ENTER:""}},[t._v("{RETURN},")]),t._v(" "),e("li",{attrs:{ESCAPE:""}}),t._v(" "),e("li",{attrs:{BACKSPACE:""}}),t._v(" "),e("li",{attrs:{TAB:""}}),t._v(" "),e("li",{attrs:{PRINTSCREEN:""}},[t._v("{PRINT},")]),t._v(" "),e("li",{attrs:{PAUSE:""}}),t._v(" "),e("li",{attrs:{INS:""}},[t._v("{INSERT},")]),t._v(" "),e("li",{attrs:{POS1:""}},[t._v("{HOME},")]),t._v(" "),e("li",{attrs:{END:""}}),t._v(" "),e("li",{attrs:{DELETE:""}},[t._v("{DEL},")]),t._v(" "),e("li",{attrs:{PAGEUP:""}}),t._v(" "),e("li",{attrs:{PAGEDOWN:""}}),t._v(" "),e("li",{attrs:{RIGHTARROW:""}},[t._v("{RIGHT},")]),t._v(" "),e("li",{attrs:{LEFTARROW:""}},[t._v("{LEFT},")]),t._v(" "),e("li",{attrs:{DOWNARROW:""}},[t._v("{DOWN},")]),t._v(" "),e("li",{attrs:{UPARROW:""}},[t._v("{UP},")]),t._v(" "),e("li",{attrs:{WAIT:""}})])])}),[],!1,null,null,null);e.default=a.exports},277:function(t,e,r){t.exports=r.p+"assets/img/hid_cim.7d2b7157.jpg"},663:function(t,e,r){t.exports=r.p+"assets/img/remotekeyboard.a97bc5eb.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{1106:function(t,e,r){"use strict";r.r(e);var s=r(2),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),t._v(" "),e("p",[t._v("The RemoteKeyboard component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). The HID actuator emulates a standard USB keyboard device on the target computer (no special driver software is needed). The component supports key press/release actions and sending key sequences and special keycodes. Note that multiple instances of the Remote-components (RemoteJoystick, RemoteKeyboard and RemoteMouse) can be used concurrently with one HID actuator USB dongle, e.g. to provide different actions for up to three different input devices on the target computer.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(659),alt:"Screenshot: RemoteKeyboard plugin",title:"Screenshot: RemoteKeyboard plugin"}})]),t._v(" "),e("p",[t._v("RemoteKeyboard plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),t._v(" "),e("p",[e("img",{attrs:{src:r(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),t._v(" "),e("p",[t._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),t._v(" "),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("keyCodes [string]:")]),t._v(" An incoming string which consists of alphanumeric characters and special key codes. The keys are sequentially sent to the target computer via the HID actuator as the string is received and as the elp_sendkey(s) events of the component are being triggered.")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("sendKeys:")]),t._v(" An incoming event at this port sends the whole keycodes string to the target computer. The key will be released immediately after it has been pressed.")]),t._v(" "),e("li",[e("strong",[t._v("pressKey:")]),t._v(" An incoming event at this port sends the next keycode of the keycode string to the target computer. After the last character, the send position will be reset to the first character.")]),t._v(" "),e("li",[e("strong",[t._v("holdKey:")]),t._v(" An incoming event at this port holds the current key of the keycode string on the target computer (the key is pressed but not released). The holdKey function can be used together with the releaseKey function to create long key presses of single keys (e.g. of the cursor keys) to allow game control etc.")]),t._v(" "),e("li",[e("strong",[t._v("releaseKey:")]),t._v(" An incoming event at this port releases the current key of the keycode string on the target computer.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("keyCodeString [string]:")]),t._v(" A string containing keys and keycodes. Please note that this string will be replaced by an incoming string at the keycodes input port. The keycode-string can contain alphanumeric characters and special characters. Special characters are written in parentheses, for example {SHIFT}, {CTRL}, {ALT}, {BACKSPACE}, {ENTER} etc. Modifier keys like {SHIFT} or {ALT} are combined as they appear consecutively in the keystring, and are sent with the next a printable character. For example, the keystrings “{SHIFT}a” or “{CTRL}{ALT}{DEL}” are sent as single key-values to the target computer.")]),t._v(" "),e("li",[e("strong",[t._v("uniqueId:")]),t._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),e("strong",[t._v("Supports value suggestions from ARE (dynamic property)")])])]),t._v(" "),e("h2",{attrs:{id:"list-of-supported-special-key-code-identifiers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#list-of-supported-special-key-code-identifiers"}},[t._v("#")]),t._v(" List of supported special key code identifiers:")]),t._v(" "),e("ul",[e("li",{attrs:{LEFTCTRL:""}}),t._v(" "),e("li",{attrs:{LEFTSHIFT:""}}),t._v(" "),e("li",{attrs:{LEFTALT:""}},[t._v("{ALT},")]),t._v(" "),e("li",{attrs:{LEFTGUI:""}},[t._v("{WIN},")]),t._v(" "),e("li",{attrs:{RIGHTCTRL:""}},[t._v("{CTRL},")]),t._v(" "),e("li",{attrs:{RIGHTSHIFT:""}},[t._v("{SHIFT},")]),t._v(" "),e("li",{attrs:{RIGHTALT:""}},[t._v("{ALTGR},")]),t._v(" "),e("li",{attrs:{RIGHTGUI:""}}),t._v(" "),e("li",{attrs:{F1:""}}),t._v(" "),e("li",{attrs:{F2:""}}),t._v(" "),e("li",{attrs:{F3:""}}),t._v(" "),e("li",{attrs:{F4:""}}),t._v(" "),e("li",{attrs:{F5:""}}),t._v(" "),e("li",{attrs:{F6:""}}),t._v(" "),e("li",{attrs:{F7:""}}),t._v(" "),e("li",{attrs:{F8:""}}),t._v(" "),e("li",{attrs:{F9:""}}),t._v(" "),e("li",{attrs:{F10:""}}),t._v(" "),e("li",{attrs:{F11:""}}),t._v(" "),e("li",{attrs:{F12:""}}),t._v(" "),e("li",{attrs:{ENTER:""}},[t._v("{RETURN},")]),t._v(" "),e("li",{attrs:{ESCAPE:""}}),t._v(" "),e("li",{attrs:{BACKSPACE:""}}),t._v(" "),e("li",{attrs:{TAB:""}}),t._v(" "),e("li",{attrs:{PRINTSCREEN:""}},[t._v("{PRINT},")]),t._v(" "),e("li",{attrs:{PAUSE:""}}),t._v(" "),e("li",{attrs:{INS:""}},[t._v("{INSERT},")]),t._v(" "),e("li",{attrs:{POS1:""}},[t._v("{HOME},")]),t._v(" "),e("li",{attrs:{END:""}}),t._v(" "),e("li",{attrs:{DELETE:""}},[t._v("{DEL},")]),t._v(" "),e("li",{attrs:{PAGEUP:""}}),t._v(" "),e("li",{attrs:{PAGEDOWN:""}}),t._v(" "),e("li",{attrs:{RIGHTARROW:""}},[t._v("{RIGHT},")]),t._v(" "),e("li",{attrs:{LEFTARROW:""}},[t._v("{LEFT},")]),t._v(" "),e("li",{attrs:{DOWNARROW:""}},[t._v("{DOWN},")]),t._v(" "),e("li",{attrs:{UPARROW:""}},[t._v("{UP},")]),t._v(" "),e("li",{attrs:{WAIT:""}})])])}),[],!1,null,null,null);e.default=a.exports},277:function(t,e,r){t.exports=r.p+"assets/img/hid_cim.7d2b7157.jpg"},659:function(t,e,r){t.exports=r.p+"assets/img/remotekeyboard.a97bc5eb.jpg"}}]); \ No newline at end of file diff --git a/assets/js/75.4c5facad.js b/assets/js/75.0424e5c9.js similarity index 97% rename from assets/js/75.4c5facad.js rename to assets/js/75.0424e5c9.js index 42c9be3bb4..41e9a13654 100644 --- a/assets/js/75.4c5facad.js +++ b/assets/js/75.0424e5c9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{1105:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The RemoteMouse component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). The HID actuator emulates a standard USB mouse on the target computer (no special driver software is needed). The mouse x-position, y-position, press/release actions of three mouse buttons and mouse-wheel movements can be controlled via desired input values and event triggers. Note that multiple instances of the Remote components (RemoteJoystick, RemoteKeyboard and RemoteMouse) can be used concurrently with one HID actuator USB dongle, e.g. to provide different key actions for up to three different input devices on the target computer.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(657),alt:"Screenshot: RemoteMouse plugin",title:"Screenshot: RemoteMouse plugin"}})]),e._v(" "),t("p",[e._v("RemoteMouse plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),e._v(" "),t("p",[e._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [integer]:")]),e._v(" The desired X-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("mouseY [integer]:")]),e._v(" The desired Y-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("action [string]:")]),e._v(" Input port for a command string. This command string allows to modify the action of the next left mouse click. It can be set to trigger other types of mouse clicks. A command string may be composed of several items that are delimited by ‘,’ or ’ '. Following command strings are accepted:\n"),t("ul",[t("li",[t("em",[e._v("“@MOUSE: nextclick, right”:")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, double”:")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, middle”:")]),e._v(" next left click event will create a middle button click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, drag”:")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, release”:")]),e._v(" next left click event will release the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: action, enable”:")]),e._v(" enables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: action, disable”:")]),e._v(" disables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: action, toggle”:")]),e._v(" enables / disables all mouse actions.")])])])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftClick:")]),e._v(" An incoming event at this port creates a mouse button click. A left click will be generated, unless a valid “nextclick…” command has been received at the cmd input which changed the type of the click (see above).")]),e._v(" "),t("li",[t("strong",[e._v("middleClick:")]),e._v(" A click with the middle mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("rightClick:")]),e._v(" A click with the right mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("doubleClick:")]),e._v(" A double click with the left mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("dragPress:")]),e._v(" The left mouse button is pressed (but not released again).")]),e._v(" "),t("li",[t("strong",[e._v("dragRelease:")]),e._v(" The left mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" The mouse wheel is turned one position from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" The mouse wheel is turned one position to the user.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRight")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDouble")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickMiddle")]),e._v("next left click event will create a middle button click")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDrag")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRelease")]),e._v(" next left click event will release the left mouse button.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("absolutePosition [boolean]:")]),e._v(" Currently not supported. All mouse position input values are interpreted as relative changes of the position (X- and Y-movement).")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=n.exports},277:function(e,t,o){e.exports=o.p+"assets/img/hid_cim.7d2b7157.jpg"},657:function(e,t,o){e.exports=o.p+"assets/img/remotemouse.b79f6ca9.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{1107:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The RemoteMouse component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). The HID actuator emulates a standard USB mouse on the target computer (no special driver software is needed). The mouse x-position, y-position, press/release actions of three mouse buttons and mouse-wheel movements can be controlled via desired input values and event triggers. Note that multiple instances of the Remote components (RemoteJoystick, RemoteKeyboard and RemoteMouse) can be used concurrently with one HID actuator USB dongle, e.g. to provide different key actions for up to three different input devices on the target computer.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(660),alt:"Screenshot: RemoteMouse plugin",title:"Screenshot: RemoteMouse plugin"}})]),e._v(" "),t("p",[e._v("RemoteMouse plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),e._v(" "),t("p",[e._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [integer]:")]),e._v(" The desired X-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("mouseY [integer]:")]),e._v(" The desired Y-Position of the mouse. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("action [string]:")]),e._v(" Input port for a command string. This command string allows to modify the action of the next left mouse click. It can be set to trigger other types of mouse clicks. A command string may be composed of several items that are delimited by ‘,’ or ’ '. Following command strings are accepted:\n"),t("ul",[t("li",[t("em",[e._v("“@MOUSE: nextclick, right”:")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, double”:")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, middle”:")]),e._v(" next left click event will create a middle button click.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, drag”:")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: nextclick, release”:")]),e._v(" next left click event will release the left mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: action, enable”:")]),e._v(" enables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: action, disable”:")]),e._v(" disables all mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@MOUSE: action, toggle”:")]),e._v(" enables / disables all mouse actions.")])])])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftClick:")]),e._v(" An incoming event at this port creates a mouse button click. A left click will be generated, unless a valid “nextclick…” command has been received at the cmd input which changed the type of the click (see above).")]),e._v(" "),t("li",[t("strong",[e._v("middleClick:")]),e._v(" A click with the middle mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("rightClick:")]),e._v(" A click with the right mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("doubleClick:")]),e._v(" A double click with the left mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("dragPress:")]),e._v(" The left mouse button is pressed (but not released again).")]),e._v(" "),t("li",[t("strong",[e._v("dragRelease:")]),e._v(" The left mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" The mouse wheel is turned one position from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" The mouse wheel is turned one position to the user.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRight")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDouble")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickMiddle")]),e._v("next left click event will create a middle button click")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDrag")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRelease")]),e._v(" next left click event will release the left mouse button.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("absolutePosition [boolean]:")]),e._v(" Currently not supported. All mouse position input values are interpreted as relative changes of the position (X- and Y-movement).")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=n.exports},277:function(e,t,o){e.exports=o.p+"assets/img/hid_cim.7d2b7157.jpg"},660:function(e,t,o){e.exports=o.p+"assets/img/remotemouse.b79f6ca9.jpg"}}]); \ No newline at end of file diff --git a/assets/js/76.05493fb2.js b/assets/js/76.b158aecf.js similarity index 97% rename from assets/js/76.05493fb2.js rename to assets/js/76.b158aecf.js index 7d4bd97342..ba5ef94047 100644 --- a/assets/js/76.05493fb2.js +++ b/assets/js/76.b158aecf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{1110:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The RemoteTablet component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). This plugins performs similar like the RemoteMouse plugin, with the difference that the coorindates are set absolutely via the table devie, not relatively like a mouse device works. The HID actuator emulates a standard USB Tablet on the target computer (no special driver software is needed). The Tablet x-position, y-position, press/release actions of Tablet buttons and wheel movements can be controlled via desired input values and event triggers. Note that multiple instances of the Remote components (RemoteJoystick, RemoteKeyboard, RemoteMouse and RemoteTablet) can be used concurrently with one HID actuator USB dongle, e.g. to provide different key actions for up to four different input devices on the target computer.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(664),alt:"Screenshot: RemoteTablet plugin",title:"Screenshot: RemoteTablet plugin"}})]),e._v(" "),t("p",[e._v("RemoteTablet plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),e._v(" "),t("p",[e._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [integer]:")]),e._v(" The desired X-Position of the cursor. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("mouseY [integer]:")]),e._v(" The desired Y-Position of the cursor. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("action [string]:")]),e._v(" Input port for a command string. This command string allows to modify the action of the next left Tablet click and it can be set to trigger other types of Tablet clicks. Following command strings are accepted:\n"),t("ul",[t("li",[t("em",[e._v("“@Mouse: nextclick, right”:")]),e._v(" next left click event will create a right Mouse button click.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, double”:")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, middle”:")]),e._v(" next left click event will create a middle button click.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, drag”:")]),e._v(" next left click event will hold the left Mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, release”:")]),e._v(" next left click event will release the left Mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: action, enable”:")]),e._v(" enables all Mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: action, disable”:")]),e._v(" disables all Mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: action, toggle”:")]),e._v(" enables / disables all Mouse actions.")])])])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftClick:")]),e._v(" An incoming event at this port creates a Mouse button click. A left click will be generated, unless a valid “nextclick �” command has been received at the cmd input which changed the type of the click (see above).")]),e._v(" "),t("li",[t("strong",[e._v("middleClick:")]),e._v(" A click with the middle Mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("rightClick:")]),e._v(" A click with the right Mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("doubleClick:")]),e._v(" A double click with the left Mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("dragPress:")]),e._v(" The left Mouse button is pressed (but not released again).")]),e._v(" "),t("li",[t("strong",[e._v("dragRelease:")]),e._v(" The left Mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" The Mouse wheel is turned one position from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" The Mouse wheel is turned one position to the user.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRight")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDouble")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickMiddle")]),e._v("next left click event will create a middle button click")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDrag")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRelease")]),e._v(" next left click event will release the left mouse button.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("absolutePosition [boolean]:")]),e._v(" Currently not supported. All Mouse position input values are interpreted as relative changes of the position (X- and Y-movement).")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=n.exports},277:function(e,t,o){e.exports=o.p+"assets/img/hid_cim.7d2b7157.jpg"},664:function(e,t,o){e.exports=o.p+"assets/img/remotetablet.1d33ce95.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{1111:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Actuator (Subcategory: Input Device Emulation)")]),e._v(" "),t("p",[e._v("The RemoteTablet component interfaces the AsTeRICS Personal Platform to a second computer via the HID actuator CIM (USB dongle, plugged into the target computer). This plugins performs similar like the RemoteMouse plugin, with the difference that the coorindates are set absolutely via the table devie, not relatively like a mouse device works. The HID actuator emulates a standard USB Tablet on the target computer (no special driver software is needed). The Tablet x-position, y-position, press/release actions of Tablet buttons and wheel movements can be controlled via desired input values and event triggers. Note that multiple instances of the Remote components (RemoteJoystick, RemoteKeyboard, RemoteMouse and RemoteTablet) can be used concurrently with one HID actuator USB dongle, e.g. to provide different key actions for up to four different input devices on the target computer.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(666),alt:"Screenshot: RemoteTablet plugin",title:"Screenshot: RemoteTablet plugin"}})]),e._v(" "),t("p",[e._v("RemoteTablet plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The HID Actuator CIM (CIM ID 0x0101) has to be plugged into a free USB port of the target computer and the cable has to be connected to the AsTeRICS platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(277),alt:"HID Actuator CIM",title:"HID Actuator CIM"}})]),e._v(" "),t("p",[e._v("The HID Actuator plugs into the target computer and connects via Bluetooth wirelessly to the ARE")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("mouseX [integer]:")]),e._v(" The desired X-Position of the cursor. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("mouseY [integer]:")]),e._v(" The desired Y-Position of the cursor. "),t("strong",[e._v("This input port supports synchronization")])]),e._v(" "),t("li",[t("strong",[e._v("action [string]:")]),e._v(" Input port for a command string. This command string allows to modify the action of the next left Tablet click and it can be set to trigger other types of Tablet clicks. Following command strings are accepted:\n"),t("ul",[t("li",[t("em",[e._v("“@Mouse: nextclick, right”:")]),e._v(" next left click event will create a right Mouse button click.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, double”:")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, middle”:")]),e._v(" next left click event will create a middle button click.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, drag”:")]),e._v(" next left click event will hold the left Mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: nextclick, release”:")]),e._v(" next left click event will release the left Mouse button.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: action, enable”:")]),e._v(" enables all Mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: action, disable”:")]),e._v(" disables all Mouse actions.")]),e._v(" "),t("li",[t("em",[e._v("“@Mouse: action, toggle”:")]),e._v(" enables / disables all Mouse actions.")])])])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("leftClick:")]),e._v(" An incoming event at this port creates a Mouse button click. A left click will be generated, unless a valid “nextclick �” command has been received at the cmd input which changed the type of the click (see above).")]),e._v(" "),t("li",[t("strong",[e._v("middleClick:")]),e._v(" A click with the middle Mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("rightClick:")]),e._v(" A click with the right Mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("doubleClick:")]),e._v(" A double click with the left Mouse button is generated.")]),e._v(" "),t("li",[t("strong",[e._v("dragPress:")]),e._v(" The left Mouse button is pressed (but not released again).")]),e._v(" "),t("li",[t("strong",[e._v("dragRelease:")]),e._v(" The left Mouse button is released.")]),e._v(" "),t("li",[t("strong",[e._v("wheelUp:")]),e._v(" The Mouse wheel is turned one position from the user.")]),e._v(" "),t("li",[t("strong",[e._v("wheelDown:")]),e._v(" The Mouse wheel is turned one position to the user.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRight")]),e._v(" next left click event will create a right mouse button click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDouble")]),e._v(" next left click event will create a double click.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickMiddle")]),e._v("next left click event will create a middle button click")]),e._v(" "),t("li",[t("strong",[e._v("nextClickDrag")]),e._v(" next left click event will hold the left mouse button.")]),e._v(" "),t("li",[t("strong",[e._v("nextClickRelease")]),e._v(" next left click event will release the left mouse button.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("absolutePosition [boolean]:")]),e._v(" Currently not supported. All Mouse position input values are interpreted as relative changes of the position (X- and Y-movement).")]),e._v(" "),t("li",[t("strong",[e._v("uniqueId:")]),e._v(" unique number of the CIM - if more than one CIMs of the same type are used. The module flashes a LED for identification when the ID is selected. "),t("strong",[e._v("Supports value suggestions from ARE (dynamic property)")])])])])}),[],!1,null,null,null);t.default=n.exports},277:function(e,t,o){e.exports=o.p+"assets/img/hid_cim.7d2b7157.jpg"},666:function(e,t,o){e.exports=o.p+"assets/img/remotetablet.1d33ce95.jpg"}}]); \ No newline at end of file diff --git a/assets/js/77.05db69f7.js b/assets/js/77.f55be022.js similarity index 98% rename from assets/js/77.05db69f7.js rename to assets/js/77.f55be022.js index 797c09ca1e..c11ad3e825 100644 --- a/assets/js/77.05db69f7.js +++ b/assets/js/77.f55be022.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{1126:function(e,t,n){"use strict";n.r(t);var i=n(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adjustmentcurve"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adjustmentcurve"}},[e._v("#")]),e._v(" AdjustmentCurve")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Signal Shaping)")]),e._v(" "),t("p",[e._v("The AdjustmentCurve component allows transformation of an incoming signal to an outgoing signal. The signal mapping can be freely arranged in a drawing window (GUI) during runtime of the model. The resulting mapping can be saved as a curve file. The GUI is optional - an existing curve can be loaded to perform the signal mapping without the GUI.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(683),alt:"Screenshot: AdjustmentCurve plugin",title:"Screenshot: AdjustmentCurve plugin"}})]),e._v(" "),t("p",[e._v("AdjustmentCurve plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:n(684),alt:"Screenshot: AdjustmentCurve GUI during runtime",title:"Screenshot: AdjustmentCurve GUI during runtime"}})]),e._v(" "),t("p",[e._v("AdjustmentCurve GUI during runtime")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" This port receives the input values which will be mapped to output values.")]),e._v(" "),t("li",[t("strong",[e._v("CurveName [string]:")]),e._v(" When this port receives a string, the plugin tries to load a curve file of this name from the plugin’s data subdirectory (ARE/data/processor.adjustmentcurve).")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out [double]:")]),e._v(" This port provides the resulting output value.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("displayGui:")]),e._v(" An incoming event makes the GUI visible.")]),e._v(" "),t("li",[t("strong",[e._v("hideGui:")]),e._v(" An incoming event makes the GUI invisible.")]),e._v(" "),t("li",[t("strong",[e._v("loadCurve:")]),e._v(" An incoming event loads a curve of the current filename (as given in the plugin property or received from the input port “curveName”).")]),e._v(" "),t("li",[t("strong",[e._v("saveCurve:")]),e._v(" An incoming event saves the current mapping curve under the given filename. This event has teh same function like the “save”-button which is available in the GUI window of the plugin.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" The filename of the curve file. If the curve file exists in the plugin’s subdirectory (ARE/data/processor.adjustmentcurve), this curve is loaded. If the file does not exist, a new curve can be drawn in the GUI and saved under this name into the plugin’s data subfolder (ARE/data/processor.adjustmentcurve).")]),e._v(" "),t("li",[t("strong",[e._v("display GUI [boolean]:")]),e._v(" If checked, the GUI of the adjustment curve plugin will be shown and the user can modify and save the curve in real time by dragging, creating or deleting curve points.")]),e._v(" "),t("li",[t("strong",[e._v("intMin [double]:")]),e._v(" Sets the minimum value of the input range.")]),e._v(" "),t("li",[t("strong",[e._v("outMax [double]:")]),e._v(" Sets the maximum value of the input range.")]),e._v(" "),t("li",[t("strong",[e._v("outMin [double]:")]),e._v(" Sets the minimum value of the output range.")]),e._v(" "),t("li",[t("strong",[e._v("outMax [double]:")]),e._v(" Sets the maximum value of the output range.")]),e._v(" "),t("li",[t("strong",[e._v("mode [combobox]:")]),e._v(" GUI mode: “autoupdate min and max” modifies the shown input range of the GUI if incoming values exceed the current minimum or maximum, “clip to min and max” which keeps the values as set by the min/max properties.")]),e._v(" "),t("li",[t("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the font for dispaying text in the GUI.")]),e._v(" "),t("li",[t("strong",[e._v("caption [string]:")]),e._v(" The caption of the AdjustmentCurve GUI.")]),e._v(" "),t("li",[t("strong",[e._v("operationMode [integer]:")]),e._v(" Selects the mode of operation of the adjustment curve component, following modes are available:\n"),t("ul",[t("li",[t("em",[e._v("“use file and GUI”:")]),e._v(" Default mode. The x/y points of the adjustment curve are defined using the graphical user interface and are stored and loaded from a file, defined by property ‘filename’.")]),e._v(" "),t("li",[t("em",[e._v("“use property curvePoints (percent values)”:")]),e._v(" No GUI is shown, x/y points of the adjustmentcurve are defined by property ‘curvePoints’ and interpreted as relative percentatge values of given in/out min/max values. In this mode no external file is needed or used.")]),e._v(" "),t("li",[t("em",[e._v("“use property curvePoints (absolute values)”:")]),e._v(" Same mode as before, using property ‘curvePoints’ with the difference that x/y values are defined as absolute values.")])])]),e._v(" "),t("li",[t("strong",[e._v("curvePoints [string]:")]),e._v(" For operation mode ‘use property curvePoints’ this property defines the x/y points of the adjustment curve. The expected format are comma-separated tuples of double or integer values like e.g. ‘(10.0,0.0),(10,10),(100,100)’ defining 3 x/y points.")])])])}),[],!1,null,null,null);t.default=r.exports},683:function(e,t,n){e.exports=n.p+"assets/img/adjustmentcurve.de1a0708.jpg"},684:function(e,t,n){e.exports=n.p+"assets/img/adjustmentcurve1.ffe23a80.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{1125:function(e,t,n){"use strict";n.r(t);var i=n(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adjustmentcurve"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adjustmentcurve"}},[e._v("#")]),e._v(" AdjustmentCurve")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Signal Shaping)")]),e._v(" "),t("p",[e._v("The AdjustmentCurve component allows transformation of an incoming signal to an outgoing signal. The signal mapping can be freely arranged in a drawing window (GUI) during runtime of the model. The resulting mapping can be saved as a curve file. The GUI is optional - an existing curve can be loaded to perform the signal mapping without the GUI.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(683),alt:"Screenshot: AdjustmentCurve plugin",title:"Screenshot: AdjustmentCurve plugin"}})]),e._v(" "),t("p",[e._v("AdjustmentCurve plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:n(684),alt:"Screenshot: AdjustmentCurve GUI during runtime",title:"Screenshot: AdjustmentCurve GUI during runtime"}})]),e._v(" "),t("p",[e._v("AdjustmentCurve GUI during runtime")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in [double]:")]),e._v(" This port receives the input values which will be mapped to output values.")]),e._v(" "),t("li",[t("strong",[e._v("CurveName [string]:")]),e._v(" When this port receives a string, the plugin tries to load a curve file of this name from the plugin’s data subdirectory (ARE/data/processor.adjustmentcurve).")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out [double]:")]),e._v(" This port provides the resulting output value.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("displayGui:")]),e._v(" An incoming event makes the GUI visible.")]),e._v(" "),t("li",[t("strong",[e._v("hideGui:")]),e._v(" An incoming event makes the GUI invisible.")]),e._v(" "),t("li",[t("strong",[e._v("loadCurve:")]),e._v(" An incoming event loads a curve of the current filename (as given in the plugin property or received from the input port “curveName”).")]),e._v(" "),t("li",[t("strong",[e._v("saveCurve:")]),e._v(" An incoming event saves the current mapping curve under the given filename. This event has teh same function like the “save”-button which is available in the GUI window of the plugin.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("filename [string]:")]),e._v(" The filename of the curve file. If the curve file exists in the plugin’s subdirectory (ARE/data/processor.adjustmentcurve), this curve is loaded. If the file does not exist, a new curve can be drawn in the GUI and saved under this name into the plugin’s data subfolder (ARE/data/processor.adjustmentcurve).")]),e._v(" "),t("li",[t("strong",[e._v("display GUI [boolean]:")]),e._v(" If checked, the GUI of the adjustment curve plugin will be shown and the user can modify and save the curve in real time by dragging, creating or deleting curve points.")]),e._v(" "),t("li",[t("strong",[e._v("intMin [double]:")]),e._v(" Sets the minimum value of the input range.")]),e._v(" "),t("li",[t("strong",[e._v("outMax [double]:")]),e._v(" Sets the maximum value of the input range.")]),e._v(" "),t("li",[t("strong",[e._v("outMin [double]:")]),e._v(" Sets the minimum value of the output range.")]),e._v(" "),t("li",[t("strong",[e._v("outMax [double]:")]),e._v(" Sets the maximum value of the output range.")]),e._v(" "),t("li",[t("strong",[e._v("mode [combobox]:")]),e._v(" GUI mode: “autoupdate min and max” modifies the shown input range of the GUI if incoming values exceed the current minimum or maximum, “clip to min and max” which keeps the values as set by the min/max properties.")]),e._v(" "),t("li",[t("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the font for dispaying text in the GUI.")]),e._v(" "),t("li",[t("strong",[e._v("caption [string]:")]),e._v(" The caption of the AdjustmentCurve GUI.")]),e._v(" "),t("li",[t("strong",[e._v("operationMode [integer]:")]),e._v(" Selects the mode of operation of the adjustment curve component, following modes are available:\n"),t("ul",[t("li",[t("em",[e._v("“use file and GUI”:")]),e._v(" Default mode. The x/y points of the adjustment curve are defined using the graphical user interface and are stored and loaded from a file, defined by property ‘filename’.")]),e._v(" "),t("li",[t("em",[e._v("“use property curvePoints (percent values)”:")]),e._v(" No GUI is shown, x/y points of the adjustmentcurve are defined by property ‘curvePoints’ and interpreted as relative percentatge values of given in/out min/max values. In this mode no external file is needed or used.")]),e._v(" "),t("li",[t("em",[e._v("“use property curvePoints (absolute values)”:")]),e._v(" Same mode as before, using property ‘curvePoints’ with the difference that x/y values are defined as absolute values.")])])]),e._v(" "),t("li",[t("strong",[e._v("curvePoints [string]:")]),e._v(" For operation mode ‘use property curvePoints’ this property defines the x/y points of the adjustment curve. The expected format are comma-separated tuples of double or integer values like e.g. ‘(10.0,0.0),(10,10),(100,100)’ defining 3 x/y points.")])])])}),[],!1,null,null,null);t.default=r.exports},683:function(e,t,n){e.exports=n.p+"assets/img/adjustmentcurve.de1a0708.jpg"},684:function(e,t,n){e.exports=n.p+"assets/img/adjustmentcurve1.ffe23a80.jpg"}}]); \ No newline at end of file diff --git a/assets/js/78.cb9ee451.js b/assets/js/78.8bdc5bd4.js similarity index 99% rename from assets/js/78.cb9ee451.js rename to assets/js/78.8bdc5bd4.js index 6c1b26b6f8..1f133a17de 100644 --- a/assets/js/78.cb9ee451.js +++ b/assets/js/78.8bdc5bd4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{1128:function(t,e,a){"use strict";a.r(e);var n=a(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"arduino"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#arduino"}},[t._v("#")]),t._v(" Arduino")]),t._v(" "),e("p",[t._v("Component Type: Processors (Subcategory: Microcontroller Interface)")]),t._v(" "),e("p",[t._v("The Arduino component provides an interface to the Arduino Uno microcontroller and makes available analog inputs and digital inputs and outputs.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(690),alt:"Screenshot: Arduino plugin",title:"Screenshot: Arduino plugin"}})]),t._v(" "),e("h2",{attrs:{id:"online-demo-and-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#online-demo-and-tutorial"}},[t._v("#")]),t._v(" Online Demo and Tutorial")]),t._v(" "),e("p",[t._v("Please try the "),e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/asterics-microcontroller-arduino/",target:"_blank",rel:"noopener noreferrer"}},[t._v("online demo and tutorial"),e("OutboundLink")],1),t._v(" for various electronic circuits to get started and see examples of how to use it.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("An Arduino UNO microcontroller board has to be connected to an USB port. The Arduino CIM firmware must have been downloaded into the Arduino to communicate via the CIM protocol with the Arduino component.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(691),alt:"Arduino UNO board",title:"Arduino UNO board"}})]),t._v(" "),e("h3",{attrs:{id:"install-cim-on-arduino-uno"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-cim-on-arduino-uno"}},[t._v("#")]),t._v(" Install CIM on Arduino Uno")]),t._v(" "),e("h4",{attrs:{id:"windows-7-8-10"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#windows-7-8-10"}},[t._v("#")]),t._v(" Windows 7, 8, 10")]),t._v(" "),e("p",[t._v("Flash Arduino Uno")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("C:\\absolute\\path\\to\\AsTeRICS\\CIMs\\Arduino\\build> flash COM1\n")])])]),e("h4",{attrs:{id:"linux"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[t._v("#")]),t._v(" Linux")]),t._v(" "),e("p",[t._v("Install avrdude")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt-get")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" avrdude\n")])])]),e("p",[t._v("Flash Arduino Uno")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("avrdude "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-pm328p")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-P")]),t._v(" /dev/ttyACM1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-c")]),t._v(" stk500v1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-b")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-U")]),t._v(" flash:w:/absolute/path/to/AsTeRICS/CIMs/Arduino/build/Arduino.hex "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-F")]),t._v("\n")])])]),e("h4",{attrs:{id:"mac-os-x"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mac-os-x"}},[t._v("#")]),t._v(" MAC OS X")]),t._v(" "),e("p",[t._v("Install avrdude")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("brew "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" avrdude --with-usb\n")])])]),e("p",[t._v("Flash Arduino Uno")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("avrdude "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-pm328p")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-P")]),t._v(" /dev/ttyACM1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-c")]),t._v(" stk500v1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-b")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-U")]),t._v(" flash:w:/absolute/path/to/AsTeRICS/CIMs/Arduino/build/Arduino.hex "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-F")]),t._v("\n")])])]),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pwm3 [integer]:")]),t._v(" PWM channel 3, output value (range: 0-255). The output signal depends on the mode (PWM or servo PWM)")]),t._v(" "),e("li",[e("strong",[t._v("pwm5 [integer]:")]),t._v(" PWM channel 5, output value (range: 0-255). The output signal depends on the mode (PWM or servo PWM)"),e("br"),t._v(" "),e("strong",[t._v("Warning:")]),t._v(" Due to hardware limitations, either PWM or IO mode is available for pin 5 AND 6. It is not possible to use these pins individually!")]),t._v(" "),e("li",[e("strong",[t._v("pwm6 [integer]:")]),t._v(" PWM channel 6, output value (range: 0-255). The output signal depends on the mode (PWM or servo PWM)"),e("br"),t._v(" "),e("strong",[t._v("Warning:")]),t._v(" Due to hardware limitations, either PWM or IO mode is available for pin 5 AND 6. It is not possible to use these pins individually!")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("A0 - A5 [integer]:")]),t._v(" The readings of the 6 analog channels of the Arduino (0-1023)")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setPin2 - setPin13:")]),t._v(" An incoming event will set the corresponding digital output pin on the Arduino to high level (5V)")]),t._v(" "),e("li",[e("strong",[t._v("clearPin2 - clearPin13:")]),t._v(" An incoming event will set the corresponding digital output pin on the Arduino to low level (0V)")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pin2ChangedToLow - pin13ChangedToLow:")]),t._v(" This event is triggered if the corresponding input pin on the Arduino switches from high to low level (connected to 0V)")]),t._v(" "),e("li",[e("strong",[t._v("pin2ChangedToHigh - pin13ChangedToHigh:")]),t._v(" This event is triggered if the corresponding input pin on the Arduino switches from low to high level (connected to 5V)")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("uniqueID [integer]:")]),t._v(" If more than one Arduino CIM is used, this property allows the identification of the module. (dynamic property)")]),t._v(" "),e("li",[e("strong",[t._v("periodicADCUpdate [integer]:")]),t._v(" This property defines how often the ADC values are measured and put out on the ports A0-A5 (0=disable ADC)")]),t._v(" "),e("li",[e("strong",[t._v("pin2Mode - pin13Mode [integer]:")]),t._v(" This property defines the mode of the Arduino Pins. The value can be selected via a ComboBox. Possible selections are:\n"),e("ul",[e("li",[t._v("not used")]),t._v(" "),e("li",[t._v("Input without pullup resistor")]),t._v(" "),e("li",[t._v("Input with pullup resistor")]),t._v(" "),e("li",[t._v("output, default low")]),t._v(" "),e("li",[t._v("output, default high")]),t._v(" "),e("li",[t._v("PWM servo (PWM for servo driving, 1-2ms pulse), available only on pin 3,5 and 6")]),t._v(" "),e("li",[t._v("500Hz PWM (normal 0-100% PWM), available only on pin 3,5 and 6")])])])])])}),[],!1,null,null,null);e.default=s.exports},690:function(t,e,a){t.exports=a.p+"assets/img/arduino.14daa46f.jpg"},691:function(t,e,a){t.exports=a.p+"assets/img/arduino_picture.1f3fe4f7.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{1127:function(t,e,a){"use strict";a.r(e);var n=a(2),s=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"arduino"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#arduino"}},[t._v("#")]),t._v(" Arduino")]),t._v(" "),e("p",[t._v("Component Type: Processors (Subcategory: Microcontroller Interface)")]),t._v(" "),e("p",[t._v("The Arduino component provides an interface to the Arduino Uno microcontroller and makes available analog inputs and digital inputs and outputs.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(690),alt:"Screenshot: Arduino plugin",title:"Screenshot: Arduino plugin"}})]),t._v(" "),e("h2",{attrs:{id:"online-demo-and-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#online-demo-and-tutorial"}},[t._v("#")]),t._v(" Online Demo and Tutorial")]),t._v(" "),e("p",[t._v("Please try the "),e("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/webapps/asterics-microcontroller-arduino/",target:"_blank",rel:"noopener noreferrer"}},[t._v("online demo and tutorial"),e("OutboundLink")],1),t._v(" for various electronic circuits to get started and see examples of how to use it.")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("An Arduino UNO microcontroller board has to be connected to an USB port. The Arduino CIM firmware must have been downloaded into the Arduino to communicate via the CIM protocol with the Arduino component.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(691),alt:"Arduino UNO board",title:"Arduino UNO board"}})]),t._v(" "),e("h3",{attrs:{id:"install-cim-on-arduino-uno"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-cim-on-arduino-uno"}},[t._v("#")]),t._v(" Install CIM on Arduino Uno")]),t._v(" "),e("h4",{attrs:{id:"windows-7-8-10"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#windows-7-8-10"}},[t._v("#")]),t._v(" Windows 7, 8, 10")]),t._v(" "),e("p",[t._v("Flash Arduino Uno")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("C:\\absolute\\path\\to\\AsTeRICS\\CIMs\\Arduino\\build> flash COM1\n")])])]),e("h4",{attrs:{id:"linux"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[t._v("#")]),t._v(" Linux")]),t._v(" "),e("p",[t._v("Install avrdude")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt-get")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" avrdude\n")])])]),e("p",[t._v("Flash Arduino Uno")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("avrdude "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-pm328p")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-P")]),t._v(" /dev/ttyACM1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-c")]),t._v(" stk500v1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-b")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-U")]),t._v(" flash:w:/absolute/path/to/AsTeRICS/CIMs/Arduino/build/Arduino.hex "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-F")]),t._v("\n")])])]),e("h4",{attrs:{id:"mac-os-x"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mac-os-x"}},[t._v("#")]),t._v(" MAC OS X")]),t._v(" "),e("p",[t._v("Install avrdude")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("brew "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" avrdude --with-usb\n")])])]),e("p",[t._v("Flash Arduino Uno")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("avrdude "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-pm328p")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-P")]),t._v(" /dev/ttyACM1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-c")]),t._v(" stk500v1 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-b")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("115200")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-U")]),t._v(" flash:w:/absolute/path/to/AsTeRICS/CIMs/Arduino/build/Arduino.hex "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v(" \n "),e("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-F")]),t._v("\n")])])]),e("h2",{attrs:{id:"input-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[t._v("#")]),t._v(" Input Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pwm3 [integer]:")]),t._v(" PWM channel 3, output value (range: 0-255). The output signal depends on the mode (PWM or servo PWM)")]),t._v(" "),e("li",[e("strong",[t._v("pwm5 [integer]:")]),t._v(" PWM channel 5, output value (range: 0-255). The output signal depends on the mode (PWM or servo PWM)"),e("br"),t._v(" "),e("strong",[t._v("Warning:")]),t._v(" Due to hardware limitations, either PWM or IO mode is available for pin 5 AND 6. It is not possible to use these pins individually!")]),t._v(" "),e("li",[e("strong",[t._v("pwm6 [integer]:")]),t._v(" PWM channel 6, output value (range: 0-255). The output signal depends on the mode (PWM or servo PWM)"),e("br"),t._v(" "),e("strong",[t._v("Warning:")]),t._v(" Due to hardware limitations, either PWM or IO mode is available for pin 5 AND 6. It is not possible to use these pins individually!")])]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("A0 - A5 [integer]:")]),t._v(" The readings of the 6 analog channels of the Arduino (0-1023)")])]),t._v(" "),e("h2",{attrs:{id:"event-listener-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[t._v("#")]),t._v(" Event Listener Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("setPin2 - setPin13:")]),t._v(" An incoming event will set the corresponding digital output pin on the Arduino to high level (5V)")]),t._v(" "),e("li",[e("strong",[t._v("clearPin2 - clearPin13:")]),t._v(" An incoming event will set the corresponding digital output pin on the Arduino to low level (0V)")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pin2ChangedToLow - pin13ChangedToLow:")]),t._v(" This event is triggered if the corresponding input pin on the Arduino switches from high to low level (connected to 0V)")]),t._v(" "),e("li",[e("strong",[t._v("pin2ChangedToHigh - pin13ChangedToHigh:")]),t._v(" This event is triggered if the corresponding input pin on the Arduino switches from low to high level (connected to 5V)")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("uniqueID [integer]:")]),t._v(" If more than one Arduino CIM is used, this property allows the identification of the module. (dynamic property)")]),t._v(" "),e("li",[e("strong",[t._v("periodicADCUpdate [integer]:")]),t._v(" This property defines how often the ADC values are measured and put out on the ports A0-A5 (0=disable ADC)")]),t._v(" "),e("li",[e("strong",[t._v("pin2Mode - pin13Mode [integer]:")]),t._v(" This property defines the mode of the Arduino Pins. The value can be selected via a ComboBox. Possible selections are:\n"),e("ul",[e("li",[t._v("not used")]),t._v(" "),e("li",[t._v("Input without pullup resistor")]),t._v(" "),e("li",[t._v("Input with pullup resistor")]),t._v(" "),e("li",[t._v("output, default low")]),t._v(" "),e("li",[t._v("output, default high")]),t._v(" "),e("li",[t._v("PWM servo (PWM for servo driving, 1-2ms pulse), available only on pin 3,5 and 6")]),t._v(" "),e("li",[t._v("500Hz PWM (normal 0-100% PWM), available only on pin 3,5 and 6")])])])])])}),[],!1,null,null,null);e.default=s.exports},690:function(t,e,a){t.exports=a.p+"assets/img/arduino.14daa46f.jpg"},691:function(t,e,a){t.exports=a.p+"assets/img/arduino_picture.1f3fe4f7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/79.4dbd30a7.js b/assets/js/79.0df67efb.js similarity index 94% rename from assets/js/79.4dbd30a7.js rename to assets/js/79.0df67efb.js index 3bddb26730..03f03bea3a 100644 --- a/assets/js/79.4dbd30a7.js +++ b/assets/js/79.0df67efb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{1284:function(e,t,o){"use strict";o.r(t);var r=o(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"fabicronusmax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabicronusmax"}},[e._v("#")]),e._v(" FabiCronusMax")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Microcontroller Interface)")]),e._v(" "),t("p",[e._v("This component provides an interface for the FABI controller and the CronsuMax USB stick. It enables the programming process of the FABI as well as the configuration for all supported gaming consoles. It is possible to configure the buttons which are connected to the FABI controller and store the set to the built-in EEPROM. Via the plugin the CronusMax stick controls the selected gaming device through the external buttons connected to the FABI. The set of buttons can be defined in a configuration file and modified for each game and console.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(864),alt:"Screenshot: FabiCronusMax plugin",title:"Screenshot: FabiCronusMax plugin"}})]),e._v(" "),t("p",[e._v("FabiCronusMax plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:o(865),alt:"Screenshot: CronusMax plugin",title:"Screenshot: CronusMax plugin"}})]),e._v(" "),t("p",[e._v("CronusMax USB Stick")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Plugin requires a FABI2.0 compatible Version as well as the right COM Port. The Baudrate for the FABI controller is predefined at 9600 Baud. Additionally a CronusMax device is necessary as well as the software GTuner ("),t("a",{attrs:{href:"http://controllermax.com/downloads/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GTuner download"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("InConsole [string]:")]),e._v(" Input of the selected Console (e.g. PS3)")]),e._v(" "),t("li",[t("strong",[e._v("InGame [string]:")]),e._v(" Input of the selected Game (e.g. Need For Speed)")]),e._v(" "),t("li",[t("strong",[e._v("InMode [Integer]:")]),e._v(" Input of the selected Mode (e.g. 1)")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("OutConsole [string]:")]),e._v(" Output of the selected Console (e.g. PS3)")]),e._v(" "),t("li",[t("strong",[e._v("OutGame [string]:")]),e._v(" Output of the selected Game (e.g. Need For Speed)")]),e._v(" "),t("li",[t("strong",[e._v("OutMode [Integer]:")]),e._v(" Output of the selected Mode (e.g. 1)")]),e._v(" "),t("li",[t("strong",[e._v("OutModel [string]:")]),e._v(" Output for the next model to be started")]),e._v(" "),t("li",[t("strong",[e._v("OutButtons [string]:")]),e._v(" Output for the buttons in current mode, separated through a comma ‘,’")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ModeSwitcher:")]),e._v(" Switch between the modes.")]),e._v(" "),t("li",[t("strong",[e._v("GameSwitcher:")]),e._v(" Switch between the Games.")]),e._v(" "),t("li",[t("strong",[e._v("ConsoleSwitcher:")]),e._v(" Switch between the consoles.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Busy:")]),e._v(" Triggered if Fabi is busy.")]),e._v(" "),t("li",[t("strong",[e._v("Ready:")]),e._v(" Triggered if Fabi is ready.")]),e._v(" "),t("li",[t("strong",[e._v("loadModel:")]),e._v(" Triggered to load new model.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ComPort [integer]:")]),e._v(" COM Port of FABI.")]),e._v(" "),t("li",[t("strong",[e._v("ModeFilePath [string]:")]),e._v(" Path to the file with the configuration.")])]),e._v(" "),t("h2",{attrs:{id:"configuration-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configuration-file"}},[e._v("#")]),e._v(" Configuration file")]),e._v(" "),t("p",[e._v("The configuration file has to be a *.CSV file and the data has to be separated with ‘,’. The following two lines show the structure of a configuration file:")]),e._v(" "),t("p",[e._v("XBOXONE, BattleField, Mode, KEY_A, KEY_B, Mode, KEY_1, KEY_2"),t("br"),e._v("\nXBOX360, Formel1, Mode, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E")]),e._v(" "),t("p",[e._v("The first field defines the console and the second one defines the game. “Mode” signals that the following fields are the keycodes which are connected to the buttons in the right order. There can be up to 10 modes per game and up to 6 buttons per mode.")])])}),[],!1,null,null,null);t.default=n.exports},864:function(e,t,o){e.exports=o.p+"assets/img/fabicronusmax.5b571bee.png"},865:function(e,t,o){e.exports=o.p+"assets/img/cronusmax.f922334b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{1161:function(e,t,o){"use strict";o.r(t);var r=o(2),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"fabicronusmax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fabicronusmax"}},[e._v("#")]),e._v(" FabiCronusMax")]),e._v(" "),t("p",[e._v("Component Type: Processor (Subcategory: Microcontroller Interface)")]),e._v(" "),t("p",[e._v("This component provides an interface for the FABI controller and the CronsuMax USB stick. It enables the programming process of the FABI as well as the configuration for all supported gaming consoles. It is possible to configure the buttons which are connected to the FABI controller and store the set to the built-in EEPROM. Via the plugin the CronusMax stick controls the selected gaming device through the external buttons connected to the FABI. The set of buttons can be defined in a configuration file and modified for each game and console.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(724),alt:"Screenshot: FabiCronusMax plugin",title:"Screenshot: FabiCronusMax plugin"}})]),e._v(" "),t("p",[e._v("FabiCronusMax plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:o(725),alt:"Screenshot: CronusMax plugin",title:"Screenshot: CronusMax plugin"}})]),e._v(" "),t("p",[e._v("CronusMax USB Stick")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Plugin requires a FABI2.0 compatible Version as well as the right COM Port. The Baudrate for the FABI controller is predefined at 9600 Baud. Additionally a CronusMax device is necessary as well as the software GTuner ("),t("a",{attrs:{href:"http://controllermax.com/downloads/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GTuner download"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("InConsole [string]:")]),e._v(" Input of the selected Console (e.g. PS3)")]),e._v(" "),t("li",[t("strong",[e._v("InGame [string]:")]),e._v(" Input of the selected Game (e.g. Need For Speed)")]),e._v(" "),t("li",[t("strong",[e._v("InMode [Integer]:")]),e._v(" Input of the selected Mode (e.g. 1)")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("OutConsole [string]:")]),e._v(" Output of the selected Console (e.g. PS3)")]),e._v(" "),t("li",[t("strong",[e._v("OutGame [string]:")]),e._v(" Output of the selected Game (e.g. Need For Speed)")]),e._v(" "),t("li",[t("strong",[e._v("OutMode [Integer]:")]),e._v(" Output of the selected Mode (e.g. 1)")]),e._v(" "),t("li",[t("strong",[e._v("OutModel [string]:")]),e._v(" Output for the next model to be started")]),e._v(" "),t("li",[t("strong",[e._v("OutButtons [string]:")]),e._v(" Output for the buttons in current mode, separated through a comma ‘,’")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ModeSwitcher:")]),e._v(" Switch between the modes.")]),e._v(" "),t("li",[t("strong",[e._v("GameSwitcher:")]),e._v(" Switch between the Games.")]),e._v(" "),t("li",[t("strong",[e._v("ConsoleSwitcher:")]),e._v(" Switch between the consoles.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Busy:")]),e._v(" Triggered if Fabi is busy.")]),e._v(" "),t("li",[t("strong",[e._v("Ready:")]),e._v(" Triggered if Fabi is ready.")]),e._v(" "),t("li",[t("strong",[e._v("loadModel:")]),e._v(" Triggered to load new model.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ComPort [integer]:")]),e._v(" COM Port of FABI.")]),e._v(" "),t("li",[t("strong",[e._v("ModeFilePath [string]:")]),e._v(" Path to the file with the configuration.")])]),e._v(" "),t("h2",{attrs:{id:"configuration-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configuration-file"}},[e._v("#")]),e._v(" Configuration file")]),e._v(" "),t("p",[e._v("The configuration file has to be a *.CSV file and the data has to be separated with ‘,’. The following two lines show the structure of a configuration file:")]),e._v(" "),t("p",[e._v("XBOXONE, BattleField, Mode, KEY_A, KEY_B, Mode, KEY_1, KEY_2"),t("br"),e._v("\nXBOX360, Formel1, Mode, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E")]),e._v(" "),t("p",[e._v("The first field defines the console and the second one defines the game. “Mode” signals that the following fields are the keycodes which are connected to the buttons in the right order. There can be up to 10 modes per game and up to 6 buttons per mode.")])])}),[],!1,null,null,null);t.default=n.exports},724:function(e,t,o){e.exports=o.p+"assets/img/fabicronusmax.5b571bee.png"},725:function(e,t,o){e.exports=o.p+"assets/img/cronusmax.f922334b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/80.e3831e04.js b/assets/js/80.28c4feab.js similarity index 95% rename from assets/js/80.e3831e04.js rename to assets/js/80.28c4feab.js index 32eadd7bb6..139cc6a9b1 100644 --- a/assets/js/80.e3831e04.js +++ b/assets/js/80.28c4feab.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{1170:function(e,t,s){"use strict";s.r(t);var o=s(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"motionanalysis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#motionanalysis"}},[e._v("#")]),e._v(" MotionAnalysis")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("The MotionAnalysis Plugin procides a visual feedback for one or more channels. With this Plugin it is able to save a movement and compare it to later movements. To test this plugin MotionAnalysis_Example.acs can be used.")]),e._v(" "),t("h3",{attrs:{id:"save"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[e._v("#")]),e._v(" Save")]),e._v(" "),t("p",[e._v("To save an exercise the save button has to be pressed. A new file with the name of the filename properity is created. To start the start button has to be pressed. The save funktion can be paused when the stop button is pressed. To restart the start button has to be pressed. To stop the save funktion the stopsave button has to be pressed.")]),e._v(" "),t("h3",{attrs:{id:"load"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[e._v("#")]),e._v(" Load")]),e._v(" "),t("p",[e._v("To load a file the load button has to be pressed. Then the explorer is opened an a file can be choosen. If a file is selected it is atomatically loaded in the graph. To start an exercise the start button has to be pressed. The exercies stops automatically when it is finished and a result is sent to the result output port.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(730),alt:"MotionAnalysis plugin",title:"MotionAnalysis plugin"}})]),e._v(" "),t("p",[e._v("MotionAnalysis plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:s(731),alt:"Screenshot: MotionAnalysis plugin",title:"Screenshot: MotionAnalysis plugin"}})]),e._v(" "),t("p",[e._v("Screenshot: MotionAnalysis plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("channel1 [double]:")]),e._v(" The input signal for channel one.")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [double]:")]),e._v(" The input signal for channel two.")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [double]:")]),e._v(" The input signal for channel three.")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [double]:")]),e._v(" The input signal for channel four.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("result [string]:")]),e._v(" Sends the match between the loaded movement and the aktual movement.")]),e._v(" "),t("li",[t("strong",[e._v("percent [double]:")]),e._v(" Sends the actual position in percent of time.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("displayBuffer [integer]:")]),e._v(" This property value specifies how often the oscilloscope window is drawn. For example if the display buffer size is 0, the oscilloscope traces are redrawn at every incoming value. If the display buffer size is set to 10, 10 values are stored in a buffer and drawn at once as the tenth value is received. This significantly reduces the computational resources spent for drawing the oscilloscope, which is useful especially at high update rates.")]),e._v(" "),t("li",[t("strong",[e._v("drawingMode [integer]:")]),e._v(" Declares whether the y axis is adapting to mininum and maximum values automatically or to stay in preset bounds. This only affects the drawchannel not the loadchannel or the save option.")]),e._v(" "),t("li",[t("strong",[e._v("displayMode [integer]:")]),e._v(" Affects the time when oscilloscope is redrawn. Can be set to the values “redraw on incoming samples” or “redraw periodically”.")]),e._v(" "),t("li",[t("strong",[e._v("drawInterval [integer]:")]),e._v(" Redraw interval in milliseconds (if periodic drawing is used).")]),e._v(" "),t("li",[t("strong",[e._v("min [integer]:")]),e._v(" Preset minimum value for y axis of oscilloscope.")]),e._v(" "),t("li",[t("strong",[e._v("max [integer]:")]),e._v(" Preset maximum value for y axis of oscilloscope.")]),e._v(" "),t("li",[t("strong",[e._v("gridColor [integer]:")]),e._v(" The colour of the value-grid.")]),e._v(" "),t("li",[t("strong",[e._v("loadchannelColor [integer]:")]),e._v(" The colour of the signal trace for the loaded value.")]),e._v(" "),t("li",[t("strong",[e._v("drawchannelColor [integer]:")]),e._v(" The colour of the signal trace for the actual value.")]),e._v(" "),t("li",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" The colour of the background of the oscilloscope window.")]),e._v(" "),t("li",[t("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the oscilloscope’s caption.")]),e._v(" "),t("li",[t("strong",[e._v("caption [string]:")]),e._v(" The caption to be displayed on the oscilloscope.")]),e._v(" "),t("li",[t("strong",[e._v("filename [string]:")]),e._v(" The name of the saved file. There is added a time and date to not overwrite a file.")]),e._v(" "),t("li",[t("strong",[e._v("filepath [string]:")]),e._v(" The path in wich the files are saved.")]),e._v(" "),t("li",[t("strong",[e._v("diviation [integer]:")]),e._v(" The allowed diviation of the loaded value and the actual value in one point of time.")]),e._v(" "),t("li",[t("strong",[e._v("limitation [integer]:")]),e._v(" The limitation of how much percent of match must be reached to raise an event.")])]),e._v(" "),t("h2",{attrs:{id:"eventlistener"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventlistener"}},[e._v("#")]),e._v(" EventListener")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Start:")]),e._v(" Starts a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Stop:")]),e._v(" Stops a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Save:")]),e._v(" Starts to save a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Stopsave:")]),e._v(" Stops to save a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Load:")]),e._v(" Loads a movement.")])]),e._v(" "),t("h2",{attrs:{id:"eventtrigger"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventtrigger"}},[e._v("#")]),e._v(" EventTrigger")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Inrange:")]),e._v(" Raises a event when the result is higher than the limitation.")])])])}),[],!1,null,null,null);t.default=a.exports},730:function(e,t,s){e.exports=s.p+"assets/img/motionanalysis_plugin.53fc867f.jpg"},731:function(e,t,s){e.exports=s.p+"assets/img/motioinanalysis_result.732edd21.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{1171:function(e,t,s){"use strict";s.r(t);var o=s(2),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"motionanalysis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#motionanalysis"}},[e._v("#")]),e._v(" MotionAnalysis")]),e._v(" "),t("h2",{attrs:{id:"component-type-processor-subcategory-dsp-and-feature-detection"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#component-type-processor-subcategory-dsp-and-feature-detection"}},[e._v("#")]),e._v(" Component Type: Processor (Subcategory: DSP and Feature Detection)")]),e._v(" "),t("p",[e._v("The MotionAnalysis Plugin procides a visual feedback for one or more channels. With this Plugin it is able to save a movement and compare it to later movements. To test this plugin MotionAnalysis_Example.acs can be used.")]),e._v(" "),t("h3",{attrs:{id:"save"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[e._v("#")]),e._v(" Save")]),e._v(" "),t("p",[e._v("To save an exercise the save button has to be pressed. A new file with the name of the filename properity is created. To start the start button has to be pressed. The save funktion can be paused when the stop button is pressed. To restart the start button has to be pressed. To stop the save funktion the stopsave button has to be pressed.")]),e._v(" "),t("h3",{attrs:{id:"load"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[e._v("#")]),e._v(" Load")]),e._v(" "),t("p",[e._v("To load a file the load button has to be pressed. Then the explorer is opened an a file can be choosen. If a file is selected it is atomatically loaded in the graph. To start an exercise the start button has to be pressed. The exercies stops automatically when it is finished and a result is sent to the result output port.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(733),alt:"MotionAnalysis plugin",title:"MotionAnalysis plugin"}})]),e._v(" "),t("p",[e._v("MotionAnalysis plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:s(734),alt:"Screenshot: MotionAnalysis plugin",title:"Screenshot: MotionAnalysis plugin"}})]),e._v(" "),t("p",[e._v("Screenshot: MotionAnalysis plugin")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("channel1 [double]:")]),e._v(" The input signal for channel one.")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [double]:")]),e._v(" The input signal for channel two.")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [double]:")]),e._v(" The input signal for channel three.")]),e._v(" "),t("li",[t("strong",[e._v("channel2 [double]:")]),e._v(" The input signal for channel four.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("result [string]:")]),e._v(" Sends the match between the loaded movement and the aktual movement.")]),e._v(" "),t("li",[t("strong",[e._v("percent [double]:")]),e._v(" Sends the actual position in percent of time.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("displayBuffer [integer]:")]),e._v(" This property value specifies how often the oscilloscope window is drawn. For example if the display buffer size is 0, the oscilloscope traces are redrawn at every incoming value. If the display buffer size is set to 10, 10 values are stored in a buffer and drawn at once as the tenth value is received. This significantly reduces the computational resources spent for drawing the oscilloscope, which is useful especially at high update rates.")]),e._v(" "),t("li",[t("strong",[e._v("drawingMode [integer]:")]),e._v(" Declares whether the y axis is adapting to mininum and maximum values automatically or to stay in preset bounds. This only affects the drawchannel not the loadchannel or the save option.")]),e._v(" "),t("li",[t("strong",[e._v("displayMode [integer]:")]),e._v(" Affects the time when oscilloscope is redrawn. Can be set to the values “redraw on incoming samples” or “redraw periodically”.")]),e._v(" "),t("li",[t("strong",[e._v("drawInterval [integer]:")]),e._v(" Redraw interval in milliseconds (if periodic drawing is used).")]),e._v(" "),t("li",[t("strong",[e._v("min [integer]:")]),e._v(" Preset minimum value for y axis of oscilloscope.")]),e._v(" "),t("li",[t("strong",[e._v("max [integer]:")]),e._v(" Preset maximum value for y axis of oscilloscope.")]),e._v(" "),t("li",[t("strong",[e._v("gridColor [integer]:")]),e._v(" The colour of the value-grid.")]),e._v(" "),t("li",[t("strong",[e._v("loadchannelColor [integer]:")]),e._v(" The colour of the signal trace for the loaded value.")]),e._v(" "),t("li",[t("strong",[e._v("drawchannelColor [integer]:")]),e._v(" The colour of the signal trace for the actual value.")]),e._v(" "),t("li",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" The colour of the background of the oscilloscope window.")]),e._v(" "),t("li",[t("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the oscilloscope’s caption.")]),e._v(" "),t("li",[t("strong",[e._v("caption [string]:")]),e._v(" The caption to be displayed on the oscilloscope.")]),e._v(" "),t("li",[t("strong",[e._v("filename [string]:")]),e._v(" The name of the saved file. There is added a time and date to not overwrite a file.")]),e._v(" "),t("li",[t("strong",[e._v("filepath [string]:")]),e._v(" The path in wich the files are saved.")]),e._v(" "),t("li",[t("strong",[e._v("diviation [integer]:")]),e._v(" The allowed diviation of the loaded value and the actual value in one point of time.")]),e._v(" "),t("li",[t("strong",[e._v("limitation [integer]:")]),e._v(" The limitation of how much percent of match must be reached to raise an event.")])]),e._v(" "),t("h2",{attrs:{id:"eventlistener"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventlistener"}},[e._v("#")]),e._v(" EventListener")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Start:")]),e._v(" Starts a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Stop:")]),e._v(" Stops a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Save:")]),e._v(" Starts to save a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Stopsave:")]),e._v(" Stops to save a movement.")]),e._v(" "),t("li",[t("strong",[e._v("Load:")]),e._v(" Loads a movement.")])]),e._v(" "),t("h2",{attrs:{id:"eventtrigger"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eventtrigger"}},[e._v("#")]),e._v(" EventTrigger")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Inrange:")]),e._v(" Raises a event when the result is higher than the limitation.")])])])}),[],!1,null,null,null);t.default=a.exports},733:function(e,t,s){e.exports=s.p+"assets/img/motionanalysis_plugin.53fc867f.jpg"},734:function(e,t,s){e.exports=s.p+"assets/img/motioinanalysis_result.732edd21.jpg"}}]); \ No newline at end of file diff --git a/assets/js/81.7222403a.js b/assets/js/81.08669fa6.js similarity index 98% rename from assets/js/81.7222403a.js rename to assets/js/81.08669fa6.js index 378d9d0351..69acabaced 100644 --- a/assets/js/81.7222403a.js +++ b/assets/js/81.08669fa6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{1178:function(e,t,n){"use strict";n.r(t);var i=n(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"openhab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openhab"}},[e._v("#")]),e._v(" openHAB")]),e._v(" "),t("p",[e._v("Component Type: Processors (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The openHAB component interfaces to an openHAB instance, which is used to configure and use a home control environment.\nUsually, openHAB is stand-alone.\nTherefore it has its own GUI, many many possible interfacing solutions (called bindings) and a configuration tool (based on Eclipse).\nMore information is available here: "),t("a",{attrs:{href:"https://www.openhab.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("openHAB"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("This component uses the provided "),t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("REST API of openHAB"),t("OutboundLink")],1),e._v(" to read and write the state of different nodes (called items) within the openHAB system.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(739),alt:"Screenshot: openHAB demo with different options (./light, heating, temperature, ...)",title:"Screenshot: openHAB demo with different options (light, heating, temperature, ...)"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The plugin expects")]),e._v(" "),t("ul",[t("li",[e._v("a functional "),t("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[e._v("openHAB installation"),t("OutboundLink")],1)])]),e._v(" "),t("h3",{attrs:{id:"start-openhab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#start-openhab"}},[e._v("#")]),e._v(" Start OpenHAB")]),e._v(" "),t("p",[e._v("To run openHAB without password authentication, start openHAB with this command:")]),e._v(" "),t("h4",{attrs:{id:"linux"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),t("p",[e._v("On a debian-based system this should be:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" openhab-cli start\n")])])]),t("h4",{attrs:{id:"windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[e._v("#")]),e._v(" Windows")]),e._v(" "),t("p",[e._v("in the openHAB folder, double click on "),t("code",[e._v("start_debug.sh")])]),e._v(" "),t("h2",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Install openHAB"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Start openHab")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/packages.html#demo-package-sample-setup",target:"_blank",rel:"noopener noreferrer"}},[e._v("Create demo package"),t("OutboundLink")],1),e._v(" at first time startup")]),e._v(" "),t("li",[e._v("Open the model "),t("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=https://127.0.0.1:8083&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/processors/openHAB_simple_test.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/models/componentTests/processors/openHAB_simple_test.acs"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Upload/Start model")]),e._v(" "),t("li",[e._v("Open "),t("a",{attrs:{href:"http://localhost:8080/basicui/app?w=GF_Kitchen&sitemap=demo",target:"_blank",rel:"noopener noreferrer"}},[e._v("Basic UI of the Kitchen"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("In ARE GUI: Click on "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling ON")]),e._v(" or "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling OFF")]),e._v(". You should see the switching of the item in the basic UI accordingly.")]),e._v(" "),t("li",[e._v("Change a value in the basic UI, you should get an event in the event visualizer of the ARE GUI.")])]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("item1in [string]:")]),e._v(" New state for item1 (the corresponding name is set in the property item1in). For example: set the property item1in to Light_GF_Bed_Ceiling and send “ON” to the input port to switch on the light which is connected to this item.")]),e._v(" "),t("li",[t("strong",[e._v("item2in [string]:")]),e._v(" New state for item2 (the corresponding name is set in the property item2in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item3in [string]:")]),e._v(" New state for item3 (the corresponding name is set in the property item3in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item4in [string]:")]),e._v(" New state for item4 (the corresponding name is set in the property item4in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item5in [string]:")]),e._v(" New state for item5 (the corresponding name is set in the property item5in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item6in [string]:")]),e._v(" New state for item6 (the corresponding name is set in the property item6in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("actionString [string]:")]),e._v(" Action String syntax is as follows: "),t("code",[e._v("@OPENHAB:,")]),e._v(" or "),t("code",[e._v(",")]),e._v(".\nExample: "),t("code",[e._v("@OPENHAB:Light_GF_Kitchen_Ceiling,ON")]),e._v(" or "),t("code",[e._v("Light_GF_Kitchen_Ceiling,ON")]),e._v(". For allowed item values, check the "),t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/items.html#type",target:"_blank",rel:"noopener noreferrer"}},[e._v("Item Type Description"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("item1 [string] - item6 [string]:")]),e._v(" The current state of the items1 to items6, corresponding to the item names of properties item1out to item6out")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("item1change - item6change:")]),e._v(" This event is triggered if the corresponding item (set by the properties item1event to item6event) changes its state. The initial value is NOT raising an event.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("updaterate [integer]:")]),e._v(" Time in milliseconds, which will ellapse between each status update. Default: 1s (1000ms)")]),e._v(" "),t("li",[t("strong",[e._v("hostname [string]:")]),e._v(" Hostname to connect to. It is possible to use a hostname, an IP adress or a FQDN")]),e._v(" "),t("li",[t("strong",[e._v("port [string]:")]),e._v(" Port of the openHAB installation. Defaults: 8080 for HTTP, 8443 for HTTPS. Please take care of any blocking firewall.")]),e._v(" "),t("li",[t("strong",[e._v("protocol [string]:")]),e._v(" Protocol to connect to openHAB. Either http or https may be used (recommended: https).")]),e._v(" "),t("li",[t("strong",[e._v("lazyCertificates [boolean]:")]),e._v(" If this property is set, any SSL related certificate check will be removed for the given hostname. This affects the hole ARE.")]),e._v(" "),t("li",[t("strong",[e._v("username [string]:")]),e._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the username here.")]),e._v(" "),t("li",[t("strong",[e._v("password [string]:")]),e._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the password here.")]),e._v(" "),t("li",[t("strong",[e._v("item1in [string]:")]),e._v(" Item name, which is used for the input port 1 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item2in [string]:")]),e._v(" Item name, which is used for the input port 2 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item3in [string]:")]),e._v(" Item name, which is used for the input port 3 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item4in [string]:")]),e._v(" Item name, which is used for the input port 4 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item5in [string]:")]),e._v(" Item name, which is used for the input port 5 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item6in [string]:")]),e._v(" Item name, which is used for the input port 6 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item1out [string]:")]),e._v(" Item name, which is used for the output port 1 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item2out [string]:")]),e._v(" Item name, which is used for the output port 2 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item3out [string]:")]),e._v(" Item name, which is used for the output port 3 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item4out [string]:")]),e._v(" Item name, which is used for the output port 4 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item5out [string]:")]),e._v(" Item name, which is used for the output port 5 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item6out [string]:")]),e._v(" Item name, which is used for the output port 6 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item1event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item1change)")]),e._v(" "),t("li",[t("strong",[e._v("item2event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item2change)")]),e._v(" "),t("li",[t("strong",[e._v("item3event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item3change)")]),e._v(" "),t("li",[t("strong",[e._v("item4event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item4change)")]),e._v(" "),t("li",[t("strong",[e._v("item5event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item5change)")]),e._v(" "),t("li",[t("strong",[e._v("item6event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item6change)")])]),e._v(" "),t("h2",{attrs:{id:"additional-hints"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#additional-hints"}},[e._v("#")]),e._v(" Additional hints")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html#rest-api-documentation",target:"_blank",rel:"noopener noreferrer"}},[e._v("Interactive openHAB REST documentation"),t("OutboundLink")],1),e._v(": Install the add-on "),t("code",[e._v("REST Documentation")]),e._v(". On the welcome screen of openHAB, you will now see a new interface called “REST API” where you can easily see the documentation of the REST API and test it!")]),e._v(" "),t("li",[e._v("To find and copy an item name you can click on the copy icon "),t("img",{attrs:{src:n(740),alt:"Screenshot of Paper UI item configurations"}}),e._v(" of an item in the "),t("a",{attrs:{href:"http://localhost:8080/paperui/index.html#/configuration/items",target:"_blank",rel:"noopener noreferrer"}},[e._v("Paper UI"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("The model will stop with an error message, if one of the item names in the properties is not found.")]),e._v(" "),t("li",[e._v("There is no feedback for checking a successful state change. E.g.: if your write to a read-only item (temperature sensor), nothing will happen")]),e._v(" "),t("li",[e._v("Use the "),t("em",[e._v("lazyCertificates")]),e._v(" property with care, it will disable a major part of the SSL handshaking for the whole Java session. It should be limited to the given hostname only, but without warranty.")]),e._v(" "),t("li",[e._v("The username/password combination from the properties is saved in PLAINTEXT in the model file, so handle it with care.")])])])}),[],!1,null,null,null);t.default=r.exports},739:function(e,t,n){e.exports=n.p+"assets/img/openhab_overview.c07c28f2.png"},740:function(e,t){e.exports="data:image/png;base64,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"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{1175:function(e,t,n){"use strict";n.r(t);var i=n(2),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"openhab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openhab"}},[e._v("#")]),e._v(" openHAB")]),e._v(" "),t("p",[e._v("Component Type: Processors (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The openHAB component interfaces to an openHAB instance, which is used to configure and use a home control environment.\nUsually, openHAB is stand-alone.\nTherefore it has its own GUI, many many possible interfacing solutions (called bindings) and a configuration tool (based on Eclipse).\nMore information is available here: "),t("a",{attrs:{href:"https://www.openhab.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("openHAB"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("This component uses the provided "),t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("REST API of openHAB"),t("OutboundLink")],1),e._v(" to read and write the state of different nodes (called items) within the openHAB system.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(738),alt:"Screenshot: openHAB demo with different options (./light, heating, temperature, ...)",title:"Screenshot: openHAB demo with different options (light, heating, temperature, ...)"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The plugin expects")]),e._v(" "),t("ul",[t("li",[e._v("a functional "),t("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[e._v("openHAB installation"),t("OutboundLink")],1)])]),e._v(" "),t("h3",{attrs:{id:"start-openhab"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#start-openhab"}},[e._v("#")]),e._v(" Start OpenHAB")]),e._v(" "),t("p",[e._v("To run openHAB without password authentication, start openHAB with this command:")]),e._v(" "),t("h4",{attrs:{id:"linux"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),t("p",[e._v("On a debian-based system this should be:")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" openhab-cli start\n")])])]),t("h4",{attrs:{id:"windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[e._v("#")]),e._v(" Windows")]),e._v(" "),t("p",[e._v("in the openHAB folder, double click on "),t("code",[e._v("start_debug.sh")])]),e._v(" "),t("h2",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://www.openhab.org/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Install openHAB"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Start openHab")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/packages.html#demo-package-sample-setup",target:"_blank",rel:"noopener noreferrer"}},[e._v("Create demo package"),t("OutboundLink")],1),e._v(" at first time startup")]),e._v(" "),t("li",[e._v("Open the model "),t("a",{attrs:{href:"http://webacs.asterics.eu/?areBaseURI=https://127.0.0.1:8083&openFile=https://raw.githubusercontent.com/asterics/AsTeRICS/master/bin/ARE/models/componentTests/processors/openHAB_simple_test.acs",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARE/models/componentTests/processors/openHAB_simple_test.acs"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Upload/Start model")]),e._v(" "),t("li",[e._v("Open "),t("a",{attrs:{href:"http://localhost:8080/basicui/app?w=GF_Kitchen&sitemap=demo",target:"_blank",rel:"noopener noreferrer"}},[e._v("Basic UI of the Kitchen"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("In ARE GUI: Click on "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling ON")]),e._v(" or "),t("code",[e._v("Item Light_GF_Kitchen_Ceiling OFF")]),e._v(". You should see the switching of the item in the basic UI accordingly.")]),e._v(" "),t("li",[e._v("Change a value in the basic UI, you should get an event in the event visualizer of the ARE GUI.")])]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("item1in [string]:")]),e._v(" New state for item1 (the corresponding name is set in the property item1in). For example: set the property item1in to Light_GF_Bed_Ceiling and send “ON” to the input port to switch on the light which is connected to this item.")]),e._v(" "),t("li",[t("strong",[e._v("item2in [string]:")]),e._v(" New state for item2 (the corresponding name is set in the property item2in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item3in [string]:")]),e._v(" New state for item3 (the corresponding name is set in the property item3in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item4in [string]:")]),e._v(" New state for item4 (the corresponding name is set in the property item4in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item5in [string]:")]),e._v(" New state for item5 (the corresponding name is set in the property item5in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("item6in [string]:")]),e._v(" New state for item6 (the corresponding name is set in the property item6in). Example: see input port item1in")]),e._v(" "),t("li",[t("strong",[e._v("actionString [string]:")]),e._v(" Action String syntax is as follows: "),t("code",[e._v("@OPENHAB:,")]),e._v(" or "),t("code",[e._v(",")]),e._v(".\nExample: "),t("code",[e._v("@OPENHAB:Light_GF_Kitchen_Ceiling,ON")]),e._v(" or "),t("code",[e._v("Light_GF_Kitchen_Ceiling,ON")]),e._v(". For allowed item values, check the "),t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/items.html#type",target:"_blank",rel:"noopener noreferrer"}},[e._v("Item Type Description"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("item1 [string] - item6 [string]:")]),e._v(" The current state of the items1 to items6, corresponding to the item names of properties item1out to item6out")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("item1change - item6change:")]),e._v(" This event is triggered if the corresponding item (set by the properties item1event to item6event) changes its state. The initial value is NOT raising an event.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("updaterate [integer]:")]),e._v(" Time in milliseconds, which will ellapse between each status update. Default: 1s (1000ms)")]),e._v(" "),t("li",[t("strong",[e._v("hostname [string]:")]),e._v(" Hostname to connect to. It is possible to use a hostname, an IP adress or a FQDN")]),e._v(" "),t("li",[t("strong",[e._v("port [string]:")]),e._v(" Port of the openHAB installation. Defaults: 8080 for HTTP, 8443 for HTTPS. Please take care of any blocking firewall.")]),e._v(" "),t("li",[t("strong",[e._v("protocol [string]:")]),e._v(" Protocol to connect to openHAB. Either http or https may be used (recommended: https).")]),e._v(" "),t("li",[t("strong",[e._v("lazyCertificates [boolean]:")]),e._v(" If this property is set, any SSL related certificate check will be removed for the given hostname. This affects the hole ARE.")]),e._v(" "),t("li",[t("strong",[e._v("username [string]:")]),e._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the username here.")]),e._v(" "),t("li",[t("strong",[e._v("password [string]:")]),e._v(" This property is used, if the HTTP basic authentication of openHAB is used. Provide the password here.")]),e._v(" "),t("li",[t("strong",[e._v("item1in [string]:")]),e._v(" Item name, which is used for the input port 1 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item2in [string]:")]),e._v(" Item name, which is used for the input port 2 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item3in [string]:")]),e._v(" Item name, which is used for the input port 3 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item4in [string]:")]),e._v(" Item name, which is used for the input port 4 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item5in [string]:")]),e._v(" Item name, which is used for the input port 5 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item6in [string]:")]),e._v(" Item name, which is used for the input port 6 (set an openHAB item)")]),e._v(" "),t("li",[t("strong",[e._v("item1out [string]:")]),e._v(" Item name, which is used for the output port 1 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item2out [string]:")]),e._v(" Item name, which is used for the output port 2 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item3out [string]:")]),e._v(" Item name, which is used for the output port 3 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item4out [string]:")]),e._v(" Item name, which is used for the output port 4 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item5out [string]:")]),e._v(" Item name, which is used for the output port 5 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item6out [string]:")]),e._v(" Item name, which is used for the output port 6 (fetch an openHAB item with the given updaterate)")]),e._v(" "),t("li",[t("strong",[e._v("item1event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item1change)")]),e._v(" "),t("li",[t("strong",[e._v("item2event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item2change)")]),e._v(" "),t("li",[t("strong",[e._v("item3event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item3change)")]),e._v(" "),t("li",[t("strong",[e._v("item4event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item4change)")]),e._v(" "),t("li",[t("strong",[e._v("item5event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item5change)")]),e._v(" "),t("li",[t("strong",[e._v("item6event [string]:")]),e._v(" Item name, which is used to raise an event if the state is changed (item6change)")])]),e._v(" "),t("h2",{attrs:{id:"additional-hints"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#additional-hints"}},[e._v("#")]),e._v(" Additional hints")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.openhab.org/docs/configuration/restdocs.html#rest-api-documentation",target:"_blank",rel:"noopener noreferrer"}},[e._v("Interactive openHAB REST documentation"),t("OutboundLink")],1),e._v(": Install the add-on "),t("code",[e._v("REST Documentation")]),e._v(". On the welcome screen of openHAB, you will now see a new interface called “REST API” where you can easily see the documentation of the REST API and test it!")]),e._v(" "),t("li",[e._v("To find and copy an item name you can click on the copy icon "),t("img",{attrs:{src:n(739),alt:"Screenshot of Paper UI item configurations"}}),e._v(" of an item in the "),t("a",{attrs:{href:"http://localhost:8080/paperui/index.html#/configuration/items",target:"_blank",rel:"noopener noreferrer"}},[e._v("Paper UI"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("The model will stop with an error message, if one of the item names in the properties is not found.")]),e._v(" "),t("li",[e._v("There is no feedback for checking a successful state change. E.g.: if your write to a read-only item (temperature sensor), nothing will happen")]),e._v(" "),t("li",[e._v("Use the "),t("em",[e._v("lazyCertificates")]),e._v(" property with care, it will disable a major part of the SSL handshaking for the whole Java session. It should be limited to the given hostname only, but without warranty.")]),e._v(" "),t("li",[e._v("The username/password combination from the properties is saved in PLAINTEXT in the model file, so handle it with care.")])])])}),[],!1,null,null,null);t.default=r.exports},738:function(e,t,n){e.exports=n.p+"assets/img/openhab_overview.c07c28f2.png"},739:function(e,t){e.exports="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/82.439eb13d.js b/assets/js/82.66e8761c.js similarity index 98% rename from assets/js/82.439eb13d.js rename to assets/js/82.66e8761c.js index 59bb61f1b5..39eb80b10a 100644 --- a/assets/js/82.439eb13d.js +++ b/assets/js/82.66e8761c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{1215:function(e,t,n){"use strict";n.r(t);var r=n(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"create-encog-eg-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-encog-eg-file"}},[e._v("#")]),e._v(" Create Encog EG file")]),e._v(" "),t("p",[e._v("This document describe how to create sample "),t("a",{attrs:{href:"http://www.heatonresearch.com/encog",target:"_blank",rel:"noopener noreferrer"}},[e._v("Encog framework"),t("OutboundLink")],1),e._v(" EG file that store neural network. The example shown how to create the basic neural network that performs XOR operation.")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Download the encog-workbench-3.0.1-release.zip package from the "),t("a",{attrs:{href:"http://www.heatonresearch.com/encog",target:"_blank",rel:"noopener noreferrer"}},[e._v("Encog page"),t("OutboundLink")],1),e._v(", unzip it and run the Encog Workbench using command: “java -jar encog-workbench-3.0.1-executable.jar”. Create new folder for the project.")])]),e._v(" "),t("li",[t("p",[e._v("To create Neural network, select “File > New file…”. Select: the “Machine Learning Method (*.eg)” and enter name of the EG file. Then, select the “Feedforward Neural Network” and click OK. On the next window, enter 2 into the “Input Neuron Count” text box. Click Add and enter 4 neurons for the hidden layer. enter 1 into the “Output Neuron Count” text box. Change the Activation Function Hidden and Activation Function Output to the Activation Sigmoid. Then, click OK.")])])]),e._v(" "),t("p",[t("img",{attrs:{src:n(772),alt:"The structure of the neural network",title:"The structure of the neural network"}})]),e._v(" "),t("p",[e._v("The structure of the neural network")]),e._v(" "),t("ol",{attrs:{start:"7"}},[t("li",[e._v("Next step is to create the Training File. Select “File > New file…”. Select: “Training File (*.egb)” and enter name of the EGB file. Click OK. On the next window, enter 4 into the the “Training Set Elements” text box, enter 2 into the “Input Field Count” text box, enter 1 into the “Output Field Count” text box. Click OK. Click on the file and fill the table for the XOR operation.")])]),e._v(" "),t("p",[t("img",{attrs:{src:n(773),alt:"The training set",title:"The training set"}})]),e._v(" "),t("p",[e._v("The training set")]),e._v(" "),t("ol",{attrs:{start:"11"}},[t("li",[e._v("When the training set is ready, the neural network can be trained. Click on the neural network file and choose the “Train” option. In the Training Set select the training file, in the Neural Network select the neural network file and click OK. Select the Propagation - Resilient (RPROP) training method and click OK. Enter 0.01 into the Maximum Error Percent(0-100) box, choose the RPROP type: “RPROP+ (classic)” and click OK. Click the Start button to Train the network. When the Max Error is reached click Close.")])]),e._v(" "),t("p",[e._v("The neural network file can be loaded by the "),t("a",{attrs:{href:"NeuralNetworkLoader.htm"}},[e._v("Neural Network Loader")]),e._v(" plugin.To load the neural network, enter the EG file path into the filePath plugin property. For this example, the input1 input port and the input2 input port will send the input data for the neural network and the output1 output port will give the XOR operation result.")])])}),[],!1,null,null,null);t.default=o.exports},772:function(e,t,n){e.exports=n.p+"assets/img/neuralnetwork.42205768.jpg"},773:function(e,t,n){e.exports=n.p+"assets/img/trainingset.7427e719.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{1212:function(e,t,n){"use strict";n.r(t);var r=n(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"create-encog-eg-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-encog-eg-file"}},[e._v("#")]),e._v(" Create Encog EG file")]),e._v(" "),t("p",[e._v("This document describe how to create sample "),t("a",{attrs:{href:"http://www.heatonresearch.com/encog",target:"_blank",rel:"noopener noreferrer"}},[e._v("Encog framework"),t("OutboundLink")],1),e._v(" EG file that store neural network. The example shown how to create the basic neural network that performs XOR operation.")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Download the encog-workbench-3.0.1-release.zip package from the "),t("a",{attrs:{href:"http://www.heatonresearch.com/encog",target:"_blank",rel:"noopener noreferrer"}},[e._v("Encog page"),t("OutboundLink")],1),e._v(", unzip it and run the Encog Workbench using command: “java -jar encog-workbench-3.0.1-executable.jar”. Create new folder for the project.")])]),e._v(" "),t("li",[t("p",[e._v("To create Neural network, select “File > New file…”. Select: the “Machine Learning Method (*.eg)” and enter name of the EG file. Then, select the “Feedforward Neural Network” and click OK. On the next window, enter 2 into the “Input Neuron Count” text box. Click Add and enter 4 neurons for the hidden layer. enter 1 into the “Output Neuron Count” text box. Change the Activation Function Hidden and Activation Function Output to the Activation Sigmoid. Then, click OK.")])])]),e._v(" "),t("p",[t("img",{attrs:{src:n(772),alt:"The structure of the neural network",title:"The structure of the neural network"}})]),e._v(" "),t("p",[e._v("The structure of the neural network")]),e._v(" "),t("ol",{attrs:{start:"7"}},[t("li",[e._v("Next step is to create the Training File. Select “File > New file…”. Select: “Training File (*.egb)” and enter name of the EGB file. Click OK. On the next window, enter 4 into the the “Training Set Elements” text box, enter 2 into the “Input Field Count” text box, enter 1 into the “Output Field Count” text box. Click OK. Click on the file and fill the table for the XOR operation.")])]),e._v(" "),t("p",[t("img",{attrs:{src:n(773),alt:"The training set",title:"The training set"}})]),e._v(" "),t("p",[e._v("The training set")]),e._v(" "),t("ol",{attrs:{start:"11"}},[t("li",[e._v("When the training set is ready, the neural network can be trained. Click on the neural network file and choose the “Train” option. In the Training Set select the training file, in the Neural Network select the neural network file and click OK. Select the Propagation - Resilient (RPROP) training method and click OK. Enter 0.01 into the Maximum Error Percent(0-100) box, choose the RPROP type: “RPROP+ (classic)” and click OK. Click the Start button to Train the network. When the Max Error is reached click Close.")])]),e._v(" "),t("p",[e._v("The neural network file can be loaded by the "),t("a",{attrs:{href:"NeuralNetworkLoader.htm"}},[e._v("Neural Network Loader")]),e._v(" plugin.To load the neural network, enter the EG file path into the filePath plugin property. For this example, the input1 input port and the input2 input port will send the input data for the neural network and the output1 output port will give the XOR operation result.")])])}),[],!1,null,null,null);t.default=o.exports},772:function(e,t,n){e.exports=n.p+"assets/img/neuralnetwork.42205768.jpg"},773:function(e,t,n){e.exports=n.p+"assets/img/trainingset.7427e719.jpg"}}]); \ No newline at end of file diff --git a/assets/js/83.b3d568b8.js b/assets/js/83.afbcd7f1.js similarity index 98% rename from assets/js/83.b3d568b8.js rename to assets/js/83.afbcd7f1.js index 4617194e79..412a192f1e 100644 --- a/assets/js/83.b3d568b8.js +++ b/assets/js/83.afbcd7f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{1217:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acceleration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acceleration"}},[e._v("#")]),e._v(" Acceleration")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Inertial Measurement)")]),e._v(" "),t("p",[e._v("The Acceleration input component is a sensor which is used in combination with the Acceleration CIM created in the course of the AsTeRICS project. The component provides three output ports which provide acceleration values for x, y and z axis. Via the component properties, the sampling rate and the sensitivity (acceleration range) can be set.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(775),alt:"Screenshot: Acceleration plugin",title:"Screenshot: Acceleration plugin"}})]),e._v(" "),t("p",[e._v("Acceleration plugin")]),e._v(" "),t("h2",{attrs:{id:"tilt-calculation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tilt-calculation"}},[e._v("#")]),e._v(" Tilt calculation")]),e._v(" "),t("p",[e._v("An accelerometer can be used to calculate the tilt angle of the accelerometer in a static environment (no movement), as the gravitation is constant and will always be measured at the axis pointing to the ground. If the accelerometer is tilted the measurement of the gravitation is distributed to 2-axis (e.g. x and y).")]),e._v(" "),t("p",[t("img",{attrs:{src:"http://www.hobbytronics.co.uk/image/data/tutorial/accel_dual_axis_angle.jpg",alt:"Diagram x and y axis tilted"}})]),e._v(" "),t("p",[e._v("For further details, look at this "),t("a",{attrs:{href:"http://www.hobbytronics.co.uk/accelerometer-info",target:"_blank",rel:"noopener noreferrer"}},[e._v("tutorial for tilt calculation"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an Acceleration CIM (CIM ID: 0x0501) connected to the platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(776),alt:"Acceleration CIM",title:"Acceleration CIM"}})]),e._v(" "),t("p",[e._v("Acceleration CIM (preliminary version)")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xAcc [double], yAcc [double], zAcc [double]:")]),e._v(" These three output ports provide actual acceleration values of the X-, Y- and Z axis. The values are updated as a new data packet comes in (the sampling rate is set via the property update_frequency.")]),e._v(" "),t("li",[t("strong",[e._v("total [double]:")]),e._v(" This output port provides the total acceleration value, calculated by the square root of (x*x + y*y + z*z).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" An incoming event on this port starts the Acceleration CIM. (If the property autostart is set, the CIM is started automatically when the model is started).")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" An incoming event on this port stops the Acceleration CIM.")]),e._v(" "),t("li",[t("strong",[e._v("calibrate:")]),e._v(" An incoming event on this port samples the current values of X, Y and Z axis and stores them as new “offset values”. These offset values are subtracted from the incoming x, y and z values. Please note that this is not a real calibration of the sensor, but can set a baseline for the output values to zero, for example when the sensor is in resting pose.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("autoStart [boolean]:")]),e._v(" This property specifies if the Acceleration CIM shall be started together with the model (if value is true) or if the Acceleration CIM receives a sepertate start condition via the dedicated event listener port (if value is false).")]),e._v(" "),t("li",[t("strong",[e._v("discreteSteps [integer]:")]),e._v(" If this property has a positive value greater than zero, the effective range of values for the X,Y and Z axis (-8192 to 8192) is mapped to a smaller number of values given by the property. For example: If he value is 10, the whole range of acceleration is mapped to values from -5 to 5. This can be helpful if a small number of different values is desired, e.g. for controlling the mouse cursor speed.")]),e._v(" "),t("li",[t("strong",[e._v("updateFrequency [integer]:")]),e._v(" This property defines the bandwidth of the acceleration sensor - and respectively the update rate of acceleration values on the output ports. The update rate is twice as fast as the selected bandwidth. The bandwidth can be selected as 10Hz, 20Hz, 40Hz, 75Hz, 150Hz or 300Hz. This means that if a bandwidth of 40Hz is selected, the x, y and z values are updated 80 times per second and frequencies up to 40 Hz can be measured with the acceleration sensor. Values of 20 Hz to 75 Hz are recommended for normal operation where body movements are measured (the highest possible frequency - 300Hz - can cause performance troubles in the current platform implementation because the update rate of 600 times per second is too fast).")]),e._v(" "),t("li",[t("strong",[e._v("accelerationRange [integer]:")]),e._v(" This property defines the sensitivity of the acceleration sensor (the measureable range of acceleration, defined in g). The range can be selected as 1g, 1.5g, 2g, 3g, 4g, 8g or 16 g via the combo box selection in the ACS. The selected acceleration range is mapped to values of -8192 to 8192 on the output ports. A value of 3 g is recommended for normal operation where body movements are measured.")])])])}),[],!1,null,null,null);t.default=o.exports},775:function(e,t,a){e.exports=a.p+"assets/img/acceleration.179e5bfd.jpg"},776:function(e,t,a){e.exports=a.p+"assets/img/acceleration_cim.53419b46.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{1214:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"acceleration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#acceleration"}},[e._v("#")]),e._v(" Acceleration")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Inertial Measurement)")]),e._v(" "),t("p",[e._v("The Acceleration input component is a sensor which is used in combination with the Acceleration CIM created in the course of the AsTeRICS project. The component provides three output ports which provide acceleration values for x, y and z axis. Via the component properties, the sampling rate and the sensitivity (acceleration range) can be set.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(775),alt:"Screenshot: Acceleration plugin",title:"Screenshot: Acceleration plugin"}})]),e._v(" "),t("p",[e._v("Acceleration plugin")]),e._v(" "),t("h2",{attrs:{id:"tilt-calculation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tilt-calculation"}},[e._v("#")]),e._v(" Tilt calculation")]),e._v(" "),t("p",[e._v("An accelerometer can be used to calculate the tilt angle of the accelerometer in a static environment (no movement), as the gravitation is constant and will always be measured at the axis pointing to the ground. If the accelerometer is tilted the measurement of the gravitation is distributed to 2-axis (e.g. x and y).")]),e._v(" "),t("p",[t("img",{attrs:{src:"http://www.hobbytronics.co.uk/image/data/tutorial/accel_dual_axis_angle.jpg",alt:"Diagram x and y axis tilted"}})]),e._v(" "),t("p",[e._v("For further details, look at this "),t("a",{attrs:{href:"http://www.hobbytronics.co.uk/accelerometer-info",target:"_blank",rel:"noopener noreferrer"}},[e._v("tutorial for tilt calculation"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an Acceleration CIM (CIM ID: 0x0501) connected to the platform.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(776),alt:"Acceleration CIM",title:"Acceleration CIM"}})]),e._v(" "),t("p",[e._v("Acceleration CIM (preliminary version)")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("xAcc [double], yAcc [double], zAcc [double]:")]),e._v(" These three output ports provide actual acceleration values of the X-, Y- and Z axis. The values are updated as a new data packet comes in (the sampling rate is set via the property update_frequency.")]),e._v(" "),t("li",[t("strong",[e._v("total [double]:")]),e._v(" This output port provides the total acceleration value, calculated by the square root of (x*x + y*y + z*z).")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("start:")]),e._v(" An incoming event on this port starts the Acceleration CIM. (If the property autostart is set, the CIM is started automatically when the model is started).")]),e._v(" "),t("li",[t("strong",[e._v("stop:")]),e._v(" An incoming event on this port stops the Acceleration CIM.")]),e._v(" "),t("li",[t("strong",[e._v("calibrate:")]),e._v(" An incoming event on this port samples the current values of X, Y and Z axis and stores them as new “offset values”. These offset values are subtracted from the incoming x, y and z values. Please note that this is not a real calibration of the sensor, but can set a baseline for the output values to zero, for example when the sensor is in resting pose.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("autoStart [boolean]:")]),e._v(" This property specifies if the Acceleration CIM shall be started together with the model (if value is true) or if the Acceleration CIM receives a sepertate start condition via the dedicated event listener port (if value is false).")]),e._v(" "),t("li",[t("strong",[e._v("discreteSteps [integer]:")]),e._v(" If this property has a positive value greater than zero, the effective range of values for the X,Y and Z axis (-8192 to 8192) is mapped to a smaller number of values given by the property. For example: If he value is 10, the whole range of acceleration is mapped to values from -5 to 5. This can be helpful if a small number of different values is desired, e.g. for controlling the mouse cursor speed.")]),e._v(" "),t("li",[t("strong",[e._v("updateFrequency [integer]:")]),e._v(" This property defines the bandwidth of the acceleration sensor - and respectively the update rate of acceleration values on the output ports. The update rate is twice as fast as the selected bandwidth. The bandwidth can be selected as 10Hz, 20Hz, 40Hz, 75Hz, 150Hz or 300Hz. This means that if a bandwidth of 40Hz is selected, the x, y and z values are updated 80 times per second and frequencies up to 40 Hz can be measured with the acceleration sensor. Values of 20 Hz to 75 Hz are recommended for normal operation where body movements are measured (the highest possible frequency - 300Hz - can cause performance troubles in the current platform implementation because the update rate of 600 times per second is too fast).")]),e._v(" "),t("li",[t("strong",[e._v("accelerationRange [integer]:")]),e._v(" This property defines the sensitivity of the acceleration sensor (the measureable range of acceleration, defined in g). The range can be selected as 1g, 1.5g, 2g, 3g, 4g, 8g or 16 g via the combo box selection in the ACS. The selected acceleration range is mapped to values of -8192 to 8192 on the output ports. A value of 3 g is recommended for normal operation where body movements are measured.")])])])}),[],!1,null,null,null);t.default=o.exports},775:function(e,t,a){e.exports=a.p+"assets/img/acceleration.179e5bfd.jpg"},776:function(e,t,a){e.exports=a.p+"assets/img/acceleration_cim.53419b46.jpg"}}]); \ No newline at end of file diff --git a/assets/js/84.0472134f.js b/assets/js/84.ccc4cef1.js similarity index 97% rename from assets/js/84.0472134f.js rename to assets/js/84.ccc4cef1.js index 8385d86f74..ed573e94a2 100644 --- a/assets/js/84.0472134f.js +++ b/assets/js/84.ccc4cef1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{1219:function(e,t,l){"use strict";l.r(t);var n=l(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cellboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cellboard"}},[e._v("#")]),e._v(" CellBoard")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("The CellBoard plugin is a GUI plugin which can display a panel with multiple cells. It can be used as a simple on-screen keyboard. Each cell can contain text and a picture, and it can provide acoustic feedback on selection. Cells can emit command strings and sounds or switch to other cellboards (which can be stored as .xml files). The CellBoard plugin provides basic scanning options (to select a cell via a stepwise process). It also provides a small editor for designing the cells and saving the whole cellboard grid as an .xml file.")]),e._v(" "),t("p",[t("img",{attrs:{src:l(778),alt:"Screenshot: CellBoard plugin",title:"Screenshot: CellBoard plugin"}})]),e._v(" "),t("p",[e._v("CellBoard plugin")]),e._v(" "),t("h2",{attrs:{id:"using-the-cell-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-cell-editor"}},[e._v("#")]),e._v(" Using the cell editor")]),e._v(" "),t("p",[e._v("The cell editor can be opened by right-clicking a cell. (This option can be enabled/disabled by using the property “enableEdit”). The cell editor allows to define the content of a cell (cell caption, action string, cell image and sounds for cell-selection or acoustic preview during cell scanning). “Switch to Cellboard” allows to specify a cellboard grid which will be loaded when this cell is selected. When “back” is entered here, the previously loded cellboard will be restored. Thus, complex communication/selection grids can be layered. The whole current cellboard is saved as an .xml file when “Save Cellboard” is clicked. Existing .xml files can be selected to be loaded on startup via the “keyboardFile”-property of the cellboard plugin in the ACS property editor.")]),e._v(" "),t("p",[t("img",{attrs:{src:l(779),alt:"Screenshot: CellBoard editor",title:"Screenshot: CellBoard editor"}})]),e._v(" "),t("p",[e._v("CellBoard editor")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("row [integer]:")]),e._v(" This port can be used in “directed scanning” mode to set the row of the highlighted cell.")]),e._v(" "),t("li",[t("strong",[e._v("column [integer]:")]),e._v(" This port can be used in “directed scanning” mode to set the column of the highlighted cell.")]),e._v(" "),t("li",[t("strong",[e._v("cellNumber [integer]:")]),e._v(" This port can be used in “directed scanning” mode to set the number of the highlighted cell.")]),e._v(" "),t("li",[t("strong",[e._v("xmlFile [string]:")]),e._v(" Name of a keyboard file (default location in data/cellBoardKeyboards) which can be loaded or saved. A load operating can be triggered via the dedicated event listener port.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actCell [integer]:")]),e._v(" Sends the number of the currently scanned cell.")]),e._v(" "),t("li",[t("strong",[e._v("actCellCaption [string]:")]),e._v(" Sends the cell caption of the currently scanned cell.")]),e._v(" "),t("li",[t("strong",[e._v("actCellText [string]:")]),e._v(" Sends the action string of the currently scanned cell")]),e._v(" "),t("li",[t("strong",[e._v("selectedCell [integer]:")]),e._v(" Sends the number of the selected cell.")]),e._v(" "),t("li",[t("strong",[e._v("selectedCellCaption [string]:")]),e._v(" Sends the cell caption of the selected cell.")]),e._v(" "),t("li",[t("strong",[e._v("selectedCellText [string]:")]),e._v(" Sends the action string of the currently active cell")]),e._v(" "),t("li",[t("strong",[e._v("scanRow [integer]:")]),e._v(" Sends the number of the currently scanned row (in row/column scanning mode)")]),e._v(" "),t("li",[t("strong",[e._v("scanColumn [integer]:")]),e._v(" Sends the number of the currently scanned column (in row/column scanning mode)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("scanMove:")]),e._v(" Moves the scanning highlight frame in the row-column and column-row scanning modes.")]),e._v(" "),t("li",[t("strong",[e._v("scanSelect:")]),e._v(" Selects the highlighted cell in the row-column, column-row and directed scanning modes.")]),e._v(" "),t("li",[t("strong",[e._v("moveUp:")]),e._v(" Moves the scanning highlight up in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("moveRight:")]),e._v(" Moves the scanning highlight to the right in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("moveLeft:")]),e._v(" Moves the scanning highlight to the left in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("moveDown:")]),e._v(" Moves the scanning highlight down in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("load:")]),e._v(" loads a keyboard from the given xml-filename (property “keyboardFile”).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cellClicked:")]),e._v(" This event is triggered when one of the cells is clicked.")]),e._v(" "),t("li",[t("strong",[e._v("scanCancel:")]),e._v(" This event is triggered when the row/column scanning process is cancelled because the maximum number of scan cycles has been reached.")]),e._v(" "),t("li",[t("strong",[e._v("cell1…cell36:")]),e._v(" This event is triggered when the given cell is selected.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("caption [string]:")]),e._v(" The component caption.")]),e._v(" "),t("li",[t("strong",[e._v("rows [integer]:")]),e._v(" The number of the cell rows (1-36, rows x cols <= 100).")]),e._v(" "),t("li",[t("strong",[e._v("columns [integer]:")]),e._v(" The number of the cell columns (1-36, rows x cols <= 100).")]),e._v(" "),t("li",[t("strong",[e._v("textColor [integer]:")]),e._v(" The color of the cell text.")]),e._v(" "),t("li",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" The color of the cell background.")]),e._v(" "),t("li",[t("strong",[e._v("scanColor [integer]:")]),e._v(" The color of the scanning highlighting.")]),e._v(" "),t("li",[t("strong",[e._v("scanMode [integer]:")]),e._v(" This property defines the scanning mode:\n"),t("ul",[t("li",[t("em",[e._v("“none”:")]),e._v(" The board is not scanned. Users can select the cell by clicking on it.")]),e._v(" "),t("li",[t("em",[e._v("“row-column”:")]),e._v(" In this mode, rows of the cells are scanned. When the user selects the row, cells in the row are scanned. The scanning frame can be moved using the scanMove event port. The row and the cell itself can be selected using the scanSelect event port.")]),e._v(" "),t("li",[t("em",[e._v("“column-row”:")]),e._v(" In this mode, columns of the cells are scanned. When the user selects the column, cells in the column are scanned. The scanning frame can be moved using the scanMove event port. The column and the cell itself can be selected using the scanSelect event port.")]),e._v(" "),t("li",[t("em",[e._v("“directed”:")]),e._v(" In this mode only one cell is highlighted. The user can move the scan highlighting via the moveUp, moveRight, moveLeft or moveDown event ports or the row, cellNumber and column input ports. The cell can be selected using the scanSelect event port.")]),e._v(" "),t("li",[t("em",[e._v("“hover selection”:")]),e._v(" In this mode the user can select the cell by hovering the mouse pointer above the cell.")])])]),e._v(" "),t("li",[t("strong",[e._v("scanCycles [integer]:")]),e._v(" This parameter is used in “row/column scanning” mode. After the number of scan cycles is reached, the scanning switches back to the highest level.")]),e._v(" "),t("li",[t("strong",[e._v("hoverTime [integer]:")]),e._v(" This parameter is used in “hover selection” mode. It defines the time of hovering needed to select the cell (in milliseconds).")]),e._v(" "),t("li",[t("strong",[e._v("hoverTimeIndicator [integer]:")]),e._v(" This parameter adjusts the way a hover selection prgress is indicated to the user:\n"),t("ul",[t("li",[t("em",[e._v("“fixed frame”:")]),e._v(" No graphical indication - the frame of the currently active cell is shown but does not change.")]),e._v(" "),t("li",[t("em",[e._v("“growing frame”:")]),e._v(" The frame of the active cell is growing until the value of property “hoverSelectionThickness” is reached - then the cell is selected.")]),e._v(" "),t("li",[t("em",[e._v("“backgorund color”:")]),e._v(" The background color of the cell changes slowly from the selected “backgroundColor” to the selected “scanColor” - then the cell is selected.")])])]),e._v(" "),t("li",[t("strong",[e._v("hoverFrameThickness [integer]:")]),e._v(" Maximum thickness of the cell frame (only valid for the hover selection mode with indicator “growing frame”).")]),e._v(" "),t("li",[t("strong",[e._v("enableEdit [boolean]:")]),e._v(" If selected, the cells can be right-clicked to display the cell editor, which also allows to save the xml-keyboard file.")]),e._v(" "),t("li",[e._v("**enableClickSelection [boolean]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*If selected, all cells can be selected via a left click, regardless of the scanning process")]),e._v(" "),t("li",[e._v("**commandSeparator [string]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v('*If a character (or characters) are specified here, they will be used to tokenize the cell text which is sent to the “selectedCellText” output port when teh cell is selected. This can be used to send multiple strings (seperately) to this output port. In the example screenshot above, a semicolon (";") is used to send two different action string to the output port when the cell is selected. A “StringFilter” plugin can then be used to route these commands to different plugins.')]),e._v(" "),t("li",[t("strong",[e._v("keyboardFile [string]:")]),e._v(" Name of a cellboard .xml file (the sugeested files are located in folder data/cellBoardKeyboards or in folder “models”). This file will be loaded at startup of the model. If no file is specified, only the cell contents defined via the ACS editor will be available."),t("strong",[e._v("Supports value suggestions for existing xml-files from the ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("ignoreKeyboardFileProperties [boolean]:")]),e._v(" If selected, the general cellboard parameters (rows/columns/colors/scan mode etc.) will be kept as defined via the ACS editor when a cellboard .xml file is loaded. If not selected, these parameters will be loaded from the .xml file, thereby overriding the values defined in the ACS editor.")]),e._v(" "),t("li",[t("strong",[e._v("dispayGUI [boolean]:")]),e._v(" If selected, the component will be displayed in the ARE GUI. Otherwise the componentent will be hidden !")])]),e._v(" "),t("p",[e._v("The following properties will be overwritten if cellboard .xml files are loaded:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cellText1…cellText36 [string]:")]),e._v(" The text displayed on the cell.")]),e._v(" "),t("li",[t("strong",[e._v("cellImage1…cellImage36 [string]:")]),e._v(" The path of the image displayed on the cell.")]),e._v(" "),t("li",[t("strong",[e._v("actionText1…actionText36 [string]:")]),e._v(" The text sent through the selectedCellText output port, when the cell is selected.")])])])}),[],!1,null,null,null);t.default=i.exports},778:function(e,t,l){e.exports=l.p+"assets/img/cellboard.e243b4cd.jpg"},779:function(e,t,l){e.exports=l.p+"assets/img/cellboardeditor.9b662792.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{1219:function(e,t,l){"use strict";l.r(t);var n=l(2),i=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cellboard"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cellboard"}},[e._v("#")]),e._v(" CellBoard")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("The CellBoard plugin is a GUI plugin which can display a panel with multiple cells. It can be used as a simple on-screen keyboard. Each cell can contain text and a picture, and it can provide acoustic feedback on selection. Cells can emit command strings and sounds or switch to other cellboards (which can be stored as .xml files). The CellBoard plugin provides basic scanning options (to select a cell via a stepwise process). It also provides a small editor for designing the cells and saving the whole cellboard grid as an .xml file.")]),e._v(" "),t("p",[t("img",{attrs:{src:l(780),alt:"Screenshot: CellBoard plugin",title:"Screenshot: CellBoard plugin"}})]),e._v(" "),t("p",[e._v("CellBoard plugin")]),e._v(" "),t("h2",{attrs:{id:"using-the-cell-editor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-cell-editor"}},[e._v("#")]),e._v(" Using the cell editor")]),e._v(" "),t("p",[e._v("The cell editor can be opened by right-clicking a cell. (This option can be enabled/disabled by using the property “enableEdit”). The cell editor allows to define the content of a cell (cell caption, action string, cell image and sounds for cell-selection or acoustic preview during cell scanning). “Switch to Cellboard” allows to specify a cellboard grid which will be loaded when this cell is selected. When “back” is entered here, the previously loded cellboard will be restored. Thus, complex communication/selection grids can be layered. The whole current cellboard is saved as an .xml file when “Save Cellboard” is clicked. Existing .xml files can be selected to be loaded on startup via the “keyboardFile”-property of the cellboard plugin in the ACS property editor.")]),e._v(" "),t("p",[t("img",{attrs:{src:l(781),alt:"Screenshot: CellBoard editor",title:"Screenshot: CellBoard editor"}})]),e._v(" "),t("p",[e._v("CellBoard editor")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("row [integer]:")]),e._v(" This port can be used in “directed scanning” mode to set the row of the highlighted cell.")]),e._v(" "),t("li",[t("strong",[e._v("column [integer]:")]),e._v(" This port can be used in “directed scanning” mode to set the column of the highlighted cell.")]),e._v(" "),t("li",[t("strong",[e._v("cellNumber [integer]:")]),e._v(" This port can be used in “directed scanning” mode to set the number of the highlighted cell.")]),e._v(" "),t("li",[t("strong",[e._v("xmlFile [string]:")]),e._v(" Name of a keyboard file (default location in data/cellBoardKeyboards) which can be loaded or saved. A load operating can be triggered via the dedicated event listener port.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("actCell [integer]:")]),e._v(" Sends the number of the currently scanned cell.")]),e._v(" "),t("li",[t("strong",[e._v("actCellCaption [string]:")]),e._v(" Sends the cell caption of the currently scanned cell.")]),e._v(" "),t("li",[t("strong",[e._v("actCellText [string]:")]),e._v(" Sends the action string of the currently scanned cell")]),e._v(" "),t("li",[t("strong",[e._v("selectedCell [integer]:")]),e._v(" Sends the number of the selected cell.")]),e._v(" "),t("li",[t("strong",[e._v("selectedCellCaption [string]:")]),e._v(" Sends the cell caption of the selected cell.")]),e._v(" "),t("li",[t("strong",[e._v("selectedCellText [string]:")]),e._v(" Sends the action string of the currently active cell")]),e._v(" "),t("li",[t("strong",[e._v("scanRow [integer]:")]),e._v(" Sends the number of the currently scanned row (in row/column scanning mode)")]),e._v(" "),t("li",[t("strong",[e._v("scanColumn [integer]:")]),e._v(" Sends the number of the currently scanned column (in row/column scanning mode)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("scanMove:")]),e._v(" Moves the scanning highlight frame in the row-column and column-row scanning modes.")]),e._v(" "),t("li",[t("strong",[e._v("scanSelect:")]),e._v(" Selects the highlighted cell in the row-column, column-row and directed scanning modes.")]),e._v(" "),t("li",[t("strong",[e._v("moveUp:")]),e._v(" Moves the scanning highlight up in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("moveRight:")]),e._v(" Moves the scanning highlight to the right in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("moveLeft:")]),e._v(" Moves the scanning highlight to the left in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("moveDown:")]),e._v(" Moves the scanning highlight down in the directed scanning mode (wrap around is possible).")]),e._v(" "),t("li",[t("strong",[e._v("load:")]),e._v(" loads a keyboard from the given xml-filename (property “keyboardFile”).")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cellClicked:")]),e._v(" This event is triggered when one of the cells is clicked.")]),e._v(" "),t("li",[t("strong",[e._v("scanCancel:")]),e._v(" This event is triggered when the row/column scanning process is cancelled because the maximum number of scan cycles has been reached.")]),e._v(" "),t("li",[t("strong",[e._v("cell1…cell36:")]),e._v(" This event is triggered when the given cell is selected.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("caption [string]:")]),e._v(" The component caption.")]),e._v(" "),t("li",[t("strong",[e._v("rows [integer]:")]),e._v(" The number of the cell rows (1-36, rows x cols <= 100).")]),e._v(" "),t("li",[t("strong",[e._v("columns [integer]:")]),e._v(" The number of the cell columns (1-36, rows x cols <= 100).")]),e._v(" "),t("li",[t("strong",[e._v("textColor [integer]:")]),e._v(" The color of the cell text.")]),e._v(" "),t("li",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" The color of the cell background.")]),e._v(" "),t("li",[t("strong",[e._v("scanColor [integer]:")]),e._v(" The color of the scanning highlighting.")]),e._v(" "),t("li",[t("strong",[e._v("scanMode [integer]:")]),e._v(" This property defines the scanning mode:\n"),t("ul",[t("li",[t("em",[e._v("“none”:")]),e._v(" The board is not scanned. Users can select the cell by clicking on it.")]),e._v(" "),t("li",[t("em",[e._v("“row-column”:")]),e._v(" In this mode, rows of the cells are scanned. When the user selects the row, cells in the row are scanned. The scanning frame can be moved using the scanMove event port. The row and the cell itself can be selected using the scanSelect event port.")]),e._v(" "),t("li",[t("em",[e._v("“column-row”:")]),e._v(" In this mode, columns of the cells are scanned. When the user selects the column, cells in the column are scanned. The scanning frame can be moved using the scanMove event port. The column and the cell itself can be selected using the scanSelect event port.")]),e._v(" "),t("li",[t("em",[e._v("“directed”:")]),e._v(" In this mode only one cell is highlighted. The user can move the scan highlighting via the moveUp, moveRight, moveLeft or moveDown event ports or the row, cellNumber and column input ports. The cell can be selected using the scanSelect event port.")]),e._v(" "),t("li",[t("em",[e._v("“hover selection”:")]),e._v(" In this mode the user can select the cell by hovering the mouse pointer above the cell.")])])]),e._v(" "),t("li",[t("strong",[e._v("scanCycles [integer]:")]),e._v(" This parameter is used in “row/column scanning” mode. After the number of scan cycles is reached, the scanning switches back to the highest level.")]),e._v(" "),t("li",[t("strong",[e._v("hoverTime [integer]:")]),e._v(" This parameter is used in “hover selection” mode. It defines the time of hovering needed to select the cell (in milliseconds).")]),e._v(" "),t("li",[t("strong",[e._v("hoverTimeIndicator [integer]:")]),e._v(" This parameter adjusts the way a hover selection prgress is indicated to the user:\n"),t("ul",[t("li",[t("em",[e._v("“fixed frame”:")]),e._v(" No graphical indication - the frame of the currently active cell is shown but does not change.")]),e._v(" "),t("li",[t("em",[e._v("“growing frame”:")]),e._v(" The frame of the active cell is growing until the value of property “hoverSelectionThickness” is reached - then the cell is selected.")]),e._v(" "),t("li",[t("em",[e._v("“backgorund color”:")]),e._v(" The background color of the cell changes slowly from the selected “backgroundColor” to the selected “scanColor” - then the cell is selected.")])])]),e._v(" "),t("li",[t("strong",[e._v("hoverFrameThickness [integer]:")]),e._v(" Maximum thickness of the cell frame (only valid for the hover selection mode with indicator “growing frame”).")]),e._v(" "),t("li",[t("strong",[e._v("enableEdit [boolean]:")]),e._v(" If selected, the cells can be right-clicked to display the cell editor, which also allows to save the xml-keyboard file.")]),e._v(" "),t("li",[e._v("**enableClickSelection [boolean]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*If selected, all cells can be selected via a left click, regardless of the scanning process")]),e._v(" "),t("li",[e._v("**commandSeparator [string]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v('*If a character (or characters) are specified here, they will be used to tokenize the cell text which is sent to the “selectedCellText” output port when teh cell is selected. This can be used to send multiple strings (seperately) to this output port. In the example screenshot above, a semicolon (";") is used to send two different action string to the output port when the cell is selected. A “StringFilter” plugin can then be used to route these commands to different plugins.')]),e._v(" "),t("li",[t("strong",[e._v("keyboardFile [string]:")]),e._v(" Name of a cellboard .xml file (the sugeested files are located in folder data/cellBoardKeyboards or in folder “models”). This file will be loaded at startup of the model. If no file is specified, only the cell contents defined via the ACS editor will be available."),t("strong",[e._v("Supports value suggestions for existing xml-files from the ARE (dynamic property)")])]),e._v(" "),t("li",[t("strong",[e._v("ignoreKeyboardFileProperties [boolean]:")]),e._v(" If selected, the general cellboard parameters (rows/columns/colors/scan mode etc.) will be kept as defined via the ACS editor when a cellboard .xml file is loaded. If not selected, these parameters will be loaded from the .xml file, thereby overriding the values defined in the ACS editor.")]),e._v(" "),t("li",[t("strong",[e._v("dispayGUI [boolean]:")]),e._v(" If selected, the component will be displayed in the ARE GUI. Otherwise the componentent will be hidden !")])]),e._v(" "),t("p",[e._v("The following properties will be overwritten if cellboard .xml files are loaded:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cellText1…cellText36 [string]:")]),e._v(" The text displayed on the cell.")]),e._v(" "),t("li",[t("strong",[e._v("cellImage1…cellImage36 [string]:")]),e._v(" The path of the image displayed on the cell.")]),e._v(" "),t("li",[t("strong",[e._v("actionText1…actionText36 [string]:")]),e._v(" The text sent through the selectedCellText output port, when the cell is selected.")])])])}),[],!1,null,null,null);t.default=i.exports},780:function(e,t,l){e.exports=l.p+"assets/img/cellboard.e243b4cd.jpg"},781:function(e,t,l){e.exports=l.p+"assets/img/cellboardeditor.9b662792.jpg"}}]); \ No newline at end of file diff --git a/assets/js/85.ac6f3ace.js b/assets/js/85.6d2e2f3f.js similarity index 89% rename from assets/js/85.ac6f3ace.js rename to assets/js/85.6d2e2f3f.js index f52b7267d0..9126a77e3b 100644 --- a/assets/js/85.ac6f3ace.js +++ b/assets/js/85.6d2e2f3f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{1224:function(e,t,o){"use strict";o.r(t);var r=o(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eog"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eog"}},[e._v("#")]),e._v(" EOG")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component provides the EOG signal (electro-oculogram) from the EOG sensor board, which has been developed in course of the Bachelor theses of Benedikt Rossboth at the UAS Technikum Wien. The EOG sensor board delivers information about eye movements and eye blinks which can be used in alternative user input setups.")]),e._v(" "),t("p",[e._v("For operation, three surface electrodes must be fixed to the users head (one electrode aside and above one eye, and one DRL electrode e.g. at the wrist of the user). In a proof-of-concept model, a musical instrument was implemented where a user can control midi tones via eye movements."),t("br"),e._v("\nFor detailed information please refer to the file Documentation/DIYGuides/EOG_Rossboth.pdf")]),e._v(" "),t("p",[t("img",{attrs:{src:o(786),alt:"Screenshot: EOG plugin",title:"Screenshot: EOG plugin"}})]),e._v(" "),t("p",[e._v("The EOG sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The EOG sensor has to be connected to a USB port. The design documentation of the electronic circuit can be found in the thesis pdf. The firmware for the EOG sensor’s microcontroller is available in the folder CIMs/EOG_CIM. The image below shows the breadboard setup of the circuit and a measurement of 6 eye blinks (above) and a left/right eye movement (below).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(787),alt:"EOG sensor application",title:"EOG sensor application"}})]),e._v(" "),t("p",[e._v("EOG sensor application")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("horizontal [integer]:")]),e._v(" the currently measured horizontal eye movement value")]),e._v(" "),t("li",[t("strong",[e._v("vertical [integer]:")]),e._v(" the currently measured vertical eye movement value")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("updatePeriod [integer]:")]),e._v(" the update period for values in milliseconds.")])])])}),[],!1,null,null,null);t.default=s.exports},786:function(e,t,o){e.exports=o.p+"assets/img/eog.a0af8141.jpg"},787:function(e,t,o){e.exports=o.p+"assets/img/eogapplication.6f8d3159.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{1220:function(e,t,o){"use strict";o.r(t);var r=o(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eog"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eog"}},[e._v("#")]),e._v(" EOG")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component provides the EOG signal (electro-oculogram) from the EOG sensor board, which has been developed in course of the Bachelor theses of Benedikt Rossboth at the UAS Technikum Wien. The EOG sensor board delivers information about eye movements and eye blinks which can be used in alternative user input setups.")]),e._v(" "),t("p",[e._v("For operation, three surface electrodes must be fixed to the users head (one electrode aside and above one eye, and one DRL electrode e.g. at the wrist of the user). In a proof-of-concept model, a musical instrument was implemented where a user can control midi tones via eye movements."),t("br"),e._v("\nFor detailed information please refer to the file Documentation/DIYGuides/EOG_Rossboth.pdf")]),e._v(" "),t("p",[t("img",{attrs:{src:o(782),alt:"Screenshot: EOG plugin",title:"Screenshot: EOG plugin"}})]),e._v(" "),t("p",[e._v("The EOG sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The EOG sensor has to be connected to a USB port. The design documentation of the electronic circuit can be found in the thesis pdf. The firmware for the EOG sensor’s microcontroller is available in the folder CIMs/EOG_CIM. The image below shows the breadboard setup of the circuit and a measurement of 6 eye blinks (above) and a left/right eye movement (below).")]),e._v(" "),t("p",[t("img",{attrs:{src:o(783),alt:"EOG sensor application",title:"EOG sensor application"}})]),e._v(" "),t("p",[e._v("EOG sensor application")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("horizontal [integer]:")]),e._v(" the currently measured horizontal eye movement value")]),e._v(" "),t("li",[t("strong",[e._v("vertical [integer]:")]),e._v(" the currently measured vertical eye movement value")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("updatePeriod [integer]:")]),e._v(" the update period for values in milliseconds.")])])])}),[],!1,null,null,null);t.default=s.exports},782:function(e,t,o){e.exports=o.p+"assets/img/eog.a0af8141.jpg"},783:function(e,t,o){e.exports=o.p+"assets/img/eogapplication.6f8d3159.jpg"}}]); \ No newline at end of file diff --git a/assets/js/86.b2f8e130.js b/assets/js/86.b7cb09ed.js similarity index 94% rename from assets/js/86.b2f8e130.js rename to assets/js/86.b7cb09ed.js index b6e3ce3597..a7ee06380f 100644 --- a/assets/js/86.b2f8e130.js +++ b/assets/js/86.b7cb09ed.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{1225:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"enobio"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#enobio"}},[e._v("#")]),e._v(" Enobio")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component interfaces the Enobio sensor to the AsTeRICS system. It is in charge of driving the USB interface, commanding the proprietary protocol that Enobio uses, filtering the signal for removing the environmental noise and performing an automatic offset compensation for each channel in order to keep the electrophysiological signal correctly calibrated and avoid the effects that the skin contact may introduce in the signal. The component delivers the sampled signal in the Enobio electrodes through four output ports (one per channel). In addition, there is another output port which reports the calibration status of the channels and information regarding the sample loses due to environmental issues in the wireless link. The output ports (sampled data and status) deliver 250 values per second, which corresponds to the sample rate in the Enobio electrodes.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(788),alt:"Screenshot: Enobio plugin",title:"Screenshot: Enobio plugin"}})]),e._v(" "),t("p",[e._v("Enobio plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an Enobio receiver connected to the platform, the Enobio device switched on and the electrodes correctly placed on the user.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(789),alt:"Enobio device",title:"Enobio device"}})]),e._v(" "),t("p",[e._v("Enobio device")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel4 [integer]:")]),e._v(" Each output corresponds to the sampled data from its corresponding Enobio channel. The integer represents the microvolts of the electro-physiological signal read by Enobio. The data might be pre-processed according to the value of the properties of the component.")]),e._v(" "),t("li",[t("strong",[e._v("Status [integer]:")]),e._v(" This port provides information regarding both the calibration status of the four channels and the status of the wireless link. For every integer value that is available in the data output ports, another integer value is available in this port with the corresponding status information. The information is proprietary codified within a 16-bit integer. This includes information of calibration status of each channel and the status of the wireless link. This information would be kept away for the moment form the ARE programmers and provided upon request if necessary.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("externalSignalPosEdgeEvent:")]),e._v(" This event is fired if the external signal toggles from low to high level.")]),e._v(" "),t("li",[t("strong",[e._v("externalSignalNegEdgeEvent:")]),e._v(" This event is fired if the external signal toggles from high to low level.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("IsChannel1Activated to IsChannel4Activated [Boolean]:")]),e._v(" If this property is set to true, the corresponding channel is calibrated, thus the raw data from this channel will be meaningful.")]),e._v(" "),t("li",[t("strong",[e._v("HighPassFilterInChannel1 to HighPassFilterInChannel4 [Boolean]:")]),e._v(" If this property is set to true, a high pass filter is applied to the data from the corresponding channel.")]),e._v(" "),t("li",[t("strong",[e._v("LineNoiseFilter [Boolean]:")]),e._v(" If this property is set to true, a 50 Hz band pass filter is applied to the data before it is passed to the output port. This filter is useful when the environmental electrical noise is present in the signal.")])])])}),[],!1,null,null,null);t.default=n.exports},788:function(e,t,o){e.exports=o.p+"assets/img/enobio.4b813b2b.jpg"},789:function(e,t,o){e.exports=o.p+"assets/img/enobio_picture.1eacd44c.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{1225:function(e,t,o){"use strict";o.r(t);var i=o(2),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"enobio"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#enobio"}},[e._v("#")]),e._v(" Enobio")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("This component interfaces the Enobio sensor to the AsTeRICS system. It is in charge of driving the USB interface, commanding the proprietary protocol that Enobio uses, filtering the signal for removing the environmental noise and performing an automatic offset compensation for each channel in order to keep the electrophysiological signal correctly calibrated and avoid the effects that the skin contact may introduce in the signal. The component delivers the sampled signal in the Enobio electrodes through four output ports (one per channel). In addition, there is another output port which reports the calibration status of the channels and information regarding the sample loses due to environmental issues in the wireless link. The output ports (sampled data and status) deliver 250 values per second, which corresponds to the sample rate in the Enobio electrodes.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(789),alt:"Screenshot: Enobio plugin",title:"Screenshot: Enobio plugin"}})]),e._v(" "),t("p",[e._v("Enobio plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an Enobio receiver connected to the platform, the Enobio device switched on and the electrodes correctly placed on the user.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(790),alt:"Enobio device",title:"Enobio device"}})]),e._v(" "),t("p",[e._v("Enobio device")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Channel1 to Channel4 [integer]:")]),e._v(" Each output corresponds to the sampled data from its corresponding Enobio channel. The integer represents the microvolts of the electro-physiological signal read by Enobio. The data might be pre-processed according to the value of the properties of the component.")]),e._v(" "),t("li",[t("strong",[e._v("Status [integer]:")]),e._v(" This port provides information regarding both the calibration status of the four channels and the status of the wireless link. For every integer value that is available in the data output ports, another integer value is available in this port with the corresponding status information. The information is proprietary codified within a 16-bit integer. This includes information of calibration status of each channel and the status of the wireless link. This information would be kept away for the moment form the ARE programmers and provided upon request if necessary.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("externalSignalPosEdgeEvent:")]),e._v(" This event is fired if the external signal toggles from low to high level.")]),e._v(" "),t("li",[t("strong",[e._v("externalSignalNegEdgeEvent:")]),e._v(" This event is fired if the external signal toggles from high to low level.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("IsChannel1Activated to IsChannel4Activated [Boolean]:")]),e._v(" If this property is set to true, the corresponding channel is calibrated, thus the raw data from this channel will be meaningful.")]),e._v(" "),t("li",[t("strong",[e._v("HighPassFilterInChannel1 to HighPassFilterInChannel4 [Boolean]:")]),e._v(" If this property is set to true, a high pass filter is applied to the data from the corresponding channel.")]),e._v(" "),t("li",[t("strong",[e._v("LineNoiseFilter [Boolean]:")]),e._v(" If this property is set to true, a 50 Hz band pass filter is applied to the data before it is passed to the output port. This filter is useful when the environmental electrical noise is present in the signal.")])])])}),[],!1,null,null,null);t.default=n.exports},789:function(e,t,o){e.exports=o.p+"assets/img/enobio.4b813b2b.jpg"},790:function(e,t,o){e.exports=o.p+"assets/img/enobio_picture.1eacd44c.jpg"}}]); \ No newline at end of file diff --git a/assets/js/87.14396d78.js b/assets/js/87.19b35635.js similarity index 96% rename from assets/js/87.14396d78.js rename to assets/js/87.19b35635.js index b90edaf760..cec9c1c779 100644 --- a/assets/js/87.14396d78.js +++ b/assets/js/87.19b35635.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{1227:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eyetribe"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eyetribe"}},[e._v("#")]),e._v(" Eyetribe")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This component provides access to the raw gaze tracking data from the "),t("a",{attrs:{href:"https://theeyetribe.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("EyeTribe"),t("OutboundLink")],1),e._v(" eye tracking device. The data includes the estimated gazepoint (x/y), the eye location (x/y), fixation time and eye close time. The plugin connects to a running EyeTribe server.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(790),alt:"Screenshot: Eyetribe plugin",title:"Screenshot: Eyetribe plugin"}})]),e._v(" "),t("p",[e._v("Eyetribe plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Eyetribe tracker must be connected to an USB3.0 port and the Eyetribe server software must be running.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(791),alt:"Screenshot: Eyetribe hardware",title:"Screenshot: Eyetribe hardware"}})]),e._v(" "),t("p",[e._v("Eyetribe hardware")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("gazex [integer]:")]),e._v(" The x-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("gazey [integer]:")]),e._v(" The y-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("posx [integer]:")]),e._v(" The x-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("posy [integer]:")]),e._v(" The y-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" The time period for fixation of a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("closeTime [integer]:")]),e._v(" The time period for closing both eyes (or eye tracking signal lost)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startCalibration:")]),e._v(" if this event is triggered, calibration procedure for the Eyetracker is started.")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrection:")]),e._v(" this event is useful when a drift of the cursor position has occured. When the event is triggered, the plugin stops the output of x/y coordinates for several seconds, where the user has time to fix the exact cursor position with the eyes. (see description below).")]),e._v(" "),t("li",[t("strong",[e._v("removeLastOffsetCorrection")]),e._v(" when this event is triggered, the last offset correction point will be removed - useful if the offset correction did not work as intended.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blink:")]),e._v(" triggered if the eye detection is lost for a timespan bigger than minBlinkTime and lower than midBlinkTime. This can be used for a single eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("longBlink:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than midBlinkTime and lower than maxBlinkTime. This can be used for a long eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("fixation:")]),e._v(" triggered if the user looks at a particular location on the screen for longer than defined in via the fixationTime property.")]),e._v(" "),t("li",[t("strong",[e._v("fixationEnd:")]),e._v(" triggered if the user looks stops looking at a particular location (which triggered a fixation event).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("minBlinkTime [integer]:")]),e._v(" the minimum time for a short blink to be detected (a short blink is detected if the blink time is bigger than minBlinkTime and lower than midBlinkTime.)")]),e._v(" "),t("li",[t("strong",[e._v("midBlinkTime [integer]:")]),e._v(" the time for seperating short blinks from long blinks.")]),e._v(" "),t("li",[t("strong",[e._v("maxBlinkTime [integer]:")]),e._v(" the maximum time for a short blink to be detected (a long blink is detected if the blink time is bigger than midBlinkTime and lower than maxBlinkTime…")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" the minimum time for triggereing a fixation event when the user looks at a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("pupilPositionMode [combobox]:")]),e._v(" selects the mode for calculation of the eye position output port values. (left eye / right eye or an average of both eyes)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionRadius [integer]:")]),e._v(" defines the distance to an offset correction point where this offset correction points starts to influece the eye coordinates (see description below)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionMode [combobox]:")]),e._v(" selects the mode for the offset correction measurement. (manual or automatic mode, see above description)")])]),e._v(" "),t("h3",{attrs:{id:"calibration-and-offset-correction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#calibration-and-offset-correction"}},[e._v("#")]),e._v(" Calibration and Offset Correction")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("A sucessful gaze estimation needs prior calibration. This should be done using the application/GUI provided by the EyeTribe software. However, a calibration can also be initiated using the provided "),t("strong",[e._v("startCalibration")]),e._v(" EventListener port (see below). When starting the calibration process using this event, the mouse cursor is positioned to 9 screen locations, starting at the left upper corner and iterating via middle and right position through 3 rows until the right bottom corner is reached. During calibration, follow the cursor with the eyes (reducing head movements to a minimum). For each calibration position, an acoustic signal indicates the time when the samples are taken. When the calibration process is finished, the plugin continues sending the measurement data from it’s output ports.")])]),e._v(" "),t("li",[t("p",[e._v("The "),t("strong",[e._v("offset correction")]),e._v(" event listener port allows setting so called “offset correction points” at desired screen locations. This is possible during the normal operation of the eye tracking. This is useful when certain locations on the screen cannot be reached because of a calibration problem but a new calibraiton is either not desired or not successful / precise enough. The goal of the offset correction is to reduce the error between the real gaze point and the estimated (weak) gaze point where usually the cursor is positioned, by adding a small offset value. After starting the offset correction (which is indicated by an acoustic signal) look at the intended spot on the screen. After 1 second, another acoustic signal indicates that the coordinates have been saved. Now look at the mouse cursor (the weak gaze point which shall be corrected). The next step differs according to the selected offset correction mode (which can be chosen via the "),t("strong",[e._v("offsetCorrectionMode")]),e._v(" property:")]),e._v(" "),t("ul",[t("li",[e._v("manual offset correction: try to follow the cursor with the eyes. It should move slowly towards the original gaze point, correcting the error. This manual calibration phase takes about 4 seconds.")]),e._v(" "),t("li",[e._v("automatic offset correction: look at the cursor. After 1 second, the offest is measured.")])]),e._v(" "),t("p",[e._v("After the offset correction has been performed, the given offset value is stored into an internal list. As soon as the estimated gaze point enters an area around the offset correction point (the area size is defined via the property offsetCorrectionRadius), an appropriate fraction of the offset value is added to the estimated gaze point coordinates."),t("br"),e._v("\nHere, linear approximation is used, so that looking at the original (weak) gaze estimation point will add the full offest value, resulting the corrected gaze estimation point.")])])])])}),[],!1,null,null,null);t.default=r.exports},790:function(e,t,i){e.exports=i.p+"assets/img/eyetribe.97cfbb7f.jpg"},791:function(e,t,i){e.exports=i.p+"assets/img/eyetribe_hw.46447525.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{1228:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eyetribe"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eyetribe"}},[e._v("#")]),e._v(" Eyetribe")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This component provides access to the raw gaze tracking data from the "),t("a",{attrs:{href:"https://theeyetribe.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("EyeTribe"),t("OutboundLink")],1),e._v(" eye tracking device. The data includes the estimated gazepoint (x/y), the eye location (x/y), fixation time and eye close time. The plugin connects to a running EyeTribe server.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(795),alt:"Screenshot: Eyetribe plugin",title:"Screenshot: Eyetribe plugin"}})]),e._v(" "),t("p",[e._v("Eyetribe plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Eyetribe tracker must be connected to an USB3.0 port and the Eyetribe server software must be running.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(796),alt:"Screenshot: Eyetribe hardware",title:"Screenshot: Eyetribe hardware"}})]),e._v(" "),t("p",[e._v("Eyetribe hardware")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("gazex [integer]:")]),e._v(" The x-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("gazey [integer]:")]),e._v(" The y-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("posx [integer]:")]),e._v(" The x-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("posy [integer]:")]),e._v(" The y-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" The time period for fixation of a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("closeTime [integer]:")]),e._v(" The time period for closing both eyes (or eye tracking signal lost)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("startCalibration:")]),e._v(" if this event is triggered, calibration procedure for the Eyetracker is started.")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrection:")]),e._v(" this event is useful when a drift of the cursor position has occured. When the event is triggered, the plugin stops the output of x/y coordinates for several seconds, where the user has time to fix the exact cursor position with the eyes. (see description below).")]),e._v(" "),t("li",[t("strong",[e._v("removeLastOffsetCorrection")]),e._v(" when this event is triggered, the last offset correction point will be removed - useful if the offset correction did not work as intended.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blink:")]),e._v(" triggered if the eye detection is lost for a timespan bigger than minBlinkTime and lower than midBlinkTime. This can be used for a single eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("longBlink:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than midBlinkTime and lower than maxBlinkTime. This can be used for a long eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("fixation:")]),e._v(" triggered if the user looks at a particular location on the screen for longer than defined in via the fixationTime property.")]),e._v(" "),t("li",[t("strong",[e._v("fixationEnd:")]),e._v(" triggered if the user looks stops looking at a particular location (which triggered a fixation event).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("minBlinkTime [integer]:")]),e._v(" the minimum time for a short blink to be detected (a short blink is detected if the blink time is bigger than minBlinkTime and lower than midBlinkTime.)")]),e._v(" "),t("li",[t("strong",[e._v("midBlinkTime [integer]:")]),e._v(" the time for seperating short blinks from long blinks.")]),e._v(" "),t("li",[t("strong",[e._v("maxBlinkTime [integer]:")]),e._v(" the maximum time for a short blink to be detected (a long blink is detected if the blink time is bigger than midBlinkTime and lower than maxBlinkTime…")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" the minimum time for triggereing a fixation event when the user looks at a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("pupilPositionMode [combobox]:")]),e._v(" selects the mode for calculation of the eye position output port values. (left eye / right eye or an average of both eyes)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionRadius [integer]:")]),e._v(" defines the distance to an offset correction point where this offset correction points starts to influece the eye coordinates (see description below)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionMode [combobox]:")]),e._v(" selects the mode for the offset correction measurement. (manual or automatic mode, see above description)")])]),e._v(" "),t("h3",{attrs:{id:"calibration-and-offset-correction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#calibration-and-offset-correction"}},[e._v("#")]),e._v(" Calibration and Offset Correction")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("A sucessful gaze estimation needs prior calibration. This should be done using the application/GUI provided by the EyeTribe software. However, a calibration can also be initiated using the provided "),t("strong",[e._v("startCalibration")]),e._v(" EventListener port (see below). When starting the calibration process using this event, the mouse cursor is positioned to 9 screen locations, starting at the left upper corner and iterating via middle and right position through 3 rows until the right bottom corner is reached. During calibration, follow the cursor with the eyes (reducing head movements to a minimum). For each calibration position, an acoustic signal indicates the time when the samples are taken. When the calibration process is finished, the plugin continues sending the measurement data from it’s output ports.")])]),e._v(" "),t("li",[t("p",[e._v("The "),t("strong",[e._v("offset correction")]),e._v(" event listener port allows setting so called “offset correction points” at desired screen locations. This is possible during the normal operation of the eye tracking. This is useful when certain locations on the screen cannot be reached because of a calibration problem but a new calibraiton is either not desired or not successful / precise enough. The goal of the offset correction is to reduce the error between the real gaze point and the estimated (weak) gaze point where usually the cursor is positioned, by adding a small offset value. After starting the offset correction (which is indicated by an acoustic signal) look at the intended spot on the screen. After 1 second, another acoustic signal indicates that the coordinates have been saved. Now look at the mouse cursor (the weak gaze point which shall be corrected). The next step differs according to the selected offset correction mode (which can be chosen via the "),t("strong",[e._v("offsetCorrectionMode")]),e._v(" property:")]),e._v(" "),t("ul",[t("li",[e._v("manual offset correction: try to follow the cursor with the eyes. It should move slowly towards the original gaze point, correcting the error. This manual calibration phase takes about 4 seconds.")]),e._v(" "),t("li",[e._v("automatic offset correction: look at the cursor. After 1 second, the offest is measured.")])]),e._v(" "),t("p",[e._v("After the offset correction has been performed, the given offset value is stored into an internal list. As soon as the estimated gaze point enters an area around the offset correction point (the area size is defined via the property offsetCorrectionRadius), an appropriate fraction of the offset value is added to the estimated gaze point coordinates."),t("br"),e._v("\nHere, linear approximation is used, so that looking at the original (weak) gaze estimation point will add the full offest value, resulting the corrected gaze estimation point.")])])])])}),[],!1,null,null,null);t.default=r.exports},795:function(e,t,i){e.exports=i.p+"assets/img/eyetribe.97cfbb7f.jpg"},796:function(e,t,i){e.exports=i.p+"assets/img/eyetribe_hw.46447525.png"}}]); \ No newline at end of file diff --git a/assets/js/88.e422507d.js b/assets/js/88.3dee584e.js similarity index 97% rename from assets/js/88.e422507d.js rename to assets/js/88.3dee584e.js index f03d73c5a4..ea992b00b3 100644 --- a/assets/js/88.e422507d.js +++ b/assets/js/88.3dee584e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{1228:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eyex"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eyex"}},[e._v("#")]),e._v(" EyeX")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("OS: Windows")]),e._v(" "),t("p",[e._v("This component provides access to the raw gaze tracking data from "),t("a",{attrs:{href:"https://tobiigaming.com/products/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii eye tracking devices"),t("OutboundLink")],1),e._v(". The data includes the estimated gazepoint (x/y), the eye location (x/y), fixation time and eye close time. The plugin connects to the device via the Tobii SDK.")]),e._v(" "),t("p",[e._v("Currently the following devices should work:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://tobiigaming.com/product/tobii-eyex/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii EyeX"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://tobiigaming.com/eye-tracker-4c/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Tracker 4C"),t("OutboundLink")],1),e._v(": Also supports head tracking and can be combined with the "),t("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/AsTeRICS-Help/master/Plugins/sensors/Tobii4CHeadTracker.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii4CHeadTracker"),t("OutboundLink")],1),e._v(" plugin to get eye gaze and head pose data.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://de.steelseries.com/gaming-controllers/sentry",target:"_blank",rel:"noopener noreferrer"}},[e._v("Steel Series Sentry"),t("OutboundLink")],1),e._v(" (not tested)")])]),e._v(" "),t("p",[t("img",{attrs:{src:i(792),alt:"Screenshot: Tobii EyeX plugin",title:"Screenshot: Tobii EyeX plugin"}})]),e._v(" "),t("p",[e._v("Tobii EyeX plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("OS: Windows")]),e._v(" "),t("li",[e._v("USB port: The Tobii EyeX device needs a USB3.0 port, the Tracker 4C needs at least a USB 2.0 port. Preferably don’t use a USB hub, or only use a "),t("a",{attrs:{href:"https://help.tobii.com/hc/en-us/articles/212907389-Recommended-USB-2-0-hubs",target:"_blank",rel:"noopener noreferrer"}},[e._v("recommended hub from Tobii"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://tobiigaming.com/getstarted/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Eye Tracking Core Software"),t("OutboundLink")],1),e._v(" must be installed and running.")])]),e._v(" "),t("p",[t("img",{attrs:{src:i(793),alt:"Screenshot: Tobii EyeX hardware",title:"Screenshot: Tobii EyeX hardware"}})]),e._v(" "),t("p",[e._v("Tobii EyeX hardware")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("gazeX [integer]:")]),e._v(" The x-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("gazeY [integer]:")]),e._v(" The y-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("posX [integer]:")]),e._v(" The x-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("posY [integer]:")]),e._v(" The y-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" The time period for fixation of a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("closeTime [integer]:")]),e._v(" The time period for closing both eyes (or eye tracking signal lost)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("offsetCorrection:")]),e._v(" when offset correction mode “CorrectionSpots” is selecte, an new correction spot can be added via this event. When the event is triggered, the plugin stops the output of x/y coordinates for several seconds, where the user has time to fix the exact cursor position with the eyes, thereby defining the x/y correction offset.")]),e._v(" "),t("li",[t("strong",[e._v("removeLastOffsetCorrection")]),e._v(" when this event is triggered, the last offset correction spot will be removed - useful if the offset correction did not work as intended.")]),e._v(" "),t("li",[t("strong",[e._v("stopOffsetCorrection")]),e._v(" when this event is triggered, any offset correction mode is stopped.")]),e._v(" "),t("li",[t("strong",[e._v("createAndCalibrateGuestProfile")]),e._v(" creates a new guest profiles and initiates calibration.")]),e._v(" "),t("li",[t("strong",[e._v("calibrateCurrentProfile")]),e._v(" initiates calibration of the currently active profile.")]),e._v(" "),t("li",[t("strong",[e._v("switchToOffsetCorrectionSpots")]),e._v(" selects uses multiple correction spot which can be added via envet “offsetCorrection”.")]),e._v(" "),t("li",[t("strong",[e._v("switchToPermanentOffsetCorrection")]),e._v(" permanently adds the input port values of xOffset and yOffset to the gazepoint.")]),e._v(" "),t("li",[t("strong",[e._v("switchToCombinedOffsetCorrection")]),e._v(" uses the xOffset / yOffset input port values to fine-tune the gazePoint (this switches off gaze-updates until a certain gaze offset is detected.)")]),e._v(" "),t("li",[t("strong",[e._v("activate")]),e._v(" activates the eye tracker.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate")]),e._v(" deactivates the eye tracker.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blink:")]),e._v(" triggered if the eye detection is lost for a timespan bigger than minBlinkTime and lower than midBlinkTime. This can be used for a single eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("longBlink:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than midBlinkTime and lower than maxBlinkTime. This can be used for a long eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("fixation:")]),e._v(" triggered if the user looks at a particular location on the screen for longer than defined in via the fixationTime property.")]),e._v(" "),t("li",[t("strong",[e._v("fixationEnd:")]),e._v(" triggered if the user looks stops looking at a particular location (which triggered a fixation event).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" selects if the eyetracker is enabled on startup of the model.")]),e._v(" "),t("li",[t("strong",[e._v("averaging [integer]:")]),e._v(" selects the size of an internal averager for the gaze point x/y values.")]),e._v(" "),t("li",[t("strong",[e._v("minBlinkTime [integer]:")]),e._v(" the minimum time for a short blink to be detected (a short blink is detected if the blink time is bigger than minBlinkTime and lower than midBlinkTime.)")]),e._v(" "),t("li",[t("strong",[e._v("midBlinkTime [integer]:")]),e._v(" the time for seperating short blinks from long blinks.")]),e._v(" "),t("li",[t("strong",[e._v("maxBlinkTime [integer]:")]),e._v(" the maximum time for a short blink to be detected (a long blink is detected if the blink time is bigger than midBlinkTime and lower than maxBlinkTime…")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" the minimum time for triggereing a fixation event when the user looks at a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("pupilPositionMode [combobox]:")]),e._v(" selects the mode for calculation of the eye position output port values. (left eye / right eye or an average of both eyes)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionRadius [integer]:")]),e._v(" defines the distance to an offset correction point where this offset correction points starts to influece the eye coordinates (see description below)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionMode [combobox]:")]),e._v(" selects the mode for the offset correction. (correction spots, permanent offset correction or combined correction)")])]),e._v(" "),t("h3",{attrs:{id:"calibration-and-offset-correction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#calibration-and-offset-correction"}},[e._v("#")]),e._v(" Calibration and Offset Correction")]),e._v(" "),t("ul",[t("li",[e._v("A sucessful gaze estimation needs prior calibration. This should be done using the application/GUI provided by the Tobii EyeX software, but can also be accomplished by the provided event listeners.")]),e._v(" "),t("li",[e._v("The "),t("strong",[e._v("offset correction")]),e._v(" modes allow application of drift correction during normal operation of the eye tracking. This is useful when certain locations on the screen cannot be reached because of a calibration problem but a new calibraiton is either not desired or not successful / precise enough. The goal of the offset correction is to reduce the error between the real gaze point and the estimated (weak) gaze point where usually the cursor is positioned, by adding small offset values.")])]),e._v(" "),t("p",[e._v("There are three offset correction modes provided, which can be chosen via the "),t("strong",[e._v("offsetCorrectionMode")]),e._v(" property or the respective events:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("offset correction spots")]),e._v("\nwhen a new spot is set via the provided event listener, eye tracking is stopped for several seconds. Look at the cursor. After 1 second, the offest is measured. When the tracking starts again, the measured offset is applied in the area of the selected offsetCorrectionRadius. Here, linear approximation is used, so that looking at the original (weak) gaze estimation point will add the full offest value, resulting the corrected gaze estimation point. Multiple spots can be added at different screen loactions.")]),e._v(" "),t("li",[t("strong",[e._v("permanent offset correction")]),e._v(":\nthe correction values for x and y which are provided via the input ports xOffset and yOffset are permanenty added to the gazepoint location. A joystick, mouthmouse or similar input device can be used to provide these values.")]),e._v(" "),t("li",[t("strong",[e._v("combined offset correction")]),e._v(":\nif the correction values for x and y which provided via the input ports xOffset and yOffset are not zero, the eyetracking stops and the correction values are applied to the last gazepoint. Eye-tracking starts again when the measured gazepoint differs from the corrected gazepoint by more than the selected offsetCorrectionRadius.")])])])}),[],!1,null,null,null);t.default=r.exports},792:function(e,t,i){e.exports=i.p+"assets/img/eyex.f70899f9.jpg"},793:function(e,t,i){e.exports=i.p+"assets/img/eyex_hw.a3ae220c.png"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{1227:function(e,t,i){"use strict";i.r(t);var o=i(2),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eyex"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eyex"}},[e._v("#")]),e._v(" EyeX")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("OS: Windows")]),e._v(" "),t("p",[e._v("This component provides access to the raw gaze tracking data from "),t("a",{attrs:{href:"https://tobiigaming.com/products/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii eye tracking devices"),t("OutboundLink")],1),e._v(". The data includes the estimated gazepoint (x/y), the eye location (x/y), fixation time and eye close time. The plugin connects to the device via the Tobii SDK.")]),e._v(" "),t("p",[e._v("Currently the following devices should work:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://tobiigaming.com/product/tobii-eyex/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii EyeX"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://tobiigaming.com/eye-tracker-4c/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Tracker 4C"),t("OutboundLink")],1),e._v(": Also supports head tracking and can be combined with the "),t("a",{attrs:{href:"http://asterics.github.io/AsTeRICS/AsTeRICS-Help/master/Plugins/sensors/Tobii4CHeadTracker.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii4CHeadTracker"),t("OutboundLink")],1),e._v(" plugin to get eye gaze and head pose data.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://de.steelseries.com/gaming-controllers/sentry",target:"_blank",rel:"noopener noreferrer"}},[e._v("Steel Series Sentry"),t("OutboundLink")],1),e._v(" (not tested)")])]),e._v(" "),t("p",[t("img",{attrs:{src:i(793),alt:"Screenshot: Tobii EyeX plugin",title:"Screenshot: Tobii EyeX plugin"}})]),e._v(" "),t("p",[e._v("Tobii EyeX plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("OS: Windows")]),e._v(" "),t("li",[e._v("USB port: The Tobii EyeX device needs a USB3.0 port, the Tracker 4C needs at least a USB 2.0 port. Preferably don’t use a USB hub, or only use a "),t("a",{attrs:{href:"https://help.tobii.com/hc/en-us/articles/212907389-Recommended-USB-2-0-hubs",target:"_blank",rel:"noopener noreferrer"}},[e._v("recommended hub from Tobii"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://tobiigaming.com/getstarted/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tobii Eye Tracking Core Software"),t("OutboundLink")],1),e._v(" must be installed and running.")])]),e._v(" "),t("p",[t("img",{attrs:{src:i(794),alt:"Screenshot: Tobii EyeX hardware",title:"Screenshot: Tobii EyeX hardware"}})]),e._v(" "),t("p",[e._v("Tobii EyeX hardware")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("gazeX [integer]:")]),e._v(" The x-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("gazeY [integer]:")]),e._v(" The y-coordinate of the estimated gazepoint on the computer screen (in pixels)")]),e._v(" "),t("li",[t("strong",[e._v("posX [integer]:")]),e._v(" The x-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("posY [integer]:")]),e._v(" The y-coordinate of the eye pupil(s) - left / right / both pupils can be selected via property")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" The time period for fixation of a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("closeTime [integer]:")]),e._v(" The time period for closing both eyes (or eye tracking signal lost)")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("offsetCorrection:")]),e._v(" when offset correction mode “CorrectionSpots” is selecte, an new correction spot can be added via this event. When the event is triggered, the plugin stops the output of x/y coordinates for several seconds, where the user has time to fix the exact cursor position with the eyes, thereby defining the x/y correction offset.")]),e._v(" "),t("li",[t("strong",[e._v("removeLastOffsetCorrection")]),e._v(" when this event is triggered, the last offset correction spot will be removed - useful if the offset correction did not work as intended.")]),e._v(" "),t("li",[t("strong",[e._v("stopOffsetCorrection")]),e._v(" when this event is triggered, any offset correction mode is stopped.")]),e._v(" "),t("li",[t("strong",[e._v("createAndCalibrateGuestProfile")]),e._v(" creates a new guest profiles and initiates calibration.")]),e._v(" "),t("li",[t("strong",[e._v("calibrateCurrentProfile")]),e._v(" initiates calibration of the currently active profile.")]),e._v(" "),t("li",[t("strong",[e._v("switchToOffsetCorrectionSpots")]),e._v(" selects uses multiple correction spot which can be added via envet “offsetCorrection”.")]),e._v(" "),t("li",[t("strong",[e._v("switchToPermanentOffsetCorrection")]),e._v(" permanently adds the input port values of xOffset and yOffset to the gazepoint.")]),e._v(" "),t("li",[t("strong",[e._v("switchToCombinedOffsetCorrection")]),e._v(" uses the xOffset / yOffset input port values to fine-tune the gazePoint (this switches off gaze-updates until a certain gaze offset is detected.)")]),e._v(" "),t("li",[t("strong",[e._v("activate")]),e._v(" activates the eye tracker.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate")]),e._v(" deactivates the eye tracker.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blink:")]),e._v(" triggered if the eye detection is lost for a timespan bigger than minBlinkTime and lower than midBlinkTime. This can be used for a single eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("longBlink:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than midBlinkTime and lower than maxBlinkTime. This can be used for a long eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("fixation:")]),e._v(" triggered if the user looks at a particular location on the screen for longer than defined in via the fixationTime property.")]),e._v(" "),t("li",[t("strong",[e._v("fixationEnd:")]),e._v(" triggered if the user looks stops looking at a particular location (which triggered a fixation event).")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("enabled [boolean]:")]),e._v(" selects if the eyetracker is enabled on startup of the model.")]),e._v(" "),t("li",[t("strong",[e._v("averaging [integer]:")]),e._v(" selects the size of an internal averager for the gaze point x/y values.")]),e._v(" "),t("li",[t("strong",[e._v("minBlinkTime [integer]:")]),e._v(" the minimum time for a short blink to be detected (a short blink is detected if the blink time is bigger than minBlinkTime and lower than midBlinkTime.)")]),e._v(" "),t("li",[t("strong",[e._v("midBlinkTime [integer]:")]),e._v(" the time for seperating short blinks from long blinks.")]),e._v(" "),t("li",[t("strong",[e._v("maxBlinkTime [integer]:")]),e._v(" the maximum time for a short blink to be detected (a long blink is detected if the blink time is bigger than midBlinkTime and lower than maxBlinkTime…")]),e._v(" "),t("li",[t("strong",[e._v("fixationTime [integer]:")]),e._v(" the minimum time for triggereing a fixation event when the user looks at a particular spot on the screen")]),e._v(" "),t("li",[t("strong",[e._v("pupilPositionMode [combobox]:")]),e._v(" selects the mode for calculation of the eye position output port values. (left eye / right eye or an average of both eyes)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionRadius [integer]:")]),e._v(" defines the distance to an offset correction point where this offset correction points starts to influece the eye coordinates (see description below)")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrectionMode [combobox]:")]),e._v(" selects the mode for the offset correction. (correction spots, permanent offset correction or combined correction)")])]),e._v(" "),t("h3",{attrs:{id:"calibration-and-offset-correction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#calibration-and-offset-correction"}},[e._v("#")]),e._v(" Calibration and Offset Correction")]),e._v(" "),t("ul",[t("li",[e._v("A sucessful gaze estimation needs prior calibration. This should be done using the application/GUI provided by the Tobii EyeX software, but can also be accomplished by the provided event listeners.")]),e._v(" "),t("li",[e._v("The "),t("strong",[e._v("offset correction")]),e._v(" modes allow application of drift correction during normal operation of the eye tracking. This is useful when certain locations on the screen cannot be reached because of a calibration problem but a new calibraiton is either not desired or not successful / precise enough. The goal of the offset correction is to reduce the error between the real gaze point and the estimated (weak) gaze point where usually the cursor is positioned, by adding small offset values.")])]),e._v(" "),t("p",[e._v("There are three offset correction modes provided, which can be chosen via the "),t("strong",[e._v("offsetCorrectionMode")]),e._v(" property or the respective events:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("offset correction spots")]),e._v("\nwhen a new spot is set via the provided event listener, eye tracking is stopped for several seconds. Look at the cursor. After 1 second, the offest is measured. When the tracking starts again, the measured offset is applied in the area of the selected offsetCorrectionRadius. Here, linear approximation is used, so that looking at the original (weak) gaze estimation point will add the full offest value, resulting the corrected gaze estimation point. Multiple spots can be added at different screen loactions.")]),e._v(" "),t("li",[t("strong",[e._v("permanent offset correction")]),e._v(":\nthe correction values for x and y which are provided via the input ports xOffset and yOffset are permanenty added to the gazepoint location. A joystick, mouthmouse or similar input device can be used to provide these values.")]),e._v(" "),t("li",[t("strong",[e._v("combined offset correction")]),e._v(":\nif the correction values for x and y which provided via the input ports xOffset and yOffset are not zero, the eyetracking stops and the correction values are applied to the last gazepoint. Eye-tracking starts again when the measured gazepoint differs from the corrected gazepoint by more than the selected offsetCorrectionRadius.")])])])}),[],!1,null,null,null);t.default=r.exports},793:function(e,t,i){e.exports=i.p+"assets/img/eyex.f70899f9.jpg"},794:function(e,t,i){e.exports=i.p+"assets/img/eyex_hw.a3ae220c.png"}}]); \ No newline at end of file diff --git a/assets/js/89.f43efbae.js b/assets/js/89.b8755cfd.js similarity index 97% rename from assets/js/89.f43efbae.js rename to assets/js/89.b8755cfd.js index 63714bcf66..76a3ba5d83 100644 --- a/assets/js/89.f43efbae.js +++ b/assets/js/89.b8755cfd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{1229:function(e,t,i){"use strict";i.r(t);var o=i(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eyetracker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eyetracker"}},[e._v("#")]),e._v(" Eyetracker")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This component provides different computer vision tracking algorithms which can be selected via the “trackingMode” property. The available modes include “blob-tracking”, “calibrated eye-tracking” and “calibrated eye-tracking with head pose estimation”. The two eye-tracking modes deliver estimations of the x/y-positions where the user is looking on the computer screen which can be used for cursor control (gaze estimation).")]),e._v(" "),t("h3",{attrs:{id:"plugin-modes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-modes"}},[e._v("#")]),e._v(" Plugin modes")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("only blob tracking")]),e._v(" In this mode, the plugin just outputs the x/y coordinates of a round surface detected in the live camera images. No calibration procedure is needed. The plugins starts immediately with the coordinate output at the ports “x” and “y”. A possible application for this mode is tracking of a round marker which could be placed anywhere on the body.")]),e._v(" "),t("li",[t("strong",[e._v("calibrated eye tracking")]),e._v(" In this mode, the plugin expects close-up images of an eye, recorded by a head-mounted setup. The suggested hardware configuration is the AsTeRICS headmounted SVM system (see image below). The eye-pupil location is determined and mapped to an estimated position at the computer screen where the person is looking at. For this mode, the plugins needs to be calibrated."),t("br"),e._v("\nFirst, a rectangular region of interest (ROI) has to be selected by clicking into the live camera image while holding the CTRL/STRG key. The ROI should cover the area where the eyeball is moving when the user is looking in different directions. Then, the calibration sequence can be started by sending an event to the “calibrate” event listener port. During calibration, the cursor is moved to several locations on the screen and the user is supposed to look at these positions without moving the head. The changing of the cursor position is indicated with an acoustic signal."),t("br"),e._v("\nCalibration succeeds if all calibration location can be recorded without excessively distorted values. If the calibration cannot be accomplished successfully, an acoustic signal is emitted and the Eyetracker plugin does not start to put out x/y data. In this case the calibration procedure has to be repeated."),t("br"),e._v("\nThe coordinate-output of the eye tracking is only working correctly if no head movements occur. Any head movement will compromise the correctness of the x/y estimation for the cursor position…")]),e._v(" "),t("li",[t("strong",[e._v("calibrated eye tracking with head pose estimation")]),e._v(" This mode is an extension of the “calibrated eye tracking” mode. The calibration has to be performed as above. Additionally to the head-mounted camera, an external LED-frame mounted on the computer monitor is used to minimize the negative effects of head movements to the tracking accuracy. Please note that this mode needs the head-mounted SVM device plus the external Led-Frame.")])]),e._v(" "),t("p",[t("img",{attrs:{src:i(794),alt:"Screenshot: Eyetracker in operation",title:"Screenshot: Eyetracker in operation"}})]),e._v(" "),t("p",[e._v("Eyetracker in operation (calibrated eyetracking mode)")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available in the operating system, to detect round blobs or the eye-pupil position. Depending on the mode (if head pose estimation is selected), a head mounted camera which films a close-up of the eye and an external LED-mount are needed.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(795),alt:"Screenshot: head mounted SVM device",title:"Screenshot: head mounted SVM device"}})]),e._v(" "),t("p",[e._v("Head mounted SVM device")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pt1x - pt4x [integer]:")])]),e._v(" "),t("li",[t("strong",[e._v("pt1y - pt4y [integer]:")]),e._v(" These 8 input ports can be connected to the corresponding output ports of the Sensorboard plugin. The Sensorboard delivers the location of 4 IR-led tracking points in the field-of-view of the IR-object-tracking camera of the headmounted SVM. This information can be used to compensate the head movement to increase gaze estimation stability. The 8 input ports have to be synchronized (turn the synchronized-property on for every input port). "),t("strong",[e._v("These 8 input ports support synchronization")])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("x [integer]:")]),e._v(" The x-coordinate delivered by the tracking algorithm. The meaning of this value depends on the selected mode.")]),e._v(" "),t("li",[t("strong",[e._v("y [integer]:")]),e._v(" The y-coordinate delivered by the tracking algorithm. The meaning of this value depends on the selected mode.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("calibrate:")]),e._v(" if this event is triggered, calibration procedure for the Eyetracker is started (this is not relevant for the mode “only blob tracking”).")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrection:")]),e._v(" this event is useful for eyetracking mode, when a drift of the cursor position has occured. When the event is triggered, the plugin stops the output of x/y coordinates for two seconds, where the user has time to fix the exact cursor position with the eyes. A new offset will be calculated to match the cursor position after the 2 seconds pause.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings")]),e._v(" an incoming event displays the settings window for the camera device, where parameters like image brightness or contrast can be adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("togglePoseInfoWindow")]),e._v(" an incoming event displays the pose info window, where the current location of the 4 IR tracking points for head-pose compensation can be seen. For a normal head orientation these 4 points should be centered in the middle of the window (change the angle of the frontal camera to adjust the position of the yellow dots).")]),e._v(" "),t("li",[t("strong",[e._v("startEvaluation")]),e._v(" an incoming event displays the accuracy evaluation window and starts evaluation. When the user follows the cross to 9 positions in the window, the x/y coordinates of the cursor are stored to a file in the ARE folder which can then be used to calculate and compare the gaze accuracy.")]),e._v(" "),t("li",[t("strong",[e._v("saveProfile")]),e._v(" an incoming event saves the camera settings to a file of the given name (property cameraProfile). Use with caution - a saved settings-profile does only work with the same camera which was used to save the settings.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blinkDetected:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than minBlinkDuration and lower than maxBlinkDuration. This can be used for a single eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("longBlinkDetected:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than maxBlinkDuration. This can be used for a long eye-blink detection.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cameraSelection [string, combobox selection]:")]),e._v(" using this property, the utilized camera can be chosen. Possible values range from “first camera” to “fith camera”. If only one camera is available in the system, “first camera” shall be chosen.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" This selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include “160x120”, “320x240”, “640x480”, “800x600”, “1024x768” and “1600x1200”. If the selectied resolution cannot be delivered by the image acquisition device, the next matching resolution is chosen by the plugin.")]),e._v(" "),t("li",[t("strong",[e._v("cameraProfile [string]")]),e._v(" a filename for the camera settings profile to be saved (property cameraProfile). Use with caution - a saved settings-profile does only work with the same camera which was used to save the settings.")]),e._v(" "),t("li",[t("strong",[e._v("cameraDisplayUpdate [integer]:")]),e._v(" This property allows to select the update rate for the camera display in milliseconds. If “0” milliseconds is chosen, no window for the live-video will be displayed. If “100” is chosen, the live image window will be updated 10 times a second. This property does not influence the frame rate of the camera nor the processing interval for new camera frames, only the display in the GUI is adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("tracking mode [string, combobox selection]:")]),e._v(" The selection of the plugin’s mode of operation (“only blob tracking”, “calibrated eye tracking”, or “calibrated eye tracking with head pose estimation”)")]),e._v(" "),t("li",[t("strong",[e._v("xMin [integer]:")]),e._v(" the minimum value for the x-coordinate output")]),e._v(" "),t("li",[t("strong",[e._v("xMax [integer]:")]),e._v(" the maximum value for the x-coordinate output. If “0” is selected, the plugins auto-detects the screen resolution and uses the X-Size of the computer screen.")]),e._v(" "),t("li",[t("strong",[e._v("yMin [integer]:")]),e._v(" the minimum value for the y-coordinate output")]),e._v(" "),t("li",[t("strong",[e._v("yMax [integer]:")]),e._v(" the maximum value for the y-coordinate output. If “0” is selected, the plugins auto-detects the screen resolution and uses the Y-Size of the computer screen.")]),e._v(" "),t("li",[t("strong",[e._v("calibrationStepsX [integer]:")]),e._v(" the number of rows for generating calibration positions")]),e._v(" "),t("li",[t("strong",[e._v("calibrationStepsY [integer]:")]),e._v(" the number of columns for generating calibration positions. For example: if 4 x-steps and 3 y-steps are chosen, the user has to look at 12 cursor positions during the calibration phase. More positions increase the gaze-tracking accuracy but result in a longer calibration phase.")]),e._v(" "),t("li",[t("strong",[e._v("averaging [integer]:")]),e._v(" the length of the averaging window for smoothening the ouput values.")]),e._v(" "),t("li",[t("strong",[e._v("screenSize [double]:")]),e._v(" the diameter of the computer screen (important if head pose correction is used)")]),e._v(" "),t("li",[t("strong",[e._v("minBlinkDuration [integer]:")]),e._v(" the minimum time for a short blink to be detected (a short blink is detected if the blink time is bigger than minBlinkDuration and lower than maxBlinkDuration.")]),e._v(" "),t("li",[t("strong",[e._v("maxBlinkDuration [integer]:")]),e._v(" the maximum time for a short blink to be detected (a long blink is detected if the blink time is bigger than maxBlinkDuration).")])])])}),[],!1,null,null,null);t.default=n.exports},794:function(e,t,i){e.exports=i.p+"assets/img/eyetracker.a4e515ac.jpg"},795:function(e,t,i){e.exports=i.p+"assets/img/eyetracker_headmount.ea75c7af.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{1226:function(e,t,i){"use strict";i.r(t);var o=i(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"eyetracker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#eyetracker"}},[e._v("#")]),e._v(" Eyetracker")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This component provides different computer vision tracking algorithms which can be selected via the “trackingMode” property. The available modes include “blob-tracking”, “calibrated eye-tracking” and “calibrated eye-tracking with head pose estimation”. The two eye-tracking modes deliver estimations of the x/y-positions where the user is looking on the computer screen which can be used for cursor control (gaze estimation).")]),e._v(" "),t("h3",{attrs:{id:"plugin-modes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#plugin-modes"}},[e._v("#")]),e._v(" Plugin modes")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("only blob tracking")]),e._v(" In this mode, the plugin just outputs the x/y coordinates of a round surface detected in the live camera images. No calibration procedure is needed. The plugins starts immediately with the coordinate output at the ports “x” and “y”. A possible application for this mode is tracking of a round marker which could be placed anywhere on the body.")]),e._v(" "),t("li",[t("strong",[e._v("calibrated eye tracking")]),e._v(" In this mode, the plugin expects close-up images of an eye, recorded by a head-mounted setup. The suggested hardware configuration is the AsTeRICS headmounted SVM system (see image below). The eye-pupil location is determined and mapped to an estimated position at the computer screen where the person is looking at. For this mode, the plugins needs to be calibrated."),t("br"),e._v("\nFirst, a rectangular region of interest (ROI) has to be selected by clicking into the live camera image while holding the CTRL/STRG key. The ROI should cover the area where the eyeball is moving when the user is looking in different directions. Then, the calibration sequence can be started by sending an event to the “calibrate” event listener port. During calibration, the cursor is moved to several locations on the screen and the user is supposed to look at these positions without moving the head. The changing of the cursor position is indicated with an acoustic signal."),t("br"),e._v("\nCalibration succeeds if all calibration location can be recorded without excessively distorted values. If the calibration cannot be accomplished successfully, an acoustic signal is emitted and the Eyetracker plugin does not start to put out x/y data. In this case the calibration procedure has to be repeated."),t("br"),e._v("\nThe coordinate-output of the eye tracking is only working correctly if no head movements occur. Any head movement will compromise the correctness of the x/y estimation for the cursor position…")]),e._v(" "),t("li",[t("strong",[e._v("calibrated eye tracking with head pose estimation")]),e._v(" This mode is an extension of the “calibrated eye tracking” mode. The calibration has to be performed as above. Additionally to the head-mounted camera, an external LED-frame mounted on the computer monitor is used to minimize the negative effects of head movements to the tracking accuracy. Please note that this mode needs the head-mounted SVM device plus the external Led-Frame.")])]),e._v(" "),t("p",[t("img",{attrs:{src:i(791),alt:"Screenshot: Eyetracker in operation",title:"Screenshot: Eyetracker in operation"}})]),e._v(" "),t("p",[e._v("Eyetracker in operation (calibrated eyetracking mode)")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available in the operating system, to detect round blobs or the eye-pupil position. Depending on the mode (if head pose estimation is selected), a head mounted camera which films a close-up of the eye and an external LED-mount are needed.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(792),alt:"Screenshot: head mounted SVM device",title:"Screenshot: head mounted SVM device"}})]),e._v(" "),t("p",[e._v("Head mounted SVM device")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("pt1x - pt4x [integer]:")])]),e._v(" "),t("li",[t("strong",[e._v("pt1y - pt4y [integer]:")]),e._v(" These 8 input ports can be connected to the corresponding output ports of the Sensorboard plugin. The Sensorboard delivers the location of 4 IR-led tracking points in the field-of-view of the IR-object-tracking camera of the headmounted SVM. This information can be used to compensate the head movement to increase gaze estimation stability. The 8 input ports have to be synchronized (turn the synchronized-property on for every input port). "),t("strong",[e._v("These 8 input ports support synchronization")])])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("x [integer]:")]),e._v(" The x-coordinate delivered by the tracking algorithm. The meaning of this value depends on the selected mode.")]),e._v(" "),t("li",[t("strong",[e._v("y [integer]:")]),e._v(" The y-coordinate delivered by the tracking algorithm. The meaning of this value depends on the selected mode.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("calibrate:")]),e._v(" if this event is triggered, calibration procedure for the Eyetracker is started (this is not relevant for the mode “only blob tracking”).")]),e._v(" "),t("li",[t("strong",[e._v("offsetCorrection:")]),e._v(" this event is useful for eyetracking mode, when a drift of the cursor position has occured. When the event is triggered, the plugin stops the output of x/y coordinates for two seconds, where the user has time to fix the exact cursor position with the eyes. A new offset will be calculated to match the cursor position after the 2 seconds pause.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings")]),e._v(" an incoming event displays the settings window for the camera device, where parameters like image brightness or contrast can be adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("togglePoseInfoWindow")]),e._v(" an incoming event displays the pose info window, where the current location of the 4 IR tracking points for head-pose compensation can be seen. For a normal head orientation these 4 points should be centered in the middle of the window (change the angle of the frontal camera to adjust the position of the yellow dots).")]),e._v(" "),t("li",[t("strong",[e._v("startEvaluation")]),e._v(" an incoming event displays the accuracy evaluation window and starts evaluation. When the user follows the cross to 9 positions in the window, the x/y coordinates of the cursor are stored to a file in the ARE folder which can then be used to calculate and compare the gaze accuracy.")]),e._v(" "),t("li",[t("strong",[e._v("saveProfile")]),e._v(" an incoming event saves the camera settings to a file of the given name (property cameraProfile). Use with caution - a saved settings-profile does only work with the same camera which was used to save the settings.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("blinkDetected:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than minBlinkDuration and lower than maxBlinkDuration. This can be used for a single eye-blink detection.")]),e._v(" "),t("li",[t("strong",[e._v("longBlinkDetected:")]),e._v(" triggered if the blob detection is lost for a timespan bigger than maxBlinkDuration. This can be used for a long eye-blink detection.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cameraSelection [string, combobox selection]:")]),e._v(" using this property, the utilized camera can be chosen. Possible values range from “first camera” to “fith camera”. If only one camera is available in the system, “first camera” shall be chosen.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" This selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include “160x120”, “320x240”, “640x480”, “800x600”, “1024x768” and “1600x1200”. If the selectied resolution cannot be delivered by the image acquisition device, the next matching resolution is chosen by the plugin.")]),e._v(" "),t("li",[t("strong",[e._v("cameraProfile [string]")]),e._v(" a filename for the camera settings profile to be saved (property cameraProfile). Use with caution - a saved settings-profile does only work with the same camera which was used to save the settings.")]),e._v(" "),t("li",[t("strong",[e._v("cameraDisplayUpdate [integer]:")]),e._v(" This property allows to select the update rate for the camera display in milliseconds. If “0” milliseconds is chosen, no window for the live-video will be displayed. If “100” is chosen, the live image window will be updated 10 times a second. This property does not influence the frame rate of the camera nor the processing interval for new camera frames, only the display in the GUI is adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("tracking mode [string, combobox selection]:")]),e._v(" The selection of the plugin’s mode of operation (“only blob tracking”, “calibrated eye tracking”, or “calibrated eye tracking with head pose estimation”)")]),e._v(" "),t("li",[t("strong",[e._v("xMin [integer]:")]),e._v(" the minimum value for the x-coordinate output")]),e._v(" "),t("li",[t("strong",[e._v("xMax [integer]:")]),e._v(" the maximum value for the x-coordinate output. If “0” is selected, the plugins auto-detects the screen resolution and uses the X-Size of the computer screen.")]),e._v(" "),t("li",[t("strong",[e._v("yMin [integer]:")]),e._v(" the minimum value for the y-coordinate output")]),e._v(" "),t("li",[t("strong",[e._v("yMax [integer]:")]),e._v(" the maximum value for the y-coordinate output. If “0” is selected, the plugins auto-detects the screen resolution and uses the Y-Size of the computer screen.")]),e._v(" "),t("li",[t("strong",[e._v("calibrationStepsX [integer]:")]),e._v(" the number of rows for generating calibration positions")]),e._v(" "),t("li",[t("strong",[e._v("calibrationStepsY [integer]:")]),e._v(" the number of columns for generating calibration positions. For example: if 4 x-steps and 3 y-steps are chosen, the user has to look at 12 cursor positions during the calibration phase. More positions increase the gaze-tracking accuracy but result in a longer calibration phase.")]),e._v(" "),t("li",[t("strong",[e._v("averaging [integer]:")]),e._v(" the length of the averaging window for smoothening the ouput values.")]),e._v(" "),t("li",[t("strong",[e._v("screenSize [double]:")]),e._v(" the diameter of the computer screen (important if head pose correction is used)")]),e._v(" "),t("li",[t("strong",[e._v("minBlinkDuration [integer]:")]),e._v(" the minimum time for a short blink to be detected (a short blink is detected if the blink time is bigger than minBlinkDuration and lower than maxBlinkDuration.")]),e._v(" "),t("li",[t("strong",[e._v("maxBlinkDuration [integer]:")]),e._v(" the maximum time for a short blink to be detected (a long blink is detected if the blink time is bigger than maxBlinkDuration).")])])])}),[],!1,null,null,null);t.default=n.exports},791:function(e,t,i){e.exports=i.p+"assets/img/eyetracker.a4e515ac.jpg"},792:function(e,t,i){e.exports=i.p+"assets/img/eyetracker_headmount.ea75c7af.jpg"}}]); \ No newline at end of file diff --git a/assets/js/90.4b2e55e1.js b/assets/js/90.cf914999.js similarity index 95% rename from assets/js/90.4b2e55e1.js rename to assets/js/90.cf914999.js index 1e0d16136c..97d20958c5 100644 --- a/assets/js/90.4b2e55e1.js +++ b/assets/js/90.cf914999.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{1230:function(e,t,v){"use strict";v.r(t);var r=v(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"fs20receiver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fs20receiver"}},[e._v("#")]),e._v(" FS20Receiver")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The FS20Receiver receives commands of the home automation system FS20 for ELV Electronics. Depending on the received commands, events will be fired.")]),e._v(" "),t("p",[t("img",{attrs:{src:v(796),alt:"FS20 Receiver Plugin",title:"FS20 Receiver Plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the "),t("a",{attrs:{href:"http://www.elv.de/empfaenger-fs20-funkschaltsystem.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("FS20 PCE Receiver"),t("OutboundLink")],1),e._v(" connected to a USB port.")]),e._v(" "),t("p",[t("img",{attrs:{src:v(797),alt:"FS20 PCE Receiver",title:"FS20 PCE Receiver"}})]),e._v(" "),t("h2",{attrs:{id:"supported-oses"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-oses"}},[e._v("#")]),e._v(" Supported OSes")]),e._v(" "),t("ul",[t("li",[e._v("Windows ("),t("code",[e._v("x86")]),e._v(", "),t("code",[e._v("x64")]),e._v(")")]),e._v(" "),t("li",[e._v("Linux ("),t("code",[e._v("x86")]),e._v(", "),t("code",[e._v("x64")]),e._v(", "),t("code",[e._v("ARM")]),e._v(" - (Raspberry Pi))")]),e._v(" "),t("li",[e._v("macOS X ("),t("code",[e._v("x86")]),e._v(", "),t("code",[e._v("x64")]),e._v(")")])]),e._v(" "),t("h2",{attrs:{id:"notes-on-linux-platform"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-on-linux-platform"}},[e._v("#")]),e._v(" Notes on Linux platform")]),e._v(" "),t("p",[e._v("If you installed AsTeRICS as package, all necessary permission already set. If you built AsTeRICS on your own, please type following command on a terminal window:")]),e._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("echo")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('\'ATTRS{idProduct}=="e015", ATTRS{idVendor}=="18ef", MODE="0660", GROUP="plugdev"\'')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" /etc/udev/rules.d/50-asterics-fs20.rules\n")])])]),t("p",[e._v("One additional command is necessary if you work on ARM based platforms (RaspberryPi, BananaPi,…):")]),e._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("ln")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-sf")]),e._v(" /lib/arm-linux-gnueabihf/libudev.so.1 /lib/arm-linux-gnueabihf/libudev.so.0\n")])])]),t("p",[e._v("Afterwards, unplug and plug in the FS20 device and restart AsTeRICS.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("fs20command [string]:")]),e._v(" The received FS20 command will be send out of the plugin. The data has the following format: housecode_sendaddress_command, e.g. 11111111_3343_17")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("p",[e._v("Each received command triggers an event, being mapped to this command. The following table will describe this events:")]),e._v(" "),t("p",[e._v("Command Mapping")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[e._v("Event")]),e._v(" "),t("th",[e._v("Command")])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("Off")]),e._v(" "),t("td",[e._v("0")])]),e._v(" "),t("tr",[t("td",[e._v("Level1")]),e._v(" "),t("td",[e._v("1")])]),e._v(" "),t("tr",[t("td",[e._v("Level2")]),e._v(" "),t("td",[e._v("2")])]),e._v(" "),t("tr",[t("td",[e._v("Level3")]),e._v(" "),t("td",[e._v("3")])]),e._v(" "),t("tr",[t("td",[e._v("Level4")]),e._v(" "),t("td",[e._v("4")])]),e._v(" "),t("tr",[t("td",[e._v("Level5")]),e._v(" "),t("td",[e._v("5")])]),e._v(" "),t("tr",[t("td",[e._v("Level6")]),e._v(" "),t("td",[e._v("6")])]),e._v(" "),t("tr",[t("td",[e._v("Level7")]),e._v(" "),t("td",[e._v("7")])]),e._v(" "),t("tr",[t("td",[e._v("Level8")]),e._v(" "),t("td",[e._v("8")])]),e._v(" "),t("tr",[t("td",[e._v("Level9")]),e._v(" "),t("td",[e._v("9")])]),e._v(" "),t("tr",[t("td",[e._v("Level10")]),e._v(" "),t("td",[e._v("10")])]),e._v(" "),t("tr",[t("td",[e._v("Level11")]),e._v(" "),t("td",[e._v("11")])]),e._v(" "),t("tr",[t("td",[e._v("Level12")]),e._v(" "),t("td",[e._v("12")])]),e._v(" "),t("tr",[t("td",[e._v("Level13")]),e._v(" "),t("td",[e._v("13")])]),e._v(" "),t("tr",[t("td",[e._v("Level14")]),e._v(" "),t("td",[e._v("14")])]),e._v(" "),t("tr",[t("td",[e._v("Level15")]),e._v(" "),t("td",[e._v("15")])]),e._v(" "),t("tr",[t("td",[e._v("Level16")]),e._v(" "),t("td",[e._v("16")])]),e._v(" "),t("tr",[t("td",[e._v("OnOldLevel")]),e._v(" "),t("td",[e._v("17")])]),e._v(" "),t("tr",[t("td",[e._v("Toggle")]),e._v(" "),t("td",[e._v("18")])]),e._v(" "),t("tr",[t("td",[e._v("Dim Up")]),e._v(" "),t("td",[e._v("19")])]),e._v(" "),t("tr",[t("td",[e._v("Dim Down")]),e._v(" "),t("td",[e._v("20")])]),e._v(" "),t("tr",[t("td",[e._v("Dim Up and Down")]),e._v(" "),t("td",[e._v("21")])]),e._v(" "),t("tr",[t("td",[e._v("Program internal timer")]),e._v(" "),t("td",[e._v("22")])]),e._v(" "),t("tr",[t("td",[e._v("Off for timer then old brightness level")]),e._v(" "),t("td",[e._v("24")])]),e._v(" "),t("tr",[t("td",[e._v("On for timer then off")]),e._v(" "),t("td",[e._v("25")])]),e._v(" "),t("tr",[t("td",[e._v("On old brightness level for timer then off")]),e._v(" "),t("td",[e._v("26")])]),e._v(" "),t("tr",[t("td",[e._v("On for timer then old brightness level")]),e._v(" "),t("td",[e._v("30")])]),e._v(" "),t("tr",[t("td",[e._v("On for old level then previous state")]),e._v(" "),t("td",[e._v("31")])])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("housecode [integer]")]),e._v(" The housecode, the system should react on. The housecode has 8 digits, each from 1 to 4. This property influences the event triggers, but not the "),t("em",[e._v("fs20command")]),e._v(" output port.")]),e._v(" "),t("li",[t("strong",[e._v("sendaddress [integer]")]),e._v(" The sendaddress, the system should react on. The sendaddress has 4 digits, each from 1 to 4. This property influences the event triggers, but not the "),t("em",[e._v("fs20command")]),e._v(" output port.")])])])}),[],!1,null,null,null);t.default=s.exports},796:function(e,t,v){e.exports=v.p+"assets/img/fs20receiver.0644e792.jpg"},797:function(e,t,v){e.exports=v.p+"assets/img/fs20pce.71fd5453.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{1229:function(e,t,v){"use strict";v.r(t);var r=v(2),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"fs20receiver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fs20receiver"}},[e._v("#")]),e._v(" FS20Receiver")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Home Control)")]),e._v(" "),t("p",[e._v("The FS20Receiver receives commands of the home automation system FS20 for ELV Electronics. Depending on the received commands, events will be fired.")]),e._v(" "),t("p",[t("img",{attrs:{src:v(797),alt:"FS20 Receiver Plugin",title:"FS20 Receiver Plugin"}})]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the "),t("a",{attrs:{href:"http://www.elv.de/empfaenger-fs20-funkschaltsystem.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("FS20 PCE Receiver"),t("OutboundLink")],1),e._v(" connected to a USB port.")]),e._v(" "),t("p",[t("img",{attrs:{src:v(798),alt:"FS20 PCE Receiver",title:"FS20 PCE Receiver"}})]),e._v(" "),t("h2",{attrs:{id:"supported-oses"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-oses"}},[e._v("#")]),e._v(" Supported OSes")]),e._v(" "),t("ul",[t("li",[e._v("Windows ("),t("code",[e._v("x86")]),e._v(", "),t("code",[e._v("x64")]),e._v(")")]),e._v(" "),t("li",[e._v("Linux ("),t("code",[e._v("x86")]),e._v(", "),t("code",[e._v("x64")]),e._v(", "),t("code",[e._v("ARM")]),e._v(" - (Raspberry Pi))")]),e._v(" "),t("li",[e._v("macOS X ("),t("code",[e._v("x86")]),e._v(", "),t("code",[e._v("x64")]),e._v(")")])]),e._v(" "),t("h2",{attrs:{id:"notes-on-linux-platform"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-on-linux-platform"}},[e._v("#")]),e._v(" Notes on Linux platform")]),e._v(" "),t("p",[e._v("If you installed AsTeRICS as package, all necessary permission already set. If you built AsTeRICS on your own, please type following command on a terminal window:")]),e._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("echo")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('\'ATTRS{idProduct}=="e015", ATTRS{idVendor}=="18ef", MODE="0660", GROUP="plugdev"\'')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" /etc/udev/rules.d/50-asterics-fs20.rules\n")])])]),t("p",[e._v("One additional command is necessary if you work on ARM based platforms (RaspberryPi, BananaPi,…):")]),e._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("ln")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-sf")]),e._v(" /lib/arm-linux-gnueabihf/libudev.so.1 /lib/arm-linux-gnueabihf/libudev.so.0\n")])])]),t("p",[e._v("Afterwards, unplug and plug in the FS20 device and restart AsTeRICS.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("fs20command [string]:")]),e._v(" The received FS20 command will be send out of the plugin. The data has the following format: housecode_sendaddress_command, e.g. 11111111_3343_17")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("p",[e._v("Each received command triggers an event, being mapped to this command. The following table will describe this events:")]),e._v(" "),t("p",[e._v("Command Mapping")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[e._v("Event")]),e._v(" "),t("th",[e._v("Command")])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("Off")]),e._v(" "),t("td",[e._v("0")])]),e._v(" "),t("tr",[t("td",[e._v("Level1")]),e._v(" "),t("td",[e._v("1")])]),e._v(" "),t("tr",[t("td",[e._v("Level2")]),e._v(" "),t("td",[e._v("2")])]),e._v(" "),t("tr",[t("td",[e._v("Level3")]),e._v(" "),t("td",[e._v("3")])]),e._v(" "),t("tr",[t("td",[e._v("Level4")]),e._v(" "),t("td",[e._v("4")])]),e._v(" "),t("tr",[t("td",[e._v("Level5")]),e._v(" "),t("td",[e._v("5")])]),e._v(" "),t("tr",[t("td",[e._v("Level6")]),e._v(" "),t("td",[e._v("6")])]),e._v(" "),t("tr",[t("td",[e._v("Level7")]),e._v(" "),t("td",[e._v("7")])]),e._v(" "),t("tr",[t("td",[e._v("Level8")]),e._v(" "),t("td",[e._v("8")])]),e._v(" "),t("tr",[t("td",[e._v("Level9")]),e._v(" "),t("td",[e._v("9")])]),e._v(" "),t("tr",[t("td",[e._v("Level10")]),e._v(" "),t("td",[e._v("10")])]),e._v(" "),t("tr",[t("td",[e._v("Level11")]),e._v(" "),t("td",[e._v("11")])]),e._v(" "),t("tr",[t("td",[e._v("Level12")]),e._v(" "),t("td",[e._v("12")])]),e._v(" "),t("tr",[t("td",[e._v("Level13")]),e._v(" "),t("td",[e._v("13")])]),e._v(" "),t("tr",[t("td",[e._v("Level14")]),e._v(" "),t("td",[e._v("14")])]),e._v(" "),t("tr",[t("td",[e._v("Level15")]),e._v(" "),t("td",[e._v("15")])]),e._v(" "),t("tr",[t("td",[e._v("Level16")]),e._v(" "),t("td",[e._v("16")])]),e._v(" "),t("tr",[t("td",[e._v("OnOldLevel")]),e._v(" "),t("td",[e._v("17")])]),e._v(" "),t("tr",[t("td",[e._v("Toggle")]),e._v(" "),t("td",[e._v("18")])]),e._v(" "),t("tr",[t("td",[e._v("Dim Up")]),e._v(" "),t("td",[e._v("19")])]),e._v(" "),t("tr",[t("td",[e._v("Dim Down")]),e._v(" "),t("td",[e._v("20")])]),e._v(" "),t("tr",[t("td",[e._v("Dim Up and Down")]),e._v(" "),t("td",[e._v("21")])]),e._v(" "),t("tr",[t("td",[e._v("Program internal timer")]),e._v(" "),t("td",[e._v("22")])]),e._v(" "),t("tr",[t("td",[e._v("Off for timer then old brightness level")]),e._v(" "),t("td",[e._v("24")])]),e._v(" "),t("tr",[t("td",[e._v("On for timer then off")]),e._v(" "),t("td",[e._v("25")])]),e._v(" "),t("tr",[t("td",[e._v("On old brightness level for timer then off")]),e._v(" "),t("td",[e._v("26")])]),e._v(" "),t("tr",[t("td",[e._v("On for timer then old brightness level")]),e._v(" "),t("td",[e._v("30")])]),e._v(" "),t("tr",[t("td",[e._v("On for old level then previous state")]),e._v(" "),t("td",[e._v("31")])])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("housecode [integer]")]),e._v(" The housecode, the system should react on. The housecode has 8 digits, each from 1 to 4. This property influences the event triggers, but not the "),t("em",[e._v("fs20command")]),e._v(" output port.")]),e._v(" "),t("li",[t("strong",[e._v("sendaddress [integer]")]),e._v(" The sendaddress, the system should react on. The sendaddress has 4 digits, each from 1 to 4. This property influences the event triggers, but not the "),t("em",[e._v("fs20command")]),e._v(" output port.")])])])}),[],!1,null,null,null);t.default=s.exports},797:function(e,t,v){e.exports=v.p+"assets/img/fs20receiver.0644e792.jpg"},798:function(e,t,v){e.exports=v.p+"assets/img/fs20pce.71fd5453.jpg"}}]); \ No newline at end of file diff --git a/assets/js/91.74e06c72.js b/assets/js/91.eb24f1fe.js similarity index 98% rename from assets/js/91.74e06c72.js rename to assets/js/91.eb24f1fe.js index 561c761f7d..1004b2fe45 100644 --- a/assets/js/91.74e06c72.js +++ b/assets/js/91.eb24f1fe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{1232:function(e,t,i){"use strict";i.r(t);var a=i(2),r=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This component provides a face tracking computer vision algorithm which puts out estimated movement of a users’ nose and chin in x and y coordinates. The underlying mechanism builds upon the OpenCV library (in particular a trained cascade of haar-like features and an optical flow algorithm). The x- and y- coordinates can be used in camera-mouse configurations or to enable selection or control tasks. The values are only provided if a face can be tracked by the algorithm and are updated with the achievable frame rate. Note that the x- and y- values represent relative movement in pixels and have to be accumulated (e.g. via the integrate component) to generate e.g. absolute mouse positions.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(799),alt:"Screenshot: FacetrackerLK plugin",title:"Screenshot: FacetrackerLK plugin"}})]),e._v(" "),t("p",[e._v("FacetrackerLK plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available (this can be any webcam or a camera which is available as image acquisition device via the operating system). The picture below shows the Logitech Webcam 9000 Pro.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(315),alt:"Logitech Webcam 9000 Pro",title:"Logitech Webcam 9000 Pro"}})]),e._v(" "),t("p",[e._v("Logitech Webcam 9000 Pro")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("noseX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("noseY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s chin with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s chin with respect to the previous image frame.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("init:")]),e._v(" if this event is triggered, the face recognition procedure is initiated. This can be useful if the correct face position has been lost due to drifting of the LK algorithm.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings")]),e._v(" an incoming event displays the settings window for the camera device, where parameters like image brightness or contrast can be adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("saveProfile:")]),e._v(" if this event is triggered, the camera profile is saved.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cameraSelection [string, combobox selection]:")]),e._v(" using this property, the utilized camera can be chosen. Possible values range from “first camera” to “fith camera”. If only one camera is available in the system, “first camera” shall be chosen.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" This selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include “160x120”, “320x240”, “640x480”, “800x600”, “1024x768” and “1600x1200”. If the selectied resolution cannot be delivered by the image acquisition device, the next matching resolution is chosen by the plugin.")]),e._v(" "),t("li",[t("strong",[e._v("cameraDisplayUpdate [integer]:")]),e._v(" This property allows to select the update rate for the camera display in milliseconds. If “0” milliseconds is chosen, no window for the live-video will be displayed. If “100” is chosen, the live image window will be updated 10 times a second. Please note that this property does not influence the frame rate of the camera nor the processing interval for new camera frames, only the display in the GUI is adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("cameraProfile [string]:")]),e._v(" Filename of the camera profile.")])])])}),[],!1,null,null,null);t.default=r.exports},315:function(e,t){e.exports="data:image/jpeg;base64,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oc0juKqwysZG4udcjKd3TbT22WxxenZA4xOJe8CN2Y23PhY8Nt1Zrdyitc2SwVt0qoqJwT5IsFvtkdhqiueHWdHTX8qUi1xxbGD5x69w9haOu5HsKdeapIs0gQs69czz7GDxUmrGw7D44ImxRNDY2DK0Do6b8STqTxJWSsKIiICIiAiIgIiICIiAiIgIiICIiAiIgLDxHB4JxaaNkg4XGov0O3t7isxEHDVfI7hrzdvPxdTJbjwkDlequSmhkbEHunPNRNhaQ9ou1rnOBIy2vdx3Ls0QcG/kcoLHK+pa62hzsNu7JqteeRVv0t/qW/fUmIrojH8io+lu9QP5i9/Iv/zZ9QP5ik1E2RF7uRd3CrHfAf5ivUvIrFrz1TK4/J5tjGAdubNf2KSkTRHJ5Fab6RUW46Q+/Ks7GOSqnqah0z5pmhwYMjRHoGRtYPKcDwaF3CJo5XCOTTD6c3EZld0yuLxp+po32LqWtAFhoN3/AML1FAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB/9k="},799:function(e,t,i){e.exports=i.p+"assets/img/facetrackerlk.758a3180.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{1231:function(e,t,i){"use strict";i.r(t);var a=i(2),r=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frontmatter-title"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[e._v("#")]),e._v(" "+e._s(e.$frontmatter.title))]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Computer Vision)")]),e._v(" "),t("p",[e._v("This component provides a face tracking computer vision algorithm which puts out estimated movement of a users’ nose and chin in x and y coordinates. The underlying mechanism builds upon the OpenCV library (in particular a trained cascade of haar-like features and an optical flow algorithm). The x- and y- coordinates can be used in camera-mouse configurations or to enable selection or control tasks. The values are only provided if a face can be tracked by the algorithm and are updated with the achievable frame rate. Note that the x- and y- values represent relative movement in pixels and have to be accumulated (e.g. via the integrate component) to generate e.g. absolute mouse positions.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(800),alt:"Screenshot: FacetrackerLK plugin",title:"Screenshot: FacetrackerLK plugin"}})]),e._v(" "),t("p",[e._v("FacetrackerLK plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("A camera has to be available (this can be any webcam or a camera which is available as image acquisition device via the operating system). The picture below shows the Logitech Webcam 9000 Pro.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(315),alt:"Logitech Webcam 9000 Pro",title:"Logitech Webcam 9000 Pro"}})]),e._v(" "),t("p",[e._v("Logitech Webcam 9000 Pro")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("noseX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("noseY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s nose with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinX [integer]:")]),e._v(" This value specifies the relative change in the x coordinate of the user’s chin with respect to the previous image frame.")]),e._v(" "),t("li",[t("strong",[e._v("chinY [integer]:")]),e._v(" This value specifies the relative change in the y coordinate of the user’s chin with respect to the previous image frame.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("init:")]),e._v(" if this event is triggered, the face recognition procedure is initiated. This can be useful if the correct face position has been lost due to drifting of the LK algorithm.")]),e._v(" "),t("li",[t("strong",[e._v("showCameraSettings")]),e._v(" an incoming event displays the settings window for the camera device, where parameters like image brightness or contrast can be adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("saveProfile:")]),e._v(" if this event is triggered, the camera profile is saved.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("cameraSelection [string, combobox selection]:")]),e._v(" using this property, the utilized camera can be chosen. Possible values range from “first camera” to “fith camera”. If only one camera is available in the system, “first camera” shall be chosen.")]),e._v(" "),t("li",[t("strong",[e._v("cameraResolution [string, combobox selection]:")]),e._v(" This selection box provides several standard camera resolutions. Changing the resolution affects accuracy and performance (CPU load of the runtime system). Provided selections include “160x120”, “320x240”, “640x480”, “800x600”, “1024x768” and “1600x1200”. If the selectied resolution cannot be delivered by the image acquisition device, the next matching resolution is chosen by the plugin.")]),e._v(" "),t("li",[t("strong",[e._v("cameraDisplayUpdate [integer]:")]),e._v(" This property allows to select the update rate for the camera display in milliseconds. If “0” milliseconds is chosen, no window for the live-video will be displayed. If “100” is chosen, the live image window will be updated 10 times a second. Please note that this property does not influence the frame rate of the camera nor the processing interval for new camera frames, only the display in the GUI is adjusted.")]),e._v(" "),t("li",[t("strong",[e._v("cameraProfile [string]:")]),e._v(" Filename of the camera profile.")])])])}),[],!1,null,null,null);t.default=r.exports},315:function(e,t){e.exports="data:image/jpeg;base64,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oc0juKqwysZG4udcjKd3TbT22WxxenZA4xOJe8CN2Y23PhY8Nt1Zrdyitc2SwVt0qoqJwT5IsFvtkdhqiueHWdHTX8qUi1xxbGD5x69w9haOu5HsKdeapIs0gQs69czz7GDxUmrGw7D44ImxRNDY2DK0Do6b8STqTxJWSsKIiICIiAiIgIiICIiAiIgIiICIiAiIgLDxHB4JxaaNkg4XGov0O3t7isxEHDVfI7hrzdvPxdTJbjwkDlequSmhkbEHunPNRNhaQ9ou1rnOBIy2vdx3Ls0QcG/kcoLHK+pa62hzsNu7JqteeRVv0t/qW/fUmIrojH8io+lu9QP5i9/Iv/zZ9QP5ik1E2RF7uRd3CrHfAf5ivUvIrFrz1TK4/J5tjGAdubNf2KSkTRHJ5Fab6RUW46Q+/Ks7GOSqnqah0z5pmhwYMjRHoGRtYPKcDwaF3CJo5XCOTTD6c3EZld0yuLxp+po32LqWtAFhoN3/AML1FAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB/9k="},800:function(e,t,i){e.exports=i.p+"assets/img/facetrackerlk.758a3180.jpg"}}]); \ No newline at end of file diff --git a/assets/js/92.5c5637ee.js b/assets/js/92.5e6c4717.js similarity index 92% rename from assets/js/92.5c5637ee.js rename to assets/js/92.5e6c4717.js index d8c20efcdb..85ae9f407f 100644 --- a/assets/js/92.5c5637ee.js +++ b/assets/js/92.5e6c4717.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{1234:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"hoverpanel"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverpanel"}},[e._v("#")]),e._v(" HoverPanel")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This component creates a panel window with selectable opacity which can be placed anywhere on the screen/desktop. No window decoration is used. The plugin provides x/y input port for coordinates and the panel reacts if these coordinates are located within the panel. Via a selectable hover time, events can be triggered if the coordinates stay within the panel for a given time. Note that the hoverPanel represents a seperate window and is not a child window of the ARE window.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(801),alt:"Screenshot: HoverPanel plugin",title:"Screenshot: HoverPanel plugin"}})]),e._v(" "),t("p",[e._v("HoverPanel plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:r(802),alt:"Screenshot: 2 HoverPanels on screen",title:"Screenshot: 2 HoverPanels on screen"}})]),e._v(" "),t("p",[e._v("2 HoverPanels on screen")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("x [integer]:")]),e._v(" x coordinate")]),e._v(" "),t("li",[t("strong",[e._v("y [integer]:")]),e._v(" y coordinate")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activate:")]),e._v(" activates the hover panel.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate:")]),e._v(" deactivates the hover panel.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("selected:")]),e._v(" triggered if coordinates are in range of the panel position for the hover time period.")]),e._v(" "),t("li",[t("strong",[e._v("enter:")]),e._v(" triggered if coordinates enter the range/location of the panel.")]),e._v(" "),t("li",[t("strong",[e._v("exit:")]),e._v(" triggered if coordinates exit the range/location of the panel.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("dataSource [integer, combobox selection]:")]),e._v(" If “mouse coursor” is selected, the coordinates are grabbed from the current position of the mouse cursor. If “coordinateInputs” is selected, the input ports (x/y) are used.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("caption [string]:")]),e._v(" The caption of the hover panel.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the caption text.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("textColor [integer]:")]),e._v(" Defines color of the caption text.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" Defines background color.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("activationColor [integer]:")]),e._v(" Defines color for the hover selection process.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("dwellTime [integer]:")]),e._v(" The hover time for a selection.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("idleTime [integer]:")]),e._v(" The time how long the panel will stay inactive after a selection.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("opacity [integer]:")]),e._v(" the opacity of the hver panel (0-100%).")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("stayActive [boolean]:")]),e._v(" If selected, the hover panel will remain in active state after a selection (deactivation via event).")])])])])}),[],!1,null,null,null);t.default=n.exports},801:function(e,t,r){e.exports=r.p+"assets/img/hoverpanel.14f2bcde.jpg"},802:function(e,t,r){e.exports=r.p+"assets/img/hoverpanelscreen.250f61ea.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{1235:function(e,t,r){"use strict";r.r(t);var o=r(2),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"hoverpanel"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverpanel"}},[e._v("#")]),e._v(" HoverPanel")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Graphical User Interface)")]),e._v(" "),t("p",[e._v("This component creates a panel window with selectable opacity which can be placed anywhere on the screen/desktop. No window decoration is used. The plugin provides x/y input port for coordinates and the panel reacts if these coordinates are located within the panel. Via a selectable hover time, events can be triggered if the coordinates stay within the panel for a given time. Note that the hoverPanel represents a seperate window and is not a child window of the ARE window.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(805),alt:"Screenshot: HoverPanel plugin",title:"Screenshot: HoverPanel plugin"}})]),e._v(" "),t("p",[e._v("HoverPanel plugin")]),e._v(" "),t("p",[t("img",{attrs:{src:r(806),alt:"Screenshot: 2 HoverPanels on screen",title:"Screenshot: 2 HoverPanels on screen"}})]),e._v(" "),t("p",[e._v("2 HoverPanels on screen")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("x [integer]:")]),e._v(" x coordinate")]),e._v(" "),t("li",[t("strong",[e._v("y [integer]:")]),e._v(" y coordinate")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activate:")]),e._v(" activates the hover panel.")]),e._v(" "),t("li",[t("strong",[e._v("deactivate:")]),e._v(" deactivates the hover panel.")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("selected:")]),e._v(" triggered if coordinates are in range of the panel position for the hover time period.")]),e._v(" "),t("li",[t("strong",[e._v("enter:")]),e._v(" triggered if coordinates enter the range/location of the panel.")]),e._v(" "),t("li",[t("strong",[e._v("exit:")]),e._v(" triggered if coordinates exit the range/location of the panel.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("dataSource [integer, combobox selection]:")]),e._v(" If “mouse coursor” is selected, the coordinates are grabbed from the current position of the mouse cursor. If “coordinateInputs” is selected, the input ports (x/y) are used.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("caption [string]:")]),e._v(" The caption of the hover panel.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("fontSize [integer]:")]),e._v(" The size of the caption text.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("textColor [integer]:")]),e._v(" Defines color of the caption text.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("backgroundColor [integer]:")]),e._v(" Defines background color.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("activationColor [integer]:")]),e._v(" Defines color for the hover selection process.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("dwellTime [integer]:")]),e._v(" The hover time for a selection.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("idleTime [integer]:")]),e._v(" The time how long the panel will stay inactive after a selection.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("opacity [integer]:")]),e._v(" the opacity of the hver panel (0-100%).")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("stayActive [boolean]:")]),e._v(" If selected, the hover panel will remain in active state after a selection (deactivation via event).")])])])])}),[],!1,null,null,null);t.default=n.exports},805:function(e,t,r){e.exports=r.p+"assets/img/hoverpanel.14f2bcde.jpg"},806:function(e,t,r){e.exports=r.p+"assets/img/hoverpanelscreen.250f61ea.jpg"}}]); \ No newline at end of file diff --git a/assets/js/93.f70869bb.js b/assets/js/93.b66561e9.js similarity index 90% rename from assets/js/93.f70869bb.js rename to assets/js/93.b66561e9.js index 44e6aba4aa..9239381d35 100644 --- a/assets/js/93.f70869bb.js +++ b/assets/js/93.b66561e9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{1238:function(t,e,i){"use strict";i.r(e);var s=i(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),t._v(" "),e("p",[t._v("The JoystickCapture component provides data from the first detected Joystick controller which is available on the local system. Six Joystick analog positions (axis), the Point-Of-View angle and up to 20 Buttons are available as output ports and event triggers.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(806),alt:"Screenshot: JoystickCapture plugin",title:"Screenshot: JoystickCapture plugin"}})]),t._v(" "),e("p",[t._v("JoystickCapture plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A joystick has to be connected and available to the operating system.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(807),alt:"PC compatible GamePad",title:"PC compatible GamePad"}})]),t._v(" "),e("p",[t._v("PC compatible GamePad")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("x [integer]:")]),t._v(" The X-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("y [integer]:")]),t._v(" The Y-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("z [integer]:")]),t._v(" The Z-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("r [integer]:")]),t._v(" The R-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("u [integer]:")]),t._v(" The U-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("v [integer]:")]),t._v(" The V-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("pov [integer]:")]),t._v(" The POV-angle of the Joystick.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pressedButton1 - pressedButton20:")]),t._v(" This event is fired if the corresponding button of the Joystick has been pressed.")]),t._v(" "),e("li",[e("strong",[t._v("releasedButton1 - releasedButton20:")]),t._v(" This event is fired if the corresponding button of the Joystick has been released.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("updatePeriod [integer]:")]),t._v(" This property value sets the update time for refreshing the joystick information (in milliseconds).")])])])}),[],!1,null,null,null);e.default=o.exports},806:function(t,e,i){t.exports=i.p+"assets/img/joystickcapture.8a4b85ff.jpg"},807:function(t,e,i){t.exports=i.p+"assets/img/gamepad.28993a3e.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{1233:function(t,e,i){"use strict";i.r(e);var s=i(2),o=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frontmatter-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$frontmatter.title))]),t._v(" "),e("p",[t._v("Component Type: Sensor (Subcategory: Standard Input Devices)")]),t._v(" "),e("p",[t._v("The JoystickCapture component provides data from the first detected Joystick controller which is available on the local system. Six Joystick analog positions (axis), the Point-Of-View angle and up to 20 Buttons are available as output ports and event triggers.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(802),alt:"Screenshot: JoystickCapture plugin",title:"Screenshot: JoystickCapture plugin"}})]),t._v(" "),e("p",[t._v("JoystickCapture plugin")]),t._v(" "),e("h2",{attrs:{id:"requirements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),e("p",[t._v("A joystick has to be connected and available to the operating system.")]),t._v(" "),e("p",[e("img",{attrs:{src:i(803),alt:"PC compatible GamePad",title:"PC compatible GamePad"}})]),t._v(" "),e("p",[t._v("PC compatible GamePad")]),t._v(" "),e("h2",{attrs:{id:"output-port-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[t._v("#")]),t._v(" Output Port Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("x [integer]:")]),t._v(" The X-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("y [integer]:")]),t._v(" The Y-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("z [integer]:")]),t._v(" The Z-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("r [integer]:")]),t._v(" The R-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("u [integer]:")]),t._v(" The U-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("v [integer]:")]),t._v(" The V-Position of the Joystick.")]),t._v(" "),e("li",[e("strong",[t._v("pov [integer]:")]),t._v(" The POV-angle of the Joystick.")])]),t._v(" "),e("h2",{attrs:{id:"event-trigger-description"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[t._v("#")]),t._v(" Event Trigger Description")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("pressedButton1 - pressedButton20:")]),t._v(" This event is fired if the corresponding button of the Joystick has been pressed.")]),t._v(" "),e("li",[e("strong",[t._v("releasedButton1 - releasedButton20:")]),t._v(" This event is fired if the corresponding button of the Joystick has been released.")])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("updatePeriod [integer]:")]),t._v(" This property value sets the update time for refreshing the joystick information (in milliseconds).")])])])}),[],!1,null,null,null);e.default=o.exports},802:function(t,e,i){t.exports=i.p+"assets/img/joystickcapture.8a4b85ff.jpg"},803:function(t,e,i){t.exports=i.p+"assets/img/gamepad.28993a3e.jpg"}}]); \ No newline at end of file diff --git a/assets/js/94.af3eac82.js b/assets/js/94.85bd2eb8.js similarity index 92% rename from assets/js/94.af3eac82.js rename to assets/js/94.85bd2eb8.js index 95f1663465..023634e742 100644 --- a/assets/js/94.af3eac82.js +++ b/assets/js/94.85bd2eb8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{1241:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"legacy-analog-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#legacy-analog-in"}},[e._v("#")]),e._v(" Legacy Analog In")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The LegacyAnalogIn component is a sensor which is used in combination with the legacy ADC CIM (CIM Id: 0x0401). The component provides eight output ports which correlate to the inputs IN1 to IN8 of the CIM. The component can be set up to sample the inputs periodically or upon an incoming event.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(810),alt:"Screenshot: LegacyAnalogIn plugin",title:"Screenshot: LegacyAnalogIn plugin"}})]),e._v(" "),t("p",[e._v("Legacy AnalogIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an ADC-DAC CIM (CIM ID: 0x0401) connected to a USB port.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(811),alt:"ADC/DAC CIM",title:"ADC/DAC CIM"}})]),e._v(" "),t("p",[e._v("Legacy ADC/DAC CIM")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1 to in8 [integer]:")]),e._v(" Each of these output port corresponds to one input of the ADC CIM. The measured values are forwarded directly from the CIM thus corresponding to the description given in the CIM specification.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("adcSampleTrigger:")]),e._v(" An incoming event on this port will cause the ADC CIM to sample data on its inputs. This event will only take effect if the periodic_update property is set to 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodicUpdate [integer]:")]),e._v(" This property defines the time between data sampling requests to the ADC CIM (in milliseconds). The software component will send requests to the CIM in the given intervals. Due to current limitations of the ADC CIM it is recommended to use time intervals not lower than 50 milliseconds (20 samples per second).")]),e._v(" "),t("li",[t("strong",[e._v("activateInput1 to activateInput8 [Boolean]:")]),e._v(" These properties correspond the CIM’s ADC inputs IN1 to IN8, if the property is true, the corresponding output port of the software component will send the sampled data.")])])])}),[],!1,null,null,null);t.default=i.exports},810:function(e,t,n){e.exports=n.p+"assets/img/legacyanalogin.fe010a5f.jpg"},811:function(e,t,n){e.exports=n.p+"assets/img/analogin_cim.c0b8e23d.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{1241:function(e,t,n){"use strict";n.r(t);var o=n(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"legacy-analog-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#legacy-analog-in"}},[e._v("#")]),e._v(" Legacy Analog In")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The LegacyAnalogIn component is a sensor which is used in combination with the legacy ADC CIM (CIM Id: 0x0401). The component provides eight output ports which correlate to the inputs IN1 to IN8 of the CIM. The component can be set up to sample the inputs periodically or upon an incoming event.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(812),alt:"Screenshot: LegacyAnalogIn plugin",title:"Screenshot: LegacyAnalogIn plugin"}})]),e._v(" "),t("p",[e._v("Legacy AnalogIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This software component requires an ADC-DAC CIM (CIM ID: 0x0401) connected to a USB port.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(813),alt:"ADC/DAC CIM",title:"ADC/DAC CIM"}})]),e._v(" "),t("p",[e._v("Legacy ADC/DAC CIM")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1 to in8 [integer]:")]),e._v(" Each of these output port corresponds to one input of the ADC CIM. The measured values are forwarded directly from the CIM thus corresponding to the description given in the CIM specification.")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("adcSampleTrigger:")]),e._v(" An incoming event on this port will cause the ADC CIM to sample data on its inputs. This event will only take effect if the periodic_update property is set to 0.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("periodicUpdate [integer]:")]),e._v(" This property defines the time between data sampling requests to the ADC CIM (in milliseconds). The software component will send requests to the CIM in the given intervals. Due to current limitations of the ADC CIM it is recommended to use time intervals not lower than 50 milliseconds (20 samples per second).")]),e._v(" "),t("li",[t("strong",[e._v("activateInput1 to activateInput8 [Boolean]:")]),e._v(" These properties correspond the CIM’s ADC inputs IN1 to IN8, if the property is true, the corresponding output port of the software component will send the sampled data.")])])])}),[],!1,null,null,null);t.default=i.exports},812:function(e,t,n){e.exports=n.p+"assets/img/legacyanalogin.fe010a5f.jpg"},813:function(e,t,n){e.exports=n.p+"assets/img/analogin_cim.c0b8e23d.jpg"}}]); \ No newline at end of file diff --git a/assets/js/95.dc53fd07.js b/assets/js/95.4775b468.js similarity index 90% rename from assets/js/95.dc53fd07.js rename to assets/js/95.4775b468.js index c59f11a786..db844965d4 100644 --- a/assets/js/95.dc53fd07.js +++ b/assets/js/95.4775b468.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{1243:function(e,t,i){"use strict";i.r(t);var n=i(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"legacy-digital-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#legacy-digital-in"}},[e._v("#")]),e._v(" Legacy Digital In")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The LegacyDigitalIn component provides an interface to read the digital inputs of the legacy GPIO CIM (CIM Id: 0x0201). On state changes of the connected signals (transitions to high or low level), the component generates corresponding trigger-events.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(813),alt:"Screenshot: LegacyDigitalIn plugin",title:"Screenshot: LegacyDigitalIn plugin"}})]),e._v(" "),t("p",[e._v("LegacyDigitalIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the legacy GPIO CIM (CIM Id: 0x0201) connected to an USB port.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(814),alt:"GPIO CIM",title:"GPIO CIM"}})]),e._v(" "),t("p",[e._v("GPIO CIM")]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1High to in8High:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to high level, an event will be raised on the corresponding port.")]),e._v(" "),t("li",[t("strong",[e._v("in1Low to in8Low:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to low level, an event will be raised on the corresponding port.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activateEventIn1 to activateEventIn8 [Boolean]:")]),e._v(" These properties declare for each port whether or not a signal transition on the actual input port should result in an event being triggered in the ARE. If a property is set true for one input, it will raise events on signal transitions, if it is set to false it will not.")]),e._v(" "),t("li",[t("strong",[e._v("periodicUpdate:")]),e._v(" Period in milliseconds for update messages about state of device inputs. If the property is set to zero, the plugin will receive messages from the CIM on signal transitions, if the property is non-zero, the CIM will send status messages in the defined intervals without extra event messages on signal changes. Both modes will have the same effect on the software plugin, it will raise events on its trigger ports.")])])])}),[],!1,null,null,null);t.default=s.exports},813:function(e,t,i){e.exports=i.p+"assets/img/legacydigitalin.4f0bc82a.jpg"},814:function(e,t,i){e.exports=i.p+"assets/img/digitalin_cim.32abc9c9.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{1242:function(e,t,i){"use strict";i.r(t);var n=i(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"legacy-digital-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#legacy-digital-in"}},[e._v("#")]),e._v(" Legacy Digital In")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Generic Control Input)")]),e._v(" "),t("p",[e._v("The LegacyDigitalIn component provides an interface to read the digital inputs of the legacy GPIO CIM (CIM Id: 0x0201). On state changes of the connected signals (transitions to high or low level), the component generates corresponding trigger-events.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(814),alt:"Screenshot: LegacyDigitalIn plugin",title:"Screenshot: LegacyDigitalIn plugin"}})]),e._v(" "),t("p",[e._v("LegacyDigitalIn plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("This component requires the legacy GPIO CIM (CIM Id: 0x0201) connected to an USB port.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(815),alt:"GPIO CIM",title:"GPIO CIM"}})]),e._v(" "),t("p",[e._v("GPIO CIM")]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("in1High to in8High:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to high level, an event will be raised on the corresponding port.")]),e._v(" "),t("li",[t("strong",[e._v("in1Low to in8Low:")]),e._v(" Each of these event ports is linked to one input port, if the device connection to this input port delivers a signal which changes to low level, an event will be raised on the corresponding port.")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("activateEventIn1 to activateEventIn8 [Boolean]:")]),e._v(" These properties declare for each port whether or not a signal transition on the actual input port should result in an event being triggered in the ARE. If a property is set true for one input, it will raise events on signal transitions, if it is set to false it will not.")]),e._v(" "),t("li",[t("strong",[e._v("periodicUpdate:")]),e._v(" Period in milliseconds for update messages about state of device inputs. If the property is set to zero, the plugin will receive messages from the CIM on signal transitions, if the property is non-zero, the CIM will send status messages in the defined intervals without extra event messages on signal changes. Both modes will have the same effect on the software plugin, it will raise events on its trigger ports.")])])])}),[],!1,null,null,null);t.default=s.exports},814:function(e,t,i){e.exports=i.p+"assets/img/legacydigitalin.4f0bc82a.jpg"},815:function(e,t,i){e.exports=i.p+"assets/img/digitalin_cim.32abc9c9.jpg"}}]); \ No newline at end of file diff --git a/assets/js/96.0e712931.js b/assets/js/96.67962702.js similarity index 96% rename from assets/js/96.0e712931.js rename to assets/js/96.67962702.js index ccb43b07fc..e1ed853223 100644 --- a/assets/js/96.0e712931.js +++ b/assets/js/96.67962702.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{1246:function(e,t,s){"use strict";s.r(t);var r=s(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"lipmouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#lipmouse"}},[e._v("#")]),e._v(" Lipmouse")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides signals from the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipmouse"),t("OutboundLink")],1),e._v(" module, which is a universal hardware module for alternative computer control and environnmental control. The FLipMouse allows computer control via a mouthpiece (i.e. via lips or small finger movements), and can create USB HID input for computers or smart phones (mouse-, keyboard- and joystick emulation). The FlipMouse also includes an infrared receiver and transmitter so that it can record and replay infrared codes of different consumer electronic devices. A user interacts with the FLpiMouse mouthpiece: left/right, up/down and sip/puff. Alternatively, HID actions and IR functions can be controlled via AT-commands (see below). The FLipmouse can be adjusted to work with very low forces so that it can be used by persons with severly reduced motor capabilites.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(817),alt:"Screenshot: Lipmouse plugin",title:"Screenshot: Lipmouse plugin"}})]),e._v(" "),t("p",[e._v("The Lipmouse sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The FLipmouse module must be connected to a USB port. Firmware for the FLipmouse sensor can be found in "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),t("OutboundLink")],1),e._v(" repository. The free Arduino IDE + Teensyduino can be used to update the firmware of the FLipmouse module.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(818),alt:"Lipmouse sensor application",title:"Lipmouse sensor application"}})]),e._v(" "),t("p",[e._v("FLipmouse application")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("AtCmd [string]:")]),e._v(" many functions of the FLipMouse can be controlled via AT commands, i.e. commands strings which start with ‘AT’ and are supported by the FLipMouse module. For a comprehensive list of supported commands see: "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/FLipWare/commands.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". The command strings sent to this input port do not need to start with ‘AT’ and do not need to end with a CR/LF character. For example: if you want to move the mouse 20 steps in x-direction, send ‘MX 20’ to the input port.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("X [integer]:")]),e._v(" the force applied to the FLipmouse mouthpiece in x-direction")]),e._v(" "),t("li",[t("strong",[e._v("Y [integer]:")]),e._v(" the force applied to the FLipmouse mouthpiece in y-direction")]),e._v(" "),t("li",[t("strong",[e._v("pressure [integer]:")]),e._v(" the pressure value applied to the sip/puff - sensor")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("calibration:")]),e._v(" if this event is received, the x/y force value is set to 0 (removing any drift of the sensor values)")]),e._v(" "),t("li",[t("strong",[e._v("setLed1:")]),e._v(" if this event is received, Led1 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed1:")]),e._v(" if this event is received, Led1 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed2:")]),e._v(" if this event is received, Led2 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed2:")]),e._v(" if this event is received, Led2 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed3:")]),e._v(" if this event is received, Led3 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed3:")]),e._v(" if this event is received, Led3 will be turned off")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increses back before the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longSip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increases back after the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("sipStart:")]),e._v(" will be triggered at the moment when pressure decreases under the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("sipEnd:")]),e._v(" will be triggered at the moment when pressure increases above the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("puff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back before the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longPuff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back after the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("puffStart:")]),e._v(" will be triggered at the moment when pressure increases above the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("puffEnd:")]),e._v(" will be triggered at the moment when pressure decreases under the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("button1Pressed:")]),e._v(" will be triggered when button1 of the FLipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button1Released:")]),e._v(" will be triggered when button1 of the FLipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button2Pressed:")]),e._v(" will be triggered when button2 of the FLipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button2Released:")]),e._v(" will be triggered when button2 of the FLipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button3Pressed:")]),e._v(" will be triggered when button3 of the FLipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button3Released:")]),e._v(" will be triggered when button3 of the FLipmouse is released")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("uniqueID [integer]:")]),e._v(" a unique identifier, useful if more then one lipmouse modules are used (dynamic property).")]),e._v(" "),t("li",[t("strong",[e._v("periodicADCUpdate [integer]:")]),e._v(" the update rate for force and pressure values in milliseconds.")]),e._v(" "),t("li",[t("strong",[e._v("sipThreshold [integer]:")]),e._v(" threshold value for sip actions.")]),e._v(" "),t("li",[t("strong",[e._v("sipTime [integer]:")]),e._v(" threshold time for sip/longSip events.")]),e._v(" "),t("li",[t("strong",[e._v("puffThreshold [integer]:")]),e._v(" threshold value for puff actions.")]),e._v(" "),t("li",[t("strong",[e._v("puffTime [integer]:")]),e._v(" threshold time for puff/longPuff events.")])])])}),[],!1,null,null,null);t.default=i.exports},817:function(e,t,s){e.exports=s.p+"assets/img/lipmouse.ac98bdc4.jpg"},818:function(e,t,s){e.exports=s.p+"assets/img/lipmouseapplication.da7bc790.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{1245:function(e,t,s){"use strict";s.r(t);var r=s(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"lipmouse"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#lipmouse"}},[e._v("#")]),e._v(" Lipmouse")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides signals from the "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLipmouse"),t("OutboundLink")],1),e._v(" module, which is a universal hardware module for alternative computer control and environnmental control. The FLipMouse allows computer control via a mouthpiece (i.e. via lips or small finger movements), and can create USB HID input for computers or smart phones (mouse-, keyboard- and joystick emulation). The FlipMouse also includes an infrared receiver and transmitter so that it can record and replay infrared codes of different consumer electronic devices. A user interacts with the FLpiMouse mouthpiece: left/right, up/down and sip/puff. Alternatively, HID actions and IR functions can be controlled via AT-commands (see below). The FLipmouse can be adjusted to work with very low forces so that it can be used by persons with severly reduced motor capabilites.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(818),alt:"Screenshot: Lipmouse plugin",title:"Screenshot: Lipmouse plugin"}})]),e._v(" "),t("p",[e._v("The Lipmouse sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The FLipmouse module must be connected to a USB port. Firmware for the FLipmouse sensor can be found in "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),t("OutboundLink")],1),e._v(" repository. The free Arduino IDE + Teensyduino can be used to update the firmware of the FLipmouse module.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(819),alt:"Lipmouse sensor application",title:"Lipmouse sensor application"}})]),e._v(" "),t("p",[e._v("FLipmouse application")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("AtCmd [string]:")]),e._v(" many functions of the FLipMouse can be controlled via AT commands, i.e. commands strings which start with ‘AT’ and are supported by the FLipMouse module. For a comprehensive list of supported commands see: "),t("a",{attrs:{href:"https://github.com/asterics/FLipMouse/blob/master/FLipWare/commands.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". The command strings sent to this input port do not need to start with ‘AT’ and do not need to end with a CR/LF character. For example: if you want to move the mouse 20 steps in x-direction, send ‘MX 20’ to the input port.")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("X [integer]:")]),e._v(" the force applied to the FLipmouse mouthpiece in x-direction")]),e._v(" "),t("li",[t("strong",[e._v("Y [integer]:")]),e._v(" the force applied to the FLipmouse mouthpiece in y-direction")]),e._v(" "),t("li",[t("strong",[e._v("pressure [integer]:")]),e._v(" the pressure value applied to the sip/puff - sensor")])]),e._v(" "),t("h2",{attrs:{id:"event-listener-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-listener-description"}},[e._v("#")]),e._v(" Event Listener Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("calibration:")]),e._v(" if this event is received, the x/y force value is set to 0 (removing any drift of the sensor values)")]),e._v(" "),t("li",[t("strong",[e._v("setLed1:")]),e._v(" if this event is received, Led1 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed1:")]),e._v(" if this event is received, Led1 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed2:")]),e._v(" if this event is received, Led2 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed2:")]),e._v(" if this event is received, Led2 will be turned off")]),e._v(" "),t("li",[t("strong",[e._v("setLed3:")]),e._v(" if this event is received, Led3 will be turned on")]),e._v(" "),t("li",[t("strong",[e._v("clearLed3:")]),e._v(" if this event is received, Led3 will be turned off")])]),e._v(" "),t("h2",{attrs:{id:"event-triggerer-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-triggerer-description"}},[e._v("#")]),e._v(" Event Triggerer Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("sip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increses back before the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longSip:")]),e._v(" will be triggered when pressure decreases under the selected sip treshold and increases back after the selected sipTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("sipStart:")]),e._v(" will be triggered at the moment when pressure decreases under the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("sipEnd:")]),e._v(" will be triggered at the moment when pressure increases above the selected sip treshold")]),e._v(" "),t("li",[t("strong",[e._v("puff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back before the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("longPuff:")]),e._v(" will be triggered when pressure increases above the selected puff treshold and decreases back after the selected puffTime has passed")]),e._v(" "),t("li",[t("strong",[e._v("puffStart:")]),e._v(" will be triggered at the moment when pressure increases above the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("puffEnd:")]),e._v(" will be triggered at the moment when pressure decreases under the selected puff treshold")]),e._v(" "),t("li",[t("strong",[e._v("button1Pressed:")]),e._v(" will be triggered when button1 of the FLipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button1Released:")]),e._v(" will be triggered when button1 of the FLipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button2Pressed:")]),e._v(" will be triggered when button2 of the FLipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button2Released:")]),e._v(" will be triggered when button2 of the FLipmouse is released")]),e._v(" "),t("li",[t("strong",[e._v("button3Pressed:")]),e._v(" will be triggered when button3 of the FLipmouse is pressed")]),e._v(" "),t("li",[t("strong",[e._v("button3Released:")]),e._v(" will be triggered when button3 of the FLipmouse is released")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("uniqueID [integer]:")]),e._v(" a unique identifier, useful if more then one lipmouse modules are used (dynamic property).")]),e._v(" "),t("li",[t("strong",[e._v("periodicADCUpdate [integer]:")]),e._v(" the update rate for force and pressure values in milliseconds.")]),e._v(" "),t("li",[t("strong",[e._v("sipThreshold [integer]:")]),e._v(" threshold value for sip actions.")]),e._v(" "),t("li",[t("strong",[e._v("sipTime [integer]:")]),e._v(" threshold time for sip/longSip events.")]),e._v(" "),t("li",[t("strong",[e._v("puffThreshold [integer]:")]),e._v(" threshold value for puff actions.")]),e._v(" "),t("li",[t("strong",[e._v("puffTime [integer]:")]),e._v(" threshold time for puff/longPuff events.")])])])}),[],!1,null,null,null);t.default=i.exports},818:function(e,t,s){e.exports=s.p+"assets/img/lipmouse.ac98bdc4.jpg"},819:function(e,t,s){e.exports=s.p+"assets/img/lipmouseapplication.da7bc790.jpg"}}]); \ No newline at end of file diff --git a/assets/js/97.c092de25.js b/assets/js/97.6882e675.js similarity index 91% rename from assets/js/97.c092de25.js rename to assets/js/97.6882e675.js index 66f14f44d6..3704ff9c58 100644 --- a/assets/js/97.c092de25.js +++ b/assets/js/97.6882e675.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{1251:function(e,t,i){"use strict";i.r(t);var n=i(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"openvibe"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openvibe"}},[e._v("#")]),e._v(" OpenVibe")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("The OpenVibe plugin allows obtaining data from a connection to the OpenVibe BCI software which is currently one of the most prominent BCI frameworks. OpenVibe supports a wide range of biosignal and EEG acquisition devices and provides sophisticated signal processor training and classification algorithms. The graphical design concept is similar to the ACS, and plugins can be committed by the open source community."),t("br"),e._v("\nTo send data from OpenVibe to the ARE plugin, a dedicated OpenVibe Plugin called �AsTeRICS connection� has been created. This OpenVibe plugin sends up to 16 channels of signal data and up to 61 different stimulation events to the ARE plugin via a UDP connection, by using the Open Sound Control (OSC) protocol. The following figure shows this communication flow.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(823),alt:"Screenshot: data flow from OpenVibe to AsTeRICS",title:"Screenshot: data flow from OpenVibe to AsTeRICS"}})]),e._v(" "),t("p",[e._v("Data flow from OpenVibe to AsTeRICS")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The OpenVibe framework has to be installed and the AsTeRICS connection plugin must be available (this means that OpenVibe has to be built from sources and the AsTeRICS connection plugin is included in the build process). Furthermore, the correct UDP port must be set in the properties of both plugins, and the ARE plugin has to be running when OpenVibe is started (because the ARE plugin acts as server and opens a listening port).")]),e._v(" "),t("p",[t("img",{attrs:{src:i(824),alt:"Screenshot: OpenVibe plugin",title:"Screenshot: OpenVibe plugin"}})]),e._v(" "),t("p",[e._v("OpenVibe plugin")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[e._v("**CH1 - CH16 [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*these are the output ports for the OpenVibe signals. Up to 16 signals can be sent")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("OVTK_StimulationId_Label_00 - 0C")]),e._v("\n*** OVTK_StimulationId_Letter_0 - Z")]),e._v(" "),t("li",[e._v("OVTK_StimulationId_Label_Target")]),e._v(" "),t("li",[e._v("OVTK_StimulationId_Label_NonTarget**")])]),e._v(" "),t("p",[e._v("These are the Event triggers which can be linked to the corresponding OpenVibe Stimulation IDs. In total, 56 different stimulations can be processed.")]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Port [integer]:")]),e._v(" the UPD port which is opened by the AsTeRICS plugin to wait for the OpenVibe connection")])])])}),[],!1,null,null,null);t.default=s.exports},823:function(e,t,i){e.exports=i.p+"assets/img/openvibe_flow.4c88d4f6.jpg"},824:function(e,t,i){e.exports=i.p+"assets/img/openvibe.5fca2f7b.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{1247:function(e,t,i){"use strict";i.r(t);var n=i(2),s=Object(n.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"openvibe"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openvibe"}},[e._v("#")]),e._v(" OpenVibe")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Bioelectric Measurement)")]),e._v(" "),t("p",[e._v("The OpenVibe plugin allows obtaining data from a connection to the OpenVibe BCI software which is currently one of the most prominent BCI frameworks. OpenVibe supports a wide range of biosignal and EEG acquisition devices and provides sophisticated signal processor training and classification algorithms. The graphical design concept is similar to the ACS, and plugins can be committed by the open source community."),t("br"),e._v("\nTo send data from OpenVibe to the ARE plugin, a dedicated OpenVibe Plugin called �AsTeRICS connection� has been created. This OpenVibe plugin sends up to 16 channels of signal data and up to 61 different stimulation events to the ARE plugin via a UDP connection, by using the Open Sound Control (OSC) protocol. The following figure shows this communication flow.")]),e._v(" "),t("p",[t("img",{attrs:{src:i(821),alt:"Screenshot: data flow from OpenVibe to AsTeRICS",title:"Screenshot: data flow from OpenVibe to AsTeRICS"}})]),e._v(" "),t("p",[e._v("Data flow from OpenVibe to AsTeRICS")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The OpenVibe framework has to be installed and the AsTeRICS connection plugin must be available (this means that OpenVibe has to be built from sources and the AsTeRICS connection plugin is included in the build process). Furthermore, the correct UDP port must be set in the properties of both plugins, and the ARE plugin has to be running when OpenVibe is started (because the ARE plugin acts as server and opens a listening port).")]),e._v(" "),t("p",[t("img",{attrs:{src:i(822),alt:"Screenshot: OpenVibe plugin",title:"Screenshot: OpenVibe plugin"}})]),e._v(" "),t("p",[e._v("OpenVibe plugin")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[e._v("**CH1 - CH16 [double]"),t("img",{staticClass:"emoji",attrs:{draggable:"false",alt:"😗",src:"https://twemoji.maxcdn.com/2/svg/1f617.svg"}}),e._v("*these are the output ports for the OpenVibe signals. Up to 16 signals can be sent")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("OVTK_StimulationId_Label_00 - 0C")]),e._v("\n*** OVTK_StimulationId_Letter_0 - Z")]),e._v(" "),t("li",[e._v("OVTK_StimulationId_Label_Target")]),e._v(" "),t("li",[e._v("OVTK_StimulationId_Label_NonTarget**")])]),e._v(" "),t("p",[e._v("These are the Event triggers which can be linked to the corresponding OpenVibe Stimulation IDs. In total, 56 different stimulations can be processed.")]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Port [integer]:")]),e._v(" the UPD port which is opened by the AsTeRICS plugin to wait for the OpenVibe connection")])])])}),[],!1,null,null,null);t.default=s.exports},821:function(e,t,i){e.exports=i.p+"assets/img/openvibe_flow.4c88d4f6.jpg"},822:function(e,t,i){e.exports=i.p+"assets/img/openvibe.5fca2f7b.jpg"}}]); \ No newline at end of file diff --git a/assets/js/98.194b0cbf.js b/assets/js/98.cca344b5.js similarity index 93% rename from assets/js/98.194b0cbf.js rename to assets/js/98.cca344b5.js index d4c200ff9a..a3178efa5d 100644 --- a/assets/js/98.194b0cbf.js +++ b/assets/js/98.cca344b5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{1252:function(e,t,s){"use strict";s.r(t);var r=s(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"osc-server"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#osc-server"}},[e._v("#")]),e._v(" Osc Server")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Communication)")]),e._v(" "),t("p",[e._v("The OscServer component enables the ARE to receive messages using the OpenSoundControl (OSC) protocol. The OscServer can receive various OSC data messages which can be divided in the individual data segments and forwarded to the output ports. The properties are used for the segmentation of the individual information segments of a whole OSC message. This plugin utilizes the NetUtil java library (http://www.sciss.de/netutil/) for the OSC implementation, it is ©opyrighted 2004-2011 by Hanns Holger Rutz and released under the GNU Lesser General Public License.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(825),alt:"Screenshot: OscServer plugin",title:"Screenshot: OscServer plugin"}})]),e._v(" "),t("p",[e._v("OscServer plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Any OSC client software which sends data to the server e.g. ARE OscOutClient Plugin, various OSC Apps for Android and various PC software.")]),e._v(" "),t("li",[e._v("Check your firewall configuration and network settings to ensure that OSC messages are not blocked.")]),e._v(" "),t("li",[e._v("Exact knowledge about the structure of the OSC message, to determine the OSC message structure refere to the OSC client documentation or utilze a neworksniffer e.g. Wireshark (www.wireshark.org)")])]),e._v(" "),t("h2",{attrs:{id:"functional-principle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-principle"}},[e._v("#")]),e._v(" Functional Principle")]),e._v(" "),t("p",[t("img",{attrs:{src:s(826),alt:"Symblic OSC Message",title:"Symbolic OSC Message"}})]),e._v(" "),t("p",[e._v("Symbolic OSC Message")]),e._v(" "),t("p",[e._v("Each time the OscServer Plugin receives a OSC message it decompose it according to the plugin properties (AddressCH[n], ArgNrCH[n]) and forward it to the output ports. The OscServer is able to receive OSC messages with arguments of the type float and string. The OSC datatype float is typcased to the ARE type double.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out 1-8 [double]:")]),e._v(" Forward data form the OSC message.")]),e._v(" "),t("li",[t("strong",[e._v("out 9-12 [string]:")]),e._v(" Forward strings from the OSC message")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Port [integer]:")]),e._v(" This value specifies the OscServer port.")]),e._v(" "),t("li",[t("strong",[e._v("AddressCH[n] [string]:")]),e._v(" This value specifies the OSC input address e.g. “/path/to/sensor/accxyz”.")]),e._v(" "),t("li",[t("strong",[e._v("ArgNrCH[n] [integer]:")]),e._v(" The Argument Number defines which single argument of an entire message is picked out and forwarded to the output. The first argument of an OSC message begins with the index value zero, e.g. the first argument has the index 0, the second the index 1 and so on.")])]),e._v(" "),t("h2",{attrs:{id:"referred-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#referred-plugins"}},[e._v("#")]),e._v(" Referred Plugins")]),e._v(" "),t("ul",[t("li",[e._v("OscOutClient")]),e._v(" "),t("li",[e._v("OpenVibe")]),e._v(" "),t("li",[e._v("OscGestureFollower")])])])}),[],!1,null,null,null);t.default=i.exports},825:function(e,t,s){e.exports=s.p+"assets/img/oscserver.1e05d9e8.jpg"},826:function(e,t,s){e.exports=s.p+"assets/img/oscmsg.2cebaa20.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{1252:function(e,t,s){"use strict";s.r(t);var r=s(2),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"osc-server"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#osc-server"}},[e._v("#")]),e._v(" Osc Server")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Communication)")]),e._v(" "),t("p",[e._v("The OscServer component enables the ARE to receive messages using the OpenSoundControl (OSC) protocol. The OscServer can receive various OSC data messages which can be divided in the individual data segments and forwarded to the output ports. The properties are used for the segmentation of the individual information segments of a whole OSC message. This plugin utilizes the NetUtil java library (http://www.sciss.de/netutil/) for the OSC implementation, it is ©opyrighted 2004-2011 by Hanns Holger Rutz and released under the GNU Lesser General Public License.")]),e._v(" "),t("p",[t("img",{attrs:{src:s(827),alt:"Screenshot: OscServer plugin",title:"Screenshot: OscServer plugin"}})]),e._v(" "),t("p",[e._v("OscServer plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("ul",[t("li",[e._v("Any OSC client software which sends data to the server e.g. ARE OscOutClient Plugin, various OSC Apps for Android and various PC software.")]),e._v(" "),t("li",[e._v("Check your firewall configuration and network settings to ensure that OSC messages are not blocked.")]),e._v(" "),t("li",[e._v("Exact knowledge about the structure of the OSC message, to determine the OSC message structure refere to the OSC client documentation or utilze a neworksniffer e.g. Wireshark (www.wireshark.org)")])]),e._v(" "),t("h2",{attrs:{id:"functional-principle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#functional-principle"}},[e._v("#")]),e._v(" Functional Principle")]),e._v(" "),t("p",[t("img",{attrs:{src:s(828),alt:"Symblic OSC Message",title:"Symbolic OSC Message"}})]),e._v(" "),t("p",[e._v("Symbolic OSC Message")]),e._v(" "),t("p",[e._v("Each time the OscServer Plugin receives a OSC message it decompose it according to the plugin properties (AddressCH[n], ArgNrCH[n]) and forward it to the output ports. The OscServer is able to receive OSC messages with arguments of the type float and string. The OSC datatype float is typcased to the ARE type double.")]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("out 1-8 [double]:")]),e._v(" Forward data form the OSC message.")]),e._v(" "),t("li",[t("strong",[e._v("out 9-12 [string]:")]),e._v(" Forward strings from the OSC message")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Port [integer]:")]),e._v(" This value specifies the OscServer port.")]),e._v(" "),t("li",[t("strong",[e._v("AddressCH[n] [string]:")]),e._v(" This value specifies the OSC input address e.g. “/path/to/sensor/accxyz”.")]),e._v(" "),t("li",[t("strong",[e._v("ArgNrCH[n] [integer]:")]),e._v(" The Argument Number defines which single argument of an entire message is picked out and forwarded to the output. The first argument of an OSC message begins with the index value zero, e.g. the first argument has the index 0, the second the index 1 and so on.")])]),e._v(" "),t("h2",{attrs:{id:"referred-plugins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#referred-plugins"}},[e._v("#")]),e._v(" Referred Plugins")]),e._v(" "),t("ul",[t("li",[e._v("OscOutClient")]),e._v(" "),t("li",[e._v("OpenVibe")]),e._v(" "),t("li",[e._v("OscGestureFollower")])])])}),[],!1,null,null,null);t.default=i.exports},827:function(e,t,s){e.exports=s.p+"assets/img/oscserver.1e05d9e8.jpg"},828:function(e,t,s){e.exports=s.p+"assets/img/oscmsg.2cebaa20.jpg"}}]); \ No newline at end of file diff --git a/assets/js/99.5a86470c.js b/assets/js/99.8b15cfc7.js similarity index 91% rename from assets/js/99.5a86470c.js rename to assets/js/99.8b15cfc7.js index 7afe8a1496..27811d69f0 100644 --- a/assets/js/99.5a86470c.js +++ b/assets/js/99.8b15cfc7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{1255:function(e,t,r){"use strict";r.r(t);var o=r(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"proximity"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#proximity"}},[e._v("#")]),e._v(" Proximity")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides the distance sensor signal from the Proximity sensor board, which has been developed in course of the Bachelor Theses of Franziska Horak at the UAS Technikum Wien. The Proximity sensor board can be head mounted and offers an alternative input method via minimal movements of facial features - e.g. chin movements. In several proof-of-concept models, on-screen keyboard control and mouse control could be shown. For detailed information please refer to the file Documentation/DIYGuides/ProximitySensor_Horak.pdf")]),e._v(" "),t("p",[t("img",{attrs:{src:r(829),alt:"Screenshot: Proximity plugin",title:"Screenshot: Proximity plugin"}})]),e._v(" "),t("p",[e._v("The Proximity sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Proximity sensor has to be connected to a USB port. Design files and firmware for the proximity sensor can be found in the folder CIMs/Proximity_CIM.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(830),alt:"Proximity sensor application",title:"Proximity sensor application"}})]),e._v(" "),t("p",[e._v("Proximity sensor application")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [integer]:")]),e._v(" this input port allows setting the threshold value for the creation of events")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("distance [integer]:")]),e._v(" the currently measured distance from sensor to subject")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("LowToHigh:")]),e._v(" this event is triggered when the distance increases above the threshold value")]),e._v(" "),t("li",[t("strong",[e._v("HighToLow:")]),e._v(" this event is triggered when the distance decreases below the threshold value")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("threshold [integer]:")]),e._v(" the threshold value for creating events.")]),e._v(" "),t("li",[t("strong",[e._v("sendingMode [combobox selection]:")]),e._v(" if “Continuous data” is selected, the distance values are sent to the output port, if “Events: below->above”, “Events: above->below” or “Events: both” are selected, the respective event triggers will be generated.")])])])}),[],!1,null,null,null);t.default=i.exports},829:function(e,t,r){e.exports=r.p+"assets/img/proximity.7f3837fb.jpg"},830:function(e,t,r){e.exports=r.p+"assets/img/proximityapplication.63217eeb.jpg"}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{1256:function(e,t,r){"use strict";r.r(t);var o=r(2),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"proximity"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#proximity"}},[e._v("#")]),e._v(" Proximity")]),e._v(" "),t("p",[e._v("Component Type: Sensor (Subcategory: Sensor Modules)")]),e._v(" "),t("p",[e._v("This component provides the distance sensor signal from the Proximity sensor board, which has been developed in course of the Bachelor Theses of Franziska Horak at the UAS Technikum Wien. The Proximity sensor board can be head mounted and offers an alternative input method via minimal movements of facial features - e.g. chin movements. In several proof-of-concept models, on-screen keyboard control and mouse control could be shown. For detailed information please refer to the file Documentation/DIYGuides/ProximitySensor_Horak.pdf")]),e._v(" "),t("p",[t("img",{attrs:{src:r(832),alt:"Screenshot: Proximity plugin",title:"Screenshot: Proximity plugin"}})]),e._v(" "),t("p",[e._v("The Proximity sensor plugin")]),e._v(" "),t("h2",{attrs:{id:"requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[e._v("#")]),e._v(" Requirements")]),e._v(" "),t("p",[e._v("The Proximity sensor has to be connected to a USB port. Design files and firmware for the proximity sensor can be found in the folder CIMs/Proximity_CIM.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(833),alt:"Proximity sensor application",title:"Proximity sensor application"}})]),e._v(" "),t("p",[e._v("Proximity sensor application")]),e._v(" "),t("h2",{attrs:{id:"input-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#input-port-description"}},[e._v("#")]),e._v(" Input Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("input [integer]:")]),e._v(" this input port allows setting the threshold value for the creation of events")])]),e._v(" "),t("h2",{attrs:{id:"output-port-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#output-port-description"}},[e._v("#")]),e._v(" Output Port Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("distance [integer]:")]),e._v(" the currently measured distance from sensor to subject")])]),e._v(" "),t("h2",{attrs:{id:"event-trigger-description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#event-trigger-description"}},[e._v("#")]),e._v(" Event Trigger Description")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("LowToHigh:")]),e._v(" this event is triggered when the distance increases above the threshold value")]),e._v(" "),t("li",[t("strong",[e._v("HighToLow:")]),e._v(" this event is triggered when the distance decreases below the threshold value")])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("threshold [integer]:")]),e._v(" the threshold value for creating events.")]),e._v(" "),t("li",[t("strong",[e._v("sendingMode [combobox selection]:")]),e._v(" if “Continuous data” is selected, the distance values are sent to the output port, if “Events: below->above”, “Events: above->below” or “Events: both” are selected, the respective event triggers will be generated.")])])])}),[],!1,null,null,null);t.default=i.exports},832:function(e,t,r){e.exports=r.p+"assets/img/proximity.7f3837fb.jpg"},833:function(e,t,r){e.exports=r.p+"assets/img/proximityapplication.63217eeb.jpg"}}]); \ No newline at end of file diff --git a/assets/js/app.bce0aae0.js b/assets/js/app.81c8018a.js similarity index 88% rename from assets/js/app.bce0aae0.js rename to assets/js/app.81c8018a.js index e710075df5..2d76fe767c 100644 --- a/assets/js/app.bce0aae0.js +++ b/assets/js/app.81c8018a.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var a,s,r=t[0],o=t[1],l=t[2],p=0,f=[];pc.e(288).then(c.bind(null,907)),Layout:()=>Promise.all([c.e(0),c.e(1),c.e(11)]).then(c.bind(null,904)),BasicLayout:()=>Promise.all([c.e(0),c.e(1),c.e(287)]).then(c.bind(null,908)),Home:()=>Promise.all([c.e(0),c.e(1),c.e(10)]).then(c.bind(null,905))},n={"v-0f066768":()=>c.e(290).then(c.bind(null,923)),"v-70c82db4":()=>c.e(289).then(c.bind(null,924)),"v-72aa7b60":()=>c.e(291).then(c.bind(null,925)),"v-10c8bfce":()=>c.e(108).then(c.bind(null,926)),"v-1353f741":()=>c.e(22).then(c.bind(null,927)),"v-74675454":()=>c.e(292).then(c.bind(null,928)),"v-a10b0572":()=>c.e(23).then(c.bind(null,929)),"v-9b65a438":()=>c.e(293).then(c.bind(null,930)),"v-06145dae":()=>c.e(14).then(c.bind(null,931)),"v-f23dedf2":()=>c.e(58).then(c.bind(null,932)),"v-9d3a03d0":()=>c.e(294).then(c.bind(null,933)),"v-54cb8a6c":()=>c.e(295).then(c.bind(null,934)),"v-791888ea":()=>c.e(297).then(c.bind(null,935)),"v-536028e7":()=>c.e(296).then(c.bind(null,936)),"v-26c664f2":()=>c.e(299).then(c.bind(null,937)),"v-440b00d9":()=>c.e(298).then(c.bind(null,938)),"v-88946f32":()=>c.e(300).then(c.bind(null,939)),"v-6b8fd6b2":()=>c.e(19).then(c.bind(null,940)),"v-58b05fce":()=>c.e(109).then(c.bind(null,941)),"v-72593097":()=>c.e(24).then(c.bind(null,942)),"v-bae20b32":()=>c.e(301).then(c.bind(null,943)),"v-46ee2c72":()=>c.e(302).then(c.bind(null,944)),"v-587f5c72":()=>c.e(25).then(c.bind(null,945)),"v-b05cb8b2":()=>c.e(110).then(c.bind(null,946)),"v-5ad5b4a7":()=>c.e(12).then(c.bind(null,947)),"v-05927867":()=>c.e(303).then(c.bind(null,948)),"v-601a5927":()=>c.e(304).then(c.bind(null,949)),"v-442ae018":()=>c.e(305).then(c.bind(null,950)),"v-484bb6ca":()=>c.e(306).then(c.bind(null,951)),"v-0907f972":()=>c.e(307).then(c.bind(null,952)),"v-cc275ef2":()=>c.e(308).then(c.bind(null,953)),"v-1fef0fc1":()=>c.e(310).then(c.bind(null,954)),"v-3e7c0826":()=>c.e(309).then(c.bind(null,955)),"v-1ac13561":()=>c.e(311).then(c.bind(null,956)),"v-6b057aa8":()=>c.e(312).then(c.bind(null,957)),"v-a7f6f946":()=>c.e(313).then(c.bind(null,958)),"v-d3e94d9e":()=>c.e(314).then(c.bind(null,959)),"v-628a78c7":()=>c.e(315).then(c.bind(null,960)),"v-3fb3a679":()=>c.e(316).then(c.bind(null,961)),"v-64d69327":()=>c.e(317).then(c.bind(null,962)),"v-aefc4a72":()=>c.e(111).then(c.bind(null,963)),"v-052f3aa7":()=>c.e(112).then(c.bind(null,964)),"v-52eb403b":()=>c.e(113).then(c.bind(null,965)),"v-217e7fd9":()=>c.e(318).then(c.bind(null,966)),"v-045e7207":()=>c.e(114).then(c.bind(null,967)),"v-b5855fb2":()=>c.e(319).then(c.bind(null,968)),"v-1a112707":()=>c.e(321).then(c.bind(null,969)),"v-e8933724":()=>c.e(322).then(c.bind(null,970)),"v-e0ec9638":()=>c.e(320).then(c.bind(null,971)),"v-5d66a48b":()=>c.e(323).then(c.bind(null,972)),"v-a04bf3f8":()=>c.e(324).then(c.bind(null,973)),"v-013fce70":()=>c.e(325).then(c.bind(null,974)),"v-04acb1a3":()=>c.e(327).then(c.bind(null,975)),"v-d3fed8f4":()=>c.e(328).then(c.bind(null,976)),"v-35094c20":()=>c.e(326).then(c.bind(null,977)),"v-73196267":()=>c.e(330).then(c.bind(null,978)),"v-7903e66c":()=>c.e(329).then(c.bind(null,979)),"v-5c6ba0e0":()=>c.e(332).then(c.bind(null,980)),"v-3d668687":()=>c.e(331).then(c.bind(null,981)),"v-962a65f2":()=>c.e(333).then(c.bind(null,982)),"v-66af9122":()=>c.e(334).then(c.bind(null,983)),"v-1f5a7833":()=>c.e(115).then(c.bind(null,984)),"v-076485ef":()=>c.e(116).then(c.bind(null,985)),"v-0a2795a7":()=>c.e(26).then(c.bind(null,986)),"v-0bd51ec9":()=>c.e(335).then(c.bind(null,987)),"v-ae39e142":()=>c.e(117).then(c.bind(null,988)),"v-167b3e84":()=>c.e(13).then(c.bind(null,989)),"v-e5deb1f2":()=>c.e(336).then(c.bind(null,990)),"v-8dbe5096":()=>c.e(337).then(c.bind(null,991)),"v-0c0bf027":()=>c.e(338).then(c.bind(null,992)),"v-688a4fc7":()=>c.e(339).then(c.bind(null,993)),"v-e8b9abf2":()=>c.e(341).then(c.bind(null,994)),"v-6ead8b55":()=>c.e(15).then(c.bind(null,995)),"v-4c4b4fb8":()=>c.e(340).then(c.bind(null,996)),"v-3822cb17":()=>c.e(29).then(c.bind(null,997)),"v-db6f5b92":()=>c.e(343).then(c.bind(null,998)),"v-5f7524be":()=>c.e(342).then(c.bind(null,999)),"v-14a1e3d3":()=>c.e(20).then(c.bind(null,1e3)),"v-44873dcf":()=>c.e(344).then(c.bind(null,1001)),"v-b14aa6b2":()=>c.e(345).then(c.bind(null,1002)),"v-3b633733":()=>c.e(346).then(c.bind(null,1003)),"v-0c72b81d":()=>c.e(118).then(c.bind(null,1004)),"v-860d4992":()=>c.e(119).then(c.bind(null,1005)),"v-53fb73f1":()=>c.e(120).then(c.bind(null,1006)),"v-29b66472":()=>c.e(347).then(c.bind(null,1007)),"v-10853d87":()=>c.e(37).then(c.bind(null,1008)),"v-373a5a25":()=>c.e(121).then(c.bind(null,1009)),"v-7185b8e7":()=>c.e(36).then(c.bind(null,1010)),"v-89ebe0c6":()=>c.e(348).then(c.bind(null,1011)),"v-4233ca76":()=>c.e(34).then(c.bind(null,1012)),"v-5d863821":()=>c.e(122).then(c.bind(null,1013)),"v-7c5fd547":()=>c.e(123).then(c.bind(null,1014)),"v-9cea1016":()=>c.e(124).then(c.bind(null,1015)),"v-33fac21f":()=>c.e(125).then(c.bind(null,1016)),"v-e8c20486":()=>c.e(126).then(c.bind(null,1017)),"v-34eb0509":()=>c.e(30).then(c.bind(null,1018)),"v-d79ede32":()=>c.e(349).then(c.bind(null,1019)),"v-1b0ea627":()=>c.e(127).then(c.bind(null,1020)),"v-af9b77b2":()=>c.e(350).then(c.bind(null,1021)),"v-048cd127":()=>c.e(351).then(c.bind(null,1022)),"v-f5f710de":()=>c.e(353).then(c.bind(null,1023)),"v-59f1b672":()=>c.e(352).then(c.bind(null,1024)),"v-0318f572":()=>c.e(128).then(c.bind(null,1025)),"v-70395034":()=>c.e(59).then(c.bind(null,1026)),"v-bb83c2f2":()=>c.e(354).then(c.bind(null,1027)),"v-ec9a5262":()=>c.e(35).then(c.bind(null,1028)),"v-4736d21a":()=>c.e(60).then(c.bind(null,1029)),"v-26b3c0ab":()=>c.e(355).then(c.bind(null,1030)),"v-2e0cc312":()=>c.e(61).then(c.bind(null,1031)),"v-66f839ae":()=>c.e(357).then(c.bind(null,1032)),"v-79865d33":()=>c.e(356).then(c.bind(null,1033)),"v-4ac08567":()=>c.e(359).then(c.bind(null,1034)),"v-d204bc10":()=>c.e(358).then(c.bind(null,1035)),"v-404dcbaa":()=>c.e(62).then(c.bind(null,1036)),"v-411ff967":()=>c.e(360).then(c.bind(null,1037)),"v-30f7abf1":()=>c.e(38).then(c.bind(null,1038)),"v-38306472":()=>c.e(129).then(c.bind(null,1039)),"v-b3f08772":()=>c.e(130).then(c.bind(null,1040)),"v-567470f2":()=>c.e(27).then(c.bind(null,1041)),"v-11bd40a7":()=>c.e(131).then(c.bind(null,1042)),"v-b20fab52":()=>c.e(132).then(c.bind(null,1043)),"v-03d92972":()=>c.e(133).then(c.bind(null,1044)),"v-6deb6d78":()=>c.e(134).then(c.bind(null,1045)),"v-73d3dc27":()=>c.e(136).then(c.bind(null,1046)),"v-c701961e":()=>c.e(362).then(c.bind(null,1047)),"v-27668de7":()=>c.e(135).then(c.bind(null,1048)),"v-401e7446":()=>c.e(361).then(c.bind(null,1049)),"v-432b669e":()=>c.e(28).then(c.bind(null,1050)),"v-5cc12287":()=>c.e(16).then(c.bind(null,1051)),"v-403b9736":()=>c.e(21).then(c.bind(null,1052)),"v-3bc61fa7":()=>c.e(18).then(c.bind(null,1053)),"v-0776413d":()=>c.e(5).then(c.bind(null,1054)),"v-5a470632":()=>c.e(363).then(c.bind(null,1055)),"v-67cb4567":()=>c.e(63).then(c.bind(null,1056)),"v-124d7766":()=>c.e(364).then(c.bind(null,1057)),"v-6214c2a7":()=>c.e(64).then(c.bind(null,1058)),"v-74240617":()=>c.e(365).then(c.bind(null,1059)),"v-6fb78227":()=>c.e(367).then(c.bind(null,1060)),"v-4d499b72":()=>c.e(366).then(c.bind(null,1061)),"v-7b526a78":()=>c.e(368).then(c.bind(null,1062)),"v-d65cc238":()=>c.e(6).then(c.bind(null,1063)),"v-13ecdddc":()=>c.e(369).then(c.bind(null,1064)),"v-08b9c8b4":()=>c.e(4).then(c.bind(null,1065)),"v-516240a7":()=>c.e(138).then(c.bind(null,1066)),"v-403588b2":()=>c.e(65).then(c.bind(null,1067)),"v-3ad8af32":()=>c.e(137).then(c.bind(null,1068)),"v-7a3eb067":()=>c.e(140).then(c.bind(null,1069)),"v-dd8b41a2":()=>c.e(139).then(c.bind(null,1070)),"v-9c892f7e":()=>c.e(66).then(c.bind(null,1071)),"v-18096926":()=>c.e(141).then(c.bind(null,1072)),"v-32d57c47":()=>c.e(370).then(c.bind(null,1073)),"v-ef1e54fe":()=>c.e(39).then(c.bind(null,1074)),"v-1f6d465f":()=>c.e(142).then(c.bind(null,1075)),"v-1988f40b":()=>c.e(67).then(c.bind(null,1076)),"v-716ac7e7":()=>c.e(40).then(c.bind(null,1077)),"v-cc3c0472":()=>c.e(371).then(c.bind(null,1078)),"v-ca981632":()=>c.e(143).then(c.bind(null,1079)),"v-27a39b47":()=>c.e(144).then(c.bind(null,1080)),"v-5b2ddb8b":()=>c.e(146).then(c.bind(null,1081)),"v-09250a67":()=>c.e(145).then(c.bind(null,1082)),"v-e81af0b2":()=>c.e(68).then(c.bind(null,1083)),"v-956c78a6":()=>c.e(147).then(c.bind(null,1084)),"v-d264918e":()=>c.e(149).then(c.bind(null,1085)),"v-b436f6a6":()=>c.e(148).then(c.bind(null,1086)),"v-c41a3672":()=>c.e(152).then(c.bind(null,1087)),"v-6daf09f2":()=>c.e(69).then(c.bind(null,1088)),"v-d206b2aa":()=>c.e(150).then(c.bind(null,1089)),"v-15d2dabd":()=>c.e(151).then(c.bind(null,1090)),"v-b8da8e86":()=>c.e(153).then(c.bind(null,1091)),"v-92953be6":()=>c.e(70).then(c.bind(null,1092)),"v-4cb9a3c7":()=>c.e(154).then(c.bind(null,1093)),"v-8ea2c272":()=>c.e(71).then(c.bind(null,1094)),"v-38d36e07":()=>c.e(156).then(c.bind(null,1095)),"v-171c2d27":()=>c.e(155).then(c.bind(null,1096)),"v-7c5d8272":()=>c.e(158).then(c.bind(null,1097)),"v-1d867097":()=>c.e(159).then(c.bind(null,1098)),"v-3e837632":()=>c.e(157).then(c.bind(null,1099)),"v-5b29f0ed":()=>c.e(160).then(c.bind(null,1100)),"v-0dab47bd":()=>c.e(72).then(c.bind(null,1101)),"v-6337e0ed":()=>c.e(161).then(c.bind(null,1102)),"v-8679e6b2":()=>c.e(162).then(c.bind(null,1103)),"v-779d0f79":()=>c.e(163).then(c.bind(null,1104)),"v-aa237ef2":()=>c.e(75).then(c.bind(null,1105)),"v-5e80a527":()=>c.e(164).then(c.bind(null,1106)),"v-7c85c247":()=>c.e(73).then(c.bind(null,1107)),"v-5032dd77":()=>c.e(41).then(c.bind(null,1108)),"v-599c9c31":()=>c.e(74).then(c.bind(null,1109)),"v-84d9f01a":()=>c.e(76).then(c.bind(null,1110)),"v-50c42842":()=>c.e(165).then(c.bind(null,1111)),"v-2304fb67":()=>c.e(166).then(c.bind(null,1112)),"v-7ae45d79":()=>c.e(168).then(c.bind(null,1113)),"v-3a500587":()=>c.e(167).then(c.bind(null,1114)),"v-74496ef1":()=>c.e(170).then(c.bind(null,1115)),"v-3c600ed7":()=>c.e(171).then(c.bind(null,1116)),"v-6ca50ab2":()=>c.e(169).then(c.bind(null,1117)),"v-bc5321f2":()=>c.e(42).then(c.bind(null,1118)),"v-9d737472":()=>c.e(172).then(c.bind(null,1119)),"v-d68a2ef2":()=>c.e(173).then(c.bind(null,1120)),"v-0563b61f":()=>c.e(174).then(c.bind(null,1121)),"v-83e29ef2":()=>c.e(43).then(c.bind(null,1122)),"v-79a7ccfb":()=>c.e(176).then(c.bind(null,1123)),"v-f257b186":()=>c.e(175).then(c.bind(null,1124)),"v-6cf61c72":()=>c.e(177).then(c.bind(null,1125)),"v-646dcee6":()=>c.e(77).then(c.bind(null,1126)),"v-52053829":()=>c.e(31).then(c.bind(null,1127)),"v-ec67f37e":()=>c.e(78).then(c.bind(null,1128)),"v-45b5002f":()=>c.e(178).then(c.bind(null,1129)),"v-09085367":()=>c.e(179).then(c.bind(null,1130)),"v-4e288232":()=>c.e(180).then(c.bind(null,1131)),"v-7cf4c0b1":()=>c.e(181).then(c.bind(null,1132)),"v-4d0a7bd2":()=>c.e(182).then(c.bind(null,1133)),"v-b8389226":()=>c.e(372).then(c.bind(null,1134)),"v-e6456966":()=>c.e(44).then(c.bind(null,1135)),"v-43a714a7":()=>c.e(184).then(c.bind(null,1136)),"v-d38dd566":()=>c.e(185).then(c.bind(null,1137)),"v-2788c5e7":()=>c.e(183).then(c.bind(null,1138)),"v-04510947":()=>c.e(186).then(c.bind(null,1139)),"v-1ba2eab2":()=>c.e(188).then(c.bind(null,1140)),"v-5009f567":()=>c.e(187).then(c.bind(null,1141)),"v-1e825672":()=>c.e(373).then(c.bind(null,1142)),"v-897a9bb2":()=>c.e(190).then(c.bind(null,1143)),"v-5e6cfe07":()=>c.e(374).then(c.bind(null,1144)),"v-5d044327":()=>c.e(192).then(c.bind(null,1145)),"v-691ee647":()=>c.e(189).then(c.bind(null,1146)),"v-50d5674d":()=>c.e(193).then(c.bind(null,1147)),"v-6631ec8b":()=>c.e(191).then(c.bind(null,1148)),"v-4b632167":()=>c.e(195).then(c.bind(null,1149)),"v-7db60c2f":()=>c.e(194).then(c.bind(null,1150)),"v-d8c21cb2":()=>c.e(197).then(c.bind(null,1151)),"v-69219697":()=>c.e(196).then(c.bind(null,1152)),"v-8cf913f2":()=>c.e(198).then(c.bind(null,1153)),"v-0faadb07":()=>c.e(199).then(c.bind(null,1154)),"v-257632e7":()=>c.e(200).then(c.bind(null,1155)),"v-b68a9862":()=>c.e(201).then(c.bind(null,1156)),"v-0de90216":()=>c.e(202).then(c.bind(null,1157)),"v-92543f1e":()=>c.e(204).then(c.bind(null,1158)),"v-4f6abeea":()=>c.e(203).then(c.bind(null,1159)),"v-77363772":()=>c.e(206).then(c.bind(null,1160)),"v-f5401bf2":()=>c.e(205).then(c.bind(null,1161)),"v-170dfcf2":()=>c.e(207).then(c.bind(null,1162)),"v-7f5ffdc1":()=>c.e(208).then(c.bind(null,1163)),"v-38d069b2":()=>c.e(375).then(c.bind(null,1164)),"v-1d0ab506":()=>c.e(209).then(c.bind(null,1165)),"v-d1dfaaca":()=>c.e(210).then(c.bind(null,1166)),"v-19088f27":()=>c.e(376).then(c.bind(null,1167)),"v-1d065aa2":()=>c.e(211).then(c.bind(null,1168)),"v-47f9c35b":()=>c.e(212).then(c.bind(null,1169)),"v-bf091772":()=>c.e(80).then(c.bind(null,1170)),"v-6736aafa":()=>c.e(213).then(c.bind(null,1171)),"v-e3fa9f72":()=>c.e(216).then(c.bind(null,1172)),"v-50964747":()=>c.e(214).then(c.bind(null,1173)),"v-30be31a9":()=>c.e(215).then(c.bind(null,1174)),"v-13b74a72":()=>c.e(218).then(c.bind(null,1175)),"v-d29b3b66":()=>c.e(217).then(c.bind(null,1176)),"v-4c4414bd":()=>c.e(219).then(c.bind(null,1177)),"v-6bf745d3":()=>c.e(81).then(c.bind(null,1178)),"v-5a24aa07":()=>c.e(220).then(c.bind(null,1179)),"v-637b13c7":()=>c.e(223).then(c.bind(null,1180)),"v-e83ea4f2":()=>c.e(222).then(c.bind(null,1181)),"v-2921d7e7":()=>c.e(221).then(c.bind(null,1182)),"v-4be94031":()=>c.e(224).then(c.bind(null,1183)),"v-7c537de7":()=>c.e(226).then(c.bind(null,1184)),"v-5b5e6427":()=>c.e(227).then(c.bind(null,1185)),"v-21b721ae":()=>c.e(229).then(c.bind(null,1186)),"v-5c2cfb72":()=>c.e(225).then(c.bind(null,1187)),"v-3b520e4f":()=>c.e(228).then(c.bind(null,1188)),"v-3eb0087b":()=>c.e(230).then(c.bind(null,1189)),"v-11a59ef9":()=>c.e(232).then(c.bind(null,1190)),"v-61da4eee":()=>c.e(231).then(c.bind(null,1191)),"v-64552681":()=>c.e(233).then(c.bind(null,1192)),"v-a40c8732":()=>c.e(234).then(c.bind(null,1193)),"v-9198a01e":()=>c.e(236).then(c.bind(null,1194)),"v-9f5a7d32":()=>c.e(377).then(c.bind(null,1195)),"v-1013433f":()=>c.e(235).then(c.bind(null,1196)),"v-67dbcba7":()=>c.e(237).then(c.bind(null,1197)),"v-100a3e47":()=>c.e(239).then(c.bind(null,1198)),"v-14661c2d":()=>c.e(238).then(c.bind(null,1199)),"v-59dccef2":()=>c.e(240).then(c.bind(null,1200)),"v-3d455e1f":()=>c.e(379).then(c.bind(null,1201)),"v-4cf6bf32":()=>c.e(241).then(c.bind(null,1202)),"v-3e8a576b":()=>c.e(378).then(c.bind(null,1203)),"v-690e9367":()=>c.e(243).then(c.bind(null,1204)),"v-1709c1d3":()=>c.e(242).then(c.bind(null,1205)),"v-2ce14ef2":()=>c.e(244).then(c.bind(null,1206)),"v-1e8b2167":()=>c.e(245).then(c.bind(null,1207)),"v-77d7abc7":()=>c.e(247).then(c.bind(null,1208)),"v-53da033f":()=>c.e(380).then(c.bind(null,1209)),"v-281449cb":()=>c.e(246).then(c.bind(null,1210)),"v-01319b07":()=>c.e(249).then(c.bind(null,1211)),"v-1b0560c3":()=>c.e(381).then(c.bind(null,1212)),"v-75091cbb":()=>c.e(248).then(c.bind(null,1213)),"v-846ec7f2":()=>c.e(250).then(c.bind(null,1214)),"v-8ed10332":()=>c.e(82).then(c.bind(null,1215)),"v-1b90e4c2":()=>c.e(251).then(c.bind(null,1216)),"v-2e4c9dc9":()=>c.e(83).then(c.bind(null,1217)),"v-7841dcfb":()=>c.e(252).then(c.bind(null,1218)),"v-1eb18087":()=>c.e(84).then(c.bind(null,1219)),"v-5889cb59":()=>c.e(253).then(c.bind(null,1220)),"v-3098c387":()=>c.e(45).then(c.bind(null,1221)),"v-28fc4432":()=>c.e(254).then(c.bind(null,1222)),"v-1134a2e7":()=>c.e(255).then(c.bind(null,1223)),"v-48688967":()=>c.e(85).then(c.bind(null,1224)),"v-9ccbeb76":()=>c.e(86).then(c.bind(null,1225)),"v-64af51d7":()=>c.e(382).then(c.bind(null,1226)),"v-12d7b90f":()=>c.e(87).then(c.bind(null,1227)),"v-001ddafb":()=>c.e(88).then(c.bind(null,1228)),"v-157f848a":()=>c.e(89).then(c.bind(null,1229)),"v-16e38c56":()=>c.e(90).then(c.bind(null,1230)),"v-568f6d7e":()=>c.e(258).then(c.bind(null,1231)),"v-7381d572":()=>c.e(91).then(c.bind(null,1232)),"v-58df42b7":()=>c.e(256).then(c.bind(null,1233)),"v-6bfe6a39":()=>c.e(92).then(c.bind(null,1234)),"v-12144d72":()=>c.e(257).then(c.bind(null,1235)),"v-0031f5d6":()=>c.e(259).then(c.bind(null,1236)),"v-690635bb":()=>c.e(260).then(c.bind(null,1237)),"v-668f1587":()=>c.e(93).then(c.bind(null,1238)),"v-08564da7":()=>c.e(261).then(c.bind(null,1239)),"v-0f25337d":()=>c.e(262).then(c.bind(null,1240)),"v-760221cd":()=>c.e(94).then(c.bind(null,1241)),"v-5f99c5b2":()=>c.e(263).then(c.bind(null,1242)),"v-258c6472":()=>c.e(95).then(c.bind(null,1243)),"v-acbfcc4a":()=>c.e(265).then(c.bind(null,1244)),"v-9d2ec7de":()=>c.e(264).then(c.bind(null,1245)),"v-cb421036":()=>c.e(96).then(c.bind(null,1246)),"v-9043d372":()=>c.e(268).then(c.bind(null,1247)),"v-1327575a":()=>c.e(266).then(c.bind(null,1248)),"v-5b66ee52":()=>c.e(267).then(c.bind(null,1249)),"v-6c144d07":()=>c.e(269).then(c.bind(null,1250)),"v-3e2501ee":()=>c.e(97).then(c.bind(null,1251)),"v-ae820072":()=>c.e(98).then(c.bind(null,1252)),"v-16942872":()=>c.e(271).then(c.bind(null,1253)),"v-e648748e":()=>c.e(272).then(c.bind(null,1254)),"v-327fbaa7":()=>c.e(99).then(c.bind(null,1255)),"v-4f8d10e5":()=>c.e(100).then(c.bind(null,1256)),"v-fa5974f2":()=>c.e(270).then(c.bind(null,1257)),"v-f2533c1e":()=>c.e(383).then(c.bind(null,1258)),"v-1912fd7a":()=>c.e(101).then(c.bind(null,1259)),"v-34a03bc7":()=>c.e(273).then(c.bind(null,1260)),"v-3e1f8c47":()=>c.e(274).then(c.bind(null,1261)),"v-347024e7":()=>c.e(275).then(c.bind(null,1262)),"v-5ffb0147":()=>c.e(102).then(c.bind(null,1263)),"v-058dc5b2":()=>c.e(276).then(c.bind(null,1264)),"v-4f75de97":()=>c.e(103).then(c.bind(null,1265)),"v-0c6bef47":()=>c.e(278).then(c.bind(null,1266)),"v-524244c7":()=>c.e(277).then(c.bind(null,1267)),"v-741a2432":()=>c.e(279).then(c.bind(null,1268)),"v-4f2ebfb2":()=>c.e(104).then(c.bind(null,1269)),"v-9d9cc472":()=>c.e(46).then(c.bind(null,1270)),"v-dc917076":()=>c.e(280).then(c.bind(null,1271)),"v-326ed2c7":()=>c.e(105).then(c.bind(null,1272)),"v-5a274087":()=>c.e(106).then(c.bind(null,1273)),"v-254d4e97":()=>c.e(47).then(c.bind(null,1274)),"v-4f597976":()=>c.e(281).then(c.bind(null,1275)),"v-3a4e136f":()=>c.e(282).then(c.bind(null,1276)),"v-3fac8f47":()=>c.e(384).then(c.bind(null,1277)),"v-3696ee5a":()=>c.e(385).then(c.bind(null,1278)),"v-f2e2c936":()=>c.e(283).then(c.bind(null,1279)),"v-bcda9044":()=>c.e(386).then(c.bind(null,1280)),"v-81ac5472":()=>c.e(387).then(c.bind(null,1281)),"v-79720951":()=>c.e(107).then(c.bind(null,1282)),"v-25491f21":()=>c.e(388).then(c.bind(null,1283)),"v-1715ece5":()=>c.e(79).then(c.bind(null,1284))};function s(e){const t=Object.create(null);return function(c){return t[c]||(t[c]=e(c))}}const r=/-(\w)/g,o=s(e=>e.replace(r,(e,t)=>t?t.toUpperCase():"")),l=/\B([A-Z])/g,u=s(e=>e.replace(l,"-$1").toLowerCase()),p=s(e=>e.charAt(0).toUpperCase()+e.slice(1));function f(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(p(o(t))):e(p(t))||e(u(t))}const m=Object.assign({},i,n),d=e=>m[e],h=e=>n[e],v=e=>i[e],g=e=>a.default.component(e);function z(e){return f(h,e)}function b(e){return f(v,e)}function C(e){return f(d,e)}function M(e){return f(g,e)}function H(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!M(e)&&C(e)){const t=await C(e)();a.default.component(e,t.default)}}))}function V(e,t,c){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],c);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...c);break;default:throw new Error("Unknown option name.")}}function y(e,t){const{$localePath:c}=e;return"object"==typeof t&&t[c]?t[c]:t}function L(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}},function(e,t,c){"use strict";c.r(t),c.d(t,"EffectScope",(function(){return gt})),c.d(t,"computed",(function(){return st})),c.d(t,"customRef",(function(){return Qe})),c.d(t,"default",(function(){return Ya})),c.d(t,"defineAsyncComponent",(function(){return Pc})),c.d(t,"defineComponent",(function(){return qc})),c.d(t,"del",(function(){return Te})),c.d(t,"effectScope",(function(){return zt})),c.d(t,"getCurrentInstance",(function(){return pe})),c.d(t,"getCurrentScope",(function(){return bt})),c.d(t,"h",(function(){return pc})),c.d(t,"inject",(function(){return Vt})),c.d(t,"isProxy",(function(){return Be})),c.d(t,"isReactive",(function(){return Ie})),c.d(t,"isReadonly",(function(){return Fe})),c.d(t,"isRef",(function(){return Ge})),c.d(t,"isShallow",(function(){return je})),c.d(t,"markRaw",(function(){return qe})),c.d(t,"mergeDefaults",(function(){return sc})),c.d(t,"nextTick",(function(){return Lc})),c.d(t,"onActivated",(function(){return Rc})),c.d(t,"onBeforeMount",(function(){return kc})),c.d(t,"onBeforeUnmount",(function(){return Tc})),c.d(t,"onBeforeUpdate",(function(){return Ec})),c.d(t,"onDeactivated",(function(){return _c})),c.d(t,"onErrorCaptured",(function(){return Bc})),c.d(t,"onMounted",(function(){return Ac})),c.d(t,"onRenderTracked",(function(){return Ic})),c.d(t,"onRenderTriggered",(function(){return jc})),c.d(t,"onScopeDispose",(function(){return Ct})),c.d(t,"onServerPrefetch",(function(){return Oc})),c.d(t,"onUnmounted",(function(){return Dc})),c.d(t,"onUpdated",(function(){return Nc})),c.d(t,"provide",(function(){return Mt})),c.d(t,"proxyRefs",(function(){return Xe})),c.d(t,"reactive",(function(){return Re})),c.d(t,"readonly",(function(){return ct})),c.d(t,"ref",(function(){return We})),c.d(t,"set",(function(){return Ne})),c.d(t,"shallowReactive",(function(){return _e})),c.d(t,"shallowReadonly",(function(){return nt})),c.d(t,"shallowRef",(function(){return Ue})),c.d(t,"toRaw",(function(){return $e})),c.d(t,"toRef",(function(){return tt})),c.d(t,"toRefs",(function(){return et})),c.d(t,"triggerRef",(function(){return Ze})),c.d(t,"unref",(function(){return Ye})),c.d(t,"useAttrs",(function(){return ac})),c.d(t,"useCssModule",(function(){return Sc})),c.d(t,"useCssVars",(function(){return xc})),c.d(t,"useListeners",(function(){return ic})),c.d(t,"useSlots",(function(){return cc})),c.d(t,"version",(function(){return $c})),c.d(t,"watch",(function(){return ht})),c.d(t,"watchEffect",(function(){return ut})),c.d(t,"watchPostEffect",(function(){return pt})),c.d(t,"watchSyncEffect",(function(){return ft})); +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var a,s,r=t[0],o=t[1],l=t[2],p=0,f=[];pc.e(288).then(c.bind(null,907)),Layout:()=>Promise.all([c.e(0),c.e(1),c.e(11)]).then(c.bind(null,904)),BasicLayout:()=>Promise.all([c.e(0),c.e(1),c.e(287)]).then(c.bind(null,908)),Home:()=>Promise.all([c.e(0),c.e(1),c.e(10)]).then(c.bind(null,905))},n={"v-70c82db4":()=>c.e(289).then(c.bind(null,923)),"v-72aa7b60":()=>c.e(291).then(c.bind(null,924)),"v-0f066768":()=>c.e(290).then(c.bind(null,925)),"v-1353f741":()=>c.e(22).then(c.bind(null,926)),"v-74675454":()=>c.e(292).then(c.bind(null,927)),"v-a10b0572":()=>c.e(23).then(c.bind(null,928)),"v-10c8bfce":()=>c.e(108).then(c.bind(null,929)),"v-9b65a438":()=>c.e(293).then(c.bind(null,930)),"v-f23dedf2":()=>c.e(58).then(c.bind(null,931)),"v-06145dae":()=>c.e(14).then(c.bind(null,932)),"v-9d3a03d0":()=>c.e(294).then(c.bind(null,933)),"v-536028e7":()=>c.e(296).then(c.bind(null,934)),"v-54cb8a6c":()=>c.e(295).then(c.bind(null,935)),"v-791888ea":()=>c.e(297).then(c.bind(null,936)),"v-26c664f2":()=>c.e(299).then(c.bind(null,937)),"v-440b00d9":()=>c.e(298).then(c.bind(null,938)),"v-72593097":()=>c.e(24).then(c.bind(null,939)),"v-bae20b32":()=>c.e(301).then(c.bind(null,940)),"v-6b8fd6b2":()=>c.e(19).then(c.bind(null,941)),"v-46ee2c72":()=>c.e(302).then(c.bind(null,942)),"v-05927867":()=>c.e(303).then(c.bind(null,943)),"v-88946f32":()=>c.e(300).then(c.bind(null,944)),"v-b05cb8b2":()=>c.e(110).then(c.bind(null,945)),"v-587f5c72":()=>c.e(25).then(c.bind(null,946)),"v-5ad5b4a7":()=>c.e(12).then(c.bind(null,947)),"v-601a5927":()=>c.e(304).then(c.bind(null,948)),"v-484bb6ca":()=>c.e(306).then(c.bind(null,949)),"v-0907f972":()=>c.e(307).then(c.bind(null,950)),"v-cc275ef2":()=>c.e(308).then(c.bind(null,951)),"v-3e7c0826":()=>c.e(309).then(c.bind(null,952)),"v-442ae018":()=>c.e(305).then(c.bind(null,953)),"v-1fef0fc1":()=>c.e(310).then(c.bind(null,954)),"v-1ac13561":()=>c.e(311).then(c.bind(null,955)),"v-a7f6f946":()=>c.e(313).then(c.bind(null,956)),"v-6b057aa8":()=>c.e(312).then(c.bind(null,957)),"v-d3e94d9e":()=>c.e(314).then(c.bind(null,958)),"v-628a78c7":()=>c.e(315).then(c.bind(null,959)),"v-aefc4a72":()=>c.e(111).then(c.bind(null,960)),"v-3fb3a679":()=>c.e(316).then(c.bind(null,961)),"v-052f3aa7":()=>c.e(112).then(c.bind(null,962)),"v-52eb403b":()=>c.e(113).then(c.bind(null,963)),"v-64d69327":()=>c.e(317).then(c.bind(null,964)),"v-045e7207":()=>c.e(114).then(c.bind(null,965)),"v-217e7fd9":()=>c.e(318).then(c.bind(null,966)),"v-b5855fb2":()=>c.e(319).then(c.bind(null,967)),"v-5d66a48b":()=>c.e(323).then(c.bind(null,968)),"v-1a112707":()=>c.e(321).then(c.bind(null,969)),"v-e8933724":()=>c.e(322).then(c.bind(null,970)),"v-e0ec9638":()=>c.e(320).then(c.bind(null,971)),"v-a04bf3f8":()=>c.e(324).then(c.bind(null,972)),"v-013fce70":()=>c.e(325).then(c.bind(null,973)),"v-35094c20":()=>c.e(326).then(c.bind(null,974)),"v-7903e66c":()=>c.e(329).then(c.bind(null,975)),"v-5c6ba0e0":()=>c.e(332).then(c.bind(null,976)),"v-04acb1a3":()=>c.e(327).then(c.bind(null,977)),"v-73196267":()=>c.e(330).then(c.bind(null,978)),"v-d3fed8f4":()=>c.e(328).then(c.bind(null,979)),"v-962a65f2":()=>c.e(333).then(c.bind(null,980)),"v-0a2795a7":()=>c.e(26).then(c.bind(null,981)),"v-1f5a7833":()=>c.e(115).then(c.bind(null,982)),"v-66af9122":()=>c.e(334).then(c.bind(null,983)),"v-58b05fce":()=>c.e(109).then(c.bind(null,984)),"v-076485ef":()=>c.e(116).then(c.bind(null,985)),"v-0bd51ec9":()=>c.e(335).then(c.bind(null,986)),"v-167b3e84":()=>c.e(13).then(c.bind(null,987)),"v-e5deb1f2":()=>c.e(336).then(c.bind(null,988)),"v-ae39e142":()=>c.e(117).then(c.bind(null,989)),"v-688a4fc7":()=>c.e(339).then(c.bind(null,990)),"v-8dbe5096":()=>c.e(337).then(c.bind(null,991)),"v-0c0bf027":()=>c.e(338).then(c.bind(null,992)),"v-4c4b4fb8":()=>c.e(340).then(c.bind(null,993)),"v-e8b9abf2":()=>c.e(341).then(c.bind(null,994)),"v-5f7524be":()=>c.e(342).then(c.bind(null,995)),"v-6ead8b55":()=>c.e(15).then(c.bind(null,996)),"v-3822cb17":()=>c.e(29).then(c.bind(null,997)),"v-db6f5b92":()=>c.e(343).then(c.bind(null,998)),"v-14a1e3d3":()=>c.e(20).then(c.bind(null,999)),"v-44873dcf":()=>c.e(344).then(c.bind(null,1e3)),"v-0c72b81d":()=>c.e(118).then(c.bind(null,1001)),"v-b14aa6b2":()=>c.e(345).then(c.bind(null,1002)),"v-3b633733":()=>c.e(346).then(c.bind(null,1003)),"v-860d4992":()=>c.e(119).then(c.bind(null,1004)),"v-29b66472":()=>c.e(347).then(c.bind(null,1005)),"v-53fb73f1":()=>c.e(120).then(c.bind(null,1006)),"v-7185b8e7":()=>c.e(36).then(c.bind(null,1007)),"v-10853d87":()=>c.e(37).then(c.bind(null,1008)),"v-373a5a25":()=>c.e(121).then(c.bind(null,1009)),"v-89ebe0c6":()=>c.e(348).then(c.bind(null,1010)),"v-7c5fd547":()=>c.e(123).then(c.bind(null,1011)),"v-5d863821":()=>c.e(122).then(c.bind(null,1012)),"v-9cea1016":()=>c.e(124).then(c.bind(null,1013)),"v-4233ca76":()=>c.e(34).then(c.bind(null,1014)),"v-34eb0509":()=>c.e(30).then(c.bind(null,1015)),"v-33fac21f":()=>c.e(125).then(c.bind(null,1016)),"v-e8c20486":()=>c.e(126).then(c.bind(null,1017)),"v-1b0ea627":()=>c.e(127).then(c.bind(null,1018)),"v-d79ede32":()=>c.e(349).then(c.bind(null,1019)),"v-af9b77b2":()=>c.e(350).then(c.bind(null,1020)),"v-048cd127":()=>c.e(351).then(c.bind(null,1021)),"v-70395034":()=>c.e(59).then(c.bind(null,1022)),"v-f5f710de":()=>c.e(353).then(c.bind(null,1023)),"v-59f1b672":()=>c.e(352).then(c.bind(null,1024)),"v-0318f572":()=>c.e(128).then(c.bind(null,1025)),"v-bb83c2f2":()=>c.e(354).then(c.bind(null,1026)),"v-ec9a5262":()=>c.e(35).then(c.bind(null,1027)),"v-4736d21a":()=>c.e(60).then(c.bind(null,1028)),"v-2e0cc312":()=>c.e(61).then(c.bind(null,1029)),"v-26b3c0ab":()=>c.e(355).then(c.bind(null,1030)),"v-d204bc10":()=>c.e(358).then(c.bind(null,1031)),"v-4ac08567":()=>c.e(359).then(c.bind(null,1032)),"v-66f839ae":()=>c.e(357).then(c.bind(null,1033)),"v-411ff967":()=>c.e(360).then(c.bind(null,1034)),"v-79865d33":()=>c.e(356).then(c.bind(null,1035)),"v-404dcbaa":()=>c.e(62).then(c.bind(null,1036)),"v-567470f2":()=>c.e(27).then(c.bind(null,1037)),"v-30f7abf1":()=>c.e(38).then(c.bind(null,1038)),"v-38306472":()=>c.e(129).then(c.bind(null,1039)),"v-b3f08772":()=>c.e(130).then(c.bind(null,1040)),"v-03d92972":()=>c.e(133).then(c.bind(null,1041)),"v-b20fab52":()=>c.e(132).then(c.bind(null,1042)),"v-11bd40a7":()=>c.e(131).then(c.bind(null,1043)),"v-6deb6d78":()=>c.e(134).then(c.bind(null,1044)),"v-27668de7":()=>c.e(135).then(c.bind(null,1045)),"v-73d3dc27":()=>c.e(136).then(c.bind(null,1046)),"v-401e7446":()=>c.e(361).then(c.bind(null,1047)),"v-c701961e":()=>c.e(362).then(c.bind(null,1048)),"v-5cc12287":()=>c.e(16).then(c.bind(null,1049)),"v-432b669e":()=>c.e(28).then(c.bind(null,1050)),"v-3bc61fa7":()=>c.e(18).then(c.bind(null,1051)),"v-0776413d":()=>c.e(5).then(c.bind(null,1052)),"v-403b9736":()=>c.e(21).then(c.bind(null,1053)),"v-67cb4567":()=>c.e(63).then(c.bind(null,1054)),"v-5a470632":()=>c.e(363).then(c.bind(null,1055)),"v-74240617":()=>c.e(365).then(c.bind(null,1056)),"v-4d499b72":()=>c.e(366).then(c.bind(null,1057)),"v-124d7766":()=>c.e(364).then(c.bind(null,1058)),"v-6fb78227":()=>c.e(367).then(c.bind(null,1059)),"v-6214c2a7":()=>c.e(64).then(c.bind(null,1060)),"v-7b526a78":()=>c.e(368).then(c.bind(null,1061)),"v-d65cc238":()=>c.e(6).then(c.bind(null,1062)),"v-3ad8af32":()=>c.e(137).then(c.bind(null,1063)),"v-08b9c8b4":()=>c.e(4).then(c.bind(null,1064)),"v-13ecdddc":()=>c.e(369).then(c.bind(null,1065)),"v-403588b2":()=>c.e(65).then(c.bind(null,1066)),"v-dd8b41a2":()=>c.e(139).then(c.bind(null,1067)),"v-7a3eb067":()=>c.e(140).then(c.bind(null,1068)),"v-516240a7":()=>c.e(138).then(c.bind(null,1069)),"v-18096926":()=>c.e(141).then(c.bind(null,1070)),"v-9c892f7e":()=>c.e(66).then(c.bind(null,1071)),"v-1f6d465f":()=>c.e(142).then(c.bind(null,1072)),"v-ef1e54fe":()=>c.e(39).then(c.bind(null,1073)),"v-32d57c47":()=>c.e(370).then(c.bind(null,1074)),"v-1988f40b":()=>c.e(67).then(c.bind(null,1075)),"v-ca981632":()=>c.e(143).then(c.bind(null,1076)),"v-27a39b47":()=>c.e(144).then(c.bind(null,1077)),"v-cc3c0472":()=>c.e(371).then(c.bind(null,1078)),"v-716ac7e7":()=>c.e(40).then(c.bind(null,1079)),"v-5b2ddb8b":()=>c.e(146).then(c.bind(null,1080)),"v-956c78a6":()=>c.e(147).then(c.bind(null,1081)),"v-09250a67":()=>c.e(145).then(c.bind(null,1082)),"v-b436f6a6":()=>c.e(148).then(c.bind(null,1083)),"v-d264918e":()=>c.e(149).then(c.bind(null,1084)),"v-e81af0b2":()=>c.e(68).then(c.bind(null,1085)),"v-d206b2aa":()=>c.e(150).then(c.bind(null,1086)),"v-6daf09f2":()=>c.e(69).then(c.bind(null,1087)),"v-c41a3672":()=>c.e(152).then(c.bind(null,1088)),"v-b8da8e86":()=>c.e(153).then(c.bind(null,1089)),"v-15d2dabd":()=>c.e(151).then(c.bind(null,1090)),"v-92953be6":()=>c.e(70).then(c.bind(null,1091)),"v-4cb9a3c7":()=>c.e(154).then(c.bind(null,1092)),"v-171c2d27":()=>c.e(155).then(c.bind(null,1093)),"v-8ea2c272":()=>c.e(71).then(c.bind(null,1094)),"v-38d36e07":()=>c.e(156).then(c.bind(null,1095)),"v-7c5d8272":()=>c.e(158).then(c.bind(null,1096)),"v-3e837632":()=>c.e(157).then(c.bind(null,1097)),"v-1d867097":()=>c.e(159).then(c.bind(null,1098)),"v-5b29f0ed":()=>c.e(160).then(c.bind(null,1099)),"v-8679e6b2":()=>c.e(162).then(c.bind(null,1100)),"v-6337e0ed":()=>c.e(161).then(c.bind(null,1101)),"v-0dab47bd":()=>c.e(72).then(c.bind(null,1102)),"v-779d0f79":()=>c.e(163).then(c.bind(null,1103)),"v-5e80a527":()=>c.e(164).then(c.bind(null,1104)),"v-7c85c247":()=>c.e(73).then(c.bind(null,1105)),"v-599c9c31":()=>c.e(74).then(c.bind(null,1106)),"v-aa237ef2":()=>c.e(75).then(c.bind(null,1107)),"v-50c42842":()=>c.e(165).then(c.bind(null,1108)),"v-5032dd77":()=>c.e(41).then(c.bind(null,1109)),"v-2304fb67":()=>c.e(166).then(c.bind(null,1110)),"v-84d9f01a":()=>c.e(76).then(c.bind(null,1111)),"v-3a500587":()=>c.e(167).then(c.bind(null,1112)),"v-7ae45d79":()=>c.e(168).then(c.bind(null,1113)),"v-74496ef1":()=>c.e(170).then(c.bind(null,1114)),"v-6ca50ab2":()=>c.e(169).then(c.bind(null,1115)),"v-bc5321f2":()=>c.e(42).then(c.bind(null,1116)),"v-9d737472":()=>c.e(172).then(c.bind(null,1117)),"v-d68a2ef2":()=>c.e(173).then(c.bind(null,1118)),"v-83e29ef2":()=>c.e(43).then(c.bind(null,1119)),"v-3c600ed7":()=>c.e(171).then(c.bind(null,1120)),"v-f257b186":()=>c.e(175).then(c.bind(null,1121)),"v-0563b61f":()=>c.e(174).then(c.bind(null,1122)),"v-79a7ccfb":()=>c.e(176).then(c.bind(null,1123)),"v-6cf61c72":()=>c.e(177).then(c.bind(null,1124)),"v-646dcee6":()=>c.e(77).then(c.bind(null,1125)),"v-52053829":()=>c.e(31).then(c.bind(null,1126)),"v-ec67f37e":()=>c.e(78).then(c.bind(null,1127)),"v-45b5002f":()=>c.e(178).then(c.bind(null,1128)),"v-09085367":()=>c.e(179).then(c.bind(null,1129)),"v-4e288232":()=>c.e(180).then(c.bind(null,1130)),"v-7cf4c0b1":()=>c.e(181).then(c.bind(null,1131)),"v-4d0a7bd2":()=>c.e(182).then(c.bind(null,1132)),"v-2788c5e7":()=>c.e(183).then(c.bind(null,1133)),"v-43a714a7":()=>c.e(184).then(c.bind(null,1134)),"v-e6456966":()=>c.e(44).then(c.bind(null,1135)),"v-b8389226":()=>c.e(372).then(c.bind(null,1136)),"v-d38dd566":()=>c.e(185).then(c.bind(null,1137)),"v-04510947":()=>c.e(186).then(c.bind(null,1138)),"v-5009f567":()=>c.e(187).then(c.bind(null,1139)),"v-1ba2eab2":()=>c.e(188).then(c.bind(null,1140)),"v-691ee647":()=>c.e(189).then(c.bind(null,1141)),"v-1e825672":()=>c.e(373).then(c.bind(null,1142)),"v-5e6cfe07":()=>c.e(374).then(c.bind(null,1143)),"v-6631ec8b":()=>c.e(191).then(c.bind(null,1144)),"v-7db60c2f":()=>c.e(194).then(c.bind(null,1145)),"v-4b632167":()=>c.e(195).then(c.bind(null,1146)),"v-5d044327":()=>c.e(192).then(c.bind(null,1147)),"v-50d5674d":()=>c.e(193).then(c.bind(null,1148)),"v-69219697":()=>c.e(196).then(c.bind(null,1149)),"v-897a9bb2":()=>c.e(190).then(c.bind(null,1150)),"v-d8c21cb2":()=>c.e(197).then(c.bind(null,1151)),"v-0faadb07":()=>c.e(199).then(c.bind(null,1152)),"v-8cf913f2":()=>c.e(198).then(c.bind(null,1153)),"v-257632e7":()=>c.e(200).then(c.bind(null,1154)),"v-0de90216":()=>c.e(202).then(c.bind(null,1155)),"v-4f6abeea":()=>c.e(203).then(c.bind(null,1156)),"v-b68a9862":()=>c.e(201).then(c.bind(null,1157)),"v-92543f1e":()=>c.e(204).then(c.bind(null,1158)),"v-170dfcf2":()=>c.e(207).then(c.bind(null,1159)),"v-f5401bf2":()=>c.e(205).then(c.bind(null,1160)),"v-1715ece5":()=>c.e(79).then(c.bind(null,1161)),"v-38d069b2":()=>c.e(375).then(c.bind(null,1162)),"v-7f5ffdc1":()=>c.e(208).then(c.bind(null,1163)),"v-1d0ab506":()=>c.e(209).then(c.bind(null,1164)),"v-d1dfaaca":()=>c.e(210).then(c.bind(null,1165)),"v-47f9c35b":()=>c.e(212).then(c.bind(null,1166)),"v-19088f27":()=>c.e(376).then(c.bind(null,1167)),"v-1d065aa2":()=>c.e(211).then(c.bind(null,1168)),"v-6736aafa":()=>c.e(213).then(c.bind(null,1169)),"v-50964747":()=>c.e(214).then(c.bind(null,1170)),"v-bf091772":()=>c.e(80).then(c.bind(null,1171)),"v-e3fa9f72":()=>c.e(216).then(c.bind(null,1172)),"v-30be31a9":()=>c.e(215).then(c.bind(null,1173)),"v-d29b3b66":()=>c.e(217).then(c.bind(null,1174)),"v-6bf745d3":()=>c.e(81).then(c.bind(null,1175)),"v-13b74a72":()=>c.e(218).then(c.bind(null,1176)),"v-4c4414bd":()=>c.e(219).then(c.bind(null,1177)),"v-2921d7e7":()=>c.e(221).then(c.bind(null,1178)),"v-5a24aa07":()=>c.e(220).then(c.bind(null,1179)),"v-4be94031":()=>c.e(224).then(c.bind(null,1180)),"v-e83ea4f2":()=>c.e(222).then(c.bind(null,1181)),"v-637b13c7":()=>c.e(223).then(c.bind(null,1182)),"v-5c2cfb72":()=>c.e(225).then(c.bind(null,1183)),"v-5b5e6427":()=>c.e(227).then(c.bind(null,1184)),"v-7c537de7":()=>c.e(226).then(c.bind(null,1185)),"v-21b721ae":()=>c.e(229).then(c.bind(null,1186)),"v-61da4eee":()=>c.e(231).then(c.bind(null,1187)),"v-3b520e4f":()=>c.e(228).then(c.bind(null,1188)),"v-77363772":()=>c.e(206).then(c.bind(null,1189)),"v-11a59ef9":()=>c.e(232).then(c.bind(null,1190)),"v-9f5a7d32":()=>c.e(377).then(c.bind(null,1191)),"v-64552681":()=>c.e(233).then(c.bind(null,1192)),"v-a40c8732":()=>c.e(234).then(c.bind(null,1193)),"v-9198a01e":()=>c.e(236).then(c.bind(null,1194)),"v-1013433f":()=>c.e(235).then(c.bind(null,1195)),"v-67dbcba7":()=>c.e(237).then(c.bind(null,1196)),"v-14661c2d":()=>c.e(238).then(c.bind(null,1197)),"v-59dccef2":()=>c.e(240).then(c.bind(null,1198)),"v-4cf6bf32":()=>c.e(241).then(c.bind(null,1199)),"v-100a3e47":()=>c.e(239).then(c.bind(null,1200)),"v-3e8a576b":()=>c.e(378).then(c.bind(null,1201)),"v-1709c1d3":()=>c.e(242).then(c.bind(null,1202)),"v-3d455e1f":()=>c.e(379).then(c.bind(null,1203)),"v-690e9367":()=>c.e(243).then(c.bind(null,1204)),"v-2ce14ef2":()=>c.e(244).then(c.bind(null,1205)),"v-281449cb":()=>c.e(246).then(c.bind(null,1206)),"v-77d7abc7":()=>c.e(247).then(c.bind(null,1207)),"v-1e8b2167":()=>c.e(245).then(c.bind(null,1208)),"v-3eb0087b":()=>c.e(230).then(c.bind(null,1209)),"v-01319b07":()=>c.e(249).then(c.bind(null,1210)),"v-1b0560c3":()=>c.e(381).then(c.bind(null,1211)),"v-8ed10332":()=>c.e(82).then(c.bind(null,1212)),"v-846ec7f2":()=>c.e(250).then(c.bind(null,1213)),"v-2e4c9dc9":()=>c.e(83).then(c.bind(null,1214)),"v-53da033f":()=>c.e(380).then(c.bind(null,1215)),"v-1b90e4c2":()=>c.e(251).then(c.bind(null,1216)),"v-7841dcfb":()=>c.e(252).then(c.bind(null,1217)),"v-5889cb59":()=>c.e(253).then(c.bind(null,1218)),"v-1eb18087":()=>c.e(84).then(c.bind(null,1219)),"v-48688967":()=>c.e(85).then(c.bind(null,1220)),"v-28fc4432":()=>c.e(254).then(c.bind(null,1221)),"v-3098c387":()=>c.e(45).then(c.bind(null,1222)),"v-1134a2e7":()=>c.e(255).then(c.bind(null,1223)),"v-64af51d7":()=>c.e(382).then(c.bind(null,1224)),"v-9ccbeb76":()=>c.e(86).then(c.bind(null,1225)),"v-157f848a":()=>c.e(89).then(c.bind(null,1226)),"v-001ddafb":()=>c.e(88).then(c.bind(null,1227)),"v-12d7b90f":()=>c.e(87).then(c.bind(null,1228)),"v-16e38c56":()=>c.e(90).then(c.bind(null,1229)),"v-58df42b7":()=>c.e(256).then(c.bind(null,1230)),"v-7381d572":()=>c.e(91).then(c.bind(null,1231)),"v-568f6d7e":()=>c.e(258).then(c.bind(null,1232)),"v-668f1587":()=>c.e(93).then(c.bind(null,1233)),"v-12144d72":()=>c.e(257).then(c.bind(null,1234)),"v-6bfe6a39":()=>c.e(92).then(c.bind(null,1235)),"v-690635bb":()=>c.e(260).then(c.bind(null,1236)),"v-0031f5d6":()=>c.e(259).then(c.bind(null,1237)),"v-0f25337d":()=>c.e(262).then(c.bind(null,1238)),"v-08564da7":()=>c.e(261).then(c.bind(null,1239)),"v-5f99c5b2":()=>c.e(263).then(c.bind(null,1240)),"v-760221cd":()=>c.e(94).then(c.bind(null,1241)),"v-258c6472":()=>c.e(95).then(c.bind(null,1242)),"v-9d2ec7de":()=>c.e(264).then(c.bind(null,1243)),"v-acbfcc4a":()=>c.e(265).then(c.bind(null,1244)),"v-cb421036":()=>c.e(96).then(c.bind(null,1245)),"v-5b66ee52":()=>c.e(267).then(c.bind(null,1246)),"v-3e2501ee":()=>c.e(97).then(c.bind(null,1247)),"v-6c144d07":()=>c.e(269).then(c.bind(null,1248)),"v-1327575a":()=>c.e(266).then(c.bind(null,1249)),"v-fa5974f2":()=>c.e(270).then(c.bind(null,1250)),"v-16942872":()=>c.e(271).then(c.bind(null,1251)),"v-ae820072":()=>c.e(98).then(c.bind(null,1252)),"v-9043d372":()=>c.e(268).then(c.bind(null,1253)),"v-e648748e":()=>c.e(272).then(c.bind(null,1254)),"v-34a03bc7":()=>c.e(273).then(c.bind(null,1255)),"v-327fbaa7":()=>c.e(99).then(c.bind(null,1256)),"v-4f8d10e5":()=>c.e(100).then(c.bind(null,1257)),"v-1912fd7a":()=>c.e(101).then(c.bind(null,1258)),"v-f2533c1e":()=>c.e(383).then(c.bind(null,1259)),"v-3e1f8c47":()=>c.e(274).then(c.bind(null,1260)),"v-347024e7":()=>c.e(275).then(c.bind(null,1261)),"v-058dc5b2":()=>c.e(276).then(c.bind(null,1262)),"v-5ffb0147":()=>c.e(102).then(c.bind(null,1263)),"v-524244c7":()=>c.e(277).then(c.bind(null,1264)),"v-4f75de97":()=>c.e(103).then(c.bind(null,1265)),"v-4f2ebfb2":()=>c.e(104).then(c.bind(null,1266)),"v-741a2432":()=>c.e(279).then(c.bind(null,1267)),"v-0c6bef47":()=>c.e(278).then(c.bind(null,1268)),"v-9d9cc472":()=>c.e(46).then(c.bind(null,1269)),"v-dc917076":()=>c.e(280).then(c.bind(null,1270)),"v-326ed2c7":()=>c.e(105).then(c.bind(null,1271)),"v-5a274087":()=>c.e(106).then(c.bind(null,1272)),"v-4f597976":()=>c.e(281).then(c.bind(null,1273)),"v-254d4e97":()=>c.e(47).then(c.bind(null,1274)),"v-3fac8f47":()=>c.e(384).then(c.bind(null,1275)),"v-3a4e136f":()=>c.e(282).then(c.bind(null,1276)),"v-f2e2c936":()=>c.e(283).then(c.bind(null,1277)),"v-3696ee5a":()=>c.e(385).then(c.bind(null,1278)),"v-bcda9044":()=>c.e(386).then(c.bind(null,1279)),"v-3d668687":()=>c.e(331).then(c.bind(null,1280)),"v-79720951":()=>c.e(107).then(c.bind(null,1281)),"v-81ac5472":()=>c.e(387).then(c.bind(null,1282)),"v-25491f21":()=>c.e(388).then(c.bind(null,1283)),"v-75091cbb":()=>c.e(248).then(c.bind(null,1284))};function s(e){const t=Object.create(null);return function(c){return t[c]||(t[c]=e(c))}}const r=/-(\w)/g,o=s(e=>e.replace(r,(e,t)=>t?t.toUpperCase():"")),l=/\B([A-Z])/g,u=s(e=>e.replace(l,"-$1").toLowerCase()),p=s(e=>e.charAt(0).toUpperCase()+e.slice(1));function f(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(p(o(t))):e(p(t))||e(u(t))}const m=Object.assign({},i,n),d=e=>m[e],h=e=>n[e],v=e=>i[e],g=e=>a.default.component(e);function z(e){return f(h,e)}function b(e){return f(v,e)}function C(e){return f(d,e)}function M(e){return f(g,e)}function H(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!M(e)&&C(e)){const t=await C(e)();a.default.component(e,t.default)}}))}function V(e,t,c){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],c);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...c);break;default:throw new Error("Unknown option name.")}}function y(e,t){const{$localePath:c}=e;return"object"==typeof t&&t[c]?t[c]:t}function L(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}},function(e,t,c){"use strict";c.r(t),c.d(t,"EffectScope",(function(){return gt})),c.d(t,"computed",(function(){return st})),c.d(t,"customRef",(function(){return Qe})),c.d(t,"default",(function(){return Ya})),c.d(t,"defineAsyncComponent",(function(){return Pc})),c.d(t,"defineComponent",(function(){return qc})),c.d(t,"del",(function(){return Te})),c.d(t,"effectScope",(function(){return zt})),c.d(t,"getCurrentInstance",(function(){return pe})),c.d(t,"getCurrentScope",(function(){return bt})),c.d(t,"h",(function(){return pc})),c.d(t,"inject",(function(){return Vt})),c.d(t,"isProxy",(function(){return Be})),c.d(t,"isReactive",(function(){return Ie})),c.d(t,"isReadonly",(function(){return Fe})),c.d(t,"isRef",(function(){return Ge})),c.d(t,"isShallow",(function(){return je})),c.d(t,"markRaw",(function(){return qe})),c.d(t,"mergeDefaults",(function(){return sc})),c.d(t,"nextTick",(function(){return Lc})),c.d(t,"onActivated",(function(){return Rc})),c.d(t,"onBeforeMount",(function(){return kc})),c.d(t,"onBeforeUnmount",(function(){return Tc})),c.d(t,"onBeforeUpdate",(function(){return Ec})),c.d(t,"onDeactivated",(function(){return _c})),c.d(t,"onErrorCaptured",(function(){return Bc})),c.d(t,"onMounted",(function(){return Ac})),c.d(t,"onRenderTracked",(function(){return Ic})),c.d(t,"onRenderTriggered",(function(){return jc})),c.d(t,"onScopeDispose",(function(){return Ct})),c.d(t,"onServerPrefetch",(function(){return Oc})),c.d(t,"onUnmounted",(function(){return Dc})),c.d(t,"onUpdated",(function(){return Nc})),c.d(t,"provide",(function(){return Mt})),c.d(t,"proxyRefs",(function(){return Xe})),c.d(t,"reactive",(function(){return Re})),c.d(t,"readonly",(function(){return ct})),c.d(t,"ref",(function(){return We})),c.d(t,"set",(function(){return Ne})),c.d(t,"shallowReactive",(function(){return _e})),c.d(t,"shallowReadonly",(function(){return nt})),c.d(t,"shallowRef",(function(){return Ue})),c.d(t,"toRaw",(function(){return $e})),c.d(t,"toRef",(function(){return tt})),c.d(t,"toRefs",(function(){return et})),c.d(t,"triggerRef",(function(){return Ze})),c.d(t,"unref",(function(){return Ye})),c.d(t,"useAttrs",(function(){return ac})),c.d(t,"useCssModule",(function(){return Sc})),c.d(t,"useCssVars",(function(){return xc})),c.d(t,"useListeners",(function(){return ic})),c.d(t,"useSlots",(function(){return cc})),c.d(t,"version",(function(){return $c})),c.d(t,"watch",(function(){return ht})),c.d(t,"watchEffect",(function(){return ut})),c.d(t,"watchPostEffect",(function(){return pt})),c.d(t,"watchSyncEffect",(function(){return ft})); /*! * Vue.js v2.7.14 * (c) 2014-2022 Evan You @@ -45,4 +45,4 @@ and limitations under the License. * vue-router v3.6.5 * (c) 2022 Evan You * @license MIT - */function i(e,t){for(var c in t)e[c]=t[c];return e}var n=/[!'()*]/g,s=function(e){return"%"+e.charCodeAt(0).toString(16)},r=/%2C/g,o=function(e){return encodeURIComponent(e).replace(n,s).replace(r,",")};function l(e){try{return decodeURIComponent(e)}catch(e){0}return e}var u=function(e){return null==e||"object"==typeof e?e:String(e)};function p(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var c=e.replace(/\+/g," ").split("="),a=l(c.shift()),i=c.length>0?l(c.join("=")):null;void 0===t[a]?t[a]=i:Array.isArray(t[a])?t[a].push(i):t[a]=[t[a],i]})),t):t}function f(e){var t=e?Object.keys(e).map((function(t){var c=e[t];if(void 0===c)return"";if(null===c)return o(t);if(Array.isArray(c)){var a=[];return c.forEach((function(e){void 0!==e&&(null===e?a.push(o(t)):a.push(o(t)+"="+o(e)))})),a.join("&")}return o(t)+"="+o(c)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var m=/\/?$/;function d(e,t,c,a){var i=a&&a.options.stringifyQuery,n=t.query||{};try{n=h(n)}catch(e){}var s={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:n,params:t.params||{},fullPath:z(t,i),matched:e?g(e):[]};return c&&(s.redirectedFrom=z(c,i)),Object.freeze(s)}function h(e){if(Array.isArray(e))return e.map(h);if(e&&"object"==typeof e){var t={};for(var c in e)t[c]=h(e[c]);return t}return e}var v=d(null,{path:"/"});function g(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function z(e,t){var c=e.path,a=e.query;void 0===a&&(a={});var i=e.hash;return void 0===i&&(i=""),(c||"/")+(t||f)(a)+i}function b(e,t,c){return t===v?e===t:!!t&&(e.path&&t.path?e.path.replace(m,"")===t.path.replace(m,"")&&(c||e.hash===t.hash&&C(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(c||e.hash===t.hash&&C(e.query,t.query)&&C(e.params,t.params))))}function C(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var c=Object.keys(e).sort(),a=Object.keys(t).sort();return c.length===a.length&&c.every((function(c,i){var n=e[c];if(a[i]!==c)return!1;var s=t[c];return null==n||null==s?n===s:"object"==typeof n&&"object"==typeof s?C(n,s):String(n)===String(s)}))}function M(e){for(var t=0;t=0&&(t=e.slice(a),e=e.slice(0,a));var i=e.indexOf("?");return i>=0&&(c=e.slice(i+1),e=e.slice(0,i)),{path:e,query:c,hash:t}}(n.path||""),f=t&&t.path||"/",m=l.path?y(l.path,f,c||n.append):f,d=function(e,t,c){void 0===t&&(t={});var a,i=c||p;try{a=i(e||"")}catch(e){a={}}for(var n in t){var s=t[n];a[n]=Array.isArray(s)?s.map(u):u(s)}return a}(l.query,n.query,a&&a.options.parseQuery),h=n.hash||l.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:m,query:d,hash:h}}var G,W=function(){},U={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,c=this.$router,a=this.$route,n=c.resolve(this.to,a,this.append),s=n.location,r=n.route,o=n.href,l={},u=c.options.linkActiveClass,p=c.options.linkExactActiveClass,f=null==u?"router-link-active":u,h=null==p?"router-link-exact-active":p,v=null==this.activeClass?f:this.activeClass,g=null==this.exactActiveClass?h:this.exactActiveClass,z=r.redirectedFrom?d(null,q(r.redirectedFrom),null,c):r;l[g]=b(a,z,this.exactPath),l[v]=this.exact||this.exactPath?l[g]:function(e,t){return 0===e.path.replace(m,"/").indexOf(t.path.replace(m,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var c in t)if(!(c in e))return!1;return!0}(e.query,t.query)}(a,z);var C=l[g]?this.ariaCurrentValue:null,M=function(e){K(e)&&(t.replace?c.replace(s,W):c.push(s,W))},H={click:K};Array.isArray(this.event)?this.event.forEach((function(e){H[e]=M})):H[this.event]=M;var V={class:l},y=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:o,route:r,navigate:M,isActive:l[v],isExactActive:l[g]});if(y){if(1===y.length)return y[0];if(y.length>1||!y.length)return 0===y.length?e():e("span",{},y)}if("a"===this.tag)V.on=H,V.attrs={href:o,"aria-current":C};else{var L=function e(t){var c;if(t)for(var a=0;a-1&&(r.params[f]=c.params[f]);return r.path=$(u.path,r.params),o(u,r,s)}if(r.path){r.params={};for(var m=0;m-1}function Le(e,t){return ye(e)&&e._isRouter&&(null==t||e.type===t)}function Se(e,t,c){var a=function(i){i>=e.length?c():e[i]?t(e[i],(function(){a(i+1)})):a(i+1)};a(0)}function xe(e){return function(t,c,a){var i=!1,n=0,s=null;Pe(e,(function(e,t,c,r){if("function"==typeof e&&void 0===e.cid){i=!0,n++;var o,l=Ae((function(t){var i;((i=t).__esModule||ke&&"Module"===i[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:G.extend(t),c.components[r]=t,--n<=0&&a()})),u=Ae((function(e){var t="Failed to resolve async component "+r+": "+e;s||(s=ye(e)?e:new Error(t),a(s))}));try{o=e(l,u)}catch(e){u(e)}if(o)if("function"==typeof o.then)o.then(l,u);else{var p=o.component;p&&"function"==typeof p.then&&p.then(l,u)}}})),i||a()}}function Pe(e,t){return we(e.map((function(e){return Object.keys(e.components).map((function(c){return t(e.components[c],e.instances[c],e,c)}))})))}function we(e){return Array.prototype.concat.apply([],e)}var ke="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ae(e){var t=!1;return function(){for(var c=[],a=arguments.length;a--;)c[a]=arguments[a];if(!t)return t=!0,e.apply(this,c)}}var Ee=function(e,t){this.router=e,this.base=function(e){if(!e)if(Z){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=v,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ne(e,t,c,a){var i=Pe(e,(function(e,a,i,n){var s=function(e,t){"function"!=typeof e&&(e=G.extend(e));return e.options[t]}(e,t);if(s)return Array.isArray(s)?s.map((function(e){return c(e,a,i,n)})):c(s,a,i,n)}));return we(a?i.reverse():i)}function Te(e,t){if(t)return function(){return e.apply(t,arguments)}}Ee.prototype.listen=function(e){this.cb=e},Ee.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Ee.prototype.onError=function(e){this.errorCbs.push(e)},Ee.prototype.transitionTo=function(e,t,c){var a,i=this;try{a=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var n=this.current;this.confirmTransition(a,(function(){i.updateRoute(a),t&&t(a),i.ensureURL(),i.router.afterHooks.forEach((function(e){e&&e(a,n)})),i.ready||(i.ready=!0,i.readyCbs.forEach((function(e){e(a)})))}),(function(e){c&&c(e),e&&!i.ready&&(Le(e,be.redirected)&&n===v||(i.ready=!0,i.readyErrorCbs.forEach((function(t){t(e)}))))}))},Ee.prototype.confirmTransition=function(e,t,c){var a=this,i=this.current;this.pending=e;var n,s,r=function(e){!Le(e)&&ye(e)&&(a.errorCbs.length?a.errorCbs.forEach((function(t){t(e)})):console.error(e)),c&&c(e)},o=e.matched.length-1,l=i.matched.length-1;if(b(e,i)&&o===l&&e.matched[o]===i.matched[l])return this.ensureURL(),e.hash&&re(this.router,i,e,!1),r(((s=He(n=i,e,be.duplicated,'Avoided redundant navigation to current location: "'+n.fullPath+'".')).name="NavigationDuplicated",s));var u=function(e,t){var c,a=Math.max(e.length,t.length);for(c=0;c0)){var t=this.router,c=t.options.scrollBehavior,a=ve&&c;a&&this.listeners.push(se());var i=function(){var c=e.current,i=Re(e.base);e.current===v&&i===e._startLocation||e.transitionTo(i,(function(e){a&&re(t,e,c,!0)}))};window.addEventListener("popstate",i),this.listeners.push((function(){window.removeEventListener("popstate",i)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){ge(L(a.base+e.fullPath)),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.replace=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){ze(L(a.base+e.fullPath)),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.ensureURL=function(e){if(Re(this.base)!==this.current.fullPath){var t=L(this.base+this.current.fullPath);e?ge(t):ze(t)}},t.prototype.getCurrentLocation=function(){return Re(this.base)},t}(Ee);function Re(e){var t=window.location.pathname,c=t.toLowerCase(),a=e.toLowerCase();return!e||c!==a&&0!==c.indexOf(L(a+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var _e=function(e){function t(t,c,a){e.call(this,t,c),a&&function(e){var t=Re(e);if(!/^\/#/.test(t))return window.location.replace(L(e+"/#"+t)),!0}(this.base)||Oe()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,c=ve&&t;c&&this.listeners.push(se());var a=function(){var t=e.current;Oe()&&e.transitionTo(Ie(),(function(a){c&&re(e.router,a,t,!0),ve||Be(a.fullPath)}))},i=ve?"popstate":"hashchange";window.addEventListener(i,a),this.listeners.push((function(){window.removeEventListener(i,a)}))}},t.prototype.push=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){Fe(e.fullPath),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.replace=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){Be(e.fullPath),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Ie()!==t&&(e?Fe(t):Be(t))},t.prototype.getCurrentLocation=function(){return Ie()},t}(Ee);function Oe(){var e=Ie();return"/"===e.charAt(0)||(Be("/"+e),!1)}function Ie(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function je(e){var t=window.location.href,c=t.indexOf("#");return(c>=0?t.slice(0,c):t)+"#"+e}function Fe(e){ve?ge(je(e)):window.location.hash=e}function Be(e){ve?ze(je(e)):window.location.replace(je(e))}var $e=function(e){function t(t,c){e.call(this,t,c),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,c){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index+1).concat(e),a.index++,t&&t(e)}),c)},t.prototype.replace=function(e,t,c){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index).concat(e),t&&t(e)}),c)},t.prototype.go=function(e){var t=this,c=this.index+e;if(!(c<0||c>=this.stack.length)){var a=this.stack[c];this.confirmTransition(a,(function(){var e=t.current;t.index=c,t.updateRoute(a),t.router.afterHooks.forEach((function(t){t&&t(a,e)}))}),(function(e){Le(e,be.duplicated)&&(t.index=c)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Ee),qe=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=J(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ve&&!1!==e.fallback,this.fallback&&(t="hash"),Z||(t="abstract"),this.mode=t,t){case"history":this.history=new De(this,e.base);break;case"hash":this.history=new _e(this,e.base,this.fallback);break;case"abstract":this.history=new $e(this,e.base);break;default:0}},Ge={currentRoute:{configurable:!0}};qe.prototype.match=function(e,t,c){return this.matcher.match(e,t,c)},Ge.currentRoute.get=function(){return this.history&&this.history.current},qe.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var c=t.apps.indexOf(e);c>-1&&t.apps.splice(c,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var c=this.history;if(c instanceof De||c instanceof _e){var a=function(e){c.setupListeners(),function(e){var a=c.current,i=t.options.scrollBehavior;ve&&i&&"fullPath"in e&&re(t,e,a,!1)}(e)};c.transitionTo(c.getCurrentLocation(),a,a)}c.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},qe.prototype.beforeEach=function(e){return Ue(this.beforeHooks,e)},qe.prototype.beforeResolve=function(e){return Ue(this.resolveHooks,e)},qe.prototype.afterEach=function(e){return Ue(this.afterHooks,e)},qe.prototype.onReady=function(e,t){this.history.onReady(e,t)},qe.prototype.onError=function(e){this.history.onError(e)},qe.prototype.push=function(e,t,c){var a=this;if(!t&&!c&&"undefined"!=typeof Promise)return new Promise((function(t,c){a.history.push(e,t,c)}));this.history.push(e,t,c)},qe.prototype.replace=function(e,t,c){var a=this;if(!t&&!c&&"undefined"!=typeof Promise)return new Promise((function(t,c){a.history.replace(e,t,c)}));this.history.replace(e,t,c)},qe.prototype.go=function(e){this.history.go(e)},qe.prototype.back=function(){this.go(-1)},qe.prototype.forward=function(){this.go(1)},qe.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},qe.prototype.resolve=function(e,t,c){var a=q(e,t=t||this.history.current,c,this),i=this.match(a,t),n=i.redirectedFrom||i.fullPath;return{location:a,route:i,href:function(e,t,c){var a="hash"===c?"#"+t:t;return e?L(e+"/"+a):a}(this.history.base,n,this.mode),normalizedTo:a,resolved:i}},qe.prototype.getRoutes=function(){return this.matcher.getRoutes()},qe.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},qe.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qe.prototype,Ge);var We=qe;function Ue(e,t){return e.push(t),function(){var c=e.indexOf(t);c>-1&&e.splice(c,1)}}qe.install=function e(t){if(!e.installed||G!==t){e.installed=!0,G=t;var c=function(e){return void 0!==e},a=function(e,t){var a=e.$options._parentVnode;c(a)&&c(a=a.data)&&c(a=a.registerRouteInstance)&&a(e,t)};t.mixin({beforeCreate:function(){c(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,a(this,this)},destroyed:function(){a(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",H),t.component("RouterLink",U);var i=t.config.optionMergeStrategies;i.beforeRouteEnter=i.beforeRouteLeave=i.beforeRouteUpdate=i.created}},qe.version="3.6.5",qe.isNavigationFailure=Le,qe.NavigationFailureType=be,qe.START_LOCATION=v,Z&&window.Vue&&window.Vue.use(qe);c(112);var Ke=c(0),Ze=c(106),Ye=c.n(Ze),Xe=c(107),Je=c.n(Xe),Qe={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${c}="${Je()(e[c])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=tt(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=ct(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return Ye()([{name:"description",content:this.$description}],e,this.siteMeta,at)},updateCanonicalLink(){et(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",tt(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){ct(null,this.currentMetaTags),et()}};function et(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function tt(e=""){return e?``:""}function ct(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(c=>{t.setAttribute(c,e[c])}),document.head.appendChild(t),t})}function at(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var it=c(49),nt={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:c.n(it)()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),t=[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(e=>e.hash===t.hash)),c=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),i=window.innerHeight+c;for(let e=0;e=n.parentElement.offsetTop+10&&(!s||c{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},st=c(27),rt=c.n(st),ot={mounted(){rt.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,c)=>{e.path===t.path||a.default.component(e.name)||rt.a.start(),c()}),this.$router.afterEach(()=>{rt.a.done(),this.isSidebarOpen=!1})}},lt=c(108),ut=c.n(lt),pt={mounted(){ut.a.polyfill()}},ft=(c(254),Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},a=window.Promise||function(e){function t(){}e(t,t)},i=function(e){var t=e.target;t!==L?-1!==b.indexOf(t)&&h({target:t}):d()},n=function(){if(!M&&y.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(H-e)>V.scrollOffset&&setTimeout(d,150)}},s=function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||d()},r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(L.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=ft({},V.container,e.container)),e.template){var c=dt(e.template)?e.template:document.querySelector(e.template);t.template=c}return V=ft({},V,t),b.forEach((function(e){e.dispatchEvent(bt("medium-zoom:update",{detail:{zoom:S}}))})),S},o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(ft({},V,t))},l=function(){for(var e=arguments.length,t=Array(e),c=0;c0?t.reduce((function(e,t){return[].concat(e,vt(t))}),[]):b;return a.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(bt("medium-zoom:detach",{detail:{zoom:S}}))})),b=b.filter((function(e){return-1===a.indexOf(e)})),S},p=function(e,t){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(a){a.addEventListener("medium-zoom:"+e,t,c)})),C.push({type:"medium-zoom:"+e,listener:t,options:c}),S},f=function(e,t){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(a){a.removeEventListener("medium-zoom:"+e,t,c)})),C=C.filter((function(c){return!(c.type==="medium-zoom:"+e&&c.listener.toString()===t.toString())})),S},m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,c=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,c=void 0;if(V.container)if(V.container instanceof Object)t=(e=ft({},e,V.container)).width-e.left-e.right-2*V.margin,c=e.height-e.top-e.bottom-2*V.margin;else{var a=(dt(V.container)?V.container:document.querySelector(V.container)).getBoundingClientRect(),i=a.width,n=a.height,s=a.left,r=a.top;e=ft({},e,{width:i,height:n,left:s,top:r})}t=t||e.width-2*V.margin,c=c||e.height-2*V.margin;var o=y.zoomedHd||y.original,l=ht(o)?t:o.naturalWidth||t,u=ht(o)?c:o.naturalHeight||c,p=o.getBoundingClientRect(),f=p.top,m=p.left,d=p.width,h=p.height,v=Math.min(Math.max(d,l),t)/d,g=Math.min(Math.max(h,u),c)/h,z=Math.min(v,g),b="scale("+z+") translate3d("+((t-d)/2-m+V.margin+e.left)/z+"px, "+((c-h)/2-f+V.margin+e.top)/z+"px, 0)";y.zoomed.style.transform=b,y.zoomedHd&&(y.zoomedHd.style.transform=b)};return new a((function(e){if(t&&-1===b.indexOf(t))e(S);else{if(y.zoomed)e(S);else{if(t)y.original=t;else{if(!(b.length>0))return void e(S);var a=b;y.original=a[0]}if(y.original.dispatchEvent(bt("medium-zoom:open",{detail:{zoom:S}})),H=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,M=!0,y.zoomed=zt(y.original),document.body.appendChild(L),V.template){var i=dt(V.template)?V.template:document.querySelector(V.template);y.template=document.createElement("div"),y.template.appendChild(i.content.cloneNode(!0)),document.body.appendChild(y.template)}if(y.original.parentElement&&"PICTURE"===y.original.parentElement.tagName&&y.original.currentSrc&&(y.zoomed.src=y.original.currentSrc),document.body.appendChild(y.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),y.original.classList.add("medium-zoom-image--hidden"),y.zoomed.classList.add("medium-zoom-image--opened"),y.zoomed.addEventListener("click",d),y.zoomed.addEventListener("transitionend",(function t(){M=!1,y.zoomed.removeEventListener("transitionend",t),y.original.dispatchEvent(bt("medium-zoom:opened",{detail:{zoom:S}})),e(S)})),y.original.getAttribute("data-zoom-src")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("srcset"),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading"),y.zoomedHd.src=y.zoomed.getAttribute("data-zoom-src"),y.zoomedHd.onerror=function(){clearInterval(n),console.warn("Unable to reach the zoom image target "+y.zoomedHd.src),y.zoomedHd=null,c()};var n=setInterval((function(){y.zoomedHd.complete&&(clearInterval(n),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),c())}),10)}else if(y.original.hasAttribute("srcset")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading");var s=y.zoomedHd.addEventListener("load",(function(){y.zoomedHd.removeEventListener("load",s),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),c()}))}else c()}}}))},d=function(){return new a((function(e){if(!M&&y.original){M=!0,document.body.classList.remove("medium-zoom--opened"),y.zoomed.style.transform="",y.zoomedHd&&(y.zoomedHd.style.transform=""),y.template&&(y.template.style.transition="opacity 150ms",y.template.style.opacity=0),y.original.dispatchEvent(bt("medium-zoom:close",{detail:{zoom:S}})),y.zoomed.addEventListener("transitionend",(function t(){y.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(y.zoomed),y.zoomedHd&&document.body.removeChild(y.zoomedHd),document.body.removeChild(L),y.zoomed.classList.remove("medium-zoom-image--opened"),y.template&&document.body.removeChild(y.template),M=!1,y.zoomed.removeEventListener("transitionend",t),y.original.dispatchEvent(bt("medium-zoom:closed",{detail:{zoom:S}})),y.original=null,y.zoomed=null,y.zoomedHd=null,y.template=null,e(S)}))}else e(S)}))},h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target;return y.original?d():m({target:t})},v=function(){return V},g=function(){return b},z=function(){return y.original},b=[],C=[],M=!1,H=0,V=c,y={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?V=t:(t||"string"==typeof t)&&l(t),V=ft({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},V);var L=gt(V.background);document.addEventListener("click",i),document.addEventListener("keyup",s),document.addEventListener("scroll",n),window.addEventListener("resize",d);var S={open:m,close:d,toggle:h,update:r,clone:o,attach:l,detach:u,on:p,off:f,getOptions:v,getImages:g,getZoomedImage:z};return S},Mt=[Qe,nt,ot,pt,{data:()=>({zoom:null}),mounted(){this.updateZoom()},updated(){this.updateZoom()},methods:{updateZoom(){setTimeout(()=>{this.zoom&&this.zoom.detach(),this.zoom=Ct(".theme-default-content :not(a) > img :not(.no-zoom)",void 0)},1e3)}}}],Ht={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return Object(Ke.h)("layout",e),a.default.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},Vt=c(2),yt=Object(Vt.a)(Ht,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;Object(Ke.f)(yt,"mixins",Mt);const Lt=[{name:"v-0f066768",path:"/customize/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0f066768").then(c)}},{path:"/customize/index.html",redirect:"/customize/"},{name:"v-70c82db4",path:"/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Home","v-70c82db4").then(c)}},{path:"/index.html",redirect:"/"},{name:"v-72aa7b60",path:"/customize/bioelectrical-input/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-72aa7b60").then(c)}},{path:"/customize/bioelectrical-input/index.html",redirect:"/customize/bioelectrical-input/"},{name:"v-10c8bfce",path:"/customize/environmental-control/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-10c8bfce").then(c)}},{path:"/customize/environmental-control/index.html",redirect:"/customize/environmental-control/"},{name:"v-1353f741",path:"/customize/grid/Grid-Creation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1353f741").then(c)}},{name:"v-74675454",path:"/customize/gaming-toys-music/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-74675454").then(c)}},{path:"/customize/gaming-toys-music/index.html",redirect:"/customize/gaming-toys-music/"},{name:"v-a10b0572",path:"/customize/grid/Grid-Customization.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-a10b0572").then(c)}},{name:"v-9b65a438",path:"/customize/grid/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-9b65a438").then(c)}},{path:"/customize/grid/index.html",redirect:"/customize/grid/"},{name:"v-06145dae",path:"/customize/model/Model-Creation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-06145dae").then(c)}},{name:"v-f23dedf2",path:"/customize/model/Model-Customization.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-f23dedf2").then(c)}},{name:"v-9d3a03d0",path:"/customize/model/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-9d3a03d0").then(c)}},{path:"/customize/model/index.html",redirect:"/customize/model/"},{name:"v-54cb8a6c",path:"/customize/other/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-54cb8a6c").then(c)}},{path:"/customize/other/index.html",redirect:"/customize/other/"},{name:"v-791888ea",path:"/develop/ARE%20API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-791888ea").then(c)}},{path:"/develop/ARE API.html",redirect:"/develop/ARE%20API.html"},{path:"/develop/ARE API.html",redirect:"/develop/ARE%20API.html"},{name:"v-536028e7",path:"/develop/APE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-536028e7").then(c)}},{name:"v-26c664f2",path:"/develop/ARE-Keyboard-Mouse-Services.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-26c664f2").then(c)}},{name:"v-440b00d9",path:"/develop/ARE-HW-Interfacing-CIM.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-440b00d9").then(c)}},{name:"v-88946f32",path:"/develop/ARE-Webserver.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-88946f32").then(c)}},{name:"v-6b8fd6b2",path:"/develop/ARE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6b8fd6b2").then(c)}},{name:"v-58b05fce",path:"/develop/ARE/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-58b05fce").then(c)}},{path:"/develop/ARE/index.html",redirect:"/develop/ARE/"},{name:"v-72593097",path:"/develop/ARE/ARE-Development-Manual.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-72593097").then(c)}},{name:"v-bae20b32",path:"/develop/AT-solution-demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-bae20b32").then(c)}},{name:"v-46ee2c72",path:"/develop/AT_solution_development.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-46ee2c72").then(c)}},{name:"v-587f5c72",path:"/develop/Development-Environment.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-587f5c72").then(c)}},{name:"v-b05cb8b2",path:"/develop/Plugin-Advanced.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b05cb8b2").then(c)}},{name:"v-5ad5b4a7",path:"/develop/Plugin-Introduction.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5ad5b4a7").then(c)}},{name:"v-05927867",path:"/develop/Coding-Guidelines.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-05927867").then(c)}},{name:"v-601a5927",path:"/develop/Plugin-Tutorial.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-601a5927").then(c)}},{name:"v-442ae018",path:"/develop/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-442ae018").then(c)}},{path:"/develop/index.html",redirect:"/develop/"},{name:"v-484bb6ca",path:"/develop/REST-API-java-client.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-484bb6ca").then(c)}},{name:"v-0907f972",path:"/develop/REST-API-js-areCommunicator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0907f972").then(c)}},{name:"v-cc275ef2",path:"/develop/REST-API-js-wrapper-ext.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-cc275ef2").then(c)}},{name:"v-1fef0fc1",path:"/develop/REST-demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1fef0fc1").then(c)}},{name:"v-3e7c0826",path:"/develop/REST-API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3e7c0826").then(c)}},{name:"v-1ac13561",path:"/develop/Unit-Testing.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1ac13561").then(c)}},{name:"v-6b057aa8",path:"/develop/are-remote-apis/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6b057aa8").then(c)}},{path:"/develop/are-remote-apis/index.html",redirect:"/develop/are-remote-apis/"},{name:"v-a7f6f946",path:"/develop/are-remote-apis/REST-API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-a7f6f946").then(c)}},{name:"v-d3e94d9e",path:"/develop/are-remote-apis/REST-demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d3e94d9e").then(c)}},{name:"v-628a78c7",path:"/develop/are-remote-apis/Webserver.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-628a78c7").then(c)}},{name:"v-3fb3a679",path:"/develop/asterics-grid/01_structure.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3fb3a679").then(c)}},{name:"v-64d69327",path:"/develop/asterics-grid/02_tools.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-64d69327").then(c)}},{name:"v-aefc4a72",path:"/develop/are-remote-apis/Websocket.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-aefc4a72").then(c)}},{name:"v-052f3aa7",path:"/develop/asterics-grid/03_grid.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-052f3aa7").then(c)}},{name:"v-52eb403b",path:"/develop/asterics-grid/04_vuejs.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-52eb403b").then(c)}},{name:"v-217e7fd9",path:"/develop/asterics-grid/05_datamodel.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-217e7fd9").then(c)}},{name:"v-045e7207",path:"/develop/asterics-grid/06_data_storage.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-045e7207").then(c)}},{name:"v-b5855fb2",path:"/develop/asterics-grid/07_i18n.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b5855fb2").then(c)}},{name:"v-1a112707",path:"/develop/asterics-grid/collaboration.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1a112707").then(c)}},{name:"v-e8933724",path:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e8933724").then(c)}},{path:"/develop/asterics-wiki/api/AsTeRICS Websocket.html",redirect:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html"},{path:"/develop/asterics-wiki/api/AsTeRICS Websocket.html",redirect:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html"},{name:"v-e0ec9638",path:"/develop/asterics-grid/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e0ec9638").then(c)}},{path:"/develop/asterics-grid/index.html",redirect:"/develop/asterics-grid/"},{name:"v-5d66a48b",path:"/develop/asterics-wiki/api/REST-API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5d66a48b").then(c)}},{name:"v-a04bf3f8",path:"/develop/asterics-wiki/api/Resource%20Handling.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-a04bf3f8").then(c)}},{path:"/develop/asterics-wiki/api/Resource Handling.html",redirect:"/develop/asterics-wiki/api/Resource%20Handling.html"},{path:"/develop/asterics-wiki/api/Resource Handling.html",redirect:"/develop/asterics-wiki/api/Resource%20Handling.html"},{name:"v-013fce70",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-013fce70").then(c)}},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html"},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html"},{name:"v-04acb1a3",path:"/develop/asterics-wiki/coding_instructions/JavaCV.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-04acb1a3").then(c)}},{name:"v-d3fed8f4",path:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d3fed8f4").then(c)}},{path:"/develop/asterics-wiki/coding_instructions/Unit Tests.html",redirect:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html"},{path:"/develop/asterics-wiki/coding_instructions/Unit Tests.html",redirect:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html"},{name:"v-35094c20",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-35094c20").then(c)}},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html"},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html"},{name:"v-73196267",path:"/develop/at-solution/APE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-73196267").then(c)}},{name:"v-7903e66c",path:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7903e66c").then(c)}},{path:"/develop/asterics-wiki/components/AsTeRICS Plugins.html",redirect:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html"},{path:"/develop/asterics-wiki/components/AsTeRICS Plugins.html",redirect:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html"},{name:"v-5c6ba0e0",path:"/develop/at-solution/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5c6ba0e0").then(c)}},{path:"/develop/at-solution/index.html",redirect:"/develop/at-solution/"},{name:"v-3d668687",path:"/develop/at-solution/AT-solution-tutorial.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3d668687").then(c)}},{name:"v-962a65f2",path:"/develop/get-started/Coding-Guidelines.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-962a65f2").then(c)}},{name:"v-66af9122",path:"/develop/get-started/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-66af9122").then(c)}},{path:"/develop/get-started/index.html",redirect:"/develop/get-started/"},{name:"v-1f5a7833",path:"/develop/plugin/Computer-Vision.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1f5a7833").then(c)}},{name:"v-076485ef",path:"/develop/plugin/Plugin-Advanced.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-076485ef").then(c)}},{name:"v-0a2795a7",path:"/develop/get-started/Development-Environment.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0a2795a7").then(c)}},{name:"v-0bd51ec9",path:"/develop/plugin/Plugin-Averager.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0bd51ec9").then(c)}},{name:"v-ae39e142",path:"/develop/plugin/Resource-Handling.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-ae39e142").then(c)}},{name:"v-167b3e84",path:"/develop/plugin/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-167b3e84").then(c)}},{path:"/develop/plugin/index.html",redirect:"/develop/plugin/"},{name:"v-e5deb1f2",path:"/get-involved/About-us.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e5deb1f2").then(c)}},{name:"v-8dbe5096",path:"/get-involved/Contact.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-8dbe5096").then(c)}},{name:"v-0c0bf027",path:"/get-involved/Contribute.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0c0bf027").then(c)}},{name:"v-688a4fc7",path:"/get-involved/Legal-Notice.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-688a4fc7").then(c)}},{name:"v-e8b9abf2",path:"/get-started/Demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e8b9abf2").then(c)}},{name:"v-6ead8b55",path:"/get-started/Installation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6ead8b55").then(c)}},{name:"v-4c4b4fb8",path:"/get-involved/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4c4b4fb8").then(c)}},{path:"/get-involved/index.html",redirect:"/get-involved/"},{name:"v-3822cb17",path:"/get-started/Overview.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3822cb17").then(c)}},{name:"v-db6f5b92",path:"/guide/docs.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-db6f5b92").then(c)}},{name:"v-5f7524be",path:"/get-started/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5f7524be").then(c)}},{path:"/get-started/index.html",redirect:"/get-started/"},{name:"v-14a1e3d3",path:"/guide/editor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-14a1e3d3").then(c)}},{name:"v-44873dcf",path:"/guide/markdown.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-44873dcf").then(c)}},{name:"v-b14aa6b2",path:"/manuals/ACS/Actuators.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b14aa6b2").then(c)}},{name:"v-3b633733",path:"/manuals/ACS/Channels.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3b633733").then(c)}},{name:"v-0c72b81d",path:"/manuals/ACS/Colours_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0c72b81d").then(c)}},{name:"v-860d4992",path:"/manuals/ACS/Component_Collection_Manager.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-860d4992").then(c)}},{name:"v-53fb73f1",path:"/manuals/ACS/Component_Context_Menu.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-53fb73f1").then(c)}},{name:"v-29b66472",path:"/manuals/ACS/Connected.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-29b66472").then(c)}},{name:"v-10853d87",path:"/manuals/ACS/Create_and_Edit_a_Model.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-10853d87").then(c)}},{name:"v-373a5a25",path:"/manuals/ACS/Dialogs_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-373a5a25").then(c)}},{name:"v-7185b8e7",path:"/manuals/ACS/Control_the_ARE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7185b8e7").then(c)}},{name:"v-89ebe0c6",path:"/manuals/ACS/Disconnected.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-89ebe0c6").then(c)}},{name:"v-4233ca76",path:"/manuals/ACS/External_Tools.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4233ca76").then(c)}},{name:"v-5d863821",path:"/manuals/ACS/Events.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5d863821").then(c)}},{name:"v-7c5fd547",path:"/manuals/ACS/External_Tools_Options.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7c5fd547").then(c)}},{name:"v-9cea1016",path:"/manuals/ACS/GUI_Designer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-9cea1016").then(c)}},{name:"v-33fac21f",path:"/manuals/ACS/General_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-33fac21f").then(c)}},{name:"v-e8c20486",path:"/manuals/ACS/Load_and_Save_Models.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e8c20486").then(c)}},{name:"v-34eb0509",path:"/manuals/ACS/Keyboard_control.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-34eb0509").then(c)}},{name:"v-d79ede32",path:"/manuals/ACS/Modes.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d79ede32").then(c)}},{name:"v-1b0ea627",path:"/manuals/ACS/Miscellaneous.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1b0ea627").then(c)}},{name:"v-af9b77b2",path:"/manuals/ACS/Options.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-af9b77b2").then(c)}},{name:"v-048cd127",path:"/manuals/ACS/Pause.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-048cd127").then(c)}},{name:"v-f5f710de",path:"/manuals/ACS/Processors.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-f5f710de").then(c)}},{name:"v-59f1b672",path:"/manuals/ACS/Print.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-59f1b672").then(c)}},{name:"v-0318f572",path:"/manuals/ACS/Running.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0318f572").then(c)}},{name:"v-70395034",path:"/manuals/ACS/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-70395034").then(c)}},{path:"/manuals/ACS/index.html",redirect:"/manuals/ACS/"},{name:"v-bb83c2f2",path:"/manuals/ACS/Sensors.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-bb83c2f2").then(c)}},{name:"v-ec9a5262",path:"/manuals/ACS/Status_Reporting_and_Error_Logging.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-ec9a5262").then(c)}},{name:"v-4736d21a",path:"/manuals/ACS/Setting_the_Properties.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4736d21a").then(c)}},{name:"v-26b3c0ab",path:"/manuals/ACS/Synchronized.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-26b3c0ab").then(c)}},{name:"v-2e0cc312",path:"/manuals/ACS/The_Edit_Tab.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-2e0cc312").then(c)}},{name:"v-66f839ae",path:"/manuals/ARE/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-66f839ae").then(c)}},{path:"/manuals/ARE/index.html",redirect:"/manuals/ARE/"},{name:"v-79865d33",path:"/manuals/ACS/Tooltips.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-79865d33").then(c)}},{name:"v-4ac08567",path:"/manuals/WebACS/AREStatus.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4ac08567").then(c)}},{name:"v-d204bc10",path:"/manuals/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d204bc10").then(c)}},{path:"/manuals/index.html",redirect:"/manuals/"},{name:"v-404dcbaa",path:"/manuals/WebACS/Control_the_ARE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-404dcbaa").then(c)}},{name:"v-411ff967",path:"/manuals/WebACS/Channels.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-411ff967").then(c)}},{name:"v-30f7abf1",path:"/manuals/WebACS/Create_and_Edit_a_Model.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-30f7abf1").then(c)}},{name:"v-38306472",path:"/manuals/WebACS/Events.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-38306472").then(c)}},{name:"v-b3f08772",path:"/manuals/WebACS/GUI_Designer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b3f08772").then(c)}},{name:"v-567470f2",path:"/manuals/WebACS/Keyboard_control.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-567470f2").then(c)}},{name:"v-11bd40a7",path:"/manuals/WebACS/List_View.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-11bd40a7").then(c)}},{name:"v-b20fab52",path:"/manuals/WebACS/Miscellaneous.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b20fab52").then(c)}},{name:"v-03d92972",path:"/manuals/WebACS/Open_and_Save_Models.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-03d92972").then(c)}},{name:"v-6deb6d78",path:"/manuals/WebACS/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6deb6d78").then(c)}},{path:"/manuals/WebACS/index.html",redirect:"/manuals/WebACS/"},{name:"v-73d3dc27",path:"/manuals/WebACS/The_Edit_Tab.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-73d3dc27").then(c)}},{name:"v-c701961e",path:"/manuals/asterics-grid/01_terms.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-c701961e").then(c)}},{name:"v-27668de7",path:"/manuals/WebACS/Setting_the_Properties.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-27668de7").then(c)}},{name:"v-401e7446",path:"/manuals/asterics-grid/010_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-401e7446").then(c)}},{name:"v-432b669e",path:"/manuals/asterics-grid/03_appearance_layout.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-432b669e").then(c)}},{name:"v-5cc12287",path:"/manuals/asterics-grid/02_navigation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5cc12287").then(c)}},{name:"v-403b9736",path:"/manuals/asterics-grid/06_users.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-403b9736").then(c)}},{name:"v-3bc61fa7",path:"/manuals/asterics-grid/04_input_options.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3bc61fa7").then(c)}},{name:"v-0776413d",path:"/manuals/asterics-grid/05_actions.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0776413d").then(c)}},{name:"v-5a470632",path:"/manuals/asterics-grid/08_keyboard_shortcuts.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5a470632").then(c)}},{name:"v-67cb4567",path:"/manuals/asterics-grid/07_dictionaries.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-67cb4567").then(c)}},{name:"v-124d7766",path:"/manuals/asterics-grid/09_translation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-124d7766").then(c)}},{name:"v-6214c2a7",path:"/manuals/asterics-grid/10_word_forms.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6214c2a7").then(c)}},{name:"v-74240617",path:"/manuals/asterics-grid/10_faq.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-74240617").then(c)}},{name:"v-6fb78227",path:"/manuals/asterics-grid/514_uart-action-tutorials.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6fb78227").then(c)}},{name:"v-4d499b72",path:"/manuals/asterics-grid/513_http-action-tutorials.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4d499b72").then(c)}},{name:"v-7b526a78",path:"/manuals/asterics-grid/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7b526a78").then(c)}},{path:"/manuals/asterics-grid/index.html",redirect:"/manuals/asterics-grid/"},{name:"v-d65cc238",path:"/manuals/fabi/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d65cc238").then(c)}},{path:"/manuals/fabi/index.html",redirect:"/manuals/fabi/"},{name:"v-13ecdddc",path:"/plugins/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-13ecdddc").then(c)}},{path:"/plugins/index.html",redirect:"/plugins/"},{name:"v-08b9c8b4",path:"/manuals/flipmouse/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-08b9c8b4").then(c)}},{path:"/manuals/flipmouse/index.html",redirect:"/manuals/flipmouse/"},{name:"v-516240a7",path:"/plugins/actuators/AndroidPhoneControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-516240a7").then(c)}},{name:"v-403588b2",path:"/plugins/actuators/AnalogOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-403588b2").then(c)}},{name:"v-3ad8af32",path:"/plugins/actuators/AREWindow.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3ad8af32").then(c)}},{name:"v-7a3eb067",path:"/plugins/actuators/ApplicationLauncher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7a3eb067").then(c)}},{name:"v-dd8b41a2",path:"/plugins/actuators/Android_connection.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-dd8b41a2").then(c)}},{name:"v-9c892f7e",path:"/plugins/actuators/AngularCursorControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9c892f7e").then(c)}},{name:"v-18096926",path:"/plugins/actuators/BarDisplay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-18096926").then(c)}},{name:"v-32d57c47",path:"/plugins/actuators/DialogBox.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-32d57c47").then(c)}},{name:"v-ef1e54fe",path:"/plugins/actuators/CrosshairCursorControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ef1e54fe").then(c)}},{name:"v-1f6d465f",path:"/plugins/actuators/DigitalOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1f6d465f").then(c)}},{name:"v-1988f40b",path:"/plugins/actuators/DotMeter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1988f40b").then(c)}},{name:"v-716ac7e7",path:"/plugins/actuators/EasyHomeControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-716ac7e7").then(c)}},{name:"v-cc3c0472",path:"/plugins/actuators/EmulateFaultyPlugin.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-cc3c0472").then(c)}},{name:"v-ca981632",path:"/plugins/actuators/EnobioDisplay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ca981632").then(c)}},{name:"v-27a39b47",path:"/plugins/actuators/Enocean.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-27a39b47").then(c)}},{name:"v-5b2ddb8b",path:"/plugins/actuators/FS20Sender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b2ddb8b").then(c)}},{name:"v-09250a67",path:"/plugins/actuators/EventVisualizer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-09250a67").then(c)}},{name:"v-e81af0b2",path:"/plugins/actuators/FlickeringLightStimulator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e81af0b2").then(c)}},{name:"v-956c78a6",path:"/plugins/actuators/FileWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-956c78a6").then(c)}},{name:"v-d264918e",path:"/plugins/actuators/GSMModem.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d264918e").then(c)}},{name:"v-b436f6a6",path:"/plugins/actuators/GMailShortcuts.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b436f6a6").then(c)}},{name:"v-c41a3672",path:"/plugins/actuators/Knx.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-c41a3672").then(c)}},{name:"v-6daf09f2",path:"/plugins/actuators/IRTrans.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6daf09f2").then(c)}},{name:"v-d206b2aa",path:"/plugins/actuators/ImageBox.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d206b2aa").then(c)}},{name:"v-15d2dabd",path:"/plugins/actuators/Keyboard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-15d2dabd").then(c)}},{name:"v-b8da8e86",path:"/plugins/actuators/LineWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b8da8e86").then(c)}},{name:"v-92953be6",path:"/plugins/actuators/LegacyDigitalOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-92953be6").then(c)}},{name:"v-4cb9a3c7",path:"/plugins/actuators/MediaPlayer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4cb9a3c7").then(c)}},{name:"v-8ea2c272",path:"/plugins/actuators/MidiPlayer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8ea2c272").then(c)}},{name:"v-38d36e07",path:"/plugins/actuators/Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-38d36e07").then(c)}},{name:"v-171c2d27",path:"/plugins/actuators/ModelSwitcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-171c2d27").then(c)}},{name:"v-7c5d8272",path:"/plugins/actuators/NetConnection.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7c5d8272").then(c)}},{name:"v-1d867097",path:"/plugins/actuators/OscOutClient.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1d867097").then(c)}},{name:"v-3e837632",path:"/plugins/actuators/MousecursorIcon.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e837632").then(c)}},{name:"v-5b29f0ed",path:"/plugins/actuators/Oscilloscope.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b29f0ed").then(c)}},{name:"v-0dab47bd",path:"/plugins/actuators/PhilipsHue.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0dab47bd").then(c)}},{name:"v-6337e0ed",path:"/plugins/actuators/PhoneControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6337e0ed").then(c)}},{name:"v-8679e6b2",path:"/plugins/actuators/PicoTTS.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8679e6b2").then(c)}},{name:"v-779d0f79",path:"/plugins/actuators/PlatformDigitalOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-779d0f79").then(c)}},{name:"v-aa237ef2",path:"/plugins/actuators/RemoteMouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-aa237ef2").then(c)}},{name:"v-5e80a527",path:"/plugins/actuators/PlatformLCD.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5e80a527").then(c)}},{name:"v-7c85c247",path:"/plugins/actuators/RemoteJoystick.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7c85c247").then(c)}},{name:"v-5032dd77",path:"/plugins/actuators/PongGame.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5032dd77").then(c)}},{name:"v-599c9c31",path:"/plugins/actuators/RemoteKeyboard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-599c9c31").then(c)}},{name:"v-84d9f01a",path:"/plugins/actuators/RemoteTablet.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-84d9f01a").then(c)}},{name:"v-50c42842",path:"/plugins/actuators/RemoteWindow.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-50c42842").then(c)}},{name:"v-2304fb67",path:"/plugins/actuators/SSVEPFileWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2304fb67").then(c)}},{name:"v-7ae45d79",path:"/plugins/actuators/SerialSender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7ae45d79").then(c)}},{name:"v-3a500587",path:"/plugins/actuators/SSVEPStimulator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3a500587").then(c)}},{name:"v-74496ef1",path:"/plugins/actuators/SyntheticVoice.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-74496ef1").then(c)}},{name:"v-3c600ed7",path:"/plugins/actuators/TextArea.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3c600ed7").then(c)}},{name:"v-6ca50ab2",path:"/plugins/actuators/SkyWatcherMount.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6ca50ab2").then(c)}},{name:"v-bc5321f2",path:"/plugins/actuators/TeensyRCPrototype.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-bc5321f2").then(c)}},{name:"v-9d737472",path:"/plugins/actuators/TextDisplay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9d737472").then(c)}},{name:"v-d68a2ef2",path:"/plugins/actuators/ToneGenerator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d68a2ef2").then(c)}},{name:"v-0563b61f",path:"/plugins/actuators/WavefilePlayer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0563b61f").then(c)}},{name:"v-83e29ef2",path:"/plugins/actuators/Tooltip.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-83e29ef2").then(c)}},{name:"v-79a7ccfb",path:"/plugins/actuators/WriteEDF.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-79a7ccfb").then(c)}},{name:"v-f257b186",path:"/plugins/actuators/WriteCSV.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-f257b186").then(c)}},{name:"v-6cf61c72",path:"/plugins/processors/AcousticScanning.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6cf61c72").then(c)}},{name:"v-646dcee6",path:"/plugins/processors/AdjustmentCurve.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-646dcee6").then(c)}},{name:"v-52053829",path:"/plugins/processors/AmazonEchoControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-52053829").then(c)}},{name:"v-ec67f37e",path:"/plugins/processors/Arduino.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ec67f37e").then(c)}},{name:"v-45b5002f",path:"/plugins/processors/Amplifier.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-45b5002f").then(c)}},{name:"v-09085367",path:"/plugins/processors/AudioSelector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-09085367").then(c)}},{name:"v-4e288232",path:"/plugins/processors/Averager.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4e288232").then(c)}},{name:"v-7cf4c0b1",path:"/plugins/processors/BasicTRalgorithms.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7cf4c0b1").then(c)}},{name:"v-4d0a7bd2",path:"/plugins/processors/Benchmark.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4d0a7bd2").then(c)}},{name:"v-b8389226",path:"/plugins/processors/BlinkChangeDetector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b8389226").then(c)}},{name:"v-e6456966",path:"/plugins/processors/BlinkDetector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e6456966").then(c)}},{name:"v-43a714a7",path:"/plugins/processors/BlinkDetectorTrainer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-43a714a7").then(c)}},{name:"v-d38dd566",path:"/plugins/processors/ComPort.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d38dd566").then(c)}},{name:"v-2788c5e7",path:"/plugins/processors/BlinkDetection.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2788c5e7").then(c)}},{name:"v-04510947",path:"/plugins/processors/Comparator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-04510947").then(c)}},{name:"v-1ba2eab2",path:"/plugins/processors/ConstantDispatcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1ba2eab2").then(c)}},{name:"v-5009f567",path:"/plugins/processors/ComputeBandpower.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5009f567").then(c)}},{name:"v-1e825672",path:"/plugins/processors/DataType.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1e825672").then(c)}},{name:"v-897a9bb2",path:"/plugins/processors/Decimation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-897a9bb2").then(c)}},{name:"v-5e6cfe07",path:"/plugins/processors/DateToDouble.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5e6cfe07").then(c)}},{name:"v-5d044327",path:"/plugins/processors/Derivative.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5d044327").then(c)}},{name:"v-691ee647",path:"/plugins/processors/Deadzone.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-691ee647").then(c)}},{name:"v-50d5674d",path:"/plugins/processors/Differentiate.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-50d5674d").then(c)}},{name:"v-6631ec8b",path:"/plugins/processors/Delay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6631ec8b").then(c)}},{name:"v-4b632167",path:"/plugins/processors/DoubleToString.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4b632167").then(c)}},{name:"v-7db60c2f",path:"/plugins/processors/Dissimilarity.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7db60c2f").then(c)}},{name:"v-d8c21cb2",path:"/plugins/processors/EventBlock.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d8c21cb2").then(c)}},{name:"v-69219697",path:"/plugins/processors/ECMAScriptInterpreter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-69219697").then(c)}},{name:"v-8cf913f2",path:"/plugins/processors/EventCascade.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8cf913f2").then(c)}},{name:"v-0faadb07",path:"/plugins/processors/EventCounter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0faadb07").then(c)}},{name:"v-257632e7",path:"/plugins/processors/EventDelay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-257632e7").then(c)}},{name:"v-b68a9862",path:"/plugins/processors/EventDispatcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b68a9862").then(c)}},{name:"v-0de90216",path:"/plugins/processors/EventFlipFlop.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0de90216").then(c)}},{name:"v-92543f1e",path:"/plugins/processors/EventStateMachine.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-92543f1e").then(c)}},{name:"v-4f6abeea",path:"/plugins/processors/EventRouter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f6abeea").then(c)}},{name:"v-77363772",path:"/plugins/processors/FS20CommandInterpreter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-77363772").then(c)}},{name:"v-f5401bf2",path:"/plugins/processors/FABI.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-f5401bf2").then(c)}},{name:"v-170dfcf2",path:"/plugins/processors/Filter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-170dfcf2").then(c)}},{name:"v-7f5ffdc1",path:"/plugins/processors/HRVAnalysis.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7f5ffdc1").then(c)}},{name:"v-38d069b2",path:"/plugins/processors/HRVRmssdFromRR.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-38d069b2").then(c)}},{name:"v-1d0ab506",path:"/plugins/processors/IIRFilter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1d0ab506").then(c)}},{name:"v-d1dfaaca",path:"/plugins/processors/IntToString.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d1dfaaca").then(c)}},{name:"v-19088f27",path:"/plugins/processors/JsonParser.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-19088f27").then(c)}},{name:"v-1d065aa2",path:"/plugins/processors/Integrate.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1d065aa2").then(c)}},{name:"v-47f9c35b",path:"/plugins/processors/IrMicro.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-47f9c35b").then(c)}},{name:"v-bf091772",path:"/plugins/processors/MotionAnalysis.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-bf091772").then(c)}},{name:"v-6736aafa",path:"/plugins/processors/MathEvaluator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6736aafa").then(c)}},{name:"v-e3fa9f72",path:"/plugins/processors/MultiSourceString.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e3fa9f72").then(c)}},{name:"v-50964747",path:"/plugins/processors/MinMax.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-50964747").then(c)}},{name:"v-30be31a9",path:"/plugins/processors/MultiSource.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-30be31a9").then(c)}},{name:"v-13b74a72",path:"/plugins/processors/NexusConnector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-13b74a72").then(c)}},{name:"v-d29b3b66",path:"/plugins/processors/NeuralNetworkLoader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d29b3b66").then(c)}},{name:"v-4c4414bd",path:"/plugins/processors/OneEventManyActions.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4c4414bd").then(c)}},{name:"v-6bf745d3",path:"/plugins/processors/OpenHAB.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6bf745d3").then(c)}},{name:"v-5a24aa07",path:"/plugins/processors/OscGestureFollower.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5a24aa07").then(c)}},{name:"v-637b13c7",path:"/plugins/processors/OskaInternalScanning.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-637b13c7").then(c)}},{name:"v-e83ea4f2",path:"/plugins/processors/OskaExternalScanning2D.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e83ea4f2").then(c)}},{name:"v-2921d7e7",path:"/plugins/processors/OskaExternalScanning1D.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2921d7e7").then(c)}},{name:"v-4be94031",path:"/plugins/processors/PathMultiplexer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4be94031").then(c)}},{name:"v-7c537de7",path:"/plugins/processors/PeakDetector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7c537de7").then(c)}},{name:"v-5b5e6427",path:"/plugins/processors/ProtocolSSVEPTrain.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b5e6427").then(c)}},{name:"v-21b721ae",path:"/plugins/processors/RegularExpression.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-21b721ae").then(c)}},{name:"v-5c2cfb72",path:"/plugins/processors/Pathselector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5c2cfb72").then(c)}},{name:"v-3b520e4f",path:"/plugins/processors/Quantizer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3b520e4f").then(c)}},{name:"v-3eb0087b",path:"/plugins/processors/RelativeMoveSampler.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3eb0087b").then(c)}},{name:"v-11a59ef9",path:"/plugins/processors/SampleAndHold.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-11a59ef9").then(c)}},{name:"v-61da4eee",path:"/plugins/processors/SSVEPDetect.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-61da4eee").then(c)}},{name:"v-64552681",path:"/plugins/processors/Sampler.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-64552681").then(c)}},{name:"v-a40c8732",path:"/plugins/processors/SerialSender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-a40c8732").then(c)}},{name:"v-9198a01e",path:"/plugins/processors/SpeechProcessor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9198a01e").then(c)}},{name:"v-9f5a7d32",path:"/plugins/processors/SerialPort.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9f5a7d32").then(c)}},{name:"v-1013433f",path:"/plugins/processors/SignalTranslation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1013433f").then(c)}},{name:"v-67dbcba7",path:"/plugins/processors/StringAppend.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-67dbcba7").then(c)}},{name:"v-100a3e47",path:"/plugins/processors/StringDispatcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-100a3e47").then(c)}},{name:"v-14661c2d",path:"/plugins/processors/StringDelay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-14661c2d").then(c)}},{name:"v-59dccef2",path:"/plugins/processors/StringExpander.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-59dccef2").then(c)}},{name:"v-3d455e1f",path:"/plugins/processors/StringFormatter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3d455e1f").then(c)}},{name:"v-4cf6bf32",path:"/plugins/processors/StringFilter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4cf6bf32").then(c)}},{name:"v-3e8a576b",path:"/plugins/processors/StringExtractor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e8a576b").then(c)}},{name:"v-690e9367",path:"/plugins/processors/StringPathSelector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-690e9367").then(c)}},{name:"v-1709c1d3",path:"/plugins/processors/StringPathMultiplexer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1709c1d3").then(c)}},{name:"v-2ce14ef2",path:"/plugins/processors/StringSplitter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2ce14ef2").then(c)}},{name:"v-1e8b2167",path:"/plugins/processors/StringToDouble.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1e8b2167").then(c)}},{name:"v-77d7abc7",path:"/plugins/processors/TextSender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-77d7abc7").then(c)}},{name:"v-53da033f",path:"/plugins/processors/TimestampWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-53da033f").then(c)}},{name:"v-281449cb",path:"/plugins/processors/StringToInt.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-281449cb").then(c)}},{name:"v-01319b07",path:"/plugins/processors/UniversalRemoteControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-01319b07").then(c)}},{name:"v-1b0560c3",path:"/plugins/processors/WebSocket.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1b0560c3").then(c)}},{name:"v-75091cbb",path:"/plugins/processors/Threshold.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-75091cbb").then(c)}},{name:"v-846ec7f2",path:"/plugins/processors/Yaak.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-846ec7f2").then(c)}},{name:"v-8ed10332",path:"/plugins/processors/eg_example.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8ed10332").then(c)}},{name:"v-1b90e4c2",path:"/plugins/sensors/AnalogIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1b90e4c2").then(c)}},{name:"v-2e4c9dc9",path:"/plugins/sensors/Acceleration.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2e4c9dc9").then(c)}},{name:"v-7841dcfb",path:"/plugins/sensors/AutostartEvent.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7841dcfb").then(c)}},{name:"v-1eb18087",path:"/plugins/sensors/CellBoard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1eb18087").then(c)}},{name:"v-5889cb59",path:"/plugins/sensors/ButtonGrid.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5889cb59").then(c)}},{name:"v-3098c387",path:"/plugins/sensors/EShoe.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3098c387").then(c)}},{name:"v-28fc4432",path:"/plugins/sensors/DigitalIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-28fc4432").then(c)}},{name:"v-1134a2e7",path:"/plugins/sensors/EditBox.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1134a2e7").then(c)}},{name:"v-48688967",path:"/plugins/sensors/EOG.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-48688967").then(c)}},{name:"v-9ccbeb76",path:"/plugins/sensors/Enobio.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9ccbeb76").then(c)}},{name:"v-64af51d7",path:"/plugins/sensors/EventGenerator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-64af51d7").then(c)}},{name:"v-12d7b90f",path:"/plugins/sensors/EyeTribe.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-12d7b90f").then(c)}},{name:"v-001ddafb",path:"/plugins/sensors/EyeX.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-001ddafb").then(c)}},{name:"v-157f848a",path:"/plugins/sensors/Eyetracker.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-157f848a").then(c)}},{name:"v-16e38c56",path:"/plugins/sensors/FS20Receiver.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-16e38c56").then(c)}},{name:"v-568f6d7e",path:"/plugins/sensors/HeadPositionHC.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-568f6d7e").then(c)}},{name:"v-7381d572",path:"/plugins/sensors/FacetrackerLK.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7381d572").then(c)}},{name:"v-58df42b7",path:"/plugins/sensors/FacetrackerCLM.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-58df42b7").then(c)}},{name:"v-6bfe6a39",path:"/plugins/sensors/HoverPanel.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6bfe6a39").then(c)}},{name:"v-12144d72",path:"/plugins/sensors/FolderBrowser.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-12144d72").then(c)}},{name:"v-0031f5d6",path:"/plugins/sensors/IntelRealSense.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0031f5d6").then(c)}},{name:"v-690635bb",path:"/plugins/sensors/KeyCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-690635bb").then(c)}},{name:"v-668f1587",path:"/plugins/sensors/JoystickCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-668f1587").then(c)}},{name:"v-08564da7",path:"/plugins/sensors/KeyboardCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-08564da7").then(c)}},{name:"v-0f25337d",path:"/plugins/sensors/Kinect.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0f25337d").then(c)}},{name:"v-760221cd",path:"/plugins/sensors/LegacyAnalogIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-760221cd").then(c)}},{name:"v-5f99c5b2",path:"/plugins/sensors/KinectJ4K.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5f99c5b2").then(c)}},{name:"v-258c6472",path:"/plugins/sensors/LegacyDigitalIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-258c6472").then(c)}},{name:"v-acbfcc4a",path:"/plugins/sensors/LineReader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-acbfcc4a").then(c)}},{name:"v-9d2ec7de",path:"/plugins/sensors/Lightscore.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9d2ec7de").then(c)}},{name:"v-cb421036",path:"/plugins/sensors/Lipmouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-cb421036").then(c)}},{name:"v-9043d372",path:"/plugins/sensors/MouseCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9043d372").then(c)}},{name:"v-1327575a",path:"/plugins/sensors/LipmouseIR.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1327575a").then(c)}},{name:"v-5b66ee52",path:"/plugins/sensors/MicGPI.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b66ee52").then(c)}},{name:"v-6c144d07",path:"/plugins/sensors/OpenBCI.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6c144d07").then(c)}},{name:"v-3e2501ee",path:"/plugins/sensors/OpenVibe.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e2501ee").then(c)}},{name:"v-ae820072",path:"/plugins/sensors/OscServer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ae820072").then(c)}},{name:"v-16942872",path:"/plugins/sensors/PhilipsHueSensor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-16942872").then(c)}},{name:"v-e648748e",path:"/plugins/sensors/PlatformAnalogIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e648748e").then(c)}},{name:"v-327fbaa7",path:"/plugins/sensors/Proximity.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-327fbaa7").then(c)}},{name:"v-4f8d10e5",path:"/plugins/sensors/RFIDReader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f8d10e5").then(c)}},{name:"v-fa5974f2",path:"/plugins/sensors/P2_Parser.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-fa5974f2").then(c)}},{name:"v-f2533c1e",path:"/plugins/sensors/RandomNumber.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-f2533c1e").then(c)}},{name:"v-1912fd7a",path:"/plugins/sensors/RazorIMU.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1912fd7a").then(c)}},{name:"v-34a03bc7",path:"/plugins/sensors/PlatformDigitalIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-34a03bc7").then(c)}},{name:"v-3e1f8c47",path:"/plugins/sensors/ReadCSV.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e1f8c47").then(c)}},{name:"v-347024e7",path:"/plugins/sensors/ReadEDF.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-347024e7").then(c)}},{name:"v-5ffb0147",path:"/plugins/sensors/Sensorboard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5ffb0147").then(c)}},{name:"v-058dc5b2",path:"/plugins/sensors/SignalGenerator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-058dc5b2").then(c)}},{name:"v-4f75de97",path:"/plugins/sensors/SignalShaper.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f75de97").then(c)}},{name:"v-0c6bef47",path:"/plugins/sensors/TextfieldReader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0c6bef47").then(c)}},{name:"v-524244c7",path:"/plugins/sensors/Slider.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-524244c7").then(c)}},{name:"v-741a2432",path:"/plugins/sensors/Timer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-741a2432").then(c)}},{name:"v-4f2ebfb2",path:"/plugins/sensors/SpaceNavigator3DMouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f2ebfb2").then(c)}},{name:"v-9d9cc472",path:"/plugins/sensors/TobiTic.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9d9cc472").then(c)}},{name:"v-dc917076",path:"/plugins/sensors/Tobii4CHeadTracker.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-dc917076").then(c)}},{name:"v-326ed2c7",path:"/plugins/sensors/TrackIR.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-326ed2c7").then(c)}},{name:"v-5a274087",path:"/plugins/sensors/WiiMote.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5a274087").then(c)}},{name:"v-254d4e97",path:"/plugins/sensors/TuioReactivision.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-254d4e97").then(c)}},{name:"v-4f597976",path:"/plugins/sensors/XFacetrackerLK.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f597976").then(c)}},{name:"v-3a4e136f",path:"/solutions/Camera-Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3a4e136f").then(c)}},{name:"v-3fac8f47",path:"/solutions/AAC-Basic.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3fac8f47").then(c)}},{name:"v-3696ee5a",path:"/solutions/Eye-Tracking-Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3696ee5a").then(c)}},{name:"v-f2e2c936",path:"/solutions/Head-Sound.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-f2e2c936").then(c)}},{name:"v-bcda9044",path:"/solutions/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-bcda9044").then(c)}},{path:"/solutions/index.html",redirect:"/solutions/"},{name:"v-81ac5472",path:"/webapps/AT-solution-IDE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-81ac5472").then(c)}},{name:"v-79720951",path:"/solutions/Switch-Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-79720951").then(c)}},{name:"v-25491f21",path:"/webapps/Plugin-IDE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-25491f21").then(c)}},{name:"v-1715ece5",path:"/plugins/processors/FabiCronusMax.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1715ece5").then(c)}},{path:"*",component:yt}],St={title:"AsTeRICS",description:"Customized Low-Cost Assistive Technologies",base:"/",headTags:[["link",{rel:"apple-touch-icon",sizes:"180x180",href:"/favicon/apple-touch-icon.png"}],["link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon/favicon-32x32.png"}],["link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon/favicon-16x16.png"}],["link",{rel:"manifest",href:"/favicon/site.webmanifest"}],["link",{rel:"mask-icon",href:"/favicon/safari-pinned-tab.svg",color:"#0ea1f2"}],["meta",{name:"apple-mobile-web-app-title",content:"AsTeRICS Docs"}],["meta",{name:"application-name",content:"AsTeRICS Docs"}],["meta",{name:"msapplication-TileColor",content:"#2b5797"}],["meta",{name:"theme-color",content:"#ffffff"}],["meta",{name:"google-site-verification",content:"FuUwJLLJcBGeCw84D05phyWRmWYIlT-q3HttcdwThtg"}]],pages:[{title:"Tutorials",frontmatter:{},regularPath:"/customize/",relativePath:"customize/README.md",key:"v-0f066768",path:"/customize/",headers:[{level:2,title:"Go to",slug:"go-to"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/README.md"},{title:"Home",frontmatter:{layout:"Home",title:"Home"},regularPath:"/",relativePath:"README.md",key:"v-70c82db4",path:"/",headers:[{level:2,title:"Use Cases",slug:"use-cases"},{level:2,title:"Why AsTeRICS?",slug:"why-asterics"},{level:2,title:"Partners & Funding",slug:"partners-funding"},{level:2,title:"AsTeRICS Project Web Page",slug:"asterics-project-web-page"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/README.md"},{title:"Bioelectrical Input",frontmatter:{},regularPath:"/customize/bioelectrical-input/",relativePath:"customize/bioelectrical-input/README.md",key:"v-72aa7b60",path:"/customize/bioelectrical-input/",headers:[{level:2,title:"EMG-based Mouse Click",slug:"emg-based-mouse-click"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/bioelectrical-input/README.md"},{title:"Environmental Control",frontmatter:{},regularPath:"/customize/environmental-control/",relativePath:"customize/environmental-control/README.md",key:"v-10c8bfce",path:"/customize/environmental-control/",headers:[{level:2,title:"OpenHAB",slug:"openhab"},{level:3,title:"Accessible UI",slug:"accessible-ui"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/environmental-control/README.md"},{title:"Grid Creation",frontmatter:{},regularPath:"/customize/grid/Grid-Creation.html",relativePath:"customize/grid/Grid-Creation.md",key:"v-1353f741",path:"/customize/grid/Grid-Creation.html",headers:[{level:2,title:"AsTeRICS Grid web application",slug:"asterics-grid-web-application"},{level:2,title:"Create New grid",slug:"create-new-grid"},{level:2,title:"Add cells",slug:"add-cells"},{level:2,title:"Adapt layout",slug:"adapt-layout"},{level:3,title:"Change size",slug:"change-size"},{level:3,title:"Change position",slug:"change-position"},{level:3,title:"More options",slug:"more-options"},{level:3,title:"Close Edit mode",slug:"close-edit-mode"},{level:2,title:"Conclusion",slug:"conclusion"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/grid/Grid-Creation.md"},{title:"Gaming, Toys & Music",frontmatter:{},regularPath:"/customize/gaming-toys-music/",relativePath:"customize/gaming-toys-music/README.md",key:"v-74675454",path:"/customize/gaming-toys-music/",headers:[{level:2,title:"Head Movement to Smiley Tutorial",slug:"head-movement-to-smiley-tutorial"},{level:3,title:"Model Description",slug:"model-description"},{level:2,title:"Gaming",slug:"gaming"},{level:2,title:"Sound and Voice",slug:"sound-and-voice"},{level:2,title:"Light",slug:"light"},{level:2,title:"Toys",slug:"toys"},{level:2,title:"Example Projects",slug:"example-projects"},{level:3,title:"Blood Pressure Cuff Sound and Toy Control",slug:"blood-pressure-cuff-sound-and-toy-control"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/gaming-toys-music/README.md"},{title:"Grid Customization",frontmatter:{},regularPath:"/customize/grid/Grid-Customization.html",relativePath:"customize/grid/Grid-Customization.md",key:"v-a10b0572",path:"/customize/grid/Grid-Customization.html",headers:[{level:2,title:"AsTeRICS Grid web application",slug:"asterics-grid-web-application"},{level:2,title:"Open grid",slug:"open-grid"},{level:3,title:"Saved Grids",slug:"saved-grids"},{level:3,title:"Import Grid file",slug:"import-grid-file"},{level:2,title:"Change cell",slug:"change-cell"},{level:3,title:"Cell text and image",slug:"cell-text-and-image"},{level:3,title:"Spoken text",slug:"spoken-text"},{level:3,title:"Close Edit mode",slug:"close-edit-mode"},{level:2,title:"Conclusion",slug:"conclusion"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/grid/Grid-Customization.md"},{title:"Customize Grid",frontmatter:{},regularPath:"/customize/grid/",relativePath:"customize/grid/README.md",key:"v-9b65a438",path:"/customize/grid/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/grid/README.md"},{title:"Model Creation",frontmatter:{},regularPath:"/customize/model/Model-Creation.html",relativePath:"customize/model/Model-Creation.md",key:"v-06145dae",path:"/customize/model/Model-Creation.html",headers:[{level:2,title:"Camera Mouse Simple",slug:"camera-mouse-simple"},{level:3,title:"Add Facetracking",slug:"add-facetracking"},{level:3,title:"Add Mouse",slug:"add-mouse"},{level:3,title:"Add Mouse Click",slug:"add-mouse-click"},{level:3,title:"Test Model",slug:"test-model"},{level:3,title:"Reducing Tremor",slug:"reducing-tremor"},{level:3,title:"Adjusting the Webcam",slug:"adjusting-the-webcam"},{level:2,title:"Camera Mouse Advanced",slug:"camera-mouse-advanced"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/model/Model-Creation.md"},{title:"Model Customization",frontmatter:{},regularPath:"/customize/model/Model-Customization.html",relativePath:"customize/model/Model-Customization.md",key:"v-f23dedf2",path:"/customize/model/Model-Customization.html",headers:[{level:2,title:"Open model",slug:"open-model"},{level:3,title:"Model of Solutions",slug:"model-of-solutions"},{level:3,title:"Deployed Model",slug:"deployed-model"},{level:2,title:"Change Plugin Property",slug:"change-plugin-property"},{level:3,title:"Change Property Value",slug:"change-property-value"},{level:3,title:"Test Change",slug:"test-change"},{level:2,title:"Conclusion",slug:"conclusion"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/model/Model-Customization.md"},{title:"Customize Model",frontmatter:{},regularPath:"/customize/model/",relativePath:"customize/model/README.md",key:"v-9d3a03d0",path:"/customize/model/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/model/README.md"},{title:"Other Use Cases and Information",frontmatter:{},regularPath:"/customize/other/",relativePath:"customize/other/README.md",key:"v-54cb8a6c",path:"/customize/other/",headers:[{level:2,title:"Complete AsTeRICS User Manual",slug:"complete-asterics-user-manual"},{level:2,title:"DIY Guides",slug:"diy-guides"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/other/README.md"},{title:"ARE Middleware",frontmatter:{},regularPath:"/develop/ARE%20API.html",relativePath:"develop/ARE API.md",key:"v-791888ea",path:"/develop/ARE%20API.html",headers:[{level:2,title:"Logging",slug:"logging"},{level:2,title:"Model execution",slug:"model-execution"},{level:3,title:"Event propagation",slug:"event-propagation"},{level:3,title:"Data propagation & conversion",slug:"data-propagation-conversion"},{level:2,title:"ARE Threading",slug:"are-threading"},{level:3,title:"Threading concept",slug:"threading-concept"},{level:3,title:"Thread pool",slug:"thread-pool"},{level:2,title:"ARE Desktop (GUI)",slug:"are-desktop-gui"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE API.md"},{title:"AsTeRICS Packaging Environment (APE)",frontmatter:{},regularPath:"/develop/APE.html",relativePath:"develop/APE.md",key:"v-536028e7",path:"/develop/APE.html",headers:[{level:2,title:"APE consists of two major elements",slug:"ape-consists-of-two-major-elements"},{level:2,title:"Important Terms",slug:"important-terms"},{level:2,title:"Dependencies",slug:"dependencies"},{level:2,title:"APE-copy commandline tool",slug:"ape-copy-commandline-tool"},{level:3,title:"Example usages of the APE-copy commandline tool",slug:"example-usages-of-the-ape-copy-commandline-tool"},{level:2,title:"Build infrastructure and native installer creation",slug:"build-infrastructure-and-native-installer-creation"},{level:3,title:"Simplified folder structure",slug:"simplified-folder-structure"},{level:3,title:"General workflow for using the build infrastructure",slug:"general-workflow-for-using-the-build-infrastructure"},{level:3,title:"Example usages of the build infrastructure",slug:"example-usages-of-the-build-infrastructure"},{level:3,title:"Properties for copying/extraction behaviour of APE",slug:"properties-for-copying-extraction-behaviour-of-ape"},{level:3,title:"Properties for installer creation",slug:"properties-for-installer-creation"},{level:3,title:"ARE customization",slug:"are-customization"},{level:3,title:"Installer customization",slug:"installer-customization"},{level:3,title:"ant build files",slug:"ant-build-files"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/APE.md"},{title:"ARE Keyboard and Mouse Services",frontmatter:{},regularPath:"/develop/ARE-Keyboard-Mouse-Services.html",relativePath:"develop/ARE-Keyboard-Mouse-Services.md",key:"v-26c664f2",path:"/develop/ARE-Keyboard-Mouse-Services.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE-Keyboard-Mouse-Services.md"},{title:"Interfacing AsTeRICS HW using the CIM protocol",frontmatter:{},regularPath:"/develop/ARE-HW-Interfacing-CIM.html",relativePath:"develop/ARE-HW-Interfacing-CIM.md",key:"v-440b00d9",path:"/develop/ARE-HW-Interfacing-CIM.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE-HW-Interfacing-CIM.md"},{title:"ARE Webserver",frontmatter:{},regularPath:"/develop/ARE-Webserver.html",relativePath:"develop/ARE-Webserver.md",key:"v-88946f32",path:"/develop/ARE-Webserver.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE-Webserver.md"},{title:"ARE Middleware",frontmatter:{},regularPath:"/develop/ARE.html",relativePath:"develop/ARE.md",key:"v-6b8fd6b2",path:"/develop/ARE.html",headers:[{level:2,title:"The AsTeRICS Runtime Environment",slug:"the-asterics-runtime-environment"},{level:2,title:"ARE Components",slug:"are-components"},{level:2,title:"About OSGi",slug:"about-osgi"},{level:2,title:"Getting Started with AsTeRICS Development",slug:"getting-started-with-asterics-development"},{level:2,title:"Understanding the component build-scripts",slug:"understanding-the-component-build-scripts"},{level:2,title:"Starting the ARE middleware and component deployments",slug:"starting-the-are-middleware-and-component-deployments"},{level:2,title:"Structure of the runtime folder “./bin/ARE”:",slug:"structure-of-the-runtime-folder-bin-are"},{level:2,title:"AsteRICS services",slug:"asterics-services"},{level:2,title:"Running a deployment",slug:"running-a-deployment"},{level:2,title:"ARE webserver (including REST API, websocket)",slug:"are-webserver-including-rest-api-websocket"},{level:2,title:"Define autostart model per command line",slug:"define-autostart-model-per-command-line"},{level:2,title:"Change model task submit timeout",slug:"change-model-task-submit-timeout"},{level:2,title:"Debugging the ARE",slug:"debugging-the-are"},{level:2,title:"Services and Utils: Infrastructure for plugins",slug:"services-and-utils-infrastructure-for-plugins"},{level:2,title:"Communicating with peripherals: CIM Communication service",slug:"communicating-with-peripherals-cim-communication-service"},{level:2,title:"CIMPortController",slug:"cimportcontroller"},{level:2,title:"CIMPortManager",slug:"cimportmanager"},{level:2,title:"CIMEventHandler",slug:"cimeventhandler"},{level:2,title:"CIMProtocolPacket",slug:"cimprotocolpacket"},{level:2,title:"Serial ports not adhering to CIM Protocol (Raw Ports)",slug:"serial-ports-not-adhering-to-cim-protocol-raw-ports"},{level:2,title:"Communication through a socket interface: Remote Connection Manager",slug:"communication-through-a-socket-interface-remote-connection-manager"},{level:2,title:"IRemoteConnectionListener",slug:"iremoteconnectionlistener"},{level:2,title:"RemoteConnectionManager",slug:"remoteconnectionmanager"},{level:2,title:"Local Storage Service",slug:"local-storage-service"},{level:2,title:"Keyboard/Mouse Native Hook Services",slug:"keyboard-mouse-native-hook-services"},{level:2,title:"Computer Vision Services",slug:"computer-vision-services"},{level:2,title:"Data Conversion Utilities",slug:"data-conversion-utilities"},{level:2,title:"Fetching resource URIs with ResourceRegistry class",slug:"fetching-resource-uris-with-resourceregistry-class"},{level:2,title:"Error Reporting (AstericsErrorHandling)",slug:"error-reporting-astericserrorhandling"},{level:3,title:"Logging",slug:"logging"},{level:3,title:"Error Reporting of components",slug:"error-reporting-of-components"},{level:3,title:"Status checking",slug:"status-checking"},{level:2,title:"The ARE Thread Pool",slug:"the-are-thread-pool"},{level:2,title:"The ARE GUI support",slug:"the-are-gui-support"},{level:2,title:"ARE core events notification services",slug:"are-core-events-notification-services"},{level:2,title:"Dynamic Properties",slug:"dynamic-properties"},{level:2,title:"Data Synchronization",slug:"data-synchronization"},{level:2,title:"Interfacing Native C/C++ Code via JNI",slug:"interfacing-native-c-c-code-via-jni"},{level:2,title:"Java-Implementation: JNI-Bridge",slug:"java-implementation-jni-bridge"},{level:2,title:"C-Implementation: Callbacks and JNI code",slug:"c-implementation-callbacks-and-jni-code"},{level:2,title:"AsTeRICS Packaging Environment (APE)",slug:"asterics-packaging-environment-ape"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE.md"},{title:"ARE Development Overview",frontmatter:{},regularPath:"/develop/ARE/",relativePath:"develop/ARE/README.md",key:"v-58b05fce",path:"/develop/ARE/",headers:[{level:2,title:"The AsTeRICS Runtime Environment",slug:"the-asterics-runtime-environment"},{level:2,title:"ARE Components",slug:"are-components"},{level:2,title:"About OSGi",slug:"about-osgi"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE/README.md"},{title:"ARE Development Manual",frontmatter:{},regularPath:"/develop/ARE/ARE-Development-Manual.html",relativePath:"develop/ARE/ARE-Development-Manual.md",key:"v-72593097",path:"/develop/ARE/ARE-Development-Manual.html",headers:[{level:2,title:"Understanding the component build-scripts",slug:"understanding-the-component-build-scripts"},{level:2,title:"Starting the ARE middleware and component deployments",slug:"starting-the-are-middleware-and-component-deployments"},{level:2,title:"Structure of the runtime folder “./bin/ARE”:",slug:"structure-of-the-runtime-folder-bin-are"},{level:2,title:"AsteRICS services",slug:"asterics-services"},{level:2,title:"Running a deployment",slug:"running-a-deployment"},{level:2,title:"ARE webserver (including REST API, websocket)",slug:"are-webserver-including-rest-api-websocket"},{level:2,title:"Define autostart model per command line",slug:"define-autostart-model-per-command-line"},{level:2,title:"Change model task submit timeout",slug:"change-model-task-submit-timeout"},{level:2,title:"Debugging the ARE",slug:"debugging-the-are"},{level:2,title:"Services and Utils: Infrastructure for plugins",slug:"services-and-utils-infrastructure-for-plugins"},{level:2,title:"Communicating with peripherals: CIM Communication service",slug:"communicating-with-peripherals-cim-communication-service"},{level:2,title:"CIMPortController",slug:"cimportcontroller"},{level:2,title:"CIMPortManager",slug:"cimportmanager"},{level:2,title:"CIMEventHandler",slug:"cimeventhandler"},{level:2,title:"CIMProtocolPacket",slug:"cimprotocolpacket"},{level:2,title:"Serial ports not adhering to CIM Protocol (Raw Ports)",slug:"serial-ports-not-adhering-to-cim-protocol-raw-ports"},{level:2,title:"Communication through a socket interface: Remote Connection Manager",slug:"communication-through-a-socket-interface-remote-connection-manager"},{level:2,title:"IRemoteConnectionListener",slug:"iremoteconnectionlistener"},{level:2,title:"RemoteConnectionManager",slug:"remoteconnectionmanager"},{level:2,title:"Local Storage Service",slug:"local-storage-service"},{level:2,title:"Keyboard/Mouse Native Hook Services",slug:"keyboard-mouse-native-hook-services"},{level:2,title:"Computer Vision Services",slug:"computer-vision-services"},{level:2,title:"Data Conversion Utilities",slug:"data-conversion-utilities"},{level:2,title:"Fetching resource URIs with ResourceRegistry class",slug:"fetching-resource-uris-with-resourceregistry-class"},{level:2,title:"Error Reporting (AstericsErrorHandling)",slug:"error-reporting-astericserrorhandling"},{level:3,title:"Logging",slug:"logging"},{level:3,title:"Error Reporting of components",slug:"error-reporting-of-components"},{level:3,title:"Status checking",slug:"status-checking"},{level:2,title:"The ARE Thread Pool",slug:"the-are-thread-pool"},{level:2,title:"The ARE GUI support",slug:"the-are-gui-support"},{level:2,title:"ARE core events notification services",slug:"are-core-events-notification-services"},{level:2,title:"Dynamic Properties",slug:"dynamic-properties"},{level:2,title:"Data Synchronization",slug:"data-synchronization"},{level:2,title:"Interfacing Native C/C++ Code via JNI",slug:"interfacing-native-c-c-code-via-jni"},{level:2,title:"Java-Implementation: JNI-Bridge",slug:"java-implementation-jni-bridge"},{level:2,title:"C-Implementation: Callbacks and JNI code",slug:"c-implementation-callbacks-and-jni-code"},{level:2,title:"AsTeRICS Packaging Environment (APE)",slug:"asterics-packaging-environment-ape"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE/ARE-Development-Manual.md"},{title:"AT Solutions Demos",frontmatter:{},regularPath:"/develop/AT-solution-demos.html",relativePath:"develop/AT-solution-demos.md",key:"v-bae20b32",path:"/develop/AT-solution-demos.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/AT-solution-demos.md"},{title:"AT Solution",frontmatter:{},regularPath:"/develop/AT_solution_development.html",relativePath:"develop/AT_solution_development.md",key:"v-46ee2c72",path:"/develop/AT_solution_development.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/AT_solution_development.md"},{title:"Development Environment",frontmatter:{},regularPath:"/develop/Development-Environment.html",relativePath:"develop/Development-Environment.md",key:"v-587f5c72",path:"/develop/Development-Environment.html",headers:[{level:2,title:"Repository Overview",slug:"repository-overview"},{level:2,title:"Clone Repository",slug:"clone-repository"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Environment Variables",slug:"environment-variables"},{level:2,title:"Build",slug:"build"},{level:3,title:"Building ARE Middleware, Services and Plugins",slug:"building-are-middleware-services-and-plugins"},{level:2,title:"Eclipse Setup",slug:"eclipse-setup"},{level:3,title:"Java Project",slug:"java-project"},{level:3,title:"Character encoding",slug:"character-encoding"},{level:3,title:"Editing Model Files (windows-only)",slug:"editing-model-files-windows-only"},{level:3,title:"Ant within Eclipse",slug:"ant-within-eclipse"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Development-Environment.md"},{title:"Plugin Advanced",frontmatter:{},regularPath:"/develop/Plugin-Advanced.html",relativePath:"develop/Plugin-Advanced.md",key:"v-b05cb8b2",path:"/develop/Plugin-Advanced.html",headers:[{level:2,title:"Writing AsTeRICS Plugin Code",slug:"writing-asterics-plugin-code"},{level:3,title:"ARE Coding Guidelines",slug:"are-coding-guidelines"},{level:2,title:"Eclipse Code Style Settings",slug:"eclipse-code-style-settings"},{level:2,title:"Port Naming Conventions",slug:"port-naming-conventions"},{level:2,title:"Property Naming Conventions",slug:"property-naming-conventions"},{level:2,title:"Bundle Descriptor Naming Conventions",slug:"bundle-descriptor-naming-conventions"},{level:2,title:"AsTeRICS ARE, service and plugin source file header",slug:"asterics-are-service-and-plugin-source-file-header"},{level:2,title:"JavaDoc compatible comments",slug:"javadoc-compatible-comments"},{level:2,title:"Implementing AsTeRICS components",slug:"implementing-asterics-components"},{level:2,title:"The Bundle Descriptors",slug:"the-bundle-descriptors"},{level:2,title:"The Deployment Descriptor",slug:"the-deployment-descriptor"},{level:2,title:"The Manifest file",slug:"the-manifest-file"},{level:2,title:"Structure of OSGi bundles containing ARE components",slug:"structure-of-osgi-bundles-containing-are-components"},{level:2,title:"Component lifecyle",slug:"component-lifecyle"},{level:2,title:"Threading",slug:"threading"},{level:2,title:"Writing plugins using Swing",slug:"writing-plugins-using-swing"},{level:2,title:"Long lasting method calls",slug:"long-lasting-method-calls"},{level:2,title:"Sensor callbacks",slug:"sensor-callbacks"},{level:2,title:"Contributing a developed plugin (git pull request)",slug:"contributing-a-developed-plugin-git-pull-request"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Plugin-Advanced.md"},{title:"Plugin Introduction",frontmatter:{},regularPath:"/develop/Plugin-Introduction.html",relativePath:"develop/Plugin-Introduction.md",key:"v-5ad5b4a7",path:"/develop/Plugin-Introduction.html",headers:[{level:2,title:"A Quick Guide to AsTeRICS Plugin Development",slug:"a-quick-guide-to-asterics-plugin-development"},{level:2,title:"The Plugin Creation Wizard",slug:"the-plugin-creation-wizard"},{level:2,title:"Created files and folders",slug:"created-files-and-folders"},{level:2,title:"Plugin Activation in ACS and ARE",slug:"plugin-activation-in-acs-and-are"},{level:2,title:"Component-Collection Management in the ACS",slug:"component-collection-management-in-the-acs"},{level:2,title:"Plugin License Declaration",slug:"plugin-license-declaration"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Plugin-Introduction.md"},{title:"Coding Guidelines",frontmatter:{},regularPath:"/develop/Coding-Guidelines.html",relativePath:"develop/Coding-Guidelines.md",key:"v-05927867",path:"/develop/Coding-Guidelines.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Coding-Guidelines.md"},{title:"Plugin Tutorial",frontmatter:{},regularPath:"/develop/Plugin-Tutorial.html",relativePath:"develop/Plugin-Tutorial.md",key:"v-601a5927",path:"/develop/Plugin-Tutorial.html",headers:[{level:2,title:"Step-by-Step implementation: Averager processor",slug:"step-by-step-implementation-averager-processor"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Plugin-Tutorial.md"},{title:"Develop",frontmatter:{},regularPath:"/develop/",relativePath:"develop/README.md",key:"v-442ae018",path:"/develop/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/README.md"},{title:"REST Java Client library",frontmatter:{},regularPath:"/develop/REST-API-java-client.html",relativePath:"develop/REST-API-java-client.md",key:"v-484bb6ca",path:"/develop/REST-API-java-client.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API-java-client.md"},{title:"Javascript REST API client library",frontmatter:{},regularPath:"/develop/REST-API-js-areCommunicator.html",relativePath:"develop/REST-API-js-areCommunicator.md",key:"v-0907f972",path:"/develop/REST-API-js-areCommunicator.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API-js-areCommunicator.md"},{title:"Javascript model manipulation and deployment",frontmatter:{},regularPath:"/develop/REST-API-js-wrapper-ext.html",relativePath:"develop/REST-API-js-wrapper-ext.md",key:"v-cc275ef2",path:"/develop/REST-API-js-wrapper-ext.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API-js-wrapper-ext.md"},{title:"REST demos with Javascript client library",frontmatter:{},regularPath:"/develop/REST-demos.html",relativePath:"develop/REST-demos.md",key:"v-1fef0fc1",path:"/develop/REST-demos.html",headers:[{level:2,title:"Examples",slug:"examples"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-demos.md"},{title:"REST API",frontmatter:{},regularPath:"/develop/REST-API.html",relativePath:"develop/REST-API.md",key:"v-3e7c0826",path:"/develop/REST-API.html",headers:[{level:2,title:"General Information",slug:"general-information"},{level:2,title:"REST API Links",slug:"rest-api-links"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API.md"},{title:"Unit Testing",frontmatter:{},regularPath:"/develop/Unit-Testing.html",relativePath:"develop/Unit-Testing.md",key:"v-1ac13561",path:"/develop/Unit-Testing.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Unit-Testing.md"},{title:"ARE Remote APIs",frontmatter:{},regularPath:"/develop/are-remote-apis/",relativePath:"develop/are-remote-apis/README.md",key:"v-6b057aa8",path:"/develop/are-remote-apis/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/README.md"},{title:"REST API Tutorial",frontmatter:{},regularPath:"/develop/are-remote-apis/REST-API.html",relativePath:"develop/are-remote-apis/REST-API.md",key:"v-a7f6f946",path:"/develop/are-remote-apis/REST-API.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Example 1 - Model start/stop",slug:"example-1-model-start-stop"},{level:2,title:"Example 2 - Model upload",slug:"example-2-model-upload"},{level:2,title:"Example 3 - Change plugin property values",slug:"example-3-change-plugin-property-values"},{level:2,title:"Example 4 - Send data to input port",slug:"example-4-send-data-to-input-port"},{level:2,title:"Example 5 - Trigger event listener",slug:"example-5-trigger-event-listener"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/REST-API.md"},{title:"REST demos with Javascript client library",frontmatter:{},regularPath:"/develop/are-remote-apis/REST-demos.html",relativePath:"develop/are-remote-apis/REST-demos.md",key:"v-d3e94d9e",path:"/develop/are-remote-apis/REST-demos.html",headers:[{level:2,title:"Examples",slug:"examples"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/REST-demos.md"},{title:"ARE Webserver",frontmatter:{},regularPath:"/develop/are-remote-apis/Webserver.html",relativePath:"develop/are-remote-apis/Webserver.md",key:"v-628a78c7",path:"/develop/are-remote-apis/Webserver.html",headers:[{level:2,title:"Document root subpath definitions",slug:"document-root-subpath-definitions"},{level:2,title:"Physical folder structure",slug:"physical-folder-structure"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/Webserver.md"},{title:"Structure",frontmatter:{},regularPath:"/develop/asterics-grid/01_structure.html",relativePath:"develop/asterics-grid/01_structure.md",key:"v-3fb3a679",path:"/develop/asterics-grid/01_structure.html",headers:[{level:2,title:"Project structure",slug:"project-structure"},{level:2,title:"Sources structure",slug:"sources-structure"},{level:3,title:'Elements in folder "app/"',slug:"elements-in-folder-app"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/01_structure.md"},{title:"Tools and libraries",frontmatter:{},regularPath:"/develop/asterics-grid/02_tools.html",relativePath:"develop/asterics-grid/02_tools.md",key:"v-64d69327",path:"/develop/asterics-grid/02_tools.html",headers:[{level:2,title:"Tools",slug:"tools"},{level:3,title:"Node package manager (npm)",slug:"node-package-manager-npm"},{level:3,title:"Webpack",slug:"webpack"},{level:2,title:"Javascript libraries",slug:"javascript-libraries"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/02_tools.md"},{title:"Websocket Tutorial",frontmatter:{},regularPath:"/develop/are-remote-apis/Websocket.html",relativePath:"develop/are-remote-apis/Websocket.md",key:"v-aefc4a72",path:"/develop/are-remote-apis/Websocket.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Example 1 - Web socket echo",slug:"example-1-web-socket-echo"},{level:3,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Create model with WebSocket plugin",slug:"create-model-with-websocket-plugin"},{level:3,title:"Create web page with web socket client",slug:"create-web-page-with-web-socket-client"},{level:3,title:"Resulting output",slug:"resulting-output"},{level:2,title:"Example 2 - Web socket demo with signal data live chart",slug:"example-2-web-socket-demo-with-signal-data-live-chart"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/Websocket.md"},{title:"Dynamic grid",frontmatter:{},regularPath:"/develop/asterics-grid/03_grid.html",relativePath:"develop/asterics-grid/03_grid.md",key:"v-052f3aa7",path:"/develop/asterics-grid/03_grid.html",headers:[{level:2,title:"General",slug:"general"},{level:2,title:"GridList and grid.js",slug:"gridlist-and-grid-js"},{level:2,title:"Repositioning and resizing of elements",slug:"repositioning-and-resizing-of-elements"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/03_grid.md"},{title:"Vue.js",frontmatter:{},regularPath:"/develop/asterics-grid/04_vuejs.html",relativePath:"develop/asterics-grid/04_vuejs.md",key:"v-52eb403b",path:"/develop/asterics-grid/04_vuejs.html",headers:[{level:2,title:"General",slug:"general"},{level:2,title:"Component structure",slug:"component-structure"},{level:2,title:"Used components",slug:"used-components"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/04_vuejs.md"},{title:"Data model",frontmatter:{},regularPath:"/develop/asterics-grid/05_datamodel.html",relativePath:"develop/asterics-grid/05_datamodel.md",key:"v-217e7fd9",path:"/develop/asterics-grid/05_datamodel.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Data models saved to database",slug:"data-models-saved-to-database"},{level:2,title:"Data models not saved to database",slug:"data-models-not-saved-to-database"},{level:2,title:"Common data model properties",slug:"common-data-model-properties"},{level:2,title:"Full and short objects",slug:"full-and-short-objects"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/05_datamodel.md"},{title:"Data storage",frontmatter:{},regularPath:"/develop/asterics-grid/06_data_storage.html",relativePath:"develop/asterics-grid/06_data_storage.md",key:"v-045e7207",path:"/develop/asterics-grid/06_data_storage.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Data storage abstraction layers",slug:"data-storage-abstraction-layers"},{level:2,title:"One database per user",slug:"one-database-per-user"},{level:2,title:"Authentication layer",slug:"authentication-layer"},{level:2,title:"Inspecting locally saved data",slug:"inspecting-locally-saved-data"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/06_data_storage.md"},{title:"Internationalization",frontmatter:{next:!1},regularPath:"/develop/asterics-grid/07_i18n.html",relativePath:"develop/asterics-grid/07_i18n.md",key:"v-b5855fb2",path:"/develop/asterics-grid/07_i18n.html",headers:[{level:2,title:"dom-i18n",slug:"dom-i18n"},{level:2,title:"i18nService.js",slug:"i18nservice-js"},{level:3,title:"Usage example",slug:"usage-example"},{level:2,title:"Vue.js filter",slug:"vue-js-filter"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/07_i18n.md"},{title:"Collaboration",frontmatter:{},regularPath:"/develop/asterics-grid/collaboration.html",relativePath:"develop/asterics-grid/collaboration.md",key:"v-1a112707",path:"/develop/asterics-grid/collaboration.html",headers:[{level:2,title:"General info",slug:"general-info"},{level:2,title:"Public collaboration",slug:"public-collaboration"},{level:3,title:"Working on issues",slug:"working-on-issues"},{level:3,title:"Review and test open PR's",slug:"review-and-test-open-pr-s"},{level:3,title:"Working on translations",slug:"working-on-translations"},{level:2,title:"Internal collaboration",slug:"internal-collaboration"},{level:3,title:"Responding to email requests",slug:"responding-to-email-requests"},{level:3,title:"Checking the server",slug:"checking-the-server"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/collaboration.md"},{title:"Websocket Tutorial",frontmatter:{},regularPath:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html",relativePath:"develop/asterics-wiki/api/AsTeRICS Websocket.md",key:"v-e8933724",path:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Example 1 - Web socket echo",slug:"example-1-web-socket-echo"},{level:3,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Create model with WebSocket plugin",slug:"create-model-with-websocket-plugin"},{level:3,title:"Create web page with web socket client",slug:"create-web-page-with-web-socket-client"},{level:3,title:"Resulting output",slug:"resulting-output"},{level:2,title:"Example 2 - Web socket demo with signal data live chart",slug:"example-2-web-socket-demo-with-signal-data-live-chart"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/api/AsTeRICS Websocket.md"},{title:"AsTeRICS Grid developer documentation",frontmatter:{},regularPath:"/develop/asterics-grid/",relativePath:"develop/asterics-grid/README.md",key:"v-e0ec9638",path:"/develop/asterics-grid/",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/README.md"},{title:"REST Tutorial",frontmatter:{},regularPath:"/develop/asterics-wiki/api/REST-API.html",relativePath:"develop/asterics-wiki/api/REST-API.md",key:"v-5d66a48b",path:"/develop/asterics-wiki/api/REST-API.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Example 1 - Model start/stop",slug:"example-1-model-start-stop"},{level:2,title:"Example 2 - Model upload",slug:"example-2-model-upload"},{level:2,title:"Example 3 - Change plugin property values",slug:"example-3-change-plugin-property-values"},{level:2,title:"Example 4 - Send data to input port",slug:"example-4-send-data-to-input-port"},{level:2,title:"Example 5 - Trigger event listener",slug:"example-5-trigger-event-listener"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/api/REST-API.md"},{title:"Objective",frontmatter:{},regularPath:"/develop/asterics-wiki/api/Resource%20Handling.html",relativePath:"develop/asterics-wiki/api/Resource Handling.md",key:"v-a04bf3f8",path:"/develop/asterics-wiki/api/Resource%20Handling.html",headers:[{level:2,title:"Main benefits of class ResourceRegistry",slug:"main-benefits-of-class-resourceregistry"},{level:2,title:"Resource types",slug:"resource-types"},{level:2,title:"Get model URI",slug:"get-model-uri"},{level:2,title:"Get URI of a data file",slug:"get-uri-of-a-data-file"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/api/Resource Handling.md"},{title:"AT Solution Tutorial",frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html",relativePath:"develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.md",key:"v-013fce70",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Download / Clone template repository",slug:"download-clone-template-repository"},{level:2,title:"Example 1 - Run project",slug:"example-1-run-project"},{level:2,title:"Example 2 - Edit and test model",slug:"example-2-edit-and-test-model"},{level:2,title:"AsTeRICS model + web application",slug:"asterics-model-web-application"},{level:2,title:"Example 3 - Model parametrization through web page",slug:"example-3-model-parametrization-through-web-page"},{level:2,title:"Example 4 - Rename web application folder and title",slug:"example-4-rename-web-application-folder-and-title"},{level:2,title:"Eclipse installation and setup",slug:"eclipse-installation-and-setup"},{level:3,title:"Eclipse project setup",slug:"eclipse-project-setup"},{level:3,title:"Using ant within eclipse",slug:"using-ant-within-eclipse"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.md"},{title:"Objective",frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/JavaCV.html",relativePath:"develop/asterics-wiki/coding_instructions/JavaCV.md",key:"v-04acb1a3",path:"/develop/asterics-wiki/coding_instructions/JavaCV.html",headers:[{level:2,title:"JavaCV",slug:"javacv"},{level:2,title:"Example 1 - Face detection and face rectangle",slug:"example-1-face-detection-and-face-rectangle"},{level:3,title:"Init and Start grabbing",slug:"init-and-start-grabbing"},{level:3,title:"Face detection and drawing",slug:"face-detection-and-drawing"},{level:3,title:"Stop grabbing & cleanup",slug:"stop-grabbing-cleanup"},{level:2,title:"Example 2 - Drawing a hat on top of the face",slug:"example-2-drawing-a-hat-on-top-of-the-face"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/JavaCV.md"},{frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html",relativePath:"develop/asterics-wiki/coding_instructions/Unit Tests.md",key:"v-d3fed8f4",path:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/Unit Tests.md"},{frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html",relativePath:"develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.md",key:"v-35094c20",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html",headers:[{level:2,title:"Security considerations",slug:"security-considerations"},{level:2,title:"Virtual Subpath definitions",slug:"virtual-subpath-definitions"},{level:2,title:"Physical folder structure",slug:"physical-folder-structure"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.md"},{title:"AsTeRICS Packaging Environment (APE)",frontmatter:{},regularPath:"/develop/at-solution/APE.html",relativePath:"develop/at-solution/APE.md",key:"v-73196267",path:"/develop/at-solution/APE.html",headers:[{level:2,title:"APE consists of two major elements",slug:"ape-consists-of-two-major-elements"},{level:2,title:"Important Terms",slug:"important-terms"},{level:2,title:"Dependencies",slug:"dependencies"},{level:2,title:"APE-copy commandline tool",slug:"ape-copy-commandline-tool"},{level:3,title:"Example usages of the APE-copy commandline tool",slug:"example-usages-of-the-ape-copy-commandline-tool"},{level:2,title:"Build infrastructure and native installer creation",slug:"build-infrastructure-and-native-installer-creation"},{level:3,title:"Simplified folder structure",slug:"simplified-folder-structure"},{level:3,title:"General workflow for using the build infrastructure",slug:"general-workflow-for-using-the-build-infrastructure"},{level:3,title:"Example usages of the build infrastructure",slug:"example-usages-of-the-build-infrastructure"},{level:3,title:"Properties for copying/extraction behaviour of APE",slug:"properties-for-copying-extraction-behaviour-of-ape"},{level:3,title:"Properties for installer creation",slug:"properties-for-installer-creation"},{level:3,title:"ARE customization",slug:"are-customization"},{level:3,title:"Installer customization",slug:"installer-customization"},{level:3,title:"ant build files",slug:"ant-build-files"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/at-solution/APE.md"},{frontmatter:{},regularPath:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html",relativePath:"develop/asterics-wiki/components/AsTeRICS Plugins.md",key:"v-7903e66c",path:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/components/AsTeRICS Plugins.md"},{title:"AT Solution Introduction (Demos)",frontmatter:{},regularPath:"/develop/at-solution/",relativePath:"develop/at-solution/README.md",key:"v-5c6ba0e0",path:"/develop/at-solution/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/at-solution/README.md"},{title:"AT Solution Tutorial",frontmatter:{},regularPath:"/develop/at-solution/AT-solution-tutorial.html",relativePath:"develop/at-solution/AT-solution-tutorial.md",key:"v-3d668687",path:"/develop/at-solution/AT-solution-tutorial.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Download / Clone template repository",slug:"download-clone-template-repository"},{level:2,title:"Example 1 - Run project",slug:"example-1-run-project"},{level:2,title:"Example 2 - Edit and test model",slug:"example-2-edit-and-test-model"},{level:2,title:"AsTeRICS model + web application",slug:"asterics-model-web-application"},{level:2,title:"Example 3 - Model parametrization through web page",slug:"example-3-model-parametrization-through-web-page"},{level:2,title:"Example 4 - Rename web application folder and title",slug:"example-4-rename-web-application-folder-and-title"},{level:2,title:"Eclipse installation and setup",slug:"eclipse-installation-and-setup"},{level:3,title:"Eclipse project setup",slug:"eclipse-project-setup"},{level:3,title:"Using ant within eclipse",slug:"using-ant-within-eclipse"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/at-solution/AT-solution-tutorial.md"},{title:"Coding Guidelines",frontmatter:{},regularPath:"/develop/get-started/Coding-Guidelines.html",relativePath:"develop/get-started/Coding-Guidelines.md",key:"v-962a65f2",path:"/develop/get-started/Coding-Guidelines.html",headers:[{level:2,title:"Eclipse Code Style Settings",slug:"eclipse-code-style-settings"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/get-started/Coding-Guidelines.md"},{title:"Development Environment Introduction",frontmatter:{},regularPath:"/develop/get-started/",relativePath:"develop/get-started/README.md",key:"v-66af9122",path:"/develop/get-started/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/get-started/README.md"},{title:"Computer Vision using JavaCV",frontmatter:{},regularPath:"/develop/plugin/Computer-Vision.html",relativePath:"develop/plugin/Computer-Vision.md",key:"v-1f5a7833",path:"/develop/plugin/Computer-Vision.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"JavaCV",slug:"javacv"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Preparation",slug:"preparation"},{level:2,title:"Example 1 - Face detection and face rectangle",slug:"example-1-face-detection-and-face-rectangle"},{level:3,title:"Init and Start grabbing",slug:"init-and-start-grabbing"},{level:3,title:"Face detection and drawing",slug:"face-detection-and-drawing"},{level:3,title:"Stop grabbing & cleanup",slug:"stop-grabbing-cleanup"},{level:2,title:"Example 2 - Drawing a hat on top of the face",slug:"example-2-drawing-a-hat-on-top-of-the-face"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Computer-Vision.md"},{title:"Plugin Development Advanced",frontmatter:{},regularPath:"/develop/plugin/Plugin-Advanced.html",relativePath:"develop/plugin/Plugin-Advanced.md",key:"v-076485ef",path:"/develop/plugin/Plugin-Advanced.html",headers:[{level:2,title:"Port Naming Conventions",slug:"port-naming-conventions"},{level:2,title:"Property Naming Conventions",slug:"property-naming-conventions"},{level:2,title:"Bundle Descriptor Naming Conventions",slug:"bundle-descriptor-naming-conventions"},{level:2,title:"AsTeRICS ARE, service and plugin source file header",slug:"asterics-are-service-and-plugin-source-file-header"},{level:2,title:"JavaDoc compatible comments",slug:"javadoc-compatible-comments"},{level:2,title:"Implementing AsTeRICS components",slug:"implementing-asterics-components"},{level:2,title:"The Bundle Descriptors",slug:"the-bundle-descriptors"},{level:2,title:"The Deployment Descriptor",slug:"the-deployment-descriptor"},{level:2,title:"The Manifest file",slug:"the-manifest-file"},{level:2,title:"Structure of OSGi bundles containing ARE components",slug:"structure-of-osgi-bundles-containing-are-components"},{level:2,title:"Component lifecyle",slug:"component-lifecyle"},{level:2,title:"Threading",slug:"threading"},{level:2,title:"Writing plugins using Swing",slug:"writing-plugins-using-swing"},{level:2,title:"Long lasting method calls",slug:"long-lasting-method-calls"},{level:2,title:"Sensor callbacks",slug:"sensor-callbacks"},{level:2,title:"Contributing a developed plugin (git pull request)",slug:"contributing-a-developed-plugin-git-pull-request"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Plugin-Advanced.md"},{title:"Development Environment",frontmatter:{},regularPath:"/develop/get-started/Development-Environment.html",relativePath:"develop/get-started/Development-Environment.md",key:"v-0a2795a7",path:"/develop/get-started/Development-Environment.html",headers:[{level:2,title:"Repository Overview",slug:"repository-overview"},{level:2,title:"Clone Repository",slug:"clone-repository"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Environment Variables",slug:"environment-variables"},{level:2,title:"Build",slug:"build"},{level:3,title:"Building ARE Middleware, Services and Plugins",slug:"building-are-middleware-services-and-plugins"},{level:2,title:"Eclipse Setup",slug:"eclipse-setup"},{level:3,title:"Java Project",slug:"java-project"},{level:3,title:"Character encoding",slug:"character-encoding"},{level:3,title:"Editing Model Files (windows-only)",slug:"editing-model-files-windows-only"},{level:3,title:"Ant within Eclipse",slug:"ant-within-eclipse"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/get-started/Development-Environment.md"},{title:"Plugin Development: Averager",frontmatter:{},regularPath:"/develop/plugin/Plugin-Averager.html",relativePath:"develop/plugin/Plugin-Averager.md",key:"v-0bd51ec9",path:"/develop/plugin/Plugin-Averager.html",headers:[{level:2,title:"Step-by-Step implementation: Averager processor",slug:"step-by-step-implementation-averager-processor"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Plugin-Averager.md"},{title:"Resource Handling (ResourceRegistry)",frontmatter:{},regularPath:"/develop/plugin/Resource-Handling.html",relativePath:"develop/plugin/Resource-Handling.md",key:"v-ae39e142",path:"/develop/plugin/Resource-Handling.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Main benefits",slug:"main-benefits"},{level:2,title:"Resource types",slug:"resource-types"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Preparation",slug:"preparation"},{level:2,title:"Example 1 - Getting resource URI",slug:"example-1-getting-resource-uri"},{level:3,title:"Get model URI",slug:"get-model-uri"},{level:3,title:"Get URI of a data file",slug:"get-uri-of-a-data-file"},{level:2,title:"Example 2 - Getting resource content",slug:"example-2-getting-resource-content"},{level:2,title:"Example 3 - Storing resource content",slug:"example-3-storing-resource-content"},{level:2,title:"Example 4 - Getting a resource list",slug:"example-4-getting-a-resource-list"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Resource-Handling.md"},{title:"Plugin Development",frontmatter:{},regularPath:"/develop/plugin/",relativePath:"develop/plugin/README.md",key:"v-167b3e84",path:"/develop/plugin/",headers:[{level:2,title:"A Quick Guide to AsTeRICS Plugin Development",slug:"a-quick-guide-to-asterics-plugin-development"},{level:2,title:"The Plugin Creation Wizard",slug:"the-plugin-creation-wizard"},{level:2,title:"Created files and folders",slug:"created-files-and-folders"},{level:2,title:"Plugin Activation in ACS and ARE",slug:"plugin-activation-in-acs-and-are"},{level:2,title:"Component-Collection Management in the ACS",slug:"component-collection-management-in-the-acs"},{level:2,title:"Plugin License Declaration",slug:"plugin-license-declaration"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/README.md"},{title:"About Us",frontmatter:{},regularPath:"/get-involved/About-us.html",relativePath:"get-involved/About-us.md",key:"v-e5deb1f2",path:"/get-involved/About-us.html",headers:[{level:2,title:"Contributions",slug:"contributions"},{level:2,title:"Partner Organizations",slug:"partner-organizations"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/About-us.md"},{title:"Contact",frontmatter:{},regularPath:"/get-involved/Contact.html",relativePath:"get-involved/Contact.md",key:"v-8dbe5096",path:"/get-involved/Contact.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/Contact.md"},{title:"Contribute",frontmatter:{},regularPath:"/get-involved/Contribute.html",relativePath:"get-involved/Contribute.md",key:"v-0c0bf027",path:"/get-involved/Contribute.html",headers:[{level:2,title:"Documentation",slug:"documentation"},{level:2,title:"Issue / Bug Report",slug:"issue-bug-report"},{level:2,title:"Code",slug:"code"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/Contribute.md"},{title:"Legal Notice",frontmatter:{},regularPath:"/get-involved/Legal-Notice.html",relativePath:"get-involved/Legal-Notice.md",key:"v-688a4fc7",path:"/get-involved/Legal-Notice.html",headers:[{level:2,title:"Publisher and editorial responsibility",slug:"publisher-and-editorial-responsibility"},{level:2,title:"Responsible for Content & Webmaster",slug:"responsible-for-content-webmaster"},{level:2,title:"Disclaimer",slug:"disclaimer"},{level:2,title:"Copyright",slug:"copyright"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/Legal-Notice.md"},{title:"Demos",frontmatter:{},regularPath:"/get-started/Demos.html",relativePath:"get-started/Demos.md",key:"v-e8b9abf2",path:"/get-started/Demos.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/Demos.md"},{title:"AsTeRICS Installation",frontmatter:{},regularPath:"/get-started/Installation.html",relativePath:"get-started/Installation.md",key:"v-6ead8b55",path:"/get-started/Installation.html",headers:[{level:2,title:"Windows",slug:"windows"},{level:3,title:"Download",slug:"download"},{level:3,title:"Installation Steps",slug:"installation-steps"},{level:3,title:"Desktop Short Cuts",slug:"desktop-short-cuts"},{level:3,title:"Start Menu",slug:"start-menu"},{level:2,title:"Mac OS X",slug:"mac-os-x"},{level:3,title:"Download",slug:"download-2"},{level:3,title:"Installation Steps",slug:"installation-steps-2"},{level:2,title:"Linux",slug:"linux"},{level:3,title:"Download",slug:"download-3"},{level:3,title:"Installation Steps",slug:"installation-steps-3"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/Installation.md"},{frontmatter:{},regularPath:"/get-involved/",relativePath:"get-involved/README.md",key:"v-4c4b4fb8",path:"/get-involved/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/README.md"},{title:"AsTeRICS Overview",frontmatter:{},regularPath:"/get-started/Overview.html",relativePath:"get-started/Overview.md",key:"v-3822cb17",path:"/get-started/Overview.html",headers:[{level:2,title:"Terms",slug:"terms"},{level:3,title:"AsTeRICS",slug:"asterics"},{level:3,title:"Solutions",slug:"solutions"},{level:3,title:"Model",slug:"model"},{level:3,title:"Plugin",slug:"plugin"},{level:3,title:"Input Device",slug:"input-device"},{level:3,title:"Action",slug:"action"},{level:3,title:"AsTeRICS Grid",slug:"asterics-grid"},{level:3,title:"AT Solution",slug:"at-solution"},{level:2,title:"Programs",slug:"programs"},{level:3,title:"ACS",slug:"acs"},{level:3,title:"WebACS",slug:"webacs"},{level:3,title:"ARE",slug:"are"},{level:2,title:"User Interfaces",slug:"user-interfaces"},{level:3,title:"ARE GUI",slug:"are-gui"},{level:3,title:"AsTeRICS Grid",slug:"asterics-grid-2"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/Overview.md"},{title:"Website Developer Guide",frontmatter:{sidebar:"auto"},regularPath:"/guide/docs.html",relativePath:"guide/docs.md",key:"v-db6f5b92",path:"/guide/docs.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Get Started",slug:"get-started"},{level:2,title:"@asterics-docs/tool",slug:"asterics-docs-tool"},{level:3,title:"Commands",slug:"commands"},{level:3,title:"Configuration",slug:"configuration"}],editLink:"https://github.com/asterics/asterics-docs.js/edit/master/packages/@asterics-docs/tool/README.md"},{title:"Get Started",frontmatter:{},regularPath:"/get-started/",relativePath:"get-started/README.md",key:"v-5f7524be",path:"/get-started/",headers:[{level:2,title:"Go to",slug:"go-to"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/README.md"},{title:"Website Editor Guide",frontmatter:{sidebar:"auto"},regularPath:"/guide/editor.html",relativePath:"guide/editor.md",key:"v-14a1e3d3",path:"/guide/editor.html",headers:[{level:2,title:"Online",slug:"online"},{level:3,title:"Uploading Files",slug:"uploading-files"},{level:3,title:"Web-based editor",slug:"web-based-editor"},{level:2,title:"Offline",slug:"offline"},{level:2,title:"Publishing Updates",slug:"publishing-updates"}],editLink:"https://github.com/asterics/asterics-docs.js/edit/master/packages/@asterics-docs/vuepress-theme-docs/README.md"},{title:"Website Markdown Guide",frontmatter:{sidebar:"auto"},regularPath:"/guide/markdown.html",relativePath:"guide/markdown.md",key:"v-44873dcf",path:"/guide/markdown.html",headers:[{level:2,title:"Plugins (default)",slug:"plugins-default"},{level:2,title:"Plugins (custom)",slug:"plugins-custom"},{level:2,title:"VuePress Markdown Extensions",slug:"vuepress-markdown-extensions"},{level:3,title:"Input",slug:"input"},{level:3,title:"Output",slug:"output"},{level:2,title:"Model Links",slug:"model-links"},{level:2,title:"Frontmatter",slug:"frontmatter"},{level:3,title:"Predefined Variables",slug:"predefined-variables"},{level:3,title:"Predefined Variables Powered by Default Theme",slug:"predefined-variables-powered-by-default-theme"},{level:3,title:"Predefined Variables Powered by AsTeRICS Docs Theme",slug:"predefined-variables-powered-by-asterics-docs-theme"},{level:2,title:"Layouts",slug:"layouts"},{level:3,title:"Home",slug:"home"},{level:2,title:"Global Compontents",slug:"global-compontents"},{level:3,title:"Use Cases",slug:"use-cases"},{level:3,title:"Solutions",slug:"solutions"},{level:3,title:"Plugins Search",slug:"plugins-search"}],editLink:"https://github.com/asterics/asterics-docs.js/edit/master/packages/@asterics-docs/vuepress-theme-docs/MARKDOWN.md"},{title:"Actuators",frontmatter:{title:"Actuators"},regularPath:"/manuals/ACS/Actuators.html",relativePath:"manuals/ACS/Actuators.md",key:"v-b14aa6b2",path:"/manuals/ACS/Actuators.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Actuators.md"},{title:"Channels",frontmatter:{title:"Channels"},regularPath:"/manuals/ACS/Channels.html",relativePath:"manuals/ACS/Channels.md",key:"v-3b633733",path:"/manuals/ACS/Channels.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Channels.md"},{title:"Colours Settings",frontmatter:{title:"Colours Settings"},regularPath:"/manuals/ACS/Colours_settings.html",relativePath:"manuals/ACS/Colours_settings.md",key:"v-0c72b81d",path:"/manuals/ACS/Colours_settings.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Colours_settings.md"},{title:"Component Collection Manager",frontmatter:{title:"Component Collection Manager"},regularPath:"/manuals/ACS/Component_Collection_Manager.html",relativePath:"manuals/ACS/Component_Collection_Manager.md",key:"v-860d4992",path:"/manuals/ACS/Component_Collection_Manager.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Component_Collection_Manager.md"},{title:"Component Context Menu",frontmatter:{title:"Component Context Menu"},regularPath:"/manuals/ACS/Component_Context_Menu.html",relativePath:"manuals/ACS/Component_Context_Menu.md",key:"v-53fb73f1",path:"/manuals/ACS/Component_Context_Menu.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Component_Context_Menu.md"},{title:"Connected",frontmatter:{title:"Connected"},regularPath:"/manuals/ACS/Connected.html",relativePath:"manuals/ACS/Connected.md",key:"v-29b66472",path:"/manuals/ACS/Connected.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Connected.md"},{title:"Create and Edit a Model",frontmatter:{title:"Create and Edit a Model"},regularPath:"/manuals/ACS/Create_and_Edit_a_Model.html",relativePath:"manuals/ACS/Create_and_Edit_a_Model.md",key:"v-10853d87",path:"/manuals/ACS/Create_and_Edit_a_Model.html",headers:[{level:2,title:"Model Manipulation via Mouse",slug:"model-manipulation-via-mouse"},{level:2,title:"Model Manipulation via Keyboard",slug:"model-manipulation-via-keyboard"},{level:2,title:"Selection",slug:"selection"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Create_and_Edit_a_Model.md"},{title:"Dialogs Settings",frontmatter:{title:"Dialogs Settings"},regularPath:"/manuals/ACS/Dialogs_settings.html",relativePath:"manuals/ACS/Dialogs_settings.md",key:"v-373a5a25",path:"/manuals/ACS/Dialogs_settings.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Dialogs_settings.md"},{title:"Control the ARE",frontmatter:{title:"Control the ARE"},regularPath:"/manuals/ACS/Control_the_ARE.html",relativePath:"manuals/ACS/Control_the_ARE.md",key:"v-7185b8e7",path:"/manuals/ACS/Control_the_ARE.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Control_the_ARE.md"},{title:"Disconnected",frontmatter:{title:"Disconnected"},regularPath:"/manuals/ACS/Disconnected.html",relativePath:"manuals/ACS/Disconnected.md",key:"v-89ebe0c6",path:"/manuals/ACS/Disconnected.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Disconnected.md"},{title:"External Tools",frontmatter:{title:"External Tools"},regularPath:"/manuals/ACS/External_Tools.html",relativePath:"manuals/ACS/External_Tools.md",key:"v-4233ca76",path:"/manuals/ACS/External_Tools.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/External_Tools.md"},{title:"Events",frontmatter:{title:"Events"},regularPath:"/manuals/ACS/Events.html",relativePath:"manuals/ACS/Events.md",key:"v-5d863821",path:"/manuals/ACS/Events.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Events.md"},{title:"External Tools Options",frontmatter:{title:"External Tools Options"},regularPath:"/manuals/ACS/External_Tools_Options.html",relativePath:"manuals/ACS/External_Tools_Options.md",key:"v-7c5fd547",path:"/manuals/ACS/External_Tools_Options.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/External_Tools_Options.md"},{title:"GUI Designer",frontmatter:{title:"GUI Designer"},regularPath:"/manuals/ACS/GUI_Designer.html",relativePath:"manuals/ACS/GUI_Designer.md",key:"v-9cea1016",path:"/manuals/ACS/GUI_Designer.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/GUI_Designer.md"},{title:"General Settings",frontmatter:{title:"General Settings"},regularPath:"/manuals/ACS/General_settings.html",relativePath:"manuals/ACS/General_settings.md",key:"v-33fac21f",path:"/manuals/ACS/General_settings.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/General_settings.md"},{title:"Load and Save Models",frontmatter:{title:"Load and Save Models"},regularPath:"/manuals/ACS/Load_and_Save_Models.html",relativePath:"manuals/ACS/Load_and_Save_Models.md",key:"v-e8c20486",path:"/manuals/ACS/Load_and_Save_Models.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Load_and_Save_Models.md"},{title:"Keyboard Control",frontmatter:{title:"Keyboard Control"},regularPath:"/manuals/ACS/Keyboard_control.html",relativePath:"manuals/ACS/Keyboard_control.md",key:"v-34eb0509",path:"/manuals/ACS/Keyboard_control.html",headers:[{level:2,title:"Menus",slug:"menus"},{level:2,title:"The Drawing Area",slug:"the-drawing-area"},{level:3,title:"The Context Menu",slug:"the-context-menu"},{level:2,title:"The GUI Editor",slug:"the-gui-editor"},{level:2,title:"Property and Port Editor",slug:"property-and-port-editor"},{level:2,title:"Event Editor",slug:"event-editor"},{level:2,title:"Keyboard Shortcuts",slug:"keyboard-shortcuts"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Keyboard_control.md"},{title:"Modes",frontmatter:{title:"Modes"},regularPath:"/manuals/ACS/Modes.html",relativePath:"manuals/ACS/Modes.md",key:"v-d79ede32",path:"/manuals/ACS/Modes.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Modes.md"},{title:"Miscellaneous",frontmatter:{title:"Miscellaneous"},regularPath:"/manuals/ACS/Miscellaneous.html",relativePath:"manuals/ACS/Miscellaneous.md",key:"v-1b0ea627",path:"/manuals/ACS/Miscellaneous.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Miscellaneous.md"},{title:"Options",frontmatter:{title:"Options"},regularPath:"/manuals/ACS/Options.html",relativePath:"manuals/ACS/Options.md",key:"v-af9b77b2",path:"/manuals/ACS/Options.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Options.md"},{title:"Pause",frontmatter:{title:"Pause"},regularPath:"/manuals/ACS/Pause.html",relativePath:"manuals/ACS/Pause.md",key:"v-048cd127",path:"/manuals/ACS/Pause.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Pause.md"},{title:"Processors",frontmatter:{title:"Processors"},regularPath:"/manuals/ACS/Processors.html",relativePath:"manuals/ACS/Processors.md",key:"v-f5f710de",path:"/manuals/ACS/Processors.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Processors.md"},{title:"Print",frontmatter:{title:"Print"},regularPath:"/manuals/ACS/Print.html",relativePath:"manuals/ACS/Print.md",key:"v-59f1b672",path:"/manuals/ACS/Print.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Print.md"},{title:"Running",frontmatter:{title:"Running"},regularPath:"/manuals/ACS/Running.html",relativePath:"manuals/ACS/Running.md",key:"v-0318f572",path:"/manuals/ACS/Running.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Running.md"},{title:"ACS Manual",frontmatter:{},regularPath:"/manuals/ACS/",relativePath:"manuals/ACS/README.md",key:"v-70395034",path:"/manuals/ACS/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/README.md"},{title:"Sensors",frontmatter:{title:"Sensors"},regularPath:"/manuals/ACS/Sensors.html",relativePath:"manuals/ACS/Sensors.md",key:"v-bb83c2f2",path:"/manuals/ACS/Sensors.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Sensors.md"},{title:"Status Reporting and Error Logging",frontmatter:{title:"Status Reporting and Error Logging"},regularPath:"/manuals/ACS/Status_Reporting_and_Error_Logging.html",relativePath:"manuals/ACS/Status_Reporting_and_Error_Logging.md",key:"v-ec9a5262",path:"/manuals/ACS/Status_Reporting_and_Error_Logging.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Status_Reporting_and_Error_Logging.md"},{title:"Setting the Properties",frontmatter:{title:"Setting the Properties"},regularPath:"/manuals/ACS/Setting_the_Properties.html",relativePath:"manuals/ACS/Setting_the_Properties.md",key:"v-4736d21a",path:"/manuals/ACS/Setting_the_Properties.html",headers:[{level:2,title:"Dynamic Properties",slug:"dynamic-properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Setting_the_Properties.md"},{title:"Synchronized",frontmatter:{title:"Synchronized"},regularPath:"/manuals/ACS/Synchronized.html",relativePath:"manuals/ACS/Synchronized.md",key:"v-26b3c0ab",path:"/manuals/ACS/Synchronized.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Synchronized.md"},{title:"The Edit Tab",frontmatter:{title:"The Edit Tab"},regularPath:"/manuals/ACS/The_Edit_Tab.html",relativePath:"manuals/ACS/The_Edit_Tab.md",key:"v-2e0cc312",path:"/manuals/ACS/The_Edit_Tab.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/The_Edit_Tab.md"},{title:"ARE Manual",frontmatter:{},regularPath:"/manuals/ARE/",relativePath:"manuals/ARE/README.md",key:"v-66f839ae",path:"/manuals/ARE/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ARE/README.md"},{title:"Tooltips",frontmatter:{title:"Tooltips"},regularPath:"/manuals/ACS/Tooltips.html",relativePath:"manuals/ACS/Tooltips.md",key:"v-79865d33",path:"/manuals/ACS/Tooltips.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Tooltips.md"},{title:"ARE Status",frontmatter:{title:"ARE Status"},regularPath:"/manuals/WebACS/AREStatus.html",relativePath:"manuals/WebACS/AREStatus.md",key:"v-4ac08567",path:"/manuals/WebACS/AREStatus.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/AREStatus.md"},{title:"Manuals",frontmatter:{},regularPath:"/manuals/",relativePath:"manuals/README.md",key:"v-d204bc10",path:"/manuals/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/README.md"},{title:"Control the ARE",frontmatter:{title:"Control the ARE"},regularPath:"/manuals/WebACS/Control_the_ARE.html",relativePath:"manuals/WebACS/Control_the_ARE.md",key:"v-404dcbaa",path:"/manuals/WebACS/Control_the_ARE.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Control_the_ARE.md"},{title:"Channels",frontmatter:{title:"Channels"},regularPath:"/manuals/WebACS/Channels.html",relativePath:"manuals/WebACS/Channels.md",key:"v-411ff967",path:"/manuals/WebACS/Channels.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Channels.md"},{title:"Create and Edit a Model",frontmatter:{title:"Create and Edit a Model"},regularPath:"/manuals/WebACS/Create_and_Edit_a_Model.html",relativePath:"manuals/WebACS/Create_and_Edit_a_Model.md",key:"v-30f7abf1",path:"/manuals/WebACS/Create_and_Edit_a_Model.html",headers:[{level:2,title:"Model Manipulation via Mouse",slug:"model-manipulation-via-mouse"},{level:2,title:"Model Manipulation via Keyboard",slug:"model-manipulation-via-keyboard"},{level:2,title:"Selection",slug:"selection"}],editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Create_and_Edit_a_Model.md"},{title:"Events",frontmatter:{title:"Events"},regularPath:"/manuals/WebACS/Events.html",relativePath:"manuals/WebACS/Events.md",key:"v-38306472",path:"/manuals/WebACS/Events.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Events.md"},{title:"GUI Designer",frontmatter:{title:"GUI Designer"},regularPath:"/manuals/WebACS/GUI_Designer.html",relativePath:"manuals/WebACS/GUI_Designer.md",key:"v-b3f08772",path:"/manuals/WebACS/GUI_Designer.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/GUI_Designer.md"},{title:"Keyboard Control",frontmatter:{title:"Keyboard Control"},regularPath:"/manuals/WebACS/Keyboard_control.html",relativePath:"manuals/WebACS/Keyboard_control.md",key:"v-567470f2",path:"/manuals/WebACS/Keyboard_control.html",headers:[{level:2,title:"Shortcuts",slug:"shortcuts"},{level:2,title:"Menu",slug:"menu"},{level:2,title:"Model Panel",slug:"model-panel"},{level:2,title:"Model Designer",slug:"model-designer"},{level:2,title:"GUI Designer",slug:"gui-designer"},{level:2,title:"List View",slug:"list-view"},{level:2,title:"Property Editor",slug:"property-editor"}],editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Keyboard_control.md"},{title:"List View",frontmatter:{title:"List View"},regularPath:"/manuals/WebACS/List_View.html",relativePath:"manuals/WebACS/List_View.md",key:"v-11bd40a7",path:"/manuals/WebACS/List_View.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/List_View.md"},{title:"Miscellaneous",frontmatter:{title:"Miscellaneous"},regularPath:"/manuals/WebACS/Miscellaneous.html",relativePath:"manuals/WebACS/Miscellaneous.md",key:"v-b20fab52",path:"/manuals/WebACS/Miscellaneous.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Miscellaneous.md"},{title:"Open and Save Models",frontmatter:{title:"Open and Save Models"},regularPath:"/manuals/WebACS/Open_and_Save_Models.html",relativePath:"manuals/WebACS/Open_and_Save_Models.md",key:"v-03d92972",path:"/manuals/WebACS/Open_and_Save_Models.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Open_and_Save_Models.md"},{title:"ACS Basic Functions",frontmatter:{title:"ACS Basic Functions"},regularPath:"/manuals/WebACS/",relativePath:"manuals/WebACS/README.md",key:"v-6deb6d78",path:"/manuals/WebACS/",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/README.md"},{title:"The Edit Tab",frontmatter:{title:"The Edit Tab"},regularPath:"/manuals/WebACS/The_Edit_Tab.html",relativePath:"manuals/WebACS/The_Edit_Tab.md",key:"v-73d3dc27",path:"/manuals/WebACS/The_Edit_Tab.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/The_Edit_Tab.md"},{title:"Terms",frontmatter:{},regularPath:"/manuals/asterics-grid/01_terms.html",relativePath:"manuals/asterics-grid/01_terms.md",key:"v-c701961e",path:"/manuals/asterics-grid/01_terms.html",headers:[{level:2,title:"AsTeRICS Grid",slug:"asterics-grid"},{level:2,title:"AsTeRICS Framework",slug:"asterics-framework"},{level:2,title:"AsTeRICS model",slug:"asterics-model"},{level:2,title:"Grid",slug:"grid"},{level:2,title:"Grid element",slug:"grid-element"},{level:2,title:"Action",slug:"action"},{level:2,title:"Input",slug:"input"},{level:2,title:"Dictionary",slug:"dictionary"},{level:2,title:"User",slug:"user"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/01_terms.md"},{title:"Setting the Properties",frontmatter:{title:"Setting the Properties"},regularPath:"/manuals/WebACS/Setting_the_Properties.html",relativePath:"manuals/WebACS/Setting_the_Properties.md",key:"v-27668de7",path:"/manuals/WebACS/Setting_the_Properties.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Setting_the_Properties.md"},{title:"Settings",frontmatter:{},regularPath:"/manuals/asterics-grid/010_settings.html",relativePath:"manuals/asterics-grid/010_settings.md",key:"v-401e7446",path:"/manuals/asterics-grid/010_settings.html",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/010_settings.md"},{title:"Grid appearance and layout",frontmatter:{},regularPath:"/manuals/asterics-grid/03_appearance_layout.html",relativePath:"manuals/asterics-grid/03_appearance_layout.md",key:"v-432b669e",path:"/manuals/asterics-grid/03_appearance_layout.html",headers:[{level:2,title:"Adding elements and layout options",slug:"adding-elements-and-layout-options"},{level:2,title:"Editing grid elements",slug:"editing-grid-elements"},{level:2,title:'"Edit grid item" modal',slug:"edit-grid-item-modal"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/03_appearance_layout.md"},{title:"Navigation and basic functionality",frontmatter:{},regularPath:"/manuals/asterics-grid/02_navigation.html",relativePath:"manuals/asterics-grid/02_navigation.md",key:"v-5cc12287",path:"/manuals/asterics-grid/02_navigation.html",headers:[{level:2,title:"Welcome view",slug:"welcome-view"},{level:2,title:'"Main" - view',slug:"main-view"},{level:2,title:'Edit view - "Editing on"',slug:"edit-view-editing-on"},{level:2,title:'"Manage grids" - view',slug:"manage-grids-view"},{level:3,title:'"more" button - Additional options',slug:"more-button-additional-options"},{level:3,title:"Global grid",slug:"global-grid"},{level:3,title:"Home grid",slug:"home-grid"},{level:2,title:'"Manage Dictionaries" - view',slug:"manage-dictionaries-view"},{level:2,title:'"Change User" - view',slug:"change-user-view"},{level:2,title:"Search function",slug:"search-function"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/02_navigation.md"},{title:"Users",frontmatter:{},regularPath:"/manuals/asterics-grid/06_users.html",relativePath:"manuals/asterics-grid/06_users.md",key:"v-403b9736",path:"/manuals/asterics-grid/06_users.html",headers:[{level:3,title:"Internet connection requirements",slug:"internet-connection-requirements"},{level:2,title:"Online users",slug:"online-users"},{level:3,title:"Synchronization states",slug:"synchronization-states"},{level:2,title:"Offline users",slug:"offline-users"},{level:2,title:"Backup",slug:"backup"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/06_users.md"},{title:"Input Options",frontmatter:{},regularPath:"/manuals/asterics-grid/04_input_options.html",relativePath:"manuals/asterics-grid/04_input_options.md",key:"v-3bc61fa7",path:"/manuals/asterics-grid/04_input_options.html",headers:[{level:2,title:"Introduction to input events",slug:"introduction-to-input-events"},{level:3,title:'"Keypress, Mouseclick, Tap" input events',slug:"keypress-mouseclick-tap-input-events"},{level:3,title:"Microphone input events",slug:"microphone-input-events"},{level:3,title:"AsTeRICS ARE input events",slug:"asterics-are-input-events"},{level:2,title:"Input options modals",slug:"input-options-modals"},{level:3,title:"Mouse/Touch input",slug:"mouse-touch-input"},{level:3,title:"Scanning",slug:"scanning"},{level:3,title:"Direction Input",slug:"direction-input"},{level:3,title:"Huffman Input",slug:"huffman-input"},{level:3,title:"Sequential Input",slug:"sequential-input"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/04_input_options.md"},{title:"Grid element actions",frontmatter:{},regularPath:"/manuals/asterics-grid/05_actions.html",relativePath:"manuals/asterics-grid/05_actions.md",key:"v-0776413d",path:"/manuals/asterics-grid/05_actions.html",headers:[{level:2,title:"Edit actions modal",slug:"edit-actions-modal"},{level:2,title:"Action types",slug:"action-types"},{level:3,title:"Speak label",slug:"speak-label"},{level:3,title:"Navigate to other grid",slug:"navigate-to-other-grid"},{level:3,title:"Speak custom text",slug:"speak-custom-text"},{level:3,title:"Play recorded audio",slug:"play-recorded-audio"},{level:3,title:"Fill prediction elements",slug:"fill-prediction-elements"},{level:3,title:"Collect element action",slug:"collect-element-action"},{level:3,title:"AsTeRICS Action",slug:"asterics-action"},{level:3,title:"Web radio action",slug:"web-radio-action"},{level:3,title:"YouTube Action",slug:"youtube-action"},{level:3,title:"Change Content Language",slug:"change-content-language"},{level:3,title:"Open webpage in new tab",slug:"open-webpage-in-new-tab"},{level:3,title:"openHAB Action",slug:"openhab-action"},{level:3,title:"HTTP action",slug:"http-action"},{level:3,title:"UART action",slug:"uart-action"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/05_actions.md"},{title:"Keyboard Shortcuts",frontmatter:{},regularPath:"/manuals/asterics-grid/08_keyboard_shortcuts.html",relativePath:"manuals/asterics-grid/08_keyboard_shortcuts.md",key:"v-5a470632",path:"/manuals/asterics-grid/08_keyboard_shortcuts.html",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/08_keyboard_shortcuts.md"},{title:"Dictionaries",frontmatter:{},regularPath:"/manuals/asterics-grid/07_dictionaries.html",relativePath:"manuals/asterics-grid/07_dictionaries.md",key:"v-67cb4567",path:"/manuals/asterics-grid/07_dictionaries.html",headers:[{level:2,title:"Edit dictionaries",slug:"edit-dictionaries"},{level:2,title:"Add words",slug:"add-words"},{level:3,title:"Example: import a big word list",slug:"example-import-a-big-word-list"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/07_dictionaries.md"},{title:"Translation of AsTeRICS Grid",frontmatter:{},regularPath:"/manuals/asterics-grid/09_translation.html",relativePath:"manuals/asterics-grid/09_translation.md",key:"v-124d7766",path:"/manuals/asterics-grid/09_translation.html",headers:[{level:2,title:"Translation of the application",slug:"translation-of-the-application"},{level:2,title:"Translation of the content",slug:"translation-of-the-content"},{level:3,title:"Translation of a multilingual default gridset",slug:"translation-of-a-multilingual-default-gridset"},{level:3,title:"Creation of a new monolingual default gridset",slug:"creation-of-a-new-monolingual-default-gridset"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/09_translation.md"},{title:"Word forms in AsTeRICS Grid",frontmatter:{},regularPath:"/manuals/asterics-grid/10_word_forms.html",relativePath:"manuals/asterics-grid/10_word_forms.md",key:"v-6214c2a7",path:"/manuals/asterics-grid/10_word_forms.html",headers:[{level:2,title:"General",slug:"general"},{level:2,title:"Word form actions",slug:"word-form-actions"},{level:3,title:"General function",slug:"general-function"},{level:3,title:"Action types",slug:"action-types"},{level:2,title:"Example configuration",slug:"example-configuration"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/10_word_forms.md"},{title:"Frequently asked questions",frontmatter:{},regularPath:"/manuals/asterics-grid/10_faq.html",relativePath:"manuals/asterics-grid/10_faq.md",key:"v-74240617",path:"/manuals/asterics-grid/10_faq.html",headers:[{level:2,title:"Issues with online text-to-speech voices (lags, not working)",slug:"issues-with-online-text-to-speech-voices-lags-not-working"},{level:3,title:"Installing additional voices",slug:"installing-additional-voices"},{level:2,title:"Is there a recommended Tablet which works well with AsTeRICS Grid?",slug:"is-there-a-recommended-tablet-which-works-well-with-asterics-grid"},{level:2,title:"Can I recover the password of my online user?",slug:"can-i-recover-the-password-of-my-online-user"},{level:3,title:"Transfer data to new user",slug:"transfer-data-to-new-user"},{level:2,title:'The global grid disappeared or the "Home" button doesn\'t work',slug:"the-global-grid-disappeared-or-the-home-button-doesn-t-work"},{level:2,title:"Allow mixed content (http/https)",slug:"allow-mixed-content-http-https"},{level:3,title:"Allow mixed content Firefox",slug:"allow-mixed-content-firefox"},{level:3,title:"Allow mixed content Chrome",slug:"allow-mixed-content-chrome"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/10_faq.md"},{title:"UART action tutorials",frontmatter:{},regularPath:"/manuals/asterics-grid/514_uart-action-tutorials.html",relativePath:"manuals/asterics-grid/514_uart-action-tutorials.md",key:"v-6fb78227",path:"/manuals/asterics-grid/514_uart-action-tutorials.html",headers:[{level:2,title:"Remote control (Infrared)",slug:"remote-control-infrared"},{level:2,title:"Accessible toy",slug:"accessible-toy"},{level:2,title:"FABI / FLipMouse",slug:"fabi-flipmouse"},{level:3,title:"Move mouse cursor to the right",slug:"move-mouse-cursor-to-the-right"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/514_uart-action-tutorials.md"},{title:"HTTP action tutorials",frontmatter:{},regularPath:"/manuals/asterics-grid/513_http-action-tutorials.html",relativePath:"manuals/asterics-grid/513_http-action-tutorials.md",key:"v-4d499b72",path:"/manuals/asterics-grid/513_http-action-tutorials.html",headers:[{level:2,title:"Turn on/off shelly plug",slug:"turn-on-off-shelly-plug"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/513_http-action-tutorials.md"},{title:"AsTeRICS Grid user documentation",frontmatter:{},regularPath:"/manuals/asterics-grid/",relativePath:"manuals/asterics-grid/README.md",key:"v-7b526a78",path:"/manuals/asterics-grid/",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/README.md"},{frontmatter:{},regularPath:"/manuals/fabi/",relativePath:"manuals/fabi/README.md",key:"v-d65cc238",path:"/manuals/fabi/",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Using the configuration manager",slug:"using-the-configuration-manager"},{level:2,title:"ACTIONS Tab: Assigning Button Functions",slug:"actions-tab-assigning-button-functions"},{level:3,title:"Action category: Mouse",slug:"action-category-mouse"},{level:3,title:"Action category: Keyboard",slug:"action-category-keyboard"},{level:3,title:"Action category: Device",slug:"action-category-device"},{level:3,title:"Action category: Macro",slug:"action-category-macro"},{level:2,title:"SLOTS Tab: Using Configuration Slots",slug:"slots-tab-using-configuration-slots"},{level:3,title:"Loading, saving and transferring configurations",slug:"loading-saving-and-transferring-configurations"},{level:3,title:"Predefined settings",slug:"predefined-settings"},{level:2,title:"TIMINGS Tab: Antitremor and Special Functions",slug:"timings-tab-antitremor-and-special-functions"},{level:3,title:"Antitremor settings",slug:"antitremor-settings"},{level:3,title:"Thresholds for special functions",slug:"thresholds-for-special-functions"},{level:2,title:"SIP AND PUFF Tab: Using a Pressure Sensor",slug:"sip-and-puff-tab-using-a-pressure-sensor"},{level:2,title:"GENERAL Tab: Bluetooth and Firmware Options",slug:"general-tab-bluetooth-and-firmware-options"},{level:3,title:"USB Mode / Bluetooth Mode",slug:"usb-mode-bluetooth-mode"},{level:3,title:"Overwrite / update firmware",slug:"overwrite-update-firmware"},{level:3,title:"Overwrite / update Bluetooth firmware",slug:"overwrite-update-bluetooth-firmware"},{level:3,title:"Reset to default configuration, key combinations",slug:"reset-to-default-configuration-key-combinations"},{level:2,title:"Using the Bluetooth module",slug:"using-the-bluetooth-module"},{level:3,title:"Installation of the Bluetooth module",slug:"installation-of-the-bluetooth-module"},{level:3,title:"Connecting to a Bluetooth device (pairing)",slug:"connecting-to-a-bluetooth-device-pairing"},{level:2,title:"Appendix",slug:"appendix"},{level:3,title:"Supported Macro commands:",slug:"supported-macro-commands"},{level:3,title:"Supported Key Identifiers:",slug:"supported-key-identifiers"},{level:3,title:"Further links and software recommendations",slug:"further-links-and-software-recommendations"},{level:2,title:"Contact Information",slug:"contact-information"},{level:2,title:"Disclaimer",slug:"disclaimer"},{level:2,title:"Acknowledgements",slug:"acknowledgements"}],editLink:"https://github.com/asterics/FABI/edit/master/Documentation/UserManual/Markdown/Fabi User Manual.md"},{title:"AsTeRICS Plugins",frontmatter:{title:"AsTeRICS Plugins",previous:!1,next:!1,layout:"Layout",subdirlevel:2,indexed:["/plugins/actuators/AndroidPhoneControl.html","/plugins/actuators/AnalogOut.html","/plugins/actuators/AREWindow.html","/plugins/actuators/ApplicationLauncher.html","/plugins/actuators/Android_connection.html","/plugins/actuators/AngularCursorControl.html","/plugins/actuators/BarDisplay.html","/plugins/actuators/DialogBox.html","/plugins/actuators/CrosshairCursorControl.html","/plugins/actuators/DigitalOut.html","/plugins/actuators/DotMeter.html","/plugins/actuators/EasyHomeControl.html","/plugins/actuators/EmulateFaultyPlugin.html","/plugins/actuators/EnobioDisplay.html","/plugins/actuators/Enocean.html","/plugins/actuators/FS20Sender.html","/plugins/actuators/EventVisualizer.html","/plugins/actuators/FlickeringLightStimulator.html","/plugins/actuators/FileWriter.html","/plugins/actuators/GSMModem.html","/plugins/actuators/GMailShortcuts.html","/plugins/actuators/Knx.html","/plugins/actuators/IRTrans.html","/plugins/actuators/ImageBox.html","/plugins/actuators/Keyboard.html","/plugins/actuators/LineWriter.html","/plugins/actuators/LegacyDigitalOut.html","/plugins/actuators/MediaPlayer.html","/plugins/actuators/MidiPlayer.html","/plugins/actuators/Mouse.html","/plugins/actuators/ModelSwitcher.html","/plugins/actuators/NetConnection.html","/plugins/actuators/OscOutClient.html","/plugins/actuators/MousecursorIcon.html","/plugins/actuators/Oscilloscope.html","/plugins/actuators/PhilipsHue.html","/plugins/actuators/PhoneControl.html","/plugins/actuators/PicoTTS.html","/plugins/actuators/PlatformDigitalOut.html","/plugins/actuators/RemoteMouse.html","/plugins/actuators/PlatformLCD.html","/plugins/actuators/RemoteJoystick.html","/plugins/actuators/PongGame.html","/plugins/actuators/RemoteKeyboard.html","/plugins/actuators/RemoteTablet.html","/plugins/actuators/RemoteWindow.html","/plugins/actuators/SSVEPFileWriter.html","/plugins/actuators/SerialSender.html","/plugins/actuators/SSVEPStimulator.html","/plugins/actuators/SyntheticVoice.html","/plugins/actuators/TextArea.html","/plugins/actuators/SkyWatcherMount.html","/plugins/actuators/TeensyRCPrototype.html","/plugins/actuators/TextDisplay.html","/plugins/actuators/ToneGenerator.html","/plugins/actuators/WavefilePlayer.html","/plugins/actuators/Tooltip.html","/plugins/actuators/WriteEDF.html","/plugins/actuators/WriteCSV.html","/plugins/processors/AcousticScanning.html","/plugins/processors/AdjustmentCurve.html","/plugins/processors/AmazonEchoControl.html","/plugins/processors/Arduino.html","/plugins/processors/Amplifier.html","/plugins/processors/AudioSelector.html","/plugins/processors/Averager.html","/plugins/processors/BasicTRalgorithms.html","/plugins/processors/Benchmark.html","/plugins/processors/BlinkChangeDetector.html","/plugins/processors/BlinkDetector.html","/plugins/processors/BlinkDetectorTrainer.html","/plugins/processors/ComPort.html","/plugins/processors/BlinkDetection.html","/plugins/processors/Comparator.html","/plugins/processors/ConstantDispatcher.html","/plugins/processors/ComputeBandpower.html","/plugins/processors/DataType.html","/plugins/processors/Decimation.html","/plugins/processors/DateToDouble.html","/plugins/processors/Derivative.html","/plugins/processors/Deadzone.html","/plugins/processors/Differentiate.html","/plugins/processors/Delay.html","/plugins/processors/DoubleToString.html","/plugins/processors/Dissimilarity.html","/plugins/processors/EventBlock.html","/plugins/processors/ECMAScriptInterpreter.html","/plugins/processors/EventCascade.html","/plugins/processors/EventCounter.html","/plugins/processors/EventDelay.html","/plugins/processors/EventDispatcher.html","/plugins/processors/EventFlipFlop.html","/plugins/processors/EventStateMachine.html","/plugins/processors/EventRouter.html","/plugins/processors/FS20CommandInterpreter.html","/plugins/processors/FABI.html","/plugins/processors/Filter.html","/plugins/processors/HRVAnalysis.html","/plugins/processors/HRVRmssdFromRR.html","/plugins/processors/IIRFilter.html","/plugins/processors/IntToString.html","/plugins/processors/JsonParser.html","/plugins/processors/Integrate.html","/plugins/processors/IrMicro.html","/plugins/processors/MotionAnalysis.html","/plugins/processors/MathEvaluator.html","/plugins/processors/MultiSourceString.html","/plugins/processors/MinMax.html","/plugins/processors/MultiSource.html","/plugins/processors/NexusConnector.html","/plugins/processors/NeuralNetworkLoader.html","/plugins/processors/OneEventManyActions.html","/plugins/processors/OpenHAB.html","/plugins/processors/OscGestureFollower.html","/plugins/processors/OskaInternalScanning.html","/plugins/processors/OskaExternalScanning2D.html","/plugins/processors/OskaExternalScanning1D.html","/plugins/processors/PathMultiplexer.html","/plugins/processors/PeakDetector.html","/plugins/processors/ProtocolSSVEPTrain.html","/plugins/processors/RegularExpression.html","/plugins/processors/Pathselector.html","/plugins/processors/Quantizer.html","/plugins/processors/RelativeMoveSampler.html","/plugins/processors/SampleAndHold.html","/plugins/processors/SSVEPDetect.html","/plugins/processors/Sampler.html","/plugins/processors/SerialSender.html","/plugins/processors/SpeechProcessor.html","/plugins/processors/SerialPort.html","/plugins/processors/SignalTranslation.html","/plugins/processors/StringAppend.html","/plugins/processors/StringDispatcher.html","/plugins/processors/StringDelay.html","/plugins/processors/StringExpander.html","/plugins/processors/StringFormatter.html","/plugins/processors/StringFilter.html","/plugins/processors/StringExtractor.html","/plugins/processors/StringPathSelector.html","/plugins/processors/StringPathMultiplexer.html","/plugins/processors/StringSplitter.html","/plugins/processors/StringToDouble.html","/plugins/processors/TextSender.html","/plugins/processors/TimestampWriter.html","/plugins/processors/StringToInt.html","/plugins/processors/UniversalRemoteControl.html","/plugins/processors/WebSocket.html","/plugins/processors/Threshold.html","/plugins/processors/Yaak.html","/plugins/processors/eg_example.html","/plugins/sensors/AnalogIn.html","/plugins/sensors/Acceleration.html","/plugins/sensors/AutostartEvent.html","/plugins/sensors/CellBoard.html","/plugins/sensors/ButtonGrid.html","/plugins/sensors/EShoe.html","/plugins/sensors/DigitalIn.html","/plugins/sensors/EditBox.html","/plugins/sensors/EOG.html","/plugins/sensors/Enobio.html","/plugins/sensors/EventGenerator.html","/plugins/sensors/EyeTribe.html","/plugins/sensors/EyeX.html","/plugins/sensors/Eyetracker.html","/plugins/sensors/FS20Receiver.html","/plugins/sensors/HeadPositionHC.html","/plugins/sensors/FacetrackerLK.html","/plugins/sensors/FacetrackerCLM.html","/plugins/sensors/HoverPanel.html","/plugins/sensors/FolderBrowser.html","/plugins/sensors/IntelRealSense.html","/plugins/sensors/KeyCapture.html","/plugins/sensors/JoystickCapture.html","/plugins/sensors/KeyboardCapture.html","/plugins/sensors/Kinect.html","/plugins/sensors/LegacyAnalogIn.html","/plugins/sensors/KinectJ4K.html","/plugins/sensors/LegacyDigitalIn.html","/plugins/sensors/LineReader.html","/plugins/sensors/Lightscore.html","/plugins/sensors/Lipmouse.html","/plugins/sensors/MouseCapture.html","/plugins/sensors/LipmouseIR.html","/plugins/sensors/MicGPI.html","/plugins/sensors/OpenBCI.html","/plugins/sensors/OpenVibe.html","/plugins/sensors/OscServer.html","/plugins/sensors/PhilipsHueSensor.html","/plugins/sensors/PlatformAnalogIn.html","/plugins/sensors/Proximity.html","/plugins/sensors/RFIDReader.html","/plugins/sensors/P2_Parser.html","/plugins/sensors/RandomNumber.html","/plugins/sensors/RazorIMU.html","/plugins/sensors/PlatformDigitalIn.html","/plugins/sensors/ReadCSV.html","/plugins/sensors/ReadEDF.html","/plugins/sensors/Sensorboard.html","/plugins/sensors/SignalGenerator.html","/plugins/sensors/SignalShaper.html","/plugins/sensors/TextfieldReader.html","/plugins/sensors/Slider.html","/plugins/sensors/Timer.html","/plugins/sensors/SpaceNavigator3DMouse.html","/plugins/sensors/TobiTic.html","/plugins/sensors/Tobii4CHeadTracker.html","/plugins/sensors/TrackIR.html","/plugins/sensors/WiiMote.html","/plugins/sensors/TuioReactivision.html","/plugins/sensors/XFacetrackerLK.html","/plugins/processors/FabiCronusMax.html"]},regularPath:"/plugins/",relativePath:"plugins/README.md",key:"v-13ecdddc",path:"/plugins/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/README.md"},{title:"FLipMouse - Finger & Lip Mouse",frontmatter:{},regularPath:"/manuals/flipmouse/",relativePath:"manuals/flipmouse/README.md",key:"v-08b9c8b4",path:"/manuals/flipmouse/",headers:[{level:2,title:"Establishing connection with the FLipMouse",slug:"establishing-connection-with-the-flipmouse"},{level:2,title:"Changing Settings and Features",slug:"changing-settings-and-features"},{level:3,title:"Memory Slots",slug:"memory-slots"},{level:2,title:"Tab STICK-CONFIG",slug:"tab-stick-config"},{level:3,title:'Operational Mode ("Use stick for ...")',slug:"operational-mode-use-stick-for"},{level:3,title:"Setting the motion parameters",slug:"setting-the-motion-parameters"},{level:3,title:"Applying the settings to all slots",slug:"applying-the-settings-to-all-slots"},{level:2,title:"Tab SIP AND PUFF",slug:"tab-sip-and-puff"},{level:2,title:"Tab ACTIONS",slug:"tab-actions"},{level:3,title:"Action category “Mouse”",slug:"action-category-mouse"},{level:3,title:"Action category: Joystick",slug:"action-category-joystick"},{level:3,title:"Action category: Keyboard",slug:"action-category-keyboard"},{level:3,title:"Action category: Device",slug:"action-category-device"},{level:3,title:"Action category: Infrared",slug:"action-category-infrared"},{level:3,title:"Action category: Macro",slug:"action-category-macro"},{level:2,title:"Tab SLOTS",slug:"tab-slots"},{level:3,title:"Slot List / Slot selection",slug:"slot-list-slot-selection"},{level:3,title:"Create a new Slot / Copy existing Slot",slug:"create-a-new-slot-copy-existing-slot"},{level:3,title:"Upload Slots to device",slug:"upload-slots-to-device"},{level:3,title:"Create Backup",slug:"create-backup"},{level:2,title:"Tab GENERAL",slug:"tab-general"},{level:3,title:"Slot Test Mode",slug:"slot-test-mode"},{level:3,title:"Firmware Version",slug:"firmware-version"},{level:2,title:"Tab VISUALIZATION",slug:"tab-visualization"},{level:2,title:"Hygienic considerations and risks",slug:"hygienic-considerations-and-risks"},{level:3,title:"Exchanging the saliva filter",slug:"exchanging-the-saliva-filter"},{level:3,title:"Disinfection of the mouthpiece",slug:"disinfection-of-the-mouthpiece"},{level:3,title:"Replacement sticks and filters",slug:"replacement-sticks-and-filters"},{level:2,title:"Modification of the Mouthpiece / Stick",slug:"modification-of-the-mouthpiece-stick"},{level:2,title:"Supported Macro commands:",slug:"supported-macro-commands"},{level:2,title:"Supported Key Identifiers:",slug:"supported-key-identifiers"},{level:2,title:"Disclaimer",slug:"disclaimer"},{level:2,title:"Acknowledgement",slug:"acknowledgement"}],editLink:"https://github.com/asterics/FLipMouse/edit/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md"},{title:"AndroidPhoneControl",frontmatter:{title:"AndroidPhoneControl",subcategory:"Phone Interface",image:"/plugins/actuators/android.svg",layout:"Page"},regularPath:"/plugins/actuators/AndroidPhoneControl.html",relativePath:"plugins/actuators/AndroidPhoneControl.md",key:"v-516240a7",path:"/plugins/actuators/AndroidPhoneControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AndroidPhoneControl.md",id:"plugins"},{title:"AnalogOut",frontmatter:{title:"AnalogOut",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/AnalogOut.html",relativePath:"plugins/actuators/AnalogOut.md",key:"v-403588b2",path:"/plugins/actuators/AnalogOut.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AnalogOut.md",id:"plugins"},{title:"AREWindow",frontmatter:{title:"AREWindow",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/AREWindow.html",relativePath:"plugins/actuators/AREWindow.md",key:"v-3ad8af32",path:"/plugins/actuators/AREWindow.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AREWindow.md",id:"plugins"},{title:"ApplicationLauncher",frontmatter:{title:"ApplicationLauncher",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/ApplicationLauncher.html",relativePath:"plugins/actuators/ApplicationLauncher.md",key:"v-7a3eb067",path:"/plugins/actuators/ApplicationLauncher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ApplicationLauncher.md",id:"plugins"},{title:"AndroidConnection",frontmatter:{title:"AndroidConnection",subcategory:"Phone Interface",layout:"Page"},regularPath:"/plugins/actuators/Android_connection.html",relativePath:"plugins/actuators/Android_connection.md",key:"v-dd8b41a2",path:"/plugins/actuators/Android_connection.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Android_connection.md",id:"plugins"},{title:"AngularCursorControl",frontmatter:{title:"AngularCursorControl",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/AngularCursorControl.html",relativePath:"plugins/actuators/AngularCursorControl.md",key:"v-9c892f7e",path:"/plugins/actuators/AngularCursorControl.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AngularCursorControl.md",id:"plugins"},{title:"BarDisplay",frontmatter:{title:"BarDisplay",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/BarDisplay.html",relativePath:"plugins/actuators/BarDisplay.md",key:"v-18096926",path:"/plugins/actuators/BarDisplay.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/BarDisplay.md",id:"plugins"},{title:"DialogBox",frontmatter:{title:"DialogBox",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/DialogBox.html",relativePath:"plugins/actuators/DialogBox.md",key:"v-32d57c47",path:"/plugins/actuators/DialogBox.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/DialogBox.md",id:"plugins"},{title:"CrosshairCursorControl",frontmatter:{title:"CrosshairCursorControl",subcategory:"Input Device Emulation","fas-icon":"crosshairs",featured:!0,layout:"Page"},regularPath:"/plugins/actuators/CrosshairCursorControl.html",relativePath:"plugins/actuators/CrosshairCursorControl.md",key:"v-ef1e54fe",path:"/plugins/actuators/CrosshairCursorControl.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/CrosshairCursorControl.md",id:"plugins"},{title:"DigitalOut",frontmatter:{title:"DigitalOut",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/DigitalOut.html",relativePath:"plugins/actuators/DigitalOut.md",key:"v-1f6d465f",path:"/plugins/actuators/DigitalOut.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/DigitalOut.md",id:"plugins"},{title:"DotMeter",frontmatter:{title:"DotMeter",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/DotMeter.html",relativePath:"plugins/actuators/DotMeter.md",key:"v-1988f40b",path:"/plugins/actuators/DotMeter.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description:",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/DotMeter.md",id:"plugins"},{title:"EasyHomeControl",frontmatter:{title:"EasyHomeControl",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/actuators/EasyHomeControl.html",relativePath:"plugins/actuators/EasyHomeControl.md",key:"v-716ac7e7",path:"/plugins/actuators/EasyHomeControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Supported OSes",slug:"supported-oses"},{level:2,title:"Troubleshooting problems under Win8/Win8.1",slug:"troubleshooting-problems-under-win8-win8-1"},{level:2,title:"Udev rules Linux",slug:"udev-rules-linux"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EasyHomeControl.md",id:"plugins"},{title:"EmulateFaultyPlugin",frontmatter:{title:"EmulateFaultyPlugin",subcategory:"Test",layout:"Page"},regularPath:"/plugins/actuators/EmulateFaultyPlugin.html",relativePath:"plugins/actuators/EmulateFaultyPlugin.md",key:"v-cc3c0472",path:"/plugins/actuators/EmulateFaultyPlugin.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EmulateFaultyPlugin.md",id:"plugins"},{title:"EnobioDisplay",frontmatter:{title:"EnobioDisplay",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/EnobioDisplay.html",relativePath:"plugins/actuators/EnobioDisplay.md",key:"v-ca981632",path:"/plugins/actuators/EnobioDisplay.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EnobioDisplay.md",id:"plugins"},{title:"EnOcean",frontmatter:{title:"EnOcean",subcategory:"Home Control",featured:!0,image:"/plugins/actuators/enocean.svg",layout:"Page"},regularPath:"/plugins/actuators/Enocean.html",relativePath:"plugins/actuators/Enocean.md",key:"v-27a39b47",path:"/plugins/actuators/Enocean.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Description",slug:"functional-description"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener",slug:"event-listener"},{level:2,title:"Event Trigger",slug:"event-trigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Enocean.md",id:"plugins"},{title:"FS20Sender",frontmatter:{title:"FS20Sender",subcategory:"Home Control",featured:!0,layout:"Page"},regularPath:"/plugins/actuators/FS20Sender.html",relativePath:"plugins/actuators/FS20Sender.md",key:"v-5b2ddb8b",path:"/plugins/actuators/FS20Sender.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Supported OSes",slug:"supported-oses"},{level:2,title:"Notes on Linux platform",slug:"notes-on-linux-platform"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/FS20Sender.md",id:"plugins"},{title:"EventVisualizer",frontmatter:{title:"EventVisualizer",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/EventVisualizer.html",relativePath:"plugins/actuators/EventVisualizer.md",key:"v-09250a67",path:"/plugins/actuators/EventVisualizer.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Port Description",slug:"port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EventVisualizer.md",id:"plugins"},{title:"FlickeringLightStimulator",frontmatter:{title:"FlickeringLightStimulator",subcategory:"Brain Computer Interface",layout:"Page"},regularPath:"/plugins/actuators/FlickeringLightStimulator.html",relativePath:"plugins/actuators/FlickeringLightStimulator.md",key:"v-e81af0b2",path:"/plugins/actuators/FlickeringLightStimulator.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Brain Computer Interface)",slug:"component-type-actuator-subcategory-brain-computer-interface"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/FlickeringLightStimulator.md",id:"plugins"},{title:"FileWriter",frontmatter:{title:"FileWriter",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/FileWriter.html",relativePath:"plugins/actuators/FileWriter.md",key:"v-956c78a6",path:"/plugins/actuators/FileWriter.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: File System)",slug:"component-type-actuator-subcategory-file-system"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/FileWriter.md",id:"plugins"},{title:"GSMModem",frontmatter:{title:"GSMModem",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/actuators/GSMModem.html",relativePath:"plugins/actuators/GSMModem.md",key:"v-d264918e",path:"/plugins/actuators/GSMModem.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Communication)",slug:"component-type-actuator-subcategory-communication"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/GSMModem.md",id:"plugins"},{title:"GMailShortcuts",frontmatter:{title:"GMailShortcuts",subcategory:"Others",image:"/plugins/actuators/gmail.svg",layout:"Page"},regularPath:"/plugins/actuators/GMailShortcuts.html",relativePath:"plugins/actuators/GMailShortcuts.md",key:"v-b436f6a6",path:"/plugins/actuators/GMailShortcuts.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Others)",slug:"component-type-actuator-subcategory-others"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/GMailShortcuts.md",id:"plugins"},{title:"KNX",frontmatter:{title:"KNX",subcategory:"Home Control",featured:!0,image:"/plugins/actuators/knx.svg",layout:"Page"},regularPath:"/plugins/actuators/Knx.html",relativePath:"plugins/actuators/Knx.md",key:"v-c41a3672",path:"/plugins/actuators/Knx.html",headers:[{level:2,title:"Component Type: actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Description",slug:"functional-description"},{level:2,title:"KNX datapoint types",slug:"knx-datapoint-types"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener",slug:"event-listener"},{level:2,title:"Event Trigger",slug:"event-trigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Knx.md",id:"plugins"},{title:"IRTrans",frontmatter:{title:"IRTrans",subcategory:"Home Control",featured:!0,image:"/plugins/actuators/infrared.svg",layout:"Page"},regularPath:"/plugins/actuators/IRTrans.html",relativePath:"plugins/actuators/IRTrans.md",key:"v-6daf09f2",path:"/plugins/actuators/IRTrans.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:3,title:"IR command by action string",slug:"ir-command-by-action-string"},{level:3,title:"IR command by event",slug:"ir-command-by-event"},{level:3,title:"Example",slug:"example"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/IRTrans.md",id:"plugins"},{title:"ImageBox",frontmatter:{title:"ImageBox",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/ImageBox.html",relativePath:"plugins/actuators/ImageBox.md",key:"v-d206b2aa",path:"/plugins/actuators/ImageBox.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Graphical User Interface)",slug:"component-type-actuator-subcategory-graphical-user-interface"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ImageBox.md",id:"plugins"},{title:"Keyboard",frontmatter:{title:"Keyboard",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/Keyboard.html",relativePath:"plugins/actuators/Keyboard.md",key:"v-15d2dabd",path:"/plugins/actuators/Keyboard.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Input Device Emulation)",slug:"component-type-actuator-subcategory-input-device-emulation"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"List of supported special key code identifiers",slug:"list-of-supported-special-key-code-identifiers"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Keyboard.md",id:"plugins"},{title:"LineWriter",frontmatter:{title:"LineWriter",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/LineWriter.html",relativePath:"plugins/actuators/LineWriter.md",key:"v-b8da8e86",path:"/plugins/actuators/LineWriter.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/LineWriter.md",id:"plugins"},{title:"Legacy Digital Out",frontmatter:{title:"Legacy Digital Out",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/LegacyDigitalOut.html",relativePath:"plugins/actuators/LegacyDigitalOut.md",key:"v-92953be6",path:"/plugins/actuators/LegacyDigitalOut.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Generic Control Output)",slug:"component-type-actuator-subcategory-generic-control-output"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/LegacyDigitalOut.md",id:"plugins"},{title:"MediaPlayer",frontmatter:{title:"MediaPlayer",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/MediaPlayer.html",relativePath:"plugins/actuators/MediaPlayer.md",key:"v-4cb9a3c7",path:"/plugins/actuators/MediaPlayer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/MediaPlayer.md",id:"plugins"},{title:"MidiPlayer",frontmatter:{title:"MidiPlayer",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/MidiPlayer.html",relativePath:"plugins/actuators/MidiPlayer.md",key:"v-8ea2c272",path:"/plugins/actuators/MidiPlayer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/MidiPlayer.md",id:"plugins"},{title:"Mouse",frontmatter:{title:"Mouse",subcategory:"Input Device Emulation","fas-icon":"mouse",layout:"Page"},regularPath:"/plugins/actuators/Mouse.html",relativePath:"plugins/actuators/Mouse.md",key:"v-38d36e07",path:"/plugins/actuators/Mouse.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Mouse.md",id:"plugins"},{title:"ModelSwitcher",frontmatter:{title:"ModelSwitcher",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/ModelSwitcher.html",relativePath:"plugins/actuators/ModelSwitcher.md",key:"v-171c2d27",path:"/plugins/actuators/ModelSwitcher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ModelSwitcher.md",id:"plugins"},{title:"Net Connection",frontmatter:{title:"Net Connection",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/actuators/NetConnection.html",relativePath:"plugins/actuators/NetConnection.md",key:"v-7c5d8272",path:"/plugins/actuators/NetConnection.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/NetConnection.md",id:"plugins"},{title:"Osc Out Client",frontmatter:{title:"Osc Out Client",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/actuators/OscOutClient.html",relativePath:"plugins/actuators/OscOutClient.md",key:"v-1d867097",path:"/plugins/actuators/OscOutClient.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Description",slug:"functional-description"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Referred Plugins",slug:"referred-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/OscOutClient.md",id:"plugins"},{title:"MousecursorIcon",frontmatter:{title:"MousecursorIcon",subcategory:"Input Device Emulation","fas-icon":"mouse-pointer",layout:"Page"},regularPath:"/plugins/actuators/MousecursorIcon.html",relativePath:"plugins/actuators/MousecursorIcon.md",key:"v-3e837632",path:"/plugins/actuators/MousecursorIcon.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description:",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/MousecursorIcon.md",id:"plugins"},{title:"Oscilloscope",frontmatter:{title:"Oscilloscope",subcategory:"Graphical User Interface",image:"/plugins/actuators/osci.svg",layout:"Page"},regularPath:"/plugins/actuators/Oscilloscope.html",relativePath:"plugins/actuators/Oscilloscope.md",key:"v-5b29f0ed",path:"/plugins/actuators/Oscilloscope.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Oscilloscope.md",id:"plugins"},{title:"PhilipsHue",frontmatter:{title:"PhilipsHue",subcategory:"Home Control",image:"/plugins/actuators/philips-hue.png",featured:!0,layout:"Page"},regularPath:"/plugins/actuators/PhilipsHue.html",relativePath:"plugins/actuators/PhilipsHue.md",key:"v-0dab47bd",path:"/plugins/actuators/PhilipsHue.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Initial Setup",slug:"initial-setup"},{level:3,title:"Hardware",slug:"hardware"},{level:3,title:"Bridge IP address and API key",slug:"bridge-ip-address-and-api-key"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Notes",slug:"notes"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PhilipsHue.md",id:"plugins"},{title:"PhoneControl",frontmatter:{title:"PhoneControl",subcategory:"Phone Interface",layout:"Page"},regularPath:"/plugins/actuators/PhoneControl.html",relativePath:"plugins/actuators/PhoneControl.md",key:"v-6337e0ed",path:"/plugins/actuators/PhoneControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PhoneControl.md",id:"plugins"},{title:"PicoTTS",frontmatter:{title:"PicoTTS",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/PicoTTS.html",relativePath:"plugins/actuators/PicoTTS.md",key:"v-8679e6b2",path:"/plugins/actuators/PicoTTS.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PicoTTS.md",id:"plugins"},{title:"PlatformDigitalOut",frontmatter:{title:"PlatformDigitalOut",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/actuators/PlatformDigitalOut.html",relativePath:"plugins/actuators/PlatformDigitalOut.md",key:"v-779d0f79",path:"/plugins/actuators/PlatformDigitalOut.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PlatformDigitalOut.md",id:"plugins"},{title:"RemoteMouse",frontmatter:{title:"RemoteMouse",subcategory:"Input Device Emulation","fas-icon":"mouse",layout:"Page"},regularPath:"/plugins/actuators/RemoteMouse.html",relativePath:"plugins/actuators/RemoteMouse.md",key:"v-aa237ef2",path:"/plugins/actuators/RemoteMouse.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteMouse.md",id:"plugins"},{title:"PlatformLCD",frontmatter:{title:"PlatformLCD",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/actuators/PlatformLCD.html",relativePath:"plugins/actuators/PlatformLCD.md",key:"v-5e80a527",path:"/plugins/actuators/PlatformLCD.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PlatformLCD.md",id:"plugins"},{title:"RemoteJoystick",frontmatter:{title:"RemoteJoystick",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/RemoteJoystick.html",relativePath:"plugins/actuators/RemoteJoystick.md",key:"v-7c85c247",path:"/plugins/actuators/RemoteJoystick.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteJoystick.md",id:"plugins"},{title:"Pong",frontmatter:{title:"Pong",subcategory:"Others",image:"/plugins/actuators/pong.svg",layout:"Page"},regularPath:"/plugins/actuators/PongGame.html",relativePath:"plugins/actuators/PongGame.md",key:"v-5032dd77",path:"/plugins/actuators/PongGame.html",headers:[{level:2,title:"Application",slug:"application"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PongGame.md",id:"plugins"},{title:"RemoteKeyboard",frontmatter:{title:"RemoteKeyboard",subcategory:"Input Device Emulation","fas-icon":"keyboard",layout:"Page"},regularPath:"/plugins/actuators/RemoteKeyboard.html",relativePath:"plugins/actuators/RemoteKeyboard.md",key:"v-599c9c31",path:"/plugins/actuators/RemoteKeyboard.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"List of supported special key code identifiers:",slug:"list-of-supported-special-key-code-identifiers"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteKeyboard.md",id:"plugins"},{title:"RemoteTablet",frontmatter:{title:"RemoteTablet",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/RemoteTablet.html",relativePath:"plugins/actuators/RemoteTablet.md",key:"v-84d9f01a",path:"/plugins/actuators/RemoteTablet.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteTablet.md",id:"plugins"},{title:"RemoteWindow",frontmatter:{title:"RemoteWindow",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/RemoteWindow.html",relativePath:"plugins/actuators/RemoteWindow.md",key:"v-50c42842",path:"/plugins/actuators/RemoteWindow.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteWindow.md",id:"plugins"},{title:"SSVEP File Writer",frontmatter:{title:"SSVEP File Writer",subcategory:"Brain Computer Interface",layout:"Page"},regularPath:"/plugins/actuators/SSVEPFileWriter.html",relativePath:"plugins/actuators/SSVEPFileWriter.md",key:"v-2304fb67",path:"/plugins/actuators/SSVEPFileWriter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SSVEPFileWriter.md",id:"plugins"},{title:"SerialSender",frontmatter:{title:"SerialSender",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/SerialSender.html",relativePath:"plugins/actuators/SerialSender.md",key:"v-7ae45d79",path:"/plugins/actuators/SerialSender.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SerialSender.md",id:"plugins"},{title:"SSVEP Stimulator",frontmatter:{title:"SSVEP Stimulator",subcategory:"Brain Computer Interface",layout:"Page"},regularPath:"/plugins/actuators/SSVEPStimulator.html",relativePath:"plugins/actuators/SSVEPStimulator.md",key:"v-3a500587",path:"/plugins/actuators/SSVEPStimulator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SSVEPStimulator.md",id:"plugins"},{title:"SyntheticVoice",frontmatter:{title:"SyntheticVoice",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/SyntheticVoice.html",relativePath:"plugins/actuators/SyntheticVoice.md",key:"v-74496ef1",path:"/plugins/actuators/SyntheticVoice.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SyntheticVoice.md",id:"plugins"},{title:"TextArea",frontmatter:{title:"TextArea",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/TextArea.html",relativePath:"plugins/actuators/TextArea.md",key:"v-3c600ed7",path:"/plugins/actuators/TextArea.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/TextArea.md",id:"plugins"},{title:"SkyWatcher Mount",frontmatter:{title:"SkyWatcher Mount",subcategory:"Others",layout:"Page"},regularPath:"/plugins/actuators/SkyWatcherMount.html",relativePath:"plugins/actuators/SkyWatcherMount.md",key:"v-6ca50ab2",path:"/plugins/actuators/SkyWatcherMount.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SkyWatcherMount.md",id:"plugins"},{title:"TeensyRC",frontmatter:{title:"TeensyRC",subcategory:"Others",layout:"Page"},regularPath:"/plugins/actuators/TeensyRCPrototype.html",relativePath:"plugins/actuators/TeensyRCPrototype.md",key:"v-bc5321f2",path:"/plugins/actuators/TeensyRCPrototype.html",headers:[{level:2,title:"Application",slug:"application"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/TeensyRCPrototype.md",id:"plugins"},{title:"TextDisplay",frontmatter:{title:"TextDisplay",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/TextDisplay.html",relativePath:"plugins/actuators/TextDisplay.md",key:"v-9d737472",path:"/plugins/actuators/TextDisplay.html",headers:[{level:3,title:"Component Type: Actuator (Subcategory: Graphical User Interface)",slug:"component-type-actuator-subcategory-graphical-user-interface"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/TextDisplay.md",id:"plugins"},{title:"ToneGenerator",frontmatter:{title:"ToneGenerator",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/ToneGenerator.html",relativePath:"plugins/actuators/ToneGenerator.md",key:"v-d68a2ef2",path:"/plugins/actuators/ToneGenerator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Eventlistener Description",slug:"eventlistener-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ToneGenerator.md",id:"plugins"},{title:"WavefilePlayer",frontmatter:{title:"WavefilePlayer",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/WavefilePlayer.html",relativePath:"plugins/actuators/WavefilePlayer.md",key:"v-0563b61f",path:"/plugins/actuators/WavefilePlayer.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/WavefilePlayer.md",id:"plugins"},{title:"Tooltip",frontmatter:{title:"Tooltip",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/Tooltip.html",relativePath:"plugins/actuators/Tooltip.md",key:"v-83e29ef2",path:"/plugins/actuators/Tooltip.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Tooltip.md",id:"plugins"},{title:"WriteEDF",frontmatter:{title:"WriteEDF",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/WriteEDF.html",relativePath:"plugins/actuators/WriteEDF.md",key:"v-79a7ccfb",path:"/plugins/actuators/WriteEDF.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/WriteEDF.md",id:"plugins"},{title:"WriteCSV",frontmatter:{title:"WriteCSV",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/WriteCSV.html",relativePath:"plugins/actuators/WriteCSV.md",key:"v-f257b186",path:"/plugins/actuators/WriteCSV.html",headers:[{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/WriteCSV.md",id:"plugins"},{title:"AcousticScanning",frontmatter:{title:"AcousticScanning",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/processors/AcousticScanning.html",relativePath:"plugins/processors/AcousticScanning.md",key:"v-6cf61c72",path:"/plugins/processors/AcousticScanning.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AcousticScanning.md",id:"plugins"},{title:"AdjustmentCurve",frontmatter:{title:"AdjustmentCurve",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/AdjustmentCurve.html",relativePath:"plugins/processors/AdjustmentCurve.md",key:"v-646dcee6",path:"/plugins/processors/AdjustmentCurve.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AdjustmentCurve.md",id:"plugins"},{title:"AmazonEchoControl",frontmatter:{title:"AmazonEchoControl",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/processors/AmazonEchoControl.html",relativePath:"plugins/processors/AmazonEchoControl.md",key:"v-52053829",path:"/plugins/processors/AmazonEchoControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Installation",slug:"installation"},{level:3,title:"Connect Amazon Account",slug:"connect-amazon-account"},{level:2,title:"AmazonEchoControl Plugin",slug:"amazonechocontrol-plugin"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Additional hints",slug:"additional-hints"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AmazonEchoControl.md",id:"plugins"},{title:"Arduino",frontmatter:{title:"Arduino",subcategory:"Microcontroller Interface",featured:!0,image:"/plugins/processors/arduino.svg",layout:"Page"},regularPath:"/plugins/processors/Arduino.html",relativePath:"plugins/processors/Arduino.md",key:"v-ec67f37e",path:"/plugins/processors/Arduino.html",headers:[{level:2,title:"Online Demo and Tutorial",slug:"online-demo-and-tutorial"},{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Install CIM on Arduino Uno",slug:"install-cim-on-arduino-uno"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Arduino.md",id:"plugins"},{title:"Amplifier",frontmatter:{title:"Amplifier",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Amplifier.html",relativePath:"plugins/processors/Amplifier.md",key:"v-45b5002f",path:"/plugins/processors/Amplifier.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Amplifier.md",id:"plugins"},{title:"Audio Selector",frontmatter:{title:"Audio Selector",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/processors/AudioSelector.html",relativePath:"plugins/processors/AudioSelector.md",key:"v-09085367",path:"/plugins/processors/AudioSelector.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AudioSelector.md",id:"plugins"},{title:"Averager",frontmatter:{title:"Averager",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Averager.html",relativePath:"plugins/processors/Averager.md",key:"v-4e288232",path:"/plugins/processors/Averager.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Averager.md",id:"plugins"},{title:"Basic Tremor Reduction algorithms",frontmatter:{title:"Basic Tremor Reduction algorithms",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/BasicTRalgorithms.html",relativePath:"plugins/processors/BasicTRalgorithms.md",key:"v-7cf4c0b1",path:"/plugins/processors/BasicTRalgorithms.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BasicTRalgorithms.md",id:"plugins"},{title:"Benchmark",frontmatter:{title:"Benchmark",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Benchmark.html",relativePath:"plugins/processors/Benchmark.md",key:"v-4d0a7bd2",path:"/plugins/processors/Benchmark.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Benchmark.md",id:"plugins"},{title:"BlinkChangeDetector",frontmatter:{title:"BlinkChangeDetector",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/BlinkChangeDetector.html",relativePath:"plugins/processors/BlinkChangeDetector.md",key:"v-b8389226",path:"/plugins/processors/BlinkChangeDetector.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Basic Trend Detection Algorithm",slug:"basic-trend-detection-algorithm"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkChangeDetector.md",id:"plugins"},{title:"Blink Detector",frontmatter:{title:"Blink Detector",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/BlinkDetector.html",relativePath:"plugins/processors/BlinkDetector.md",key:"v-e6456966",path:"/plugins/processors/BlinkDetector.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkDetector.md",id:"plugins"},{title:"Blink Detector Trainer",frontmatter:{title:"Blink Detector Trainer",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/BlinkDetectorTrainer.html",relativePath:"plugins/processors/BlinkDetectorTrainer.md",key:"v-43a714a7",path:"/plugins/processors/BlinkDetectorTrainer.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkDetectorTrainer.md",id:"plugins"},{title:"ComPort",frontmatter:{title:"ComPort",subcategory:"Communication",featured:!0,layout:"Page"},regularPath:"/plugins/processors/ComPort.html",relativePath:"plugins/processors/ComPort.md",key:"v-d38dd566",path:"/plugins/processors/ComPort.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ComPort.md",id:"plugins"},{title:"Blink Detection",frontmatter:{title:"Blink Detection",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/BlinkDetection.html",relativePath:"plugins/processors/BlinkDetection.md",key:"v-2788c5e7",path:"/plugins/processors/BlinkDetection.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkDetection.md",id:"plugins"},{title:"Comparator",frontmatter:{title:"Comparator",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Comparator.html",relativePath:"plugins/processors/Comparator.md",key:"v-04510947",path:"/plugins/processors/Comparator.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Comparator.md",id:"plugins"},{title:"ConstantDispatcher",frontmatter:{title:"ConstantDispatcher",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/ConstantDispatcher.html",relativePath:"plugins/processors/ConstantDispatcher.md",key:"v-1ba2eab2",path:"/plugins/processors/ConstantDispatcher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ConstantDispatcher.md",id:"plugins"},{title:"Compute Bandpower",frontmatter:{title:"Compute Bandpower",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/ComputeBandpower.html",relativePath:"plugins/processors/ComputeBandpower.md",key:"v-5009f567",path:"/plugins/processors/ComputeBandpower.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ComputeBandpower.md",id:"plugins"},{title:"DataType",frontmatter:{title:"DataType",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/DataType.html",relativePath:"plugins/processors/DataType.md",key:"v-1e825672",path:"/plugins/processors/DataType.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/DataType.md",id:"plugins"},{title:"Decimation",frontmatter:{title:"Decimation",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Decimation.html",relativePath:"plugins/processors/Decimation.md",key:"v-897a9bb2",path:"/plugins/processors/Decimation.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Decimation.md",id:"plugins"},{title:"DateToDouble",frontmatter:{title:"DateToDouble",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/DateToDouble.html",relativePath:"plugins/processors/DateToDouble.md",key:"v-5e6cfe07",path:"/plugins/processors/DateToDouble.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Ports",slug:"input-ports"},{level:2,title:"Output Ports",slug:"output-ports"},{level:2,title:"Event Listeners",slug:"event-listeners"},{level:2,title:"Event Triggers",slug:"event-triggers"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/DateToDouble.md",id:"plugins"},{title:"Derivative",frontmatter:{title:"Derivative",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Derivative.html",relativePath:"plugins/processors/Derivative.md",key:"v-5d044327",path:"/plugins/processors/Derivative.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Derivative.md",id:"plugins"},{title:"Deadzone",frontmatter:{title:"Deadzone",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/Deadzone.html",relativePath:"plugins/processors/Deadzone.md",key:"v-691ee647",path:"/plugins/processors/Deadzone.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Deadzone.md",id:"plugins"},{title:"Differentiate",frontmatter:{title:"Differentiate",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Differentiate.html",relativePath:"plugins/processors/Differentiate.md",key:"v-50d5674d",path:"/plugins/processors/Differentiate.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Differentiate.md",id:"plugins"},{title:"Delay",frontmatter:{title:"Delay",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Delay.html",relativePath:"plugins/processors/Delay.md",key:"v-6631ec8b",path:"/plugins/processors/Delay.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Delay.md",id:"plugins"},{title:"DoubleToString",frontmatter:{title:"DoubleToString",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/DoubleToString.html",relativePath:"plugins/processors/DoubleToString.md",key:"v-4b632167",path:"/plugins/processors/DoubleToString.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/DoubleToString.md",id:"plugins"},{title:"Dissimilarity",frontmatter:{title:"Dissimilarity",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/Dissimilarity.html",relativePath:"plugins/processors/Dissimilarity.md",key:"v-7db60c2f",path:"/plugins/processors/Dissimilarity.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Dissimilarity.md",id:"plugins"},{title:"EventBlock",frontmatter:{title:"EventBlock",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventBlock.html",relativePath:"plugins/processors/EventBlock.md",key:"v-d8c21cb2",path:"/plugins/processors/EventBlock.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventBlock.md",id:"plugins"},{title:"ECMAScriptInterpreter",frontmatter:{title:"ECMAScriptInterpreter",subcategory:"Scripting",image:"/plugins/processors/javascript.svg",layout:"Page"},regularPath:"/plugins/processors/ECMAScriptInterpreter.html",relativePath:"plugins/processors/ECMAScriptInterpreter.md",key:"v-69219697",path:"/plugins/processors/ECMAScriptInterpreter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ECMAScriptInterpreter.md",id:"plugins"},{title:"EventCascade",frontmatter:{title:"EventCascade",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventCascade.html",relativePath:"plugins/processors/EventCascade.md",key:"v-8cf913f2",path:"/plugins/processors/EventCascade.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventCascade.md",id:"plugins"},{title:"EventCounter",frontmatter:{title:"EventCounter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventCounter.html",relativePath:"plugins/processors/EventCounter.md",key:"v-0faadb07",path:"/plugins/processors/EventCounter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventCounter.md",id:"plugins"},{title:"EventDelay",frontmatter:{title:"EventDelay",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventDelay.html",relativePath:"plugins/processors/EventDelay.md",key:"v-257632e7",path:"/plugins/processors/EventDelay.html",headers:[{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventDelay.md",id:"plugins"},{title:"Event Dispatcher",frontmatter:{title:"Event Dispatcher",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventDispatcher.html",relativePath:"plugins/processors/EventDispatcher.md",key:"v-b68a9862",path:"/plugins/processors/EventDispatcher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventDispatcher.md",id:"plugins"},{title:"Event Flip Flop",frontmatter:{title:"Event Flip Flop",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventFlipFlop.html",relativePath:"plugins/processors/EventFlipFlop.md",key:"v-0de90216",path:"/plugins/processors/EventFlipFlop.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Ports",slug:"event-listener-ports"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventFlipFlop.md",id:"plugins"},{title:"Event State Machine",frontmatter:{title:"Event State Machine",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventStateMachine.html",relativePath:"plugins/processors/EventStateMachine.md",key:"v-92543f1e",path:"/plugins/processors/EventStateMachine.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"EventStateMachine Description",slug:"eventstatemachine-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventStateMachine.md",id:"plugins"},{title:"EventRouter",frontmatter:{title:"EventRouter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventRouter.html",relativePath:"plugins/processors/EventRouter.md",key:"v-4f6abeea",path:"/plugins/processors/EventRouter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventRouter.md",id:"plugins"},{title:"FS20CommandInterpreter",frontmatter:{title:"FS20CommandInterpreter",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/processors/FS20CommandInterpreter.html",relativePath:"plugins/processors/FS20CommandInterpreter.md",key:"v-77363772",path:"/plugins/processors/FS20CommandInterpreter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/FS20CommandInterpreter.md",id:"plugins"},{title:"FABI",frontmatter:{title:"FABI",subcategory:"Microcontroller Interface",featured:!0,image:"/plugins/processors/fabi-switches.jpg",layout:"Page"},regularPath:"/plugins/processors/FABI.html",relativePath:"plugins/processors/FABI.md",key:"v-f5401bf2",path:"/plugins/processors/FABI.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/FABI.md",id:"plugins"},{title:"Filter",frontmatter:{title:"Filter",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/Filter.html",relativePath:"plugins/processors/Filter.md",key:"v-170dfcf2",path:"/plugins/processors/Filter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Filter.md",id:"plugins"},{title:"HRVAnalysis",frontmatter:{title:"HRVAnalysis",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/HRVAnalysis.html",relativePath:"plugins/processors/HRVAnalysis.md",key:"v-7f5ffdc1",path:"/plugins/processors/HRVAnalysis.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/HRVAnalysis.md",id:"plugins"},{title:"HRVRmssdFromRR",frontmatter:{title:"HRVRmssdFromRR",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/HRVRmssdFromRR.html",relativePath:"plugins/processors/HRVRmssdFromRR.md",key:"v-38d069b2",path:"/plugins/processors/HRVRmssdFromRR.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/HRVRmssdFromRR.md",id:"plugins"},{title:"IIRFilter",frontmatter:{title:"IIRFilter",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/IIRFilter.html",relativePath:"plugins/processors/IIRFilter.md",key:"v-1d0ab506",path:"/plugins/processors/IIRFilter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Input Port Description",slug:"input-port-description-2"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/IIRFilter.md",id:"plugins"},{title:"IntToString",frontmatter:{title:"IntToString",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/IntToString.html",relativePath:"plugins/processors/IntToString.md",key:"v-d1dfaaca",path:"/plugins/processors/IntToString.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/IntToString.md",id:"plugins"},{title:"JsonParser",frontmatter:{title:"JsonParser",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/JsonParser.html",relativePath:"plugins/processors/JsonParser.md",key:"v-19088f27",path:"/plugins/processors/JsonParser.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/JsonParser.md",id:"plugins"},{title:"Integrate",frontmatter:{title:"Integrate",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Integrate.html",relativePath:"plugins/processors/Integrate.md",key:"v-1d065aa2",path:"/plugins/processors/Integrate.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Integrate.md",id:"plugins"},{title:"IrMicro",frontmatter:{title:"IrMicro",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/processors/IrMicro.html",relativePath:"plugins/processors/IrMicro.md",key:"v-47f9c35b",path:"/plugins/processors/IrMicro.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Home Control)",slug:"component-type-processor-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/IrMicro.md",id:"plugins"},{title:"MotionAnalysis",frontmatter:{title:"MotionAnalysis",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/MotionAnalysis.html",relativePath:"plugins/processors/MotionAnalysis.md",key:"v-bf091772",path:"/plugins/processors/MotionAnalysis.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:3,title:"Save",slug:"save"},{level:3,title:"Load",slug:"load"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"EventListener",slug:"eventlistener"},{level:2,title:"EventTrigger",slug:"eventtrigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MotionAnalysis.md",id:"plugins"},{title:"Math Evaluator",frontmatter:{title:"Math Evaluator",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/MathEvaluator.html",relativePath:"plugins/processors/MathEvaluator.md",key:"v-6736aafa",path:"/plugins/processors/MathEvaluator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MathEvaluator.md",id:"plugins"},{title:"MultiSourceString",frontmatter:{title:"MultiSourceString",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/MultiSourceString.html",relativePath:"plugins/processors/MultiSourceString.md",key:"v-e3fa9f72",path:"/plugins/processors/MultiSourceString.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MultiSourceString.md",id:"plugins"},{title:"MinMax",frontmatter:{title:"MinMax",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/MinMax.html",relativePath:"plugins/processors/MinMax.md",key:"v-50964747",path:"/plugins/processors/MinMax.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MinMax.md",id:"plugins"},{title:"MultiSource",frontmatter:{title:"MultiSource",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/MultiSource.html",relativePath:"plugins/processors/MultiSource.md",key:"v-30be31a9",path:"/plugins/processors/MultiSource.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MultiSource.md",id:"plugins"},{title:"NexusConnector",frontmatter:{title:"NexusConnector",subcategory:"Web",layout:"Page"},regularPath:"/plugins/processors/NexusConnector.html",relativePath:"plugins/processors/NexusConnector.md",key:"v-13b74a72",path:"/plugins/processors/NexusConnector.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/NexusConnector.md",id:"plugins"},{title:"Neural Network Loader",frontmatter:{title:"Neural Network Loader",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/NeuralNetworkLoader.html",relativePath:"plugins/processors/NeuralNetworkLoader.md",key:"v-d29b3b66",path:"/plugins/processors/NeuralNetworkLoader.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/NeuralNetworkLoader.md",id:"plugins"},{title:"OneEventManyActions",frontmatter:{title:"OneEventManyActions",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/OneEventManyActions.html",relativePath:"plugins/processors/OneEventManyActions.md",key:"v-4c4414bd",path:"/plugins/processors/OneEventManyActions.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OneEventManyActions.md",id:"plugins"},{title:"openHAB",frontmatter:{title:"openHAB",subcategory:"Home Control",featured:!0,image:"/plugins/processors/openhab.svg",layout:"Page"},regularPath:"/plugins/processors/OpenHAB.html",relativePath:"plugins/processors/OpenHAB.md",key:"v-6bf745d3",path:"/plugins/processors/OpenHAB.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Start OpenHAB",slug:"start-openhab"},{level:2,title:"Example",slug:"example"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Additional hints",slug:"additional-hints"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OpenHAB.md",id:"plugins"},{title:"Osc Gesture Follower",frontmatter:{title:"Osc Gesture Follower",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/OscGestureFollower.html",relativePath:"plugins/processors/OscGestureFollower.md",key:"v-5a24aa07",path:"/plugins/processors/OscGestureFollower.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Principle",slug:"functional-principle"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener Ports",slug:"event-listener-ports"},{level:2,title:"Referred Plugins",slug:"referred-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OscGestureFollower.md",id:"plugins"},{title:"OskaInternalScanning",frontmatter:{title:"OskaInternalScanning",subcategory:"OSKA",layout:"Page"},regularPath:"/plugins/processors/OskaInternalScanning.html",relativePath:"plugins/processors/OskaInternalScanning.md",key:"v-637b13c7",path:"/plugins/processors/OskaInternalScanning.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OskaInternalScanning.md",id:"plugins"},{title:"OskaExternalScanning2D",frontmatter:{title:"OskaExternalScanning2D",subcategory:"OSKA",layout:"Page"},regularPath:"/plugins/processors/OskaExternalScanning2D.html",relativePath:"plugins/processors/OskaExternalScanning2D.md",key:"v-e83ea4f2",path:"/plugins/processors/OskaExternalScanning2D.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OskaExternalScanning2D.md",id:"plugins"},{title:"OskaExternalScanning1D",frontmatter:{title:"OskaExternalScanning1D",subcategory:"OSKA",layout:"Page"},regularPath:"/plugins/processors/OskaExternalScanning1D.html",relativePath:"plugins/processors/OskaExternalScanning1D.md",key:"v-2921d7e7",path:"/plugins/processors/OskaExternalScanning1D.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OskaExternalScanning1D.md",id:"plugins"},{title:"PathMultiplexer",frontmatter:{title:"PathMultiplexer",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/PathMultiplexer.html",relativePath:"plugins/processors/PathMultiplexer.md",key:"v-4be94031",path:"/plugins/processors/PathMultiplexer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/PathMultiplexer.md",id:"plugins"},{title:"PeakDetector",frontmatter:{title:"PeakDetector",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/PeakDetector.html",relativePath:"plugins/processors/PeakDetector.md",key:"v-7c537de7",path:"/plugins/processors/PeakDetector.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/PeakDetector.md",id:"plugins"},{title:"Protocol SSVEP Train",frontmatter:{title:"Protocol SSVEP Train",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/ProtocolSSVEPTrain.html",relativePath:"plugins/processors/ProtocolSSVEPTrain.md",key:"v-5b5e6427",path:"/plugins/processors/ProtocolSSVEPTrain.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feauture extraction)",slug:"component-type-processor-subcategory-dsp-and-feauture-extraction"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ProtocolSSVEPTrain.md",id:"plugins"},{title:"RegularExpression",frontmatter:{title:"RegularExpression",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/RegularExpression.html",relativePath:"plugins/processors/RegularExpression.md",key:"v-21b721ae",path:"/plugins/processors/RegularExpression.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/RegularExpression.md",id:"plugins"},{title:"Pathselector",frontmatter:{title:"Pathselector",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/Pathselector.html",relativePath:"plugins/processors/Pathselector.md",key:"v-5c2cfb72",path:"/plugins/processors/Pathselector.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Pathselector.md",id:"plugins"},{title:"Quantizer",frontmatter:{title:"Quantizer",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Quantizer.html",relativePath:"plugins/processors/Quantizer.md",key:"v-3b520e4f",path:"/plugins/processors/Quantizer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Quantizer.md",id:"plugins"},{title:"Relative Move Sampler",frontmatter:{title:"Relative Move Sampler",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/RelativeMoveSampler.html",relativePath:"plugins/processors/RelativeMoveSampler.md",key:"v-3eb0087b",path:"/plugins/processors/RelativeMoveSampler.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/RelativeMoveSampler.md",id:"plugins"},{title:"SampleAndHold",frontmatter:{title:"SampleAndHold",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/SampleAndHold.html",relativePath:"plugins/processors/SampleAndHold.md",key:"v-11a59ef9",path:"/plugins/processors/SampleAndHold.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SampleAndHold.md",id:"plugins"},{title:"SSVEP Detect",frontmatter:{title:"SSVEP Detect",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/SSVEPDetect.html",relativePath:"plugins/processors/SSVEPDetect.md",key:"v-61da4eee",path:"/plugins/processors/SSVEPDetect.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SSVEPDetect.md",id:"plugins"},{title:"Sampler",frontmatter:{title:"Sampler",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Sampler.html",relativePath:"plugins/processors/Sampler.md",key:"v-64552681",path:"/plugins/processors/Sampler.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Sampler.md",id:"plugins"},{title:"SerialSender",frontmatter:{title:"SerialSender",subcategory:"Serial Communication",layout:"Page"},regularPath:"/plugins/processors/SerialSender.html",relativePath:"plugins/processors/SerialSender.md",key:"v-a40c8732",path:"/plugins/processors/SerialSender.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SerialSender.md",id:"plugins"},{title:"SpeechProcessor",frontmatter:{title:"SpeechProcessor",subcategory:"Audio and Voice",featured:!0,layout:"Page"},regularPath:"/plugins/processors/SpeechProcessor.html",relativePath:"plugins/processors/SpeechProcessor.md",key:"v-9198a01e",path:"/plugins/processors/SpeechProcessor.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description:",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description:",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SpeechProcessor.md",id:"plugins"},{title:"SerialPort",frontmatter:{title:"SerialPort",subcategory:"Communication",featured:!0,layout:"Page"},regularPath:"/plugins/processors/SerialPort.html",relativePath:"plugins/processors/SerialPort.md",key:"v-9f5a7d32",path:"/plugins/processors/SerialPort.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SerialPort.md",id:"plugins"},{title:"Signal Translation",frontmatter:{title:"Signal Translation",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/SignalTranslation.html",relativePath:"plugins/processors/SignalTranslation.md",key:"v-1013433f",path:"/plugins/processors/SignalTranslation.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SignalTranslation.md",id:"plugins"},{title:"StringAppend",frontmatter:{title:"StringAppend",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringAppend.html",relativePath:"plugins/processors/StringAppend.md",key:"v-67dbcba7",path:"/plugins/processors/StringAppend.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Ports",slug:"event-listener-ports"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringAppend.md",id:"plugins"},{title:"String Dispatcher",frontmatter:{title:"String Dispatcher",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringDispatcher.html",relativePath:"plugins/processors/StringDispatcher.md",key:"v-100a3e47",path:"/plugins/processors/StringDispatcher.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringDispatcher.md",id:"plugins"},{title:"StringDelay",frontmatter:{title:"StringDelay",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringDelay.html",relativePath:"plugins/processors/StringDelay.md",key:"v-14661c2d",path:"/plugins/processors/StringDelay.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringDelay.md",id:"plugins"},{title:"StringExpander",frontmatter:{title:"StringExpander",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringExpander.html",relativePath:"plugins/processors/StringExpander.md",key:"v-59dccef2",path:"/plugins/processors/StringExpander.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringExpander.md",id:"plugins"},{title:"StringFormatter",frontmatter:{title:"StringFormatter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringFormatter.html",relativePath:"plugins/processors/StringFormatter.md",key:"v-3d455e1f",path:"/plugins/processors/StringFormatter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringFormatter.md",id:"plugins"},{title:"StringFilter",frontmatter:{title:"StringFilter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringFilter.html",relativePath:"plugins/processors/StringFilter.md",key:"v-4cf6bf32",path:"/plugins/processors/StringFilter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringFilter.md",id:"plugins"},{title:"StringExtractor",frontmatter:{title:"StringExtractor",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/StringExtractor.html",relativePath:"plugins/processors/StringExtractor.md",key:"v-3e8a576b",path:"/plugins/processors/StringExtractor.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringExtractor.md",id:"plugins"},{title:"StringPathSelector",frontmatter:{title:"StringPathSelector",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/StringPathSelector.html",relativePath:"plugins/processors/StringPathSelector.md",key:"v-690e9367",path:"/plugins/processors/StringPathSelector.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringPathSelector.md",id:"plugins"},{title:"StringPathMultiplexer",frontmatter:{title:"StringPathMultiplexer",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/StringPathMultiplexer.html",relativePath:"plugins/processors/StringPathMultiplexer.md",key:"v-1709c1d3",path:"/plugins/processors/StringPathMultiplexer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringPathMultiplexer.md",id:"plugins"},{title:"StringSplitter",frontmatter:{title:"StringSplitter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringSplitter.html",relativePath:"plugins/processors/StringSplitter.md",key:"v-2ce14ef2",path:"/plugins/processors/StringSplitter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringSplitter.md",id:"plugins"},{title:"StringToDouble",frontmatter:{title:"StringToDouble",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/StringToDouble.html",relativePath:"plugins/processors/StringToDouble.md",key:"v-1e8b2167",path:"/plugins/processors/StringToDouble.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringToDouble.md",id:"plugins"},{title:"TextSender",frontmatter:{title:"TextSender",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/TextSender.html",relativePath:"plugins/processors/TextSender.md",key:"v-77d7abc7",path:"/plugins/processors/TextSender.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/TextSender.md",id:"plugins"},{title:"TimestampWriter",frontmatter:{title:"TimestampWriter",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/TimestampWriter.html",relativePath:"plugins/processors/TimestampWriter.md",key:"v-53da033f",path:"/plugins/processors/TimestampWriter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/TimestampWriter.md",id:"plugins"},{title:"StringToInt",frontmatter:{title:"StringToInt",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/StringToInt.html",relativePath:"plugins/processors/StringToInt.md",key:"v-281449cb",path:"/plugins/processors/StringToInt.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringToInt.md",id:"plugins"},{title:"Universal Remote Control",frontmatter:{title:"Universal Remote Control",subcategory:"Microcontroller Interface",layout:"Page"},regularPath:"/plugins/processors/UniversalRemoteControl.html",relativePath:"plugins/processors/UniversalRemoteControl.md",key:"v-01319b07",path:"/plugins/processors/UniversalRemoteControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"IR Code Database",slug:"ir-code-database"},{level:2,title:"Configuration File",slug:"configuration-file"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/UniversalRemoteControl.md",id:"plugins"},{title:"WebSocket",frontmatter:{title:"WebSocket",subcategory:"Web",layout:"Page"},regularPath:"/plugins/processors/WebSocket.html",relativePath:"plugins/processors/WebSocket.md",key:"v-1b0560c3",path:"/plugins/processors/WebSocket.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/WebSocket.md",id:"plugins"},{title:"Threshold",frontmatter:{title:"Threshold",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Threshold.html",relativePath:"plugins/processors/Threshold.md",key:"v-75091cbb",path:"/plugins/processors/Threshold.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Port Description",slug:"event-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Threshold.md",id:"plugins"},{title:"Yaak",frontmatter:{title:"Yaak",subcategory:"Phone Interface",layout:"Page"},regularPath:"/plugins/processors/Yaak.html",relativePath:"plugins/processors/Yaak.md",key:"v-846ec7f2",path:"/plugins/processors/Yaak.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Phone Interface)",slug:"component-type-processor-subcategory-phone-interface"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Yaak.md",id:"plugins"},{title:"Create EG file",frontmatter:{title:"Create EG file",subcategory:"Others",layout:"Page"},regularPath:"/plugins/processors/eg_example.html",relativePath:"plugins/processors/eg_example.md",key:"v-8ed10332",path:"/plugins/processors/eg_example.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/eg_example.md",id:"plugins"},{title:"AnalogIn",frontmatter:{title:"AnalogIn",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/AnalogIn.html",relativePath:"plugins/sensors/AnalogIn.md",key:"v-1b90e4c2",path:"/plugins/sensors/AnalogIn.html",headers:[{level:3,title:"Component Type: Sensor (Subcategory: Generic Control Input)",slug:"component-type-sensor-subcategory-generic-control-input"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/AnalogIn.md",id:"plugins"},{title:"Acceleration",frontmatter:{title:"Acceleration",subcategory:"Inertial Measurement",layout:"Page"},regularPath:"/plugins/sensors/Acceleration.html",relativePath:"plugins/sensors/Acceleration.md",key:"v-2e4c9dc9",path:"/plugins/sensors/Acceleration.html",headers:[{level:2,title:"Tilt calculation",slug:"tilt-calculation"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Acceleration.md",id:"plugins"},{title:"AutostartEvent",frontmatter:{title:"AutostartEvent",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/AutostartEvent.html",relativePath:"plugins/sensors/AutostartEvent.md",key:"v-7841dcfb",path:"/plugins/sensors/AutostartEvent.html",headers:[{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/AutostartEvent.md",id:"plugins"},{title:"CellBoard",frontmatter:{title:"CellBoard",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/CellBoard.html",relativePath:"plugins/sensors/CellBoard.md",key:"v-1eb18087",path:"/plugins/sensors/CellBoard.html",headers:[{level:2,title:"Using the cell editor",slug:"using-the-cell-editor"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/CellBoard.md",id:"plugins"},{title:"ButtonGrid",frontmatter:{title:"ButtonGrid",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/ButtonGrid.html",relativePath:"plugins/sensors/ButtonGrid.md",key:"v-5889cb59",path:"/plugins/sensors/ButtonGrid.html",headers:[{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/ButtonGrid.md",id:"plugins"},{title:"EShoe",frontmatter:{title:"EShoe",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/EShoe.html",relativePath:"plugins/sensors/EShoe.md",key:"v-3098c387",path:"/plugins/sensors/EShoe.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EShoe.md",id:"plugins"},{title:"DigitalIn",frontmatter:{title:"DigitalIn",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/DigitalIn.html",relativePath:"plugins/sensors/DigitalIn.md",key:"v-28fc4432",path:"/plugins/sensors/DigitalIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/DigitalIn.md",id:"plugins"},{title:"EditBox",frontmatter:{title:"EditBox",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/EditBox.html",relativePath:"plugins/sensors/EditBox.md",key:"v-1134a2e7",path:"/plugins/sensors/EditBox.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EditBox.md",id:"plugins"},{title:"EOG",frontmatter:{title:"EOG",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/EOG.html",relativePath:"plugins/sensors/EOG.md",key:"v-48688967",path:"/plugins/sensors/EOG.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EOG.md",id:"plugins"},{title:"Enobio",frontmatter:{title:"Enobio",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/Enobio.html",relativePath:"plugins/sensors/Enobio.md",key:"v-9ccbeb76",path:"/plugins/sensors/Enobio.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Enobio.md",id:"plugins"},{title:"Event Generator",frontmatter:{title:"Event Generator",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/EventGenerator.html",relativePath:"plugins/sensors/EventGenerator.md",key:"v-64af51d7",path:"/plugins/sensors/EventGenerator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Port Description",slug:"port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EventGenerator.md",id:"plugins"},{title:"Eyetribe",frontmatter:{title:"Eyetribe",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/EyeTribe.html",relativePath:"plugins/sensors/EyeTribe.md",key:"v-12d7b90f",path:"/plugins/sensors/EyeTribe.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:3,title:"Calibration and Offset Correction",slug:"calibration-and-offset-correction"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EyeTribe.md",id:"plugins"},{title:"EyeX",frontmatter:{title:"EyeX",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/EyeX.html",relativePath:"plugins/sensors/EyeX.md",key:"v-001ddafb",path:"/plugins/sensors/EyeX.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:3,title:"Calibration and Offset Correction",slug:"calibration-and-offset-correction"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EyeX.md",id:"plugins"},{title:"Eyetracker",frontmatter:{title:"Eyetracker",subcategory:"Computer Vision",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/Eyetracker.html",relativePath:"plugins/sensors/Eyetracker.md",key:"v-157f848a",path:"/plugins/sensors/Eyetracker.html",headers:[{level:3,title:"Plugin modes",slug:"plugin-modes"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Eyetracker.md",id:"plugins"},{title:"FS20Receiver",frontmatter:{title:"FS20Receiver",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/sensors/FS20Receiver.html",relativePath:"plugins/sensors/FS20Receiver.md",key:"v-16e38c56",path:"/plugins/sensors/FS20Receiver.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Supported OSes",slug:"supported-oses"},{level:2,title:"Notes on Linux platform",slug:"notes-on-linux-platform"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FS20Receiver.md",id:"plugins"},{title:"HeadPositionHC",frontmatter:{title:"HeadPositionHC",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/HeadPositionHC.html",relativePath:"plugins/sensors/HeadPositionHC.md",key:"v-568f6d7e",path:"/plugins/sensors/HeadPositionHC.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/HeadPositionHC.md",id:"plugins"},{title:"FacetrackerLK",frontmatter:{title:"FacetrackerLK",subcategory:"Computer Vision",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/FacetrackerLK.html",relativePath:"plugins/sensors/FacetrackerLK.md",key:"v-7381d572",path:"/plugins/sensors/FacetrackerLK.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FacetrackerLK.md",id:"plugins"},{title:"FacetrackerCLM",frontmatter:{title:"FacetrackerCLM",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/FacetrackerCLM.html",relativePath:"plugins/sensors/FacetrackerCLM.md",key:"v-58df42b7",path:"/plugins/sensors/FacetrackerCLM.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FacetrackerCLM.md",id:"plugins"},{title:"HoverPanel",frontmatter:{title:"HoverPanel",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/HoverPanel.html",relativePath:"plugins/sensors/HoverPanel.md",key:"v-6bfe6a39",path:"/plugins/sensors/HoverPanel.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/HoverPanel.md",id:"plugins"},{title:"FolderBrowser",frontmatter:{title:"FolderBrowser",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/FolderBrowser.html",relativePath:"plugins/sensors/FolderBrowser.md",key:"v-12144d72",path:"/plugins/sensors/FolderBrowser.html",headers:[{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FolderBrowser.md",id:"plugins"},{title:"IntelRealSense",frontmatter:{title:"IntelRealSense",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/IntelRealSense.html",relativePath:"plugins/sensors/IntelRealSense.md",key:"v-0031f5d6",path:"/plugins/sensors/IntelRealSense.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/IntelRealSense.md",id:"plugins"},{title:"KeyCapture",frontmatter:{title:"KeyCapture",subcategory:"Standard Input Device",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/KeyCapture.html",relativePath:"plugins/sensors/KeyCapture.md",key:"v-690635bb",path:"/plugins/sensors/KeyCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Mapping of keyCodes to actual keys",slug:"mapping-of-keycodes-to-actual-keys"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/KeyCapture.md",id:"plugins"},{title:"JoystickCapture",frontmatter:{title:"JoystickCapture",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/JoystickCapture.html",relativePath:"plugins/sensors/JoystickCapture.md",key:"v-668f1587",path:"/plugins/sensors/JoystickCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/JoystickCapture.md",id:"plugins"},{title:"KeyboardCapture",frontmatter:{title:"KeyboardCapture",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/KeyboardCapture.html",relativePath:"plugins/sensors/KeyboardCapture.md",key:"v-08564da7",path:"/plugins/sensors/KeyboardCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/KeyboardCapture.md",id:"plugins"},{title:"Kinect",frontmatter:{title:"Kinect",subcategory:"Computer Vision",image:"/plugins/sensors/kinect.png",layout:"Page"},regularPath:"/plugins/sensors/Kinect.html",relativePath:"plugins/sensors/Kinect.md",key:"v-0f25337d",path:"/plugins/sensors/Kinect.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Kinect.md",id:"plugins"},{title:"Legacy Analog In",frontmatter:{title:"Legacy Analog In",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/LegacyAnalogIn.html",relativePath:"plugins/sensors/LegacyAnalogIn.md",key:"v-760221cd",path:"/plugins/sensors/LegacyAnalogIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LegacyAnalogIn.md",id:"plugins"},{title:"KinectJ4K",frontmatter:{title:"KinectJ4K",subcategory:"Computer Vision",image:"/plugins/sensors/kinectj4k.png",layout:"Page"},regularPath:"/plugins/sensors/KinectJ4K.html",relativePath:"plugins/sensors/KinectJ4K.md",key:"v-5f99c5b2",path:"/plugins/sensors/KinectJ4K.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/KinectJ4K.md",id:"plugins"},{title:"Legacy Digital In",frontmatter:{title:"Legacy Digital In",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/LegacyDigitalIn.html",relativePath:"plugins/sensors/LegacyDigitalIn.md",key:"v-258c6472",path:"/plugins/sensors/LegacyDigitalIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LegacyDigitalIn.md",id:"plugins"},{title:"LineReader",frontmatter:{title:"LineReader",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/LineReader.html",relativePath:"plugins/sensors/LineReader.md",key:"v-acbfcc4a",path:"/plugins/sensors/LineReader.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Output port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LineReader.md",id:"plugins"},{title:"Lightscore",frontmatter:{title:"Lightscore",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/Lightscore.html",relativePath:"plugins/sensors/Lightscore.md",key:"v-9d2ec7de",path:"/plugins/sensors/Lightscore.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Lightscore.md",id:"plugins"},{title:"Lipmouse",frontmatter:{title:"Lipmouse",subcategory:"Sensor Modules",image:"/plugins/sensors/lipmouse.png",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/Lipmouse.html",relativePath:"plugins/sensors/Lipmouse.md",key:"v-cb421036",path:"/plugins/sensors/Lipmouse.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Lipmouse.md",id:"plugins"},{title:"MouseCapture",frontmatter:{title:"MouseCapture",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/MouseCapture.html",relativePath:"plugins/sensors/MouseCapture.md",key:"v-9043d372",path:"/plugins/sensors/MouseCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/MouseCapture.md",id:"plugins"},{title:"LipmouseIR",frontmatter:{title:"LipmouseIR",subcategory:"Sensor Modules",image:"/plugins/sensors/lipmouse-ir.svg",layout:"Page"},regularPath:"/plugins/sensors/LipmouseIR.html",relativePath:"plugins/sensors/LipmouseIR.md",key:"v-1327575a",path:"/plugins/sensors/LipmouseIR.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"IR Code Database",slug:"ir-code-database"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LipmouseIR.md",id:"plugins"},{title:"MicGPI",frontmatter:{title:"MicGPI",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/MicGPI.html",relativePath:"plugins/sensors/MicGPI.md",key:"v-5b66ee52",path:"/plugins/sensors/MicGPI.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/MicGPI.md",id:"plugins"},{title:"OpenBCI",frontmatter:{title:"OpenBCI",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/OpenBCI.html",relativePath:"plugins/sensors/OpenBCI.md",key:"v-6c144d07",path:"/plugins/sensors/OpenBCI.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/OpenBCI.md",id:"plugins"},{title:"OpenVibe",frontmatter:{title:"OpenVibe",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/OpenVibe.html",relativePath:"plugins/sensors/OpenVibe.md",key:"v-3e2501ee",path:"/plugins/sensors/OpenVibe.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/OpenVibe.md",id:"plugins"},{title:"Osc Server",frontmatter:{title:"Osc Server",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/sensors/OscServer.html",relativePath:"plugins/sensors/OscServer.md",key:"v-ae820072",path:"/plugins/sensors/OscServer.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Principle",slug:"functional-principle"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Referred Plugins",slug:"referred-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/OscServer.md",id:"plugins"},{title:"PhilipsHueSensor",frontmatter:{title:"PhilipsHueSensor",subcategory:"Home Control",image:"/plugins/sensors/philips-hue.png",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/PhilipsHueSensor.html",relativePath:"plugins/sensors/PhilipsHueSensor.md",key:"v-16942872",path:"/plugins/sensors/PhilipsHueSensor.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Initial Setup",slug:"initial-setup"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/PhilipsHueSensor.md",id:"plugins"},{title:"Platform Analog In",frontmatter:{title:"Platform Analog In",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/sensors/PlatformAnalogIn.html",relativePath:"plugins/sensors/PlatformAnalogIn.md",key:"v-e648748e",path:"/plugins/sensors/PlatformAnalogIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/PlatformAnalogIn.md",id:"plugins"},{title:"Proximity",frontmatter:{title:"Proximity",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/Proximity.html",relativePath:"plugins/sensors/Proximity.md",key:"v-327fbaa7",path:"/plugins/sensors/Proximity.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Proximity.md",id:"plugins"},{title:"RFID Reader",frontmatter:{title:"RFID Reader",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/RFIDReader.html",relativePath:"plugins/sensors/RFIDReader.md",key:"v-4f8d10e5",path:"/plugins/sensors/RFIDReader.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/RFIDReader.md",id:"plugins"},{title:"P2 Parser",frontmatter:{title:"P2 Parser",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/P2_Parser.html",relativePath:"plugins/sensors/P2_Parser.md",key:"v-fa5974f2",path:"/plugins/sensors/P2_Parser.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/P2_Parser.md",id:"plugins"},{title:"RandomNumber",frontmatter:{title:"RandomNumber",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/RandomNumber.html",relativePath:"plugins/sensors/RandomNumber.md",key:"v-f2533c1e",path:"/plugins/sensors/RandomNumber.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/RandomNumber.md",id:"plugins"},{title:"RazorIMU",frontmatter:{title:"RazorIMU",subcategory:"Inertial Measurement",layout:"Page"},regularPath:"/plugins/sensors/RazorIMU.html",relativePath:"plugins/sensors/RazorIMU.md",key:"v-1912fd7a",path:"/plugins/sensors/RazorIMU.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/RazorIMU.md",id:"plugins"},{title:"PlatformDigitalIn",frontmatter:{title:"PlatformDigitalIn",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/sensors/PlatformDigitalIn.html",relativePath:"plugins/sensors/PlatformDigitalIn.md",key:"v-34a03bc7",path:"/plugins/sensors/PlatformDigitalIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/PlatformDigitalIn.md",id:"plugins"},{title:"ReadCSV",frontmatter:{title:"ReadCSV",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/ReadCSV.html",relativePath:"plugins/sensors/ReadCSV.md",key:"v-3e1f8c47",path:"/plugins/sensors/ReadCSV.html",headers:[{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Output port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/ReadCSV.md",id:"plugins"},{title:"ReadEDF",frontmatter:{title:"ReadEDF",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/ReadEDF.html",relativePath:"plugins/sensors/ReadEDF.md",key:"v-347024e7",path:"/plugins/sensors/ReadEDF.html",headers:[{level:2,title:"Output port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/ReadEDF.md",id:"plugins"},{title:"Sensorboard",frontmatter:{title:"Sensorboard",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/Sensorboard.html",relativePath:"plugins/sensors/Sensorboard.md",key:"v-5ffb0147",path:"/plugins/sensors/Sensorboard.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Sensorboard.md",id:"plugins"},{title:"SignalGenerator",frontmatter:{title:"SignalGenerator",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/SignalGenerator.html",relativePath:"plugins/sensors/SignalGenerator.md",key:"v-058dc5b2",path:"/plugins/sensors/SignalGenerator.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/SignalGenerator.md",id:"plugins"},{title:"SignalShaper",frontmatter:{title:"SignalShaper",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/SignalShaper.html",relativePath:"plugins/sensors/SignalShaper.md",key:"v-4f75de97",path:"/plugins/sensors/SignalShaper.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/SignalShaper.md",id:"plugins"},{title:"TextfieldReader",frontmatter:{title:"TextfieldReader",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/TextfieldReader.html",relativePath:"plugins/sensors/TextfieldReader.md",key:"v-0c6bef47",path:"/plugins/sensors/TextfieldReader.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TextfieldReader.md",id:"plugins"},{title:"Slider",frontmatter:{title:"Slider",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/Slider.html",relativePath:"plugins/sensors/Slider.md",key:"v-524244c7",path:"/plugins/sensors/Slider.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Slider.md",id:"plugins"},{title:"Timer",frontmatter:{title:"Timer",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/Timer.html",relativePath:"plugins/sensors/Timer.md",key:"v-741a2432",path:"/plugins/sensors/Timer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Timer.md",id:"plugins"},{title:"SpaceNavigtor3DMouse",frontmatter:{title:"SpaceNavigtor3DMouse",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/SpaceNavigator3DMouse.html",relativePath:"plugins/sensors/SpaceNavigator3DMouse.md",key:"v-4f2ebfb2",path:"/plugins/sensors/SpaceNavigator3DMouse.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/SpaceNavigator3DMouse.md",id:"plugins"},{title:"TobiTic",frontmatter:{title:"TobiTic",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/TobiTic.html",relativePath:"plugins/sensors/TobiTic.md",key:"v-9d9cc472",path:"/plugins/sensors/TobiTic.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Example iC message:",slug:"example-ic-message"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TobiTic.md",id:"plugins"},{title:"Tobii4CHeadTracker",frontmatter:{title:"Tobii4CHeadTracker",subcategory:"Computer Vision",image:"/plugins/sensors/tobi4c.png",layout:"Page"},regularPath:"/plugins/sensors/Tobii4CHeadTracker.html",relativePath:"plugins/sensors/Tobii4CHeadTracker.md",key:"v-dc917076",path:"/plugins/sensors/Tobii4CHeadTracker.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Tobii4CHeadTracker.md",id:"plugins"},{title:"TrackIR",frontmatter:{title:"TrackIR",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/TrackIR.html",relativePath:"plugins/sensors/TrackIR.md",key:"v-326ed2c7",path:"/plugins/sensors/TrackIR.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TrackIR.md",id:"plugins"},{title:"WiiMote",frontmatter:{title:"WiiMote",subcategory:"Standard Input Device",image:"/plugins/sensors/wiimote.png",layout:"Page"},regularPath:"/plugins/sensors/WiiMote.html",relativePath:"plugins/sensors/WiiMote.md",key:"v-5a274087",path:"/plugins/sensors/WiiMote.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/WiiMote.md",id:"plugins"},{title:"TuioReactivision",frontmatter:{title:"TuioReactivision",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/TuioReactivision.html",relativePath:"plugins/sensors/TuioReactivision.md",key:"v-254d4e97",path:"/plugins/sensors/TuioReactivision.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Trigger",slug:"event-trigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TuioReactivision.md",id:"plugins"},{title:"XFacetrackerLK",frontmatter:{title:"XFacetrackerLK",subcategory:"Computer Vision",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/XFacetrackerLK.html",relativePath:"plugins/sensors/XFacetrackerLK.md",key:"v-4f597976",path:"/plugins/sensors/XFacetrackerLK.html",headers:[{level:3,title:"Component Type: Sensor (Subcategory: Computer Vision)",slug:"component-type-sensor-subcategory-computer-vision"},{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Note for Raspberry Pi",slug:"note-for-raspberry-pi"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Example Configuraitons",slug:"example-configuraitons"},{level:3,title:"Default",slug:"default"},{level:3,title:"OpenCV",slug:"opencv"},{level:3,title:"VideoInput (Windows only)",slug:"videoinput-windows-only"},{level:3,title:"FFmpeg (Linux only)",slug:"ffmpeg-linux-only"},{level:3,title:"MJPEG stream of SmartPhone camera",slug:"mjpeg-stream-of-smartphone-camera"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/XFacetrackerLK.md",id:"plugins"},{title:"Camera Mouse Solution",frontmatter:{},regularPath:"/solutions/Camera-Mouse.html",relativePath:"solutions/Camera-Mouse.md",key:"v-3a4e136f",path:"/solutions/Camera-Mouse.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Related Videos",slug:"related-videos"},{level:2,title:"Major Plugins",slug:"major-plugins"},{level:2,title:"Related Tutorials",slug:"related-tutorials"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Camera-Mouse.md"},{title:"Basic AAC Grid Solution",frontmatter:{},regularPath:"/solutions/AAC-Basic.html",relativePath:"solutions/AAC-Basic.md",key:"v-3fac8f47",path:"/solutions/AAC-Basic.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Optional Requirements",slug:"optional-requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/AAC-Basic.md"},{title:"Eye Tracking Mouse Solution",frontmatter:{},regularPath:"/solutions/Eye-Tracking-Mouse.html",relativePath:"solutions/Eye-Tracking-Mouse.md",key:"v-3696ee5a",path:"/solutions/Eye-Tracking-Mouse.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Eye-Tracking-Mouse.md"},{title:"Head Sound Solution",frontmatter:{},regularPath:"/solutions/Head-Sound.html",relativePath:"solutions/Head-Sound.md",key:"v-f2e2c936",path:"/solutions/Head-Sound.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Head-Sound.md"},{title:"Discover Solutions",frontmatter:{},regularPath:"/solutions/",relativePath:"solutions/README.md",key:"v-bcda9044",path:"/solutions/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/README.md"},{title:"Create new AT solution",frontmatter:{},regularPath:"/webapps/AT-solution-IDE.html",relativePath:"webapps/AT-solution-IDE.md",key:"v-81ac5472",path:"/webapps/AT-solution-IDE.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/webapps/AT-solution-IDE.md"},{title:"Switch Mouse Solution",frontmatter:{},regularPath:"/solutions/Switch-Mouse.html",relativePath:"solutions/Switch-Mouse.md",key:"v-79720951",path:"/solutions/Switch-Mouse.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Mouse movement",slug:"mouse-movement"},{level:2,title:"Tooltips",slug:"tooltips"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Switch-Mouse.md"},{title:"Create new plugin",frontmatter:{},regularPath:"/webapps/Plugin-IDE.html",relativePath:"webapps/Plugin-IDE.md",key:"v-25491f21",path:"/webapps/Plugin-IDE.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/webapps/Plugin-IDE.md"},{title:"FabiCronusMax",frontmatter:{title:"FabiCronusMax",subcategory:"Microcontroller Interface",layout:"Page"},regularPath:"/plugins/processors/FabiCronusMax.html",relativePath:"plugins/processors/FabiCronusMax.md",key:"v-1715ece5",path:"/plugins/processors/FabiCronusMax.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Configuration file",slug:"configuration-file"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/FabiCronusMax.md",id:"plugins"}],themeConfig:{versions:["4.1"],host:"https://www.asterics.eu/",translate:{favorites:["de","en","fr","it","es","pt","zh-CN","ar"],codes:[["de","DE","Deutsch","German"],["en","EN","English","English"],["fr","FR","Français","French"],["it","IT","Italiano","Italian"],["es","ES","Español","Spanish, Castilian"],["pt","PT","Português","Portuguese"],["zh-CN","ZH","中文","Chinese"],["ar","AR","العربية","Arabic"],["af","AF","Afrikaans","Afrikaans"],["sq","SQ","Shqip","Albanian"],["am","AM","አማርኛ","Amharic"],["hy","HY","Հայերեն","Armenian"],["eu","EU","euskara, euskera","Basque"],["be","BE","беларуская мова","Belarusian"],["bn","BN","বাংলা","Bengali"],["bs","BS","bosanski jezik","Bosnian"],["bg","BG","български език","Bulgarian"],["my","MY","ဗမာစာ","Burmese"],["ca","CA","català, valencià","Catalan, Valencian"],["ceb","CEB","Sinugbuanong Binisayâ","Cebuano"],["ny","NY","chiCheŵa, chinyanja","Chichewa, Chewa, Nyanja"],["zh-TW","ZH","漢語","Classical Chinese"],["co","CO","corsu, lingua corsa","Corsican"],["hr","HR","hrvatski jezik","Croatian"],["cs","CS","čeština, český jazyk","Czech"],["da","DA","dansk","Danish"],["nl","NL","Nederlands, Vlaams","Dutch, Flemish"],["eo","EO","Esperanto","Esperanto"],["et","ET","eesti, eesti keel","Estonian"],["fi","FI","suomi, suomen kieli","Finnish"],["gl","GL","Galego","Galician"],["ka","KA","ქართული","Georgian"],["el","EL","ελληνικά","Greek, Modern (1453–)"],["gu","GU","ગુજરાતી","Gujarati"],["ht","HT","Kreyòl ayisyen","Haitian, Haitian Creole"],["ha","HA","(Hausa) هَوُسَ","Hausa"],["haw","HAW","ʻŌlelo Hawaiʻi","Hawaiian"],["he","HE","עברית","Hebrew"],["hi","HI","हिन्दी, हिंदी","Hindi"],["hmn","HMN","lus Hmoob","Hmong"],["hu","HU","magyar","Hungarian"],["id","ID","Bahasa Indonesia","Indonesian"],["ga","GA","Gaeilge","Irish"],["ig","IG","Asụsụ Igbo","Igbo"],["is","IS","Íslenska","Icelandic"],["ja","JA","日本語 (にほんご)","Japanese"],["jv","JV","ꦧꦱꦗꦮ, Basa Jawa","Javanese"],["kn","KN","ಕನ್ನಡ","Kannada"],["kk","KK","қазақ тілі","Kazakh"],["km","KM","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ","Central Khmer"],["rw","RW","Ikinyarwanda","Kinyarwanda"],["ky","KY","Кыргызча, Кыргыз тили","Kirghiz, Kyrgyz"],["ko","KO","한국어","Korean"],["ku","KU","Kurdî, کوردی‎","Kurdish"],["la","LA","latine, lingua latina","Latin"],["lb","LB","Lëtzebuergesch","Luxembourgish, Letzeburgesch"],["lo","LO","ພາສາລາວ","Lao"],["lt","LT","lietuvių kalba","Lithuanian"],["lv","LV","latviešu valoda","Latvian"],["mk","MK","македонски јазик","Macedonian"],["mg","MG","fiteny malagasy","Malagasy"],["ms","MS","Bahasa Melayu, بهاس ملايو‎","Malay"],["ml","ML","മലയാളം","Malayalam"],["mt","MT","Malti","Maltese"],["mi","MI","te reo Māori","Maori"],["mr","MR","मराठी","Marathi"],["mn","MN","Монгол хэл","Mongolian"],["ne","NE","नेपाली","Nepali"],["no","NO","Norsk","Norwegian"],["or","OR","ଓଡ଼ିଆ","Oriya"],["pa","PA","ਪੰਜਾਬੀ, پنجابی‎","Punjabi, Panjabi"],["fa","FA","فارسی","Persian"],["pl","PL","język polski, polszczyzna","Polish"],["ps","PS","پښتو","Pashto, Pushto"],["ro","RO","Română","Romanian, Moldavian, Moldovan"],["ru","RU","русский","Russian"],["sd","SD","सिन्धी, سنڌي، سندھی‎","Sindhi"],["sm","SM","gagana fa'a Samoa","Samoan"],["sr","SR","српски језик","Serbian"],["gd","GD","Gàidhlig","Gaelic, Scottish Gaelic"],["sn","SN","chiShona","Shona"],["si","SI","සිංහල","Sinhala, Sinhalese"],["sk","SK","Slovenčina, Slovenský Jazyk","Slovak"],["sl","SL","Slovenski Jezik, Slovenščina","Slovenian"],["so","SO","Soomaaliga, af Soomaali","Somali"],["st","ST","Sesotho","Southern Sotho"],["su","SU","Basa Sunda","Sundanese"],["sw","SW","Kiswahili","Swahili"],["sv","SV","Svenska","Swedish"],["ta","TA","தமிழ்","Tamil"],["te","TE","తెలుగు","Telugu"],["tg","TG","тоҷикӣ, toçikī, تاجیکی‎","Tajik"],["th","TH","ไทย","Thai"],["tk","TK","Türkmen, Түркмен","Turkmen"],["tl","TL","Wikang Tagalog","Tagalog"],["tr","TR","Türkçe","Turkish"],["tt","TT","татар теле, tatar tele","Tatar"],["ug","UG","ئۇيغۇرچە‎, Uyghurche","Uighur, Uyghur"],["uk","UK","Українська","Ukrainian"],["ur","UR","اردو","Urdu"],["uz","UZ","Oʻzbek, Ўзбек, أۇزبېك‎","Uzbek"],["vi","VI","Tiếng Việt","Vietnamese"],["cy","CY","Cymraeg","Welsh"],["fy","FY","Frysk","Western Frisian"],["xh","XH","isiXhosa","Xhosa"],["yi","YI","ייִדיש","Yiddish"],["yo","YO","Yorùbá","Yoruba"],["zu","ZU","isiZulu","Zulu"]]},editLinks:!0,editPreambleText:"Caught a mistake or want to contribute to the documentation?",editLinkText:"Edit this page on GitHub",smoothScroll:!0,logo:"/assets/img/asterics-logo.svg",nav:[{text:"Get Started",link:"/get-started/"},{text:"Solutions",link:"/solutions/"},{text:"Tutorials",link:"/customize/"},{text:"Plugins",link:"/plugins/"},{text:"More",items:[{text:"Web Applications",items:[{text:"AsTeRICS Grid",link:"https://grid.asterics.eu"},{text:"WebACS",link:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081"},{text:"FABI WebUI",link:"https://fabi.asterics.eu"},{text:"FLipMouse WebUI",link:"https://flipmouse.asterics.eu"}]},{text:"Documentation",items:[{text:"ACS User Manual",link:"/manuals/ACS/"},{text:"WebACS User Manual",link:"/manuals/WebACS/"},{text:"FABI User Manual",link:"/manuals/fabi/"},{text:"FLipMouse User Manual",link:"/manuals/flipmouse/"},{text:"AsTeRICS Grid User Manual",link:"/manuals/asterics-grid/"},{text:"Website Editors Guide",link:"/guide/editor.html"},{text:"Developer Guide",link:"/develop/"}]},{text:"Get Involved",items:[{text:"About us",link:"/get-involved/About-us"},{text:"Contact",link:"/get-involved/Contact"},{text:"Contribute",link:"/get-involved/Contribute"},{text:"Legal Notice",link:"/get-involved/Legal-Notice"}]}]},{text:"Download",link:"https://github.com/asterics/AsTeRICS/releases/latest"}],sidebar:{"/get-started/":[["Overview.md","Overview"],["Installation.md","Installation"]],"/develop/":[{title:"Get Started",path:"/develop/get-started/",collapsable:!1,children:[["get-started/Development-Environment","Development Environment"],["get-started/Coding-Guidelines","Coding Guidelines"]]},{title:"Plugin",path:"/develop/plugin/",collapsable:!1,children:[["plugin/Plugin-Averager","Averager Example"],["plugin/Plugin-Advanced","Advanced"],["plugin/Resource-Handling","Resource Handling"],["plugin/Computer-Vision","Computer Vision"]]},{title:"ARE",path:"/develop/ARE/",collapsable:!1,children:[["ARE/ARE-Development-Manual.md","Development Manual"]]},{title:"ARE Remote APIs",path:"/develop/are-remote-apis/",collapsable:!1,children:[["are-remote-apis/Webserver","Webserver"],["are-remote-apis/REST-API","REST"],["are-remote-apis/Websocket","Websocket"]]},{title:"AsTeRICS Grid",path:"/develop/asterics-grid/",collapsable:!1,children:[["asterics-grid/01_structure.md","01 Structure"],["asterics-grid/02_tools.md","02 Tools"],["asterics-grid/03_grid.md","03 Grid"],["asterics-grid/04_vuejs.md","04 Vuejs"],["asterics-grid/05_datamodel.md","05 Datamodel"],["asterics-grid/06_data_storage.md","06 Data storage"],["asterics-grid/07_i18n.md","07 I18n"]]},{title:"AT Solution",path:"/develop/at-solution/",collapsable:!1,children:[["at-solution/AT-solution-tutorial.md","Tutorial"],["at-solution/APE","APE"]]}],"/plugins/":[["/plugins/","Plugins"],{title:"Actuators",collapsable:!0,children:[["actuators/AREWindow","AREWindow"],["actuators/AnalogOut","AnalogOut"],["actuators/AndroidPhoneControl","AndroidPhoneControl"],["actuators/Android_connection","Android Connection"],["actuators/AngularCursorControl","AngularCursorControl"],["actuators/ApplicationLauncher","ApplicationLauncher"],["actuators/BarDisplay","BarDisplay"],["actuators/CrosshairCursorControl","CrosshairCursorControl"],["actuators/DialogBox","DialogBox"],["actuators/DigitalOut","DigitalOut"],["actuators/DotMeter","DotMeter"],["actuators/EasyHomeControl","EasyHomeControl"],["actuators/EmulateFaultyPlugin","EmulateFaultyPlugin"],["actuators/EnobioDisplay","EnobioDisplay"],["actuators/Enocean","Enocean"],["actuators/EventVisualizer","EventVisualizer"],["actuators/FS20Sender","FS20Sender"],["actuators/FileWriter","FileWriter"],["actuators/FlickeringLightStimulator","FlickeringLightStimulator"],["actuators/GMailShortcuts","GMailShortcuts"],["actuators/GSMModem","GSMModem"],["actuators/IRTrans","IRTrans"],["actuators/ImageBox","ImageBox"],["actuators/Keyboard","Keyboard"],["actuators/Knx","Knx"],["actuators/LegacyDigitalOut","LegacyDigitalOut"],["actuators/LineWriter","LineWriter"],["actuators/MediaPlayer","MediaPlayer"],["actuators/MidiPlayer","MidiPlayer"],["actuators/ModelSwitcher","ModelSwitcher"],["actuators/Mouse","Mouse"],["actuators/MousecursorIcon","MousecursorIcon"],["actuators/NetConnection","NetConnection"],["actuators/OscOutClient","OscOutClient"],["actuators/Oscilloscope","Oscilloscope"],["actuators/PhilipsHue","PhilipsHue"],["actuators/PhoneControl","PhoneControl"],["actuators/PicoTTS","PicoTTS"],["actuators/PlatformDigitalOut","PlatformDigitalOut"],["actuators/PlatformLCD","PlatformLCD"],["actuators/PongGame","PongGame"],["actuators/RemoteJoystick","RemoteJoystick"],["actuators/RemoteKeyboard","RemoteKeyboard"],["actuators/RemoteMouse","RemoteMouse"],["actuators/RemoteTablet","RemoteTablet"],["actuators/RemoteWindow","RemoteWindow"],["actuators/SSVEPFileWriter","SSVEPFileWriter"],["actuators/SSVEPStimulator","SSVEPStimulator"],["actuators/SerialSender","SerialSender"],["actuators/SkyWatcherMount","SkyWatcherMount"],["actuators/SyntheticVoice","SyntheticVoice"],["actuators/TeensyRCPrototype","TeensyRCPrototype"],["actuators/TextArea","TextArea"],["actuators/TextDisplay","TextDisplay"],["actuators/ToneGenerator","ToneGenerator"],["actuators/Tooltip","Tooltip"],["actuators/WavefilePlayer","WavefilePlayer"],["actuators/WriteCSV","WriteCSV"],["actuators/WriteEDF","WriteEDF"]]},{title:"Processors",collapsable:!0,children:[["processors/AcousticScanning","AcousticScanning"],["processors/AdjustmentCurve","AdjustmentCurve"],["processors/AmazonEchoControl","AmazonEchoControl"],["processors/Amplifier","Amplifier"],["processors/Arduino","Arduino"],["processors/AudioSelector","AudioSelector"],["processors/Averager","Averager"],["processors/BasicTRalgorithms","BasicTRalgorithms"],["processors/Benchmark","Benchmark"],["processors/BlinkChangeDetector","BlinkChangeDetector"],["processors/BlinkDetection","BlinkDetection"],["processors/BlinkDetector","BlinkDetector"],["processors/BlinkDetectorTrainer","BlinkDetectorTrainer"],["processors/ComPort","ComPort"],["processors/Comparator","Comparator"],["processors/ComputeBandpower","ComputeBandpower"],["processors/ConstantDispatcher","ConstantDispatcher"],["processors/DataType","DataType"],["processors/DateToDouble","DateToDouble"],["processors/Deadzone","Deadzone"],["processors/Decimation","Decimation"],["processors/Delay","Delay"],["processors/Derivative","Derivative"],["processors/Differentiate","Differentiate"],["processors/Dissimilarity","Dissimilarity"],["processors/DoubleToString","DoubleToString"],["processors/ECMAScriptInterpreter","ECMAScriptInterpreter"],["processors/EventBlock","EventBlock"],["processors/EventCascade","EventCascade"],["processors/EventCounter","EventCounter"],["processors/EventDelay","EventDelay"],["processors/EventDispatcher","EventDispatcher"],["processors/EventFlipFlop","EventFlipFlop"],["processors/EventRouter","EventRouter"],["processors/EventStateMachine","EventStateMachine"],["processors/FABI","FABI"],["processors/FS20CommandInterpreter","FS20CommandInterpreter"],["processors/FabiCronusMax","FabiCronusMax"],["processors/Filter","Filter"],["processors/HRVAnalysis","HRVAnalysis"],["processors/HRVRmssdFromRR","HRVRmssdFromRR"],["processors/IIRFilter","IIRFilter"],["processors/IntToString","IntToString"],["processors/Integrate","Integrate"],["processors/IrMicro","IrMicro"],["processors/JsonParser","JsonParser"],["processors/MathEvaluator","MathEvaluator"],["processors/MinMax","MinMax"],["processors/MotionAnalysis","MotionAnalysis"],["processors/MultiSource","MultiSource"],["processors/MultiSourceString","MultiSourceString"],["processors/NeuralNetworkLoader","NeuralNetworkLoader"],["processors/NexusConnector","NexusConnector"],["processors/OneEventManyActions","OneEventManyActions"],["processors/OpenHAB","OpenHAB"],["processors/OscGestureFollower","OscGestureFollower"],["processors/OskaExternalScanning1D","OskaExternalScanning1D"],["processors/OskaExternalScanning2D","OskaExternalScanning2D"],["processors/OskaInternalScanning","OskaInternalScanning"],["processors/PathMultiplexer","PathMultiplexer"],["processors/Pathselector","Pathselector"],["processors/PeakDetector","PeakDetector"],["processors/ProtocolSSVEPTrain","ProtocolSSVEPTrain"],["processors/Quantizer","Quantizer"],["processors/RegularExpression","RegularExpression"],["processors/RelativeMoveSampler","RelativeMoveSampler"],["processors/SSVEPDetect","SSVEPDetect"],["processors/SampleAndHold","SampleAndHold"],["processors/Sampler","Sampler"],["processors/SerialPort","SerialPort"],["processors/SerialSender","SerialSender"],["processors/SignalTranslation","SignalTranslation"],["processors/SpeechProcessor","SpeechProcessor"],["processors/StringAppend","StringAppend"],["processors/StringDelay","StringDelay"],["processors/StringDispatcher","StringDispatcher"],["processors/StringExpander","StringExpander"],["processors/StringExtractor","StringExtractor"],["processors/StringFilter","StringFilter"],["processors/StringFormatter","StringFormatter"],["processors/StringPathMultiplexer","StringPathMultiplexer"],["processors/StringPathSelector","StringPathSelector"],["processors/StringSplitter","StringSplitter"],["processors/StringToDouble","StringToDouble"],["processors/StringToInt","StringToInt"],["processors/TextSender","TextSender"],["processors/Threshold","Threshold"],["processors/TimestampWriter","TimestampWriter"],["processors/UniversalRemoteControl","UniversalRemoteControl"],["processors/WebSocket","WebSocket"],["processors/Yaak","Yaak"],["processors/eg_example","Eg Example"]]},{title:"Sensors",collapsable:!0,children:[["sensors/Acceleration","Acceleration"],["sensors/AnalogIn","AnalogIn"],["sensors/AutostartEvent","AutostartEvent"],["sensors/ButtonGrid","ButtonGrid"],["sensors/CellBoard","CellBoard"],["sensors/DigitalIn","DigitalIn"],["sensors/EOG","EOG"],["sensors/EShoe","EShoe"],["sensors/EditBox","EditBox"],["sensors/Enobio","Enobio"],["sensors/EventGenerator","EventGenerator"],["sensors/EyeTribe","EyeTribe"],["sensors/EyeX","EyeX"],["sensors/Eyetracker","Eyetracker"],["sensors/FS20Receiver","FS20Receiver"],["sensors/FacetrackerCLM","FacetrackerCLM"],["sensors/FacetrackerLK","FacetrackerLK"],["sensors/FolderBrowser","FolderBrowser"],["sensors/HeadPositionHC","HeadPositionHC"],["sensors/HoverPanel","HoverPanel"],["sensors/IntelRealSense","IntelRealSense"],["sensors/JoystickCapture","JoystickCapture"],["sensors/KeyCapture","KeyCapture"],["sensors/KeyboardCapture","KeyboardCapture"],["sensors/Kinect","Kinect"],["sensors/KinectJ4K","KinectJ4K"],["sensors/LegacyAnalogIn","LegacyAnalogIn"],["sensors/LegacyDigitalIn","LegacyDigitalIn"],["sensors/Lightscore","Lightscore"],["sensors/LineReader","LineReader"],["sensors/Lipmouse","Lipmouse"],["sensors/LipmouseIR","LipmouseIR"],["sensors/MicGPI","MicGPI"],["sensors/MouseCapture","MouseCapture"],["sensors/OpenBCI","OpenBCI"],["sensors/OpenVibe","OpenVibe"],["sensors/OscServer","OscServer"],["sensors/P2_Parser","P2 Parser"],["sensors/PhilipsHueSensor","PhilipsHueSensor"],["sensors/PlatformAnalogIn","PlatformAnalogIn"],["sensors/PlatformDigitalIn","PlatformDigitalIn"],["sensors/Proximity","Proximity"],["sensors/RFIDReader","RFIDReader"],["sensors/RandomNumber","RandomNumber"],["sensors/RazorIMU","RazorIMU"],["sensors/ReadCSV","ReadCSV"],["sensors/ReadEDF","ReadEDF"],["sensors/Sensorboard","Sensorboard"],["sensors/SignalGenerator","SignalGenerator"],["sensors/SignalShaper","SignalShaper"],["sensors/Slider","Slider"],["sensors/SpaceNavigator3DMouse","SpaceNavigator3DMouse"],["sensors/TextfieldReader","TextfieldReader"],["sensors/Timer","Timer"],["sensors/TobiTic","TobiTic"],["sensors/Tobii4CHeadTracker","Tobii4CHeadTracker"],["sensors/TrackIR","TrackIR"],["sensors/TuioReactivision","TuioReactivision"],["sensors/WiiMote","WiiMote"],["sensors/XFacetrackerLK","XFacetrackerLK"]]}],"/manuals/ACS/":[{title:"ACS",path:"/manuals/ACS/",collapsable:!1,sidebarDepth:1,children:[["/manuals/ACS/Actuators","Actuators"],["/manuals/ACS/Channels","Channels"],["/manuals/ACS/Colours_settings","Colours Settings"],["/manuals/ACS/Component_Collection_Manager","Component Collection Manager"],["/manuals/ACS/Component_Context_Menu","Component Context Menu"],["/manuals/ACS/Connected","Connected"],["/manuals/ACS/Control_the_ARE","Control The ARE"],["/manuals/ACS/Create_and_Edit_a_Model","Create And Edit A Model"],["/manuals/ACS/Dialogs_settings","Dialogs Settings"],["/manuals/ACS/Disconnected","Disconnected"],["/manuals/ACS/Events","Events"],["/manuals/ACS/External_Tools","External Tools"],["/manuals/ACS/External_Tools_Options","External Tools Options"],["/manuals/ACS/GUI_Designer","GUI Designer"],["/manuals/ACS/General_settings","General Settings"],["/manuals/ACS/Keyboard_control","Keyboard Control"],["/manuals/ACS/Load_and_Save_Models","Load And Save Models"],["/manuals/ACS/Miscellaneous","Miscellaneous"],["/manuals/ACS/Modes","Modes"],["/manuals/ACS/Options","Options"],["/manuals/ACS/Pause","Pause"],["/manuals/ACS/Print","Print"],["/manuals/ACS/Processors","Processors"],["/manuals/ACS/Running","Running"],["/manuals/ACS/Sensors","Sensors"],["/manuals/ACS/Setting_the_Properties","Setting The Properties"],["/manuals/ACS/Status_Reporting_and_Error_Logging","Status Reporting And Error Logging"],["/manuals/ACS/Synchronized","Synchronized"],["/manuals/ACS/The_Edit_Tab","The Edit Tab"],["/manuals/ACS/Tooltips","Tooltips"]]}],"/manuals/asterics-grid/":[{title:"AsTeRICS Grid",path:"/manuals/asterics-grid/",collapsable:!1,sidebarDepth:1,children:[["/manuals/asterics-grid/010_settings","010 Settings"],["/manuals/asterics-grid/01_terms","01 Terms"],["/manuals/asterics-grid/02_navigation","02 Navigation"],["/manuals/asterics-grid/03_appearance_layout","03 Appearance Layout"],["/manuals/asterics-grid/04_input_options","04 Input Options"],["/manuals/asterics-grid/05_actions","05 Actions"],["/manuals/asterics-grid/06_users","06 Users"],["/manuals/asterics-grid/07_dictionaries","07 Dictionaries"],["/manuals/asterics-grid/08_keyboard_shortcuts","08 Keyboard Shortcuts"],["/manuals/asterics-grid/09_translation","09 Translation"],["/manuals/asterics-grid/10_faq","10 Faq"],["/manuals/asterics-grid/10_word_forms","10 Word Forms"],["/manuals/asterics-grid/513_http-action-tutorials","513 Http-action-tutorials"],["/manuals/asterics-grid/514_uart-action-tutorials","514 Uart-action-tutorials"]]}],"/manuals/WebACS/":[{title:"WebACS",path:"/manuals/WebACS/",collapsable:!1,sidebarDepth:1,children:[["/manuals/WebACS/AREStatus","AREStatus"],["/manuals/WebACS/Channels","Channels"],["/manuals/WebACS/Control_the_ARE","Control The ARE"],["/manuals/WebACS/Create_and_Edit_a_Model","Create And Edit A Model"],["/manuals/WebACS/Events","Events"],["/manuals/WebACS/GUI_Designer","GUI Designer"],["/manuals/WebACS/Keyboard_control","Keyboard Control"],["/manuals/WebACS/List_View","List View"],["/manuals/WebACS/Miscellaneous","Miscellaneous"],["/manuals/WebACS/Open_and_Save_Models","Open And Save Models"],["/manuals/WebACS/Setting_the_Properties","Setting The Properties"],["/manuals/WebACS/The_Edit_Tab","The Edit Tab"]]}],"/manuals/":[["/manuals/ACS/","ACS"],["/manuals/WebACS/","WebACS"],["/manuals/fabi/","FABI"],["/manuals/flipmouse/","FLipMouse"],["/manuals/asterics-grid/","AsTeRICS Grid"]],"/customize/":[{title:"Model",path:"/customize/model/",collapsable:!1,children:[["model/Model-Customization","Customization"],["model/Model-Creation","Creation"]]},{title:"AsTeRICS Grid",path:"/customize/grid/",collapsable:!1,children:[["grid/Grid-Customization","Customization"],["grid/Grid-Creation","Creation"]]},{title:"Environmental Control",path:"/customize/environmental-control/",collapsable:!1},{title:"Gaming, Toys & Music",path:"/customize/gaming-toys-music/",collapsable:!1},{title:"Other",path:"/customize/other/",collapsable:!1}]},sidebarDepth:3,lastUpdated:"Last Updated",docsRepo:"asterics/asterics-docs",docsDir:"docs",docsBranch:"master"}};c(255);function xt(e,t){var c=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),c.push.apply(c,a)}return c}function Pt(e){for(var t=1;te.length)&&(t=e.length);for(var c=0,a=new Array(t);c0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function Pc(e){for(var t=[],c=(e||[]).length>>>0;c--;)t[c]=e[c];return t}function wc(e){return e.classList?Pc(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function kc(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Ac(e){return Object.keys(e||{}).reduce((function(t,c){return t+"".concat(c,": ").concat(e[c].trim(),";")}),"")}function Ec(e){return e.size!==Sc.size||e.x!==Sc.x||e.y!==Sc.y||e.rotate!==Sc.rotate||e.flipX||e.flipY}function Nc(){var e="svg-inline--fa",t=Vc.cssPrefix,c=Vc.replacementClass,a=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if("fa"!==t||c!==e){var i=new RegExp("\\.".concat("fa","\\-"),"g"),n=new RegExp("\\--".concat("fa","\\-"),"g"),s=new RegExp("\\.".concat(e),"g");a=a.replace(i,".".concat(t,"-")).replace(n,"--".concat(t,"-")).replace(s,".".concat(c))}return a}var Tc=!1;function Dc(){Vc.autoAddCss&&!Tc&&(!function(e){if(e&&Jt){var t=Zt.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var c=Zt.head.childNodes,a=null,i=c.length-1;i>-1;i--){var n=c[i],s=(n.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(s)>-1&&(a=n)}Zt.head.insertBefore(t,a)}}(Nc()),Tc=!0)}var Rc={mixout:function(){return{dom:{css:Nc,insertCss:Dc}}},hooks:function(){return{beforeDOMElementCreation:function(){Dc()},beforeI2svg:function(){Dc()}}}},_c=Kt||{};_c.___FONT_AWESOME___||(_c.___FONT_AWESOME___={}),_c.___FONT_AWESOME___.styles||(_c.___FONT_AWESOME___.styles={}),_c.___FONT_AWESOME___.hooks||(_c.___FONT_AWESOME___.hooks={}),_c.___FONT_AWESOME___.shims||(_c.___FONT_AWESOME___.shims=[]);var Oc=_c.___FONT_AWESOME___,Ic=[],jc=!1;function Fc(e){Jt&&(jc?setTimeout(e,0):Ic.push(e))}function Bc(e){var t=e.tag,c=e.attributes,a=void 0===c?{}:c,i=e.children,n=void 0===i?[]:i;return"string"==typeof e?kc(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,c){return t+"".concat(c,'="').concat(kc(e[c]),'" ')}),"").trim()}(a),">").concat(n.map(Bc).join(""),"")}function $c(e,t,c){if(e&&e[t]&&e[t][c])return{prefix:t,iconName:c,icon:e[t][c]}}Jt&&((jc=(Zt.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Zt.readyState))||Zt.addEventListener("DOMContentLoaded",(function e(){Zt.removeEventListener("DOMContentLoaded",e),jc=1,Ic.map((function(e){return e()}))})));var qc=function(e,t,c,a){var i,n,s,r=Object.keys(e),o=r.length,l=void 0!==a?function(e,t){return function(c,a,i,n){return e.call(t,c,a,i,n)}}(t,a):t;for(void 0===c?(i=1,s=e[r[0]]):(i=0,s=c);i=55296&&i<=56319&&c2&&void 0!==arguments[2]?arguments[2]:{},a=c.skipHooks,i=void 0!==a&&a,n=Wc(t);"function"!=typeof Oc.hooks.addPack||i?Oc.styles[e]=Pt(Pt({},Oc.styles[e]||{}),n):Oc.hooks.addPack(e,Wc(t)),"fas"===e&&Uc("fa",t)}var Kc,Zc,Yc,Xc=Oc.styles,Jc=Oc.shims,Qc=(At(Kc={},"classic",Object.values(sc.classic)),At(Kc,"sharp",Object.values(sc.sharp)),Kc),ea=null,ta={},ca={},aa={},ia={},na={},sa=(At(Zc={},"classic",Object.keys(ic.classic)),At(Zc,"sharp",Object.keys(ic.sharp)),Zc);function ra(e,t){var c,a=t.split("-"),i=a[0],n=a.slice(1).join("-");return i!==e||""===n||(c=n,~bc.indexOf(c))?null:n}var oa,la=function(){var e=function(e){return qc(Xc,(function(t,c,a){return t[a]=qc(c,e,{}),t}),{})};ta=e((function(e,t,c){(t[3]&&(e[t[3]]=c),t[2])&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=c}));return e})),ca=e((function(e,t,c){(e[c]=c,t[2])&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=c}));return e})),na=e((function(e,t,c){var a=t[2];return e[c]=c,a.forEach((function(t){e[t]=c})),e}));var t="far"in Xc||Vc.autoFetchSvg,c=qc(Jc,(function(e,c){var a=c[0],i=c[1],n=c[2];return"far"!==i||t||(i="fas"),"string"==typeof a&&(e.names[a]={prefix:i,iconName:n}),"number"==typeof a&&(e.unicodes[a.toString(16)]={prefix:i,iconName:n}),e}),{names:{},unicodes:{}});aa=c.names,ia=c.unicodes,ea=da(Vc.styleDefault,{family:Vc.familyDefault})};function ua(e,t){return(ta[e]||{})[t]}function pa(e,t){return(na[e]||{})[t]}function fa(e){return aa[e]||{prefix:null,iconName:null}}function ma(){return ea}oa=function(e){ea=da(e.styleDefault,{family:Vc.familyDefault})},yc.push(oa),la();function da(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.family,a=void 0===c?"classic":c,i=ic[a][e],n=nc[a][e]||nc[a][i],s=e in Oc.styles?e:null;return n||s||null}var ha=(At(Yc={},"classic",Object.keys(sc.classic)),At(Yc,"sharp",Object.keys(sc.sharp)),Yc);function va(e){var t,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=c.skipLookups,i=void 0!==a&&a,n=(At(t={},"classic","".concat(Vc.cssPrefix,"-").concat("classic")),At(t,"sharp","".concat(Vc.cssPrefix,"-").concat("sharp")),t),s=null,r="classic";(e.includes(n.classic)||e.some((function(e){return ha.classic.includes(e)})))&&(r="classic"),(e.includes(n.sharp)||e.some((function(e){return ha.sharp.includes(e)})))&&(r="sharp");var o=e.reduce((function(e,t){var c=ra(Vc.cssPrefix,t);if(Xc[t]?(t=Qc[r].includes(t)?rc[r][t]:t,s=t,e.prefix=t):sa[r].indexOf(t)>-1?(s=t,e.prefix=da(t,{family:r})):c?e.iconName=c:t!==Vc.replacementClass&&t!==n.classic&&t!==n.sharp&&e.rest.push(t),!i&&e.prefix&&e.iconName){var a="fa"===s?fa(e.iconName):{},o=pa(e.prefix,e.iconName);a.prefix&&(s=null),e.iconName=a.iconName||o||e.iconName,e.prefix=a.prefix||e.prefix,"far"!==e.prefix||Xc.far||!Xc.fas||Vc.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return(e.includes("fa-brands")||e.includes("fab"))&&(o.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(o.prefix="fad"),o.prefix||"sharp"!==r||!Xc.fass&&!Vc.autoFetchSvg||(o.prefix="fass",o.iconName=pa(o.prefix,o.iconName)||o.iconName),"fa"!==o.prefix&&"fa"!==s||(o.prefix=ma()||"fas"),o}var za=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,c,a;return t=e,(c=[{key:"add",value:function(){for(var e=this,t=arguments.length,c=new Array(t),a=0;a0&&r.forEach((function(t){"string"==typeof t&&(e[i][t]=s)})),e[i][n]=s})),e}}])&&kt(t.prototype,c),a&&kt(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}(),ba=[],Ca={},Ma={},Ha=Object.keys(Ma);function Va(e,t){for(var c=arguments.length,a=new Array(c>2?c-2:0),i=2;i1?t-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{};return Jt?(ya("beforeI2svg",e),La("pseudoElements2svg",e),La("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===Vc.autoReplaceSvg&&(Vc.autoReplaceSvg=!0),Vc.observeMutations=!0,Fc((function(){ka({autoReplaceSvgRoot:t}),ya("watch",e)}))}},wa={noAuto:function(){Vc.autoReplaceSvg=!1,Vc.observeMutations=!1,ya("noAuto")},config:Vc,dom:Pa,parse:{icon:function(e){if(null===e)return null;if("object"===wt(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:pa(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],c=da(e[0]);return{prefix:c,iconName:pa(c,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(Vc.cssPrefix,"-"))>-1||e.match(oc))){var a=va(e.split(" "),{skipLookups:!0});return{prefix:a.prefix||ma(),iconName:pa(a.prefix,a.iconName)||a.iconName}}if("string"==typeof e){var i=ma();return{prefix:i,iconName:pa(i,e)||e}}}},library:xa,findIconDefinition:Sa,toHtml:Bc},ka=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,c=void 0===t?Zt:t;(Object.keys(Oc.styles).length>0||Vc.autoFetchSvg)&&Jt&&Vc.autoReplaceSvg&&wa.dom.i2svg({node:c})};function Aa(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Bc(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(Jt){var t=Zt.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function Ea(e){var t=e.icons,c=t.main,a=t.mask,i=e.prefix,n=e.iconName,s=e.transform,r=e.symbol,o=e.title,l=e.maskId,u=e.titleId,p=e.extra,f=e.watchable,m=void 0!==f&&f,d=a.found?a:c,h=d.width,v=d.height,g="fak"===i,z=[Vc.replacementClass,n?"".concat(Vc.cssPrefix,"-").concat(n):""].filter((function(e){return-1===p.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(p.classes).join(" "),b={children:[],attributes:Pt(Pt({},p.attributes),{},{"data-prefix":i,"data-icon":n,class:z,role:p.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(h," ").concat(v)})},C=g&&!~p.classes.indexOf("fa-fw")?{width:"".concat(h/v*16*.0625,"em")}:{};m&&(b.attributes["data-fa-i2svg"]=""),o&&(b.children.push({tag:"title",attributes:{id:b.attributes["aria-labelledby"]||"title-".concat(u||xc())},children:[o]}),delete b.attributes.title);var M=Pt(Pt({},b),{},{prefix:i,iconName:n,main:c,mask:a,maskId:l,transform:s,symbol:r,styles:Pt(Pt({},C),p.styles)}),H=a.found&&c.found?La("generateAbstractMask",M)||{children:[],attributes:{}}:La("generateAbstractIcon",M)||{children:[],attributes:{}},V=H.children,y=H.attributes;return M.children=V,M.attributes=y,r?function(e){var t=e.prefix,c=e.iconName,a=e.children,i=e.attributes,n=e.symbol,s=!0===n?"".concat(t,"-").concat(Vc.cssPrefix,"-").concat(c):n;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Pt(Pt({},i),{},{id:s}),children:a}]}]}(M):function(e){var t=e.children,c=e.main,a=e.mask,i=e.attributes,n=e.styles,s=e.transform;if(Ec(s)&&c.found&&!a.found){var r={x:c.width/c.height/2,y:.5};i.style=Ac(Pt(Pt({},n),{},{"transform-origin":"".concat(r.x+s.x/16,"em ").concat(r.y+s.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}(M)}function Na(e){var t=e.content,c=e.width,a=e.height,i=e.transform,n=e.title,s=e.extra,r=e.watchable,o=void 0!==r&&r,l=Pt(Pt(Pt({},s.attributes),n?{title:n}:{}),{},{class:s.classes.join(" ")});o&&(l["data-fa-i2svg"]="");var u=Pt({},s.styles);Ec(i)&&(u.transform=function(e){var t=e.transform,c=e.width,a=void 0===c?16:c,i=e.height,n=void 0===i?16:i,s=e.startCentered,r=void 0!==s&&s,o="";return o+=r&&Qt?"translate(".concat(t.x/Lc-a/2,"em, ").concat(t.y/Lc-n/2,"em) "):r?"translate(calc(-50% + ".concat(t.x/Lc,"em), calc(-50% + ").concat(t.y/Lc,"em)) "):"translate(".concat(t.x/Lc,"em, ").concat(t.y/Lc,"em) "),o+="scale(".concat(t.size/Lc*(t.flipX?-1:1),", ").concat(t.size/Lc*(t.flipY?-1:1),") "),o+="rotate(".concat(t.rotate,"deg) ")}({transform:i,startCentered:!0,width:c,height:a}),u["-webkit-transform"]=u.transform);var p=Ac(u);p.length>0&&(l.style=p);var f=[];return f.push({tag:"span",attributes:l,children:[t]}),n&&f.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),f}function Ta(e){var t=e.content,c=e.title,a=e.extra,i=Pt(Pt(Pt({},a.attributes),c?{title:c}:{}),{},{class:a.classes.join(" ")}),n=Ac(a.styles);n.length>0&&(i.style=n);var s=[];return s.push({tag:"span",attributes:i,children:[t]}),c&&s.push({tag:"span",attributes:{class:"sr-only"},children:[c]}),s}var Da=Oc.styles;function Ra(e){var t=e[0],c=e[1],a=Et(e.slice(4),1)[0];return{found:!0,width:t,height:c,icon:Array.isArray(a)?{tag:"g",attributes:{class:"".concat(Vc.cssPrefix,"-").concat(dc)},children:[{tag:"path",attributes:{class:"".concat(Vc.cssPrefix,"-").concat(gc),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(Vc.cssPrefix,"-").concat(vc),fill:"currentColor",d:a[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:a}}}}var _a={found:!1,width:512,height:512};function Oa(e,t){var c=t;return"fa"===t&&null!==Vc.styleDefault&&(t=ma()),new Promise((function(a,i){La("missingIconAbstract");if("fa"===c){var n=fa(e)||{};e=n.iconName||e,t=n.prefix||t}if(e&&t&&Da[t]&&Da[t][e])return a(Ra(Da[t][e]));!function(e,t){tc||Vc.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),a(Pt(Pt({},_a),{},{icon:Vc.showMissingIcons&&e&&La("missingIconAbstract")||{}}))}))}var Ia=function(){},ja=Vc.measurePerformance&&Xt&&Xt.mark&&Xt.measure?Xt:{mark:Ia,measure:Ia},Fa=function(e){ja.mark("".concat('FA "6.4.0"'," ").concat(e," ends")),ja.measure("".concat('FA "6.4.0"'," ").concat(e),"".concat('FA "6.4.0"'," ").concat(e," begins"),"".concat('FA "6.4.0"'," ").concat(e," ends"))},Ba=function(e){return ja.mark("".concat('FA "6.4.0"'," ").concat(e," begins")),function(){return Fa(e)}},$a=function(){};function qa(e){return"string"==typeof(e.getAttribute?e.getAttribute("data-fa-i2svg"):null)}function Ga(e){return Zt.createElementNS("http://www.w3.org/2000/svg",e)}function Wa(e){return Zt.createElement(e)}var Ua={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(function e(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=c.ceFn,i=void 0===a?"svg"===t.tag?Ga:Wa:a;if("string"==typeof t)return Zt.createTextNode(t);var n=i(t.tag);Object.keys(t.attributes||[]).forEach((function(e){n.setAttribute(e,t.attributes[e])}));var s=t.children||[];return s.forEach((function(t){n.appendChild(e(t,{ceFn:i}))})),n}(e),t)})),null===t.getAttribute("data-fa-i2svg")&&Vc.keepOriginalSource){var c=Zt.createComment(function(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(c,t)}else t.remove()},nest:function(e){var t=e[0],c=e[1];if(~wc(t).indexOf(Vc.replacementClass))return Ua.replace(e);var a=new RegExp("".concat(Vc.cssPrefix,"-.*"));if(delete c[0].attributes.id,c[0].attributes.class){var i=c[0].attributes.class.split(" ").reduce((function(e,t){return t===Vc.replacementClass||t.match(a)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});c[0].attributes.class=i.toSvg.join(" "),0===i.toNode.length?t.removeAttribute("class"):t.setAttribute("class",i.toNode.join(" "))}var n=c.map((function(e){return Bc(e)})).join("\n");t.setAttribute("data-fa-i2svg",""),t.innerHTML=n}};function Ka(e){e()}function Za(e,t){var c="function"==typeof t?t:$a;if(0===e.length)c();else{var a=Ka;"async"===Vc.mutateApproach&&(a=Kt.requestAnimationFrame||Ka),a((function(){var t=!0===Vc.autoReplaceSvg?Ua.replace:Ua[Vc.autoReplaceSvg]||Ua.replace,a=Ba("mutate");e.map(t),a(),c()}))}}var Ya=!1;function Xa(){Ya=!0}function Ja(){Ya=!1}var Qa=null;function ei(e){if(Yt&&Vc.observeMutations){var t=e.treeCallback,c=void 0===t?$a:t,a=e.nodeCallback,i=void 0===a?$a:a,n=e.pseudoElementsCallback,s=void 0===n?$a:n,r=e.observeMutationsRoot,o=void 0===r?Zt:r;Qa=new Yt((function(e){if(!Ya){var t=ma();Pc(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!qa(e.addedNodes[0])&&(Vc.searchPseudoElements&&s(e.target),c(e.target)),"attributes"===e.type&&e.target.parentNode&&Vc.searchPseudoElements&&s(e.target.parentNode),"attributes"===e.type&&qa(e.target)&&~mc.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute("data-prefix"):null,c=e.getAttribute?e.getAttribute("data-icon"):null;return t&&c}(e.target)){var a=va(wc(e.target)),n=a.prefix,r=a.iconName;e.target.setAttribute("data-prefix",n||t),r&&e.target.setAttribute("data-icon",r)}else(o=e.target)&&o.classList&&o.classList.contains&&o.classList.contains(Vc.replacementClass)&&i(e.target);var o}))}})),Jt&&Qa.observe(o,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function ti(e){var t=e.getAttribute("style"),c=[];return t&&(c=t.split(";").reduce((function(e,t){var c=t.split(":"),a=c[0],i=c.slice(1);return a&&i.length>0&&(e[a]=i.join(":").trim()),e}),{})),c}function ci(e){var t=e.getAttribute("data-prefix"),c=e.getAttribute("data-icon"),a=void 0!==e.innerText?e.innerText.trim():"",i=va(wc(e));return i.prefix||(i.prefix=ma()),t&&c&&(i.prefix=t,i.iconName=c),i.iconName&&i.prefix||(i.prefix&&a.length>0&&(i.iconName=function(e,t){return(ca[e]||{})[t]}(i.prefix,e.innerText)||ua(i.prefix,Gc(e.innerText))),!i.iconName&&Vc.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function ai(e){var t=Pc(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),c=e.getAttribute("title"),a=e.getAttribute("data-fa-title-id");return Vc.autoA11y&&(c?t["aria-labelledby"]="".concat(Vc.replacementClass,"-title-").concat(a||xc()):(t["aria-hidden"]="true",t.focusable="false")),t}function ii(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},c=ci(e),a=c.iconName,i=c.prefix,n=c.rest,s=ai(e),r=Va("parseNodeAttributes",{},e),o=t.styleParser?ti(e):[];return Pt({iconName:a,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:i,transform:Sc,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:n,styles:o,attributes:s}},r)}var ni=Oc.styles;function si(e){var t="nest"===Vc.autoReplaceSvg?ii(e,{styleParser:!1}):ii(e);return~t.extra.classes.indexOf("fa-layers-text")?La("generateLayersText",e,t):La("generateSvgReplacementMutation",e,t)}var ri=new Set;function oi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!Jt)return Promise.resolve();var c=Zt.documentElement.classList,a=function(e){return c.add("".concat("fontawesome-i2svg","-").concat(e))},i=function(e){return c.remove("".concat("fontawesome-i2svg","-").concat(e))},n=Vc.autoFetchSvg?ri:cc.map((function(e){return"fa-".concat(e)})).concat(Object.keys(ni));n.includes("fa")||n.push("fa");var s=[".".concat("fa-layers-text",":not([").concat("data-fa-i2svg","])")].concat(n.map((function(e){return".".concat(e,":not([").concat("data-fa-i2svg","])")}))).join(", ");if(0===s.length)return Promise.resolve();var r=[];try{r=Pc(e.querySelectorAll(s))}catch(e){}if(!(r.length>0))return Promise.resolve();a("pending"),i("complete");var o=Ba("onTree"),l=r.reduce((function(e,t){try{var c=si(t);c&&e.push(c)}catch(e){tc||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,c){Promise.all(l).then((function(c){Za(c,(function(){a("active"),a("complete"),i("pending"),"function"==typeof t&&t(),o(),e()}))})).catch((function(e){o(),c(e)}))}))}function li(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;si(e).then((function(e){e&&Za([e],t)}))}cc.map((function(e){ri.add("fa-".concat(e))})),Object.keys(ic.classic).map(ri.add.bind(ri)),Object.keys(ic.sharp).map(ri.add.bind(ri)),ri=Nt(ri);var ui=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.transform,a=void 0===c?Sc:c,i=t.symbol,n=void 0!==i&&i,s=t.mask,r=void 0===s?null:s,o=t.maskId,l=void 0===o?null:o,u=t.title,p=void 0===u?null:u,f=t.titleId,m=void 0===f?null:f,d=t.classes,h=void 0===d?[]:d,v=t.attributes,g=void 0===v?{}:v,z=t.styles,b=void 0===z?{}:z;if(e){var C=e.prefix,M=e.iconName,H=e.icon;return Aa(Pt({type:"icon"},e),(function(){return ya("beforeDOMElementCreation",{iconDefinition:e,params:t}),Vc.autoA11y&&(p?g["aria-labelledby"]="".concat(Vc.replacementClass,"-title-").concat(m||xc()):(g["aria-hidden"]="true",g.focusable="false")),Ea({icons:{main:Ra(H),mask:r?Ra(r.icon):{found:!1,width:null,height:null,icon:{}}},prefix:C,iconName:M,transform:Pt(Pt({},Sc),a),symbol:n,title:p,maskId:l,titleId:m,extra:{attributes:g,styles:b,classes:h}})}))}},pi={mixout:function(){return{icon:(e=ui,function(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(t||{}).icon?t:Sa(t||{}),i=c.mask;return i&&(i=(i||{}).icon?i:Sa(i||{})),e(a,Pt(Pt({},c),{},{mask:i}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=oi,e.nodeCallback=li,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,c=void 0===t?Zt:t,a=e.callback;return oi(c,void 0===a?function(){}:a)},e.generateSvgReplacementMutation=function(e,t){var c=t.iconName,a=t.title,i=t.titleId,n=t.prefix,s=t.transform,r=t.symbol,o=t.mask,l=t.maskId,u=t.extra;return new Promise((function(t,p){Promise.all([Oa(c,n),o.iconName?Oa(o.iconName,o.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(o){var p=Et(o,2),f=p[0],m=p[1];t([e,Ea({icons:{main:f,mask:m},prefix:n,iconName:c,transform:s,symbol:r,maskId:l,title:a,titleId:i,extra:u,watchable:!0})])})).catch(p)}))},e.generateAbstractIcon=function(e){var t,c=e.children,a=e.attributes,i=e.main,n=e.transform,s=Ac(e.styles);return s.length>0&&(a.style=s),Ec(n)&&(t=La("generateAbstractTransformGrouping",{main:i,transform:n,containerWidth:i.width,iconWidth:i.width})),c.push(t||i.icon),{children:c,attributes:a}}}},fi={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.classes,a=void 0===c?[]:c;return Aa({type:"layer"},(function(){ya("beforeDOMElementCreation",{assembler:e,params:t});var c=[];return e((function(e){Array.isArray(e)?e.map((function(e){c=c.concat(e.abstract)})):c=c.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(Vc.cssPrefix,"-layers")].concat(Nt(a)).join(" ")},children:c}]}))}}}},mi={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.title,a=void 0===c?null:c,i=t.classes,n=void 0===i?[]:i,s=t.attributes,r=void 0===s?{}:s,o=t.styles,l=void 0===o?{}:o;return Aa({type:"counter",content:e},(function(){return ya("beforeDOMElementCreation",{content:e,params:t}),Ta({content:e.toString(),title:a,extra:{attributes:r,styles:l,classes:["".concat(Vc.cssPrefix,"-layers-counter")].concat(Nt(n))}})}))}}}},di={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.transform,a=void 0===c?Sc:c,i=t.title,n=void 0===i?null:i,s=t.classes,r=void 0===s?[]:s,o=t.attributes,l=void 0===o?{}:o,u=t.styles,p=void 0===u?{}:u;return Aa({type:"text",content:e},(function(){return ya("beforeDOMElementCreation",{content:e,params:t}),Na({content:e,transform:Pt(Pt({},Sc),a),title:n,extra:{attributes:l,styles:p,classes:["".concat(Vc.cssPrefix,"-layers-text")].concat(Nt(r))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var c=t.title,a=t.transform,i=t.extra,n=null,s=null;if(Qt){var r=parseInt(getComputedStyle(e).fontSize,10),o=e.getBoundingClientRect();n=o.width/r,s=o.height/r}return Vc.autoA11y&&!c&&(i.attributes["aria-hidden"]="true"),Promise.resolve([e,Na({content:e.innerHTML,width:n,height:s,transform:a,title:c,extra:i,watchable:!0})])}}},hi=new RegExp('"',"ug"),vi=[1105920,1112319];function gi(e,t){var c="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(a,i){if(null!==e.getAttribute(c))return a();var n,s,r,o=Pc(e.children).filter((function(e){return e.getAttribute("data-fa-pseudo-element")===t}))[0],l=Kt.getComputedStyle(e,t),u=l.getPropertyValue("font-family").match(lc),p=l.getPropertyValue("font-weight"),f=l.getPropertyValue("content");if(o&&!u)return e.removeChild(o),a();if(u&&"none"!==f&&""!==f){var m=l.getPropertyValue("content"),d=~["Sharp"].indexOf(u[2])?"sharp":"classic",h=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(u[2])?nc[d][u[2].toLowerCase()]:uc[d][p],v=function(e){var t,c,a,i,n,s=e.replace(hi,""),r=(c=0,i=(t=s).length,(n=t.charCodeAt(c))>=55296&&n<=56319&&i>c+1&&(a=t.charCodeAt(c+1))>=56320&&a<=57343?1024*(n-55296)+a-56320+65536:n),o=r>=vi[0]&&r<=vi[1],l=2===s.length&&s[0]===s[1];return{value:Gc(l?s[0]:s),isSecondary:o||l}}(m),g=v.value,z=v.isSecondary,b=u[0].startsWith("FontAwesome"),C=ua(h,g),M=C;if(b){var H=(s=ia[n=g],r=ua("fas",n),s||(r?{prefix:"fas",iconName:r}:null)||{prefix:null,iconName:null});H.iconName&&H.prefix&&(C=H.iconName,h=H.prefix)}if(!C||z||o&&o.getAttribute("data-prefix")===h&&o.getAttribute("data-icon")===M)a();else{e.setAttribute(c,M),o&&e.removeChild(o);var V={iconName:null,title:null,titleId:null,prefix:null,transform:Sc,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},y=V.extra;y.attributes["data-fa-pseudo-element"]=t,Oa(C,h).then((function(i){var n=Ea(Pt(Pt({},V),{},{icons:{main:i,mask:{prefix:null,iconName:null,rest:[]}},prefix:h,iconName:M,extra:y,watchable:!0})),s=Zt.createElement("svg");"::before"===t?e.insertBefore(s,e.firstChild):e.appendChild(s),s.outerHTML=n.map((function(e){return Bc(e)})).join("\n"),e.removeAttribute(c),a()})).catch(i)}}else a()}))}function zi(e){return Promise.all([gi(e,"::before"),gi(e,"::after")])}function bi(e){return!(e.parentNode===document.head||~ec.indexOf(e.tagName.toUpperCase())||e.getAttribute("data-fa-pseudo-element")||e.parentNode&&"svg"===e.parentNode.tagName)}function Ci(e){if(Jt)return new Promise((function(t,c){var a=Pc(e.querySelectorAll("*")).filter(bi).map(zi),i=Ba("searchPseudoElements");Xa(),Promise.all(a).then((function(){i(),Ja(),t()})).catch((function(){i(),Ja(),c()}))}))}var Mi=!1,Hi=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var c=t.toLowerCase().split("-"),a=c[0],i=c.slice(1).join("-");if(a&&"h"===i)return e.flipX=!0,e;if(a&&"v"===i)return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(a){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},Vi={x:0,y:0,width:"100%",height:"100%"};function yi(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}!function(e,t){var c=t.mixoutsTo;ba=e,Ca={},Object.keys(Ma).forEach((function(e){-1===Ha.indexOf(e)&&delete Ma[e]})),ba.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(c[e]=t[e]),"object"===wt(t[e])&&Object.keys(t[e]).forEach((function(a){c[e]||(c[e]={}),c[e][a]=t[e][a]}))})),e.hooks){var a=e.hooks();Object.keys(a).forEach((function(e){Ca[e]||(Ca[e]=[]),Ca[e].push(a[e])}))}e.provides&&e.provides(Ma)}))}([Rc,pi,fi,mi,di,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=Ci,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,c=void 0===t?Zt:t;Vc.searchPseudoElements&&Ci(c)}}},{mixout:function(){return{dom:{unwatch:function(){Xa(),Mi=!0}}}},hooks:function(){return{bootstrap:function(){ei(Va("mutationObserverCallbacks",{}))},noAuto:function(){Qa&&Qa.disconnect()},watch:function(e){var t=e.observeMutationsRoot;Mi?Ja():ei(Va("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},{mixout:function(){return{parse:{transform:function(e){return Hi(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var c=t.getAttribute("data-fa-transform");return c&&(e.transform=Hi(c)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,c=e.transform,a=e.containerWidth,i=e.iconWidth,n={transform:"translate(".concat(a/2," 256)")},s="translate(".concat(32*c.x,", ").concat(32*c.y,") "),r="scale(".concat(c.size/16*(c.flipX?-1:1),", ").concat(c.size/16*(c.flipY?-1:1),") "),o="rotate(".concat(c.rotate," 0 0)"),l={outer:n,inner:{transform:"".concat(s," ").concat(r," ").concat(o)},path:{transform:"translate(".concat(i/2*-1," -256)")}};return{tag:"g",attributes:Pt({},l.outer),children:[{tag:"g",attributes:Pt({},l.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Pt(Pt({},t.icon.attributes),l.path)}]}]}}}},{hooks:function(){return{parseNodeAttributes:function(e,t){var c=t.getAttribute("data-fa-mask"),a=c?va(c.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return a.prefix||(a.prefix=ma()),e.mask=a,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,c=e.children,a=e.attributes,i=e.main,n=e.mask,s=e.maskId,r=e.transform,o=i.width,l=i.icon,u=n.width,p=n.icon,f=function(e){var t=e.transform,c=e.containerWidth,a=e.iconWidth,i={transform:"translate(".concat(c/2," 256)")},n="translate(".concat(32*t.x,", ").concat(32*t.y,") "),s="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),r="rotate(".concat(t.rotate," 0 0)");return{outer:i,inner:{transform:"".concat(n," ").concat(s," ").concat(r)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}({transform:r,containerWidth:u,iconWidth:o}),m={tag:"rect",attributes:Pt(Pt({},Vi),{},{fill:"white"})},d=l.children?{children:l.children.map(yi)}:{},h={tag:"g",attributes:Pt({},f.inner),children:[yi(Pt({tag:l.tag,attributes:Pt(Pt({},l.attributes),f.path)},d))]},v={tag:"g",attributes:Pt({},f.outer),children:[h]},g="mask-".concat(s||xc()),z="clip-".concat(s||xc()),b={tag:"mask",attributes:Pt(Pt({},Vi),{},{id:g,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,v]},C={tag:"defs",children:[{tag:"clipPath",attributes:{id:z},children:(t=p,"g"===t.tag?t.children:[t])},b]};return c.push(C,{tag:"rect",attributes:Pt({fill:"currentColor","clip-path":"url(#".concat(z,")"),mask:"url(#".concat(g,")")},Vi)}),{children:c,attributes:a}}}},{provides:function(e){var t=!1;Kt.matchMedia&&(t=Kt.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],c={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Pt(Pt({},c),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var i=Pt(Pt({},a),{},{attributeName:"opacity"}),n={tag:"circle",attributes:Pt(Pt({},c),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||n.children.push({tag:"animate",attributes:Pt(Pt({},a),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Pt(Pt({},i),{},{values:"1;0;1;1;0;1;"})}),e.push(n),e.push({tag:"path",attributes:Pt(Pt({},c),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Pt(Pt({},i),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Pt(Pt({},c),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Pt(Pt({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}},{hooks:function(){return{parseNodeAttributes:function(e,t){var c=t.getAttribute("data-fa-symbol"),a=null!==c&&(""===c||c);return e.symbol=a,e}}}}],{mixoutsTo:wa});var Li=wa.config,Si=wa.library,xi=wa.parse,Pi=wa.icon,wi=wa.text,ki={prefix:"far",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M170.5 51.6L151.5 80h145l-19-28.4c-1.5-2.2-4-3.6-6.7-3.6H177.1c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80H368h48 8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8V432c0 44.2-35.8 80-80 80H112c-44.2 0-80-35.8-80-80V128H24c-13.3 0-24-10.7-24-24S10.7 80 24 80h8H80 93.8l36.7-55.1C140.9 9.4 158.4 0 177.1 0h93.7c18.7 0 36.2 9.4 46.6 24.9zM80 128V432c0 17.7 14.3 32 32 32H336c17.7 0 32-14.3 32-32V128H80zm80 64V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Ai=ki,Ei={prefix:"far",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M160 368c26.5 0 48 21.5 48 48v16l72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16V352c0 8.8 7.2 16 16 16h96zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3V474.7v-6.4V468v-4V416H112 64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H448c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H309.3L208 492z"]},Ni=Ei,Ti={prefix:"far",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24H264c13.3 0 24-10.7 24-24s-10.7-24-24-24H120zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H264c13.3 0 24-10.7 24-24s-10.7-24-24-24H120z"]},Di=Ti,Ri=Ti,_i={prefix:"far",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192h80v56H48V192zm0 104h80v64H48V296zm128 0h96v64H176V296zm144 0h80v64H320V296zm80-48H320V192h80v56zm0 160v40c0 8.8-7.2 16-16 16H320V408h80zm-128 0v56H176V408h96zm-144 0v56H64c-8.8 0-16-7.2-16-16V408h80zM272 248H176V192h96v56z"]},Oi=_i,Ii={prefix:"far",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},ji=Ii,Fi={prefix:"far",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z"]},Bi=Fi,$i={prefix:"far",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M384 48c8.8 0 16 7.2 16 16V448c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H384zM96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H208zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z"]},qi=$i,Gi={prefix:"far",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M104.6 48H64C28.7 48 0 76.7 0 112V384c0 35.3 28.7 64 64 64h96V400H64c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H80c0 17.7 14.3 32 32 32h72.4C202 108.4 227.6 96 256 96h62c-7.1-27.6-32.2-48-62-48H215.4C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464H256c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16l140.1 0L464 243.9V448c0 8.8-7.2 16-16 16zM256 512H448c35.3 0 64-28.7 64-64V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64z"]},Wi=Gi,Ui={prefix:"far",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4V392.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V416c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416V378.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V416c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Ki=Ui,Zi={prefix:"far",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24H320c13.3 0 24-10.7 24-24s-10.7-24-24-24H192zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z"]},Yi=Zi,Xi={prefix:"far",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},Ji=Xi,Qi={prefix:"far",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM152 232H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},en=Qi,tn={prefix:"far",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},cn=tn,an={prefix:"far",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},nn=an,sn={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},rn=sn,on={prefix:"far",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},ln=on,un={prefix:"far",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z"]},pn=un,fn={prefix:"far",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M435.4 361.3l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.1zM256 48l.9 0h-1.8l.9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.7 2-4 2.9l4-2.9zm75.2-226.6l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},mn=fn,dn=fn,hn={prefix:"far",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z"]},vn=hn,gn={prefix:"far",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M0 24C0 10.7 10.7 0 24 0H360c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8V67c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445v19h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V445c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67V48H24C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5H284.2c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67V48H80V67c0 22.1 7 43.4 19.8 61H284.2z"]},zn=gn,bn={prefix:"far",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64V261.5l-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75H296h8c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5V160c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2V96c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1c0 0 0-.1 0-.1V64c0-8.8 7.2-16 16-16s16 7.2 16 16V95.9c0 0 0 .1 0 .1V232c0 13.3 10.7 24 24 24s24-10.7 24-24V96c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16v55.9c0 0 0 .1 0 .1v80c0 13.3 10.7 24 24 24s24-10.7 24-24V160.1c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16V332.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2H296h-8.5c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9V232c0 13.3 10.7 24 24 24s24-10.7 24-24V96.1z"]},Cn=bn,Mn={prefix:"far",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Hn=Mn,Vn={prefix:"far",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4V363.6c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27V416c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416V378.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V416c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},yn=Vn,Ln={prefix:"far",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},Sn=Ln,xn={prefix:"far",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},Pn=xn,wn={prefix:"far",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},kn=wn,An={prefix:"far",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M0 96C0 60.7 28.7 32 64 32H196.1c19.1 0 37.4 7.6 50.9 21.1L289.9 96H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16H286.6c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7H64z"]},En=An,Nn={prefix:"far",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},Tn=Nn,Dn={prefix:"far",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Rn=Dn,_n={prefix:"far",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},On=_n,In={prefix:"far",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16V264c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6V488c0 13.3 10.7 24 24 24s24-10.7 24-24V370.2c38-20.1 64-60.1 64-106.2V160c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64v64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6v12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3V488c0 13.3 10.7 24 24 24s24-10.7 24-24V359.9c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4V224.6c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6V208c0 8.8 7.2 16 16 16s16-7.2 16-16V142.3 128 64z"]},jn=In,Fn={prefix:"far",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},Bn=Fn,$n={prefix:"far",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M24 32c13.3 0 24 10.7 24 24V408c0 13.3 10.7 24 24 24H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-39.8 0-72-32.2-72-72V56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},qn=$n,Gn={prefix:"far",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Wn=Gn,Un={prefix:"far",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"]},Kn=Un,Zn={prefix:"far",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"]},Yn=Zn,Xn={prefix:"far",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z"]},Jn=Xn,Qn={prefix:"far",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},es=Qn,ts={prefix:"far",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M512 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H512zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H176zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376z"]},cs=ts,as=ts,is={prefix:"far",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},ns=is,ss={prefix:"far",iconName:"font-awesome",icon:[448,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56V456c0 13.3 10.7 24 24 24s24-10.7 24-24V124.2l12.5-2.4c16.7-3.2 31.5-8.5 44.2-13.1l0 0 0 0c3.7-1.3 7.1-2.6 10.4-3.7c15.2-5.2 30.4-9.1 51.2-9.1c25.6 0 43 6 63.5 13.3l.5 .2c20.9 7.4 44.8 15.9 79.1 15.9c32.4 0 53.7-6.8 90.5-19.6V342.9l-9.5 3.3c-41.5 14.4-55.2 19.2-81 19.2c-25.7 0-43.1-6-63.6-13.3l-.6-.2c-20.8-7.4-44.8-15.8-79-15.8c-16.8 0-31 2-43.9 5c-12.9 3-20.9 16-17.9 28.9s16 20.9 28.9 17.9c9.6-2.2 20.1-3.7 32.9-3.7c25.6 0 43 6 63.5 13.3l.5 .2c20.9 7.4 44.8 15.9 79.1 15.9c34.4 0 56.4-7.7 97.8-22.2c7.5-2.6 15.5-5.4 24.4-8.5l16.2-5.5V360 72 38.4L416.2 49.3c-9.7 3.3-18.2 6.3-25.7 8.9c-41.5 14.4-55.2 19.2-81 19.2c-25.7 0-43.1-6-63.6-13.3l-.6-.2c-20.8-7.4-44.8-15.8-79-15.8c-27.8 0-48.5 5.5-66.6 11.6c-4.9 1.7-9.3 3.3-13.6 4.8c-11.9 4.3-22 7.9-34.7 10.3L48 75.4V56z"]},rs=ss,os=ss,ls={prefix:"far",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},us=ls,ps={prefix:"far",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16h48v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm48 112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8H136.6c-14.5 0-27.2 9.7-30.9 23.8zM128 336h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H128c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},fs=ps,ms={prefix:"far",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9l0 0 0 0 0 0 .2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1 0 0 0 0 0 0 0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7l0 0 0 0 0 0 .2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1 0 0 0 0 0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},ds=ms,hs={prefix:"far",iconName:"star-half-stroke",icon:[640,512,["star-half-alt"],"f5c0","M341.5 13.5C337.5 5.2 329.1 0 319.9 0s-17.6 5.2-21.6 13.5L229.7 154.8 76.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L174.2 328.4 148 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L465.6 328.4 576.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L410.1 154.8 341.5 13.5zM320 384.7V79.1l52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L423 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L331.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z"]},vs=hs,gs={prefix:"far",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},zs=gs,bs={prefix:"far",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1c-4.2-4.5-10.1-7.1-16.3-7.1C266 128 256 138 256 150.3V208H160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96v57.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.3-7.1l99.9-107.1c3.5-3.8 5.5-8.7 5.5-13.8s-2-10.1-5.5-13.8L294.6 135.1z"]},Cs=bs,Ms={prefix:"far",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24H320c13.3 0 24-10.7 24-24s-10.7-24-24-24H192c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},Hs=Ms,Vs={prefix:"far",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},ys=Vs,Ls={prefix:"far",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72V328c0 13.3-10.7 24-24 24s-24-10.7-24-24V184c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0V328c0 13.3-10.7 24-24 24s-24-10.7-24-24V184c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Ss=Ls,xs={prefix:"far",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4c-4.5 4.2-7.1 10.1-7.1 16.3c0 12.3 10 22.3 22.3 22.3H208v96c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256h57.7c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.1-16.3L269.8 117.5c-3.8-3.5-8.7-5.5-13.8-5.5s-10.1 2-13.8 5.5L135.1 217.4z"]},Ps=xs,ws={prefix:"far",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},ks=ws,As={prefix:"far",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Es=As,Ns={prefix:"far",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M400 406.1V288c0-13.3-10.7-24-24-24s-24 10.7-24 24V440.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4V288c0-13.3-10.7-24-24-24s-24 10.7-24 24V406.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320v32c0 26.5 21.5 48 48 48s48-21.5 48-48V320c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},Ts=Ns,Ds={prefix:"far",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rs=Ds,_s={prefix:"far",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M48 96V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H309.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16zm80-16v80H272V80H128zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},Os=_s,Is={prefix:"far",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},js=Is,Fs={prefix:"far",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Bs=Fs,$s={prefix:"far",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0zm160 0l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0z"]},qs=$s,Gs={prefix:"far",iconName:"calendar-xmark",icon:[512,512,["calendar-times"],"f273","M160 0c13.3 0 24 10.7 24 24V64H328V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V192 144 128c0-35.3 28.7-64 64-64h40V24c0-13.3 10.7-24 24-24zM432 192H80V448c0 8.8 7.2 16 16 16H416c8.8 0 16-7.2 16-16V192zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Ws=Gs,Us={prefix:"far",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V67c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445v19H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V445c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM192 289.9l81.5 81.5C293 391 304 417.4 304 445v19H80V445c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67V48H304V67c0 27.6-11 54-30.5 73.5L192 222.1z"]},Ks=Us,Zs={prefix:"far",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M64 80c-8.8 0-16 7.2-16 16V258c5.1-1.3 10.5-2 16-2H448c5.5 0 10.9 .7 16 2V96c0-8.8-7.2-16-16-16H64zM48 320v96c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V320c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM0 320V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V320v96c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Ys=Zs,Xs={prefix:"far",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z"]},Js=Xs,Qs={prefix:"far",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H512c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},er=Qs,tr={prefix:"far",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3V304h96c17.7 0 32-14.3 32-32V240c0-17.7-14.3-32-32-32H256V150.3c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z"]},cr=tr,ar={prefix:"far",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M112 112c0 35.3-28.7 64-64 64V336c35.3 0 64 28.7 64 64H464c0-35.3 28.7-64 64-64V176c-35.3 0-64-28.7-64-64H112zM0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16v64h-8c-8.8 0-16 7.2-16 16s7.2 16 16 16h24 24c8.8 0 16-7.2 16-16s-7.2-16-16-16h-8V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16z"]},ir=ar,nr={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},sr=nr,rr={prefix:"far",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},or=rr,lr={prefix:"far",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z"]},ur=lr,pr={prefix:"far",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M528 160V416c0 8.8-7.2 16-16 16H320c0-44.2-35.8-80-80-80H176c-44.2 0-80 35.8-80 80H64c-8.8 0-16-7.2-16-16V160H528zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376z"]},fr=pr,mr={prefix:"far",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},dr=mr,hr={prefix:"far",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3H304V160c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32v96H150.3C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z"]},vr=hr,gr={prefix:"far",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M512 80c8.8 0 16 7.2 16 16v32H48V96c0-8.8 7.2-16 16-16H512zm16 144V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V224H528zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H120zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24H248z"]},zr=gr,br={prefix:"far",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M232 0c-39.8 0-72 32.2-72 72v8H72C32.2 80 0 112.2 0 152V440c0 39.8 32.2 72 72 72h.2 .2 .2 .2 .2H73h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H75h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H77h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H79h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H82h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H85h.2 .2 .2 .2H86h.2 .2 .2 .2H87h.2 .2 .2 .2H88h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H98h.2 .2 .2 .2H99h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2v0H456h8v0H568c39.8 0 72-32.2 72-72V152c0-39.8-32.2-72-72-72H480V72c0-39.8-32.2-72-72-72H232zM480 128h88c13.3 0 24 10.7 24 24v40H536c-13.3 0-24 10.7-24 24s10.7 24 24 24h56v48H536c-13.3 0-24 10.7-24 24s10.7 24 24 24h56V440c0 13.3-10.7 24-24 24H480V336 128zM72 128h88V464h-.1-.2-.2-.2H159h-.2-.2-.2H158h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H154h-.2-.2-.2H153h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H150h-.2-.2-.2H149h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H146h-.2-.2-.2H145h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H142h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H139h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H136h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H133h-.2-.2-.2-.2-.2-.2-.2-.2H131h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H128h-.2-.2-.2-.2-.2-.2-.2-.2H126h-.2-.2-.2-.2-.2-.2-.2-.2H124h-.2-.2-.2-.2-.2-.2-.2-.2H122h-.2-.2-.2-.2-.2-.2-.2-.2H120h-.2-.2-.2-.2-.2-.2-.2-.2H118h-.2-.2-.2-.2-.2-.2-.2-.2H116h-.2-.2-.2-.2-.2-.2-.2-.2H114h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H111h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H108h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H105h-.2-.2-.2-.2H104h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H100h-.2-.2-.2-.2H99h-.2-.2-.2-.2H98h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H88h-.2-.2-.2-.2H87h-.2-.2-.2-.2H86h-.2-.2-.2-.2H85h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H82h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H79h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H77h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H75h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H73h-.2-.2-.2-.2-.2H72c-13.2 0-24-10.7-24-24V336h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H48V240h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H48V152c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24H408c13.3 0 24 10.7 24 24V336 464H368V400c0-26.5-21.5-48-48-48s-48 21.5-48 48v64H208V72zm88 24v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V168h24c8.8 0 16-7.2 16-16V136c0-8.8-7.2-16-16-16H344V96c0-8.8-7.2-16-16-16H312c-8.8 0-16 7.2-16 16z"]},Cr=br,Mr=br,Hr={prefix:"far",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M406.5 399.6C387.4 352.9 341.5 320 288 320H224c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3h64c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z"]},Vr=Hr,yr={prefix:"far",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z"]},Lr=yr,Sr={prefix:"far",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},xr=Sr,Pr={prefix:"far",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},wr=Pr,kr={prefix:"far",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z"]},Ar=kr,Er={prefix:"far",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4V363.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1V416c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64V378.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6V416z"]},Nr=Er,Tr={prefix:"far",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},Dr=Tr,Rr={prefix:"far",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},_r=Rr,Or=Rr,Ir=Rr,jr={prefix:"far",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h8V320h-8zm40 48h32V320H208v48zm96 0V320H272v48h32zm32 0h8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v48zM168 288H344c30.9 0 56 25.1 56 56s-25.1 56-56 56H168c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Fr=jr,Br={prefix:"far",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"]},$r=Br,qr=Br,Gr={prefix:"far",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H288V352c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16H64zM288 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V320v5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7H288z"]},Wr=Gr,Ur={prefix:"far",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Kr=Ur,Zr={faTrashCan:ki,faTrashAlt:Ai,faMessage:Ei,faCommentAlt:Ni,faFileLines:Ti,faFileAlt:Di,faFileText:Ri,faCalendarDays:_i,faCalendarAlt:Oi,faHandPointRight:{prefix:"far",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z"]},faFaceSmileBeam:Ii,faSmileBeam:ji,faFaceGrinStars:Fi,faGrinStars:Bi,faAddressBook:$i,faContactBook:qi,faComments:{prefix:"far",iconName:"comments",icon:[640,512,[128490,61670],"f086","M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.7 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"]},faPaste:Gi,faFileClipboard:Wi,faFaceGrinTongueSquint:Ui,faGrinTongueSquint:Ki,faFaceFlushed:Zi,faFlushed:Yi,faSquareCaretRight:Xi,faCaretSquareRight:Ji,faSquareMinus:Qi,faMinusSquare:en,faCompass:{prefix:"far",iconName:"compass",icon:[512,512,[129517],"f14e","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faSquareCaretDown:tn,faCaretSquareDown:cn,faFaceKissBeam:an,faKissBeam:nn,faLightbulb:{prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7l0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5H109c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8l0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4l0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5H226.4c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8l0 0 0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80V416H272v16c0 44.2-35.8 80-80 80z"]},faFlag:{prefix:"far",iconName:"flag",icon:[448,512,[127988,61725],"f024","M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24V64 350.5 400v88c0 13.3 10.7 24 24 24s24-10.7 24-24V388l80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52V24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8V334.7l-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5v-237z"]},faSquareCheck:sn,faCheckSquare:rn,faCircleDot:on,faDotCircle:ln,faFaceDizzy:un,faDizzy:pn,faFutbol:fn,faFutbolBall:mn,faSoccerBall:dn,faPenToSquare:hn,faEdit:vn,faHourglassHalf:gn,faHourglass2:zn,faEyeSlash:{prefix:"far",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"]},faHand:bn,faHandPaper:Cn,faHandSpock:{prefix:"far",iconName:"hand-spock",icon:[576,512,[128406],"f259","M221.7 25.3L215.6 2.1l6.2 23.2zm48.9 28.4l23.2-6.2v0l-23.2 6.2zM193.3 74.3l-23.2 6.2 0 0 23.2-6.2zm46.5 175.3l-22.1 9.3c4.9 11.6 17.9 17.5 29.9 13.4s18.7-16.7 15.4-28.9l-23.2 6.2zm-51-121.1l-22.1 9.3v0l22.1-9.3zm-52.4-21.3l9.3 22.1h0l-9.3-22.1zm-21.3 52.4L93 168.8h0l22.1-9.3zm5.4 144.9l14.7-18.9h0l-14.7 18.9zm-56.1 7l18.9 14.7 0 0L64.4 311.4zm7 56.1L56.7 386.5h0l14.7-18.9zm92 71.6l-14.7 18.9 14.7-18.9zm300.1-48.5l23.3 5.8-23.3-5.8zm55.2-220.9l23.3 5.8-23.3-5.8zm-29.1-48.5l5.8-23.3-5.8 23.3zm-48.5 29.1l23.3 5.8v0l-23.3-5.8zM415 255l23.3 5.8 0 0L415 255zm-2.6-.5l23.6 4.2 0 0-23.6-4.2zM439.4 103l23.6 4.2v0L439.4 103zM407 56.6l-4.2 23.6L407 56.6zM360.6 89L337 84.8 360.6 89zM331.5 252.6l-23.6-4.2 0 0 23.6 4.2zm-8 .3l23.2-6.2 0 0-23.2 6.2zM336 488l.5-24-.5 24zm-157-138L193.8 331l-14.7 18.9zM227.9 48.5c8.5-2.3 17.3 2.8 19.6 11.4l46.4-12.3c-9.1-34.2-44.1-54.5-78.3-45.4l12.3 46.4zM216.5 68.1c-2.3-8.5 2.8-17.3 11.4-19.6L215.6 2.1c-34.2 9.1-54.5 44.1-45.4 78.3l46.4-12.3zM263 243.4L216.5 68.1 170.1 80.4l46.5 175.3L263 243.4zM166.7 137.8l51 121.1L262 240.2 211 119.2l-44.2 18.6zm-21-8.5c8.1-3.4 17.5 .4 21 8.5L211 119.2C197.3 86.6 159.7 71.3 127.2 85l18.6 44.2zm-8.5 21c-3.4-8.1 .4-17.5 8.5-21L127.2 85C94.6 98.7 79.3 136.3 93 168.8l44.2-18.6zm76.2 181l-76.2-181L93 168.8l76.2 181 44.2-18.6zm-107.6-7.8l58.5 45.5L193.8 331l-58.5-45.5-29.5 37.9zm-22.5 2.8c5.4-7 15.5-8.2 22.5-2.8l29.5-37.9c-27.9-21.7-68.1-16.7-89.8 11.2l37.9 29.5zm2.8 22.5c-7-5.4-8.2-15.5-2.8-22.5L45.5 296.7c-21.7 27.9-16.7 68.1 11.2 89.8l29.5-37.9zm92 71.6l-92-71.6L56.7 386.5l92 71.6 29.5-37.9zM305.9 464c-46.3 0-91.2-15.4-127.7-43.8l-29.5 37.9C193.6 493 248.9 512 305.9 512V464zm30.1 0H305.9v48H336V464zm2.8 0c-.8 0-1.5 0-2.3 0l-1 48c1.1 0 2.2 0 3.3 0V464zm101.5-79.2C428.7 431.3 386.8 464 338.8 464v48c70 0 131.1-47.7 148-115.6l-46.6-11.6zm55.2-220.9L440.3 384.8l46.6 11.6 55.2-220.9-46.6-11.6zm-11.6-19.4c8.6 2.1 13.8 10.8 11.6 19.4l46.6 11.6c8.6-34.3-12.3-69-46.6-77.6l-11.6 46.6zm-19.4 11.6c2.1-8.6 10.8-13.8 19.4-11.6l11.6-46.6c-34.3-8.6-69 12.3-77.6 46.6l46.6 11.6zM438.3 260.8l26.2-104.7-46.6-11.6L391.7 249.2l46.6 11.6zM413.7 280c11.6 0 21.7-7.9 24.6-19.2l-46.6-11.6c2.5-10.1 11.6-17.2 22-17.2v48zm-24.9-29.7c-2.8 15.5 9.2 29.7 24.9 29.7V232c14.1 0 24.8 12.8 22.3 26.7l-47.3-8.4zM415.8 98.8L388.8 250.3l47.3 8.4L463 107.2l-47.3-8.4zm-13-18.6c8.7 1.5 14.5 9.9 13 18.6l47.3 8.4c6.2-34.8-17-68-51.8-74.2l-8.4 47.3zm-18.6 13c1.5-8.7 9.9-14.5 18.6-13L411.2 33c-34.8-6.2-68 17-74.2 51.8l47.3 8.4zM355.2 256.8L384.2 93.2 337 84.8 307.9 248.4l47.3 8.4zM327.5 280c13.6 0 25.3-9.8 27.7-23.2l-47.3-8.4c1.7-9.5 9.9-16.4 19.6-16.4v48zm-27.2-20.9c3.3 12.3 14.4 20.9 27.2 20.9V232c9 0 16.9 6.1 19.2 14.8l-46.4 12.3zM247.5 59.9l52.8 199.2 46.4-12.3L293.9 47.6 247.5 59.9zM360 488c0 13.5-11.1 24.3-24.5 24l1-48c-13.5-.3-24.5 10.5-24.5 24h48zm-24 24c13.3 0 24-10.8 24-24H312c0-13.2 10.7-24 24-24v48zM169.2 349.8c-6.4-15.2 11.6-29 24.6-18.8l-29.5 37.9c26 20.2 61.9-7.3 49.1-37.7l-44.2 18.6z"]},faFaceKiss:Mn,faKiss:Hn,faFaceGrinTongue:Vn,faGrinTongue:yn,faChessBishop:{prefix:"far",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8V352H96V325c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3v27h48V338.7c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24H160 104zM52.7 464l16.6-32H250.8l16.6 32H52.7zm207.9-80H59.5c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512H279.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z"]},faFaceGrinWink:Ln,faGrinWink:Sn,faFaceGrinWide:xn,faGrinAlt:Pn,faFaceFrownOpen:wn,faFrownOpen:kn,faHandPointUp:{prefix:"far",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M64 64V241.6c5.2-1 10.5-1.6 16-1.6H96V208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0v24c0 66.3 53.7 120 120 120h48c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H120 80zM0 320s0 0 0 0c0-18 6-34.6 16-48V64C16 28.7 44.7 0 80 0s64 28.7 64 64v82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64v64 24c0 92.8-75.2 168-168 168H168C75.2 512 0 436.8 0 344V320zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16v48 16c0 8.8 7.2 16 16 16s16-7.2 16-16V256zM160 240c5.5 0 10.9 .7 16 2v-2V208c0-8.8-7.2-16-16-16s-16 7.2-16 16v32h16zm64 24v40c0 8.8 7.2 16 16 16s16-7.2 16-16V256 240c0-8.8-7.2-16-16-16s-16 7.2-16 16v24z"]},faBookmark:{prefix:"far",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48C0 21.5 21.5 0 48 0l0 48V441.4l130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4V48H48V0H336c26.5 0 48 21.5 48 48V488c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488V48z"]},faHandPointDown:{prefix:"far",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z"]},faFolder:An,faFolderBlank:En,faUser:{prefix:"far",iconName:"user",icon:[448,512,[128100,62144],"f007","M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464H398.7c-8.9-63.3-63.3-112-129-112H178.3c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z"]},faSquareCaretLeft:Nn,faCaretSquareLeft:Tn,faStar:{prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.6 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},faChessKnight:{prefix:"far",iconName:"chess-knight",icon:[448,512,[9822],"f441","M226.6 48H117.3l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1H66.8c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0H226.6C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352H341.3l24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464H379.3l-16.6-32H85.2zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H56.8C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384h297c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z"]},faFaceLaughSquint:Dn,faLaughSquint:Rn,faFaceLaugh:_n,faLaugh:On,faFolderOpen:{prefix:"far",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z"]},faClipboard:{prefix:"far",iconName:"clipboard",icon:[384,512,[128203],"f328","M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faChessQueen:{prefix:"far",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352H153l-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352h55.4l93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432H378.8l16.6 32H116.7l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3h-265c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8H407.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"]},faHandBackFist:In,faHandRock:jn,faSquareCaretUp:Fn,faCaretSquareUp:Bn,faChartBar:$n,faBarChart:qn,faWindowRestore:{prefix:"far",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 48H208c-17.7 0-32 14.3-32 32V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V336h16c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V256H48V448zM64 128H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64z"]},faSquarePlus:Gn,faPlusSquare:Wn,faImage:{prefix:"far",iconName:"image",icon:[512,512,[],"f03e","M448 80c8.8 0 16 7.2 16 16V415.8l-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3V96c0-8.8 7.2-16 16-16H448zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faFolderClosed:{prefix:"far",iconName:"folder-closed",icon:[512,512,[],"e185","M251.7 127.6l0 0c10.5 10.5 24.7 16.4 39.6 16.4H448c8.8 0 16 7.2 16 16v32H48V96c0-8.8 7.2-16 16-16H197.5c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240H464V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V240zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H291.3c-2.1 0-4.2-.8-5.7-2.3z"]},faLemon:{prefix:"far",iconName:"lemon",icon:[448,512,[127819],"f094","M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z"]},faHandshake:{prefix:"far",iconName:"handshake",icon:[640,512,[],"f2b5","M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176H96V304c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128H544h40 40c8.8 0 16 7.2 16 16V352c0 17.7-14.3 32-32 32H576c-11.8 0-22.2-6.4-27.7-16H463.4c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384H32c-17.7 0-32-14.3-32-32V144c0-8.8 7.2-16 16-16H56 96h19.8c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64H259c4.4 0 8.9 .2 13.2 .6zM544 320V176H496c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1H544zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faGem:{prefix:"far",iconName:"gem",icon:[512,512,[128142],"f3a5","M168.5 72L256 165l87.5-93h-175zM383.9 99.1L311.5 176h129L383.9 99.1zm50 124.9H256 78.1L256 420.3 433.9 224zM71.5 176h129L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z"]},faCirclePlay:Un,faPlayCircle:Kn,faCircleCheck:Zn,faCheckCircle:Yn,faCircleStop:Xn,faStopCircle:Jn,faIdBadge:{prefix:"far",iconName:"id-badge",icon:[384,512,[],"f2c1","M256 48V64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H256zM0 64C0 28.7 28.7 0 64 0H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},faFaceLaughBeam:Qn,faLaughBeam:es,faRegistered:{prefix:"far",iconName:"registered",icon:[512,512,[174],"f25d","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152V264v96c0 13.3 10.7 24 24 24s24-10.7 24-24V288h60.9l37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80H184c-13.3 0-24 10.7-24 24zm48 88V176h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H208z"]},faAddressCard:ts,faContactCard:cs,faVcard:as,faFaceTired:is,faTired:ns,faFontAwesome:ss,faFontAwesomeFlag:rs,faFontAwesomeLogoFull:os,faFaceSmileWink:ls,faSmileWink:us,faFileWord:{prefix:"far",iconName:"file-word",icon:[384,512,[],"f1c2","M48 448V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z"]},faFilePowerpoint:{prefix:"far",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm72 208c-13.3 0-24 10.7-24 24V336v56c0 13.3 10.7 24 24 24s24-10.7 24-24V360h44c42 0 76-34 76-76s-34-76-76-76H136zm68 104H160V256h44c15.5 0 28 12.5 28 28s-12.5 28-28 28z"]},faEnvelopeOpen:{prefix:"far",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5v13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1V200.5c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2V456c0 4.4-3.6 8-8 8H56c-4.4 0-8-3.6-8-8V276.2zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5V456c0 30.9 25.1 56 56 56H456c30.9 0 56-25.1 56-56V200.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z"]},faFileZipper:ps,faFileArchive:fs,faSquare:{prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},faSnowflake:{prefix:"far",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c13.3 0 24 10.7 24 24V70.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57v76.5l66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6v76.5l57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V441.9l-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V297.6l-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4V137.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V24c0-13.3 10.7-24 24-24z"]},faNewspaper:{prefix:"far",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M168 80c-13.3 0-24 10.7-24 24V408c0 8.4-1.4 16.5-4.1 24H440c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H168zM72 480c-39.8 0-72-32.2-72-72V112C0 98.7 10.7 88 24 88s24 10.7 24 24V408c0 13.3 10.7 24 24 24s24-10.7 24-24V104c0-39.8 32.2-72 72-72H440c39.8 0 72 32.2 72 72V408c0 39.8-32.2 72-72 72H72zM176 136c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24v80c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V136zm200-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H376c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H376c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faFaceKissWinkHeart:ms,faKissWinkHeart:ds,faStarHalfStroke:hs,faStarHalfAlt:vs,faFileExcel:{prefix:"far",iconName:"file-excel",icon:[384,512,[],"f1c3","M48 448V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z"]},faFaceGrinBeam:gs,faGrinBeam:zs,faObjectUngroup:{prefix:"far",iconName:"object-ungroup",icon:[640,512,[],"f248","M48.2 66.8c-.1-.8-.2-1.7-.2-2.5c0-.1 0-.1 0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3V228.7C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40H324.7c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3V123.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40H123.3C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3V228.7c-16 6.5-28.9 19.3-35.3 35.3H123.3c-6.5-16-19.3-28.9-35.3-35.3V123.3c16-6.5 28.9-19.3 35.3-35.3H324.7zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40h45.4c6.5 16 19.3 28.9 35.3 35.3V388.7c-16 6.5-28.9 19.3-35.3 35.3H315.3c-6.5-16-19.3-28.9-35.3-35.3V352H232v36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40H516.7c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3V283.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40H448v16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8c0-8.8 7.2-16 16-16c7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7c0 8.8-7.2 16-16 16c-.9 0-1.9-.1-2.8-.2z"]},faCircleRight:bs,faArrowAltCircleRight:Cs,faFaceRollingEyes:Ms,faMehRollingEyes:Hs,faObjectGroup:{prefix:"far",iconName:"object-group",icon:[576,512,[],"f247","M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16H460.2c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8V396.2c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16H115.8c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8V115.8zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3V386.7c13.6 4.8 24.4 15.6 29.3 29.3H450.7c4.8-13.6 15.6-24.4 29.3-29.3V125.3c-13.6-4.8-24.4-15.6-29.3-29.3H125.3zm2.7 64c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z"]},faHeart:{prefix:"far",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8v-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5v3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20c0 0-.1-.1-.1-.1c0 0 0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5v3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2v-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"]},faFaceSurprise:Vs,faSurprise:ys,faCirclePause:Ls,faPauseCircle:Ss,faCircle:{prefix:"far",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},faCircleUp:xs,faArrowAltCircleUp:Ps,faFileAudio:{prefix:"far",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 464H320c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM192 272V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376H112c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h17.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z"]},faFileImage:{prefix:"far",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2h48 32 40 72c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z"]},faCircleQuestion:ws,faQuestionCircle:ks,faFaceMehBlank:As,faMehBlank:Es,faEye:{prefix:"far",iconName:"eye",icon:[576,512,[128065],"f06e","M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"]},faFaceSadCry:Ns,faSadCry:Ts,faFileCode:{prefix:"far",iconName:"file-code",icon:[384,512,[],"f1c9","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"]},faWindowMaximize:{prefix:"far",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M.3 89.5C.1 91.6 0 93.8 0 96V224 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64V224 96c0-35.3-28.7-64-64-64H64c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224H464l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z"]},faFaceFrown:Ds,faFrown:Rs,faFloppyDisk:_s,faSave:Os,faCommentDots:Is,faCommenting:js,faFaceGrinSquint:Fs,faGrinSquint:Bs,faHandPointer:{prefix:"far",iconName:"hand-pointer",icon:[448,512,[],"f25a","M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16V200c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16V392c0 39.8-32.2 72-72 72H272 212.3h-.9c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23V320 64zM176 0c-35.3 0-64 28.7-64 64V261.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2h.9H272h56c66.3 0 120-53.7 120-120V288l0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5V64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z"]},faHandScissors:{prefix:"far",iconName:"hand-scissors",icon:[512,512,[],"f257","M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z"]},faFaceGrinTears:$s,faGrinTears:qs,faCalendarXmark:Gs,faCalendarTimes:Ws,faFileVideo:{prefix:"far",iconName:"file-video",icon:[384,512,[],"f1c8","M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM80 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v16l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V288z"]},faFilePdf:{prefix:"far",iconName:"file-pdf",icon:[512,512,[],"f1c1","M64 464H96v48H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V288H336V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"]},faComment:{prefix:"far",iconName:"comment",icon:[512,512,[128489,61669],"f075","M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9c.1-.2 .2-.3 .3-.5z"]},faEnvelope:{prefix:"far",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},faHourglass:Us,faHourglassEmpty:Ks,faCalendarCheck:{prefix:"far",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c13.3 0 24 10.7 24 24V64H296V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192 144 128C0 92.7 28.7 64 64 64h40V24c0-13.3 10.7-24 24-24zM400 192H48V448c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V192zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},faHardDrive:Zs,faHdd:Ys,faFaceGrinSquintTears:Xs,faGrinSquintTears:Js,faRectangleList:Qs,faListAlt:er,faCalendarPlus:{prefix:"far",iconName:"calendar-plus",icon:[512,512,[],"f271","M184 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H96c-35.3 0-64 28.7-64 64v16 48V448c0 35.3 28.7 64 64 64H416c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H376V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H184V24zM80 192H432V448c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V192zm176 40c-13.3 0-24 10.7-24 24v48H184c-13.3 0-24 10.7-24 24s10.7 24 24 24h48v48c0 13.3 10.7 24 24 24s24-10.7 24-24V352h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V256c0-13.3-10.7-24-24-24z"]},faCircleLeft:tr,faArrowAltCircleLeft:cr,faMoneyBill1:ar,faMoneyBillAlt:ir,faClock:nr,faClockFour:sr,faKeyboard:{prefix:"far",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 112c-8.8 0-16 7.2-16 16V384c0 8.8 7.2 16 16 16H512c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H64zM0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM176 320H400c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H280c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H280c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H360c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H360c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H440c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H440c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16z"]},faClosedCaptioning:{prefix:"far",iconName:"closed-captioning",icon:[576,512,[],"f20a","M512 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H512zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},faImages:{prefix:"far",iconName:"images",icon:[576,512,[],"f302","M160 80H512c8.8 0 16 7.2 16 16V320c0 8.8-7.2 16-16 16H490.8L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336H160c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16zM96 96V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faFaceGrin:rr,faGrin:or,faFaceMeh:lr,faMeh:ur,faIdCard:pr,faDriversLicense:fr,faSun:{prefix:"far",iconName:"sun",icon:[512,512,[9728],"f185","M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},faFaceLaughWink:mr,faLaughWink:dr,faCircleDown:hr,faArrowAltCircleDown:vr,faThumbsDown:{prefix:"far",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16H286.5c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8H384c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H32z"]},faChessPawn:{prefix:"far",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120H243.4l10.7 80H205.7L195 272H160 125l-10.7 80H65.9l10.7-80H64c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464H267.3l-16.6-32H69.2L52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H40.8C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384h201z"]},faCreditCard:gr,faCreditCardAlt:zr,faBell:{prefix:"far",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32V49.9C119.5 61.4 64 124.2 64 200v33.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416H424c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4V200c0-75.8-55.5-138.6-128-150.1V32c0-17.7-14.3-32-32-32zm0 96h8c57.4 0 104 46.6 104 104v33.4c0 47.9 13.9 94.6 39.7 134.6H72.3C98.1 328 112 281.3 112 233.4V200c0-57.4 46.6-104 104-104h8zm64 352H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},faFile:{prefix:"far",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64z"]},faHospital:br,faHospitalAlt:Cr,faHospitalWide:Mr,faChessRook:{prefix:"far",iconName:"chess-rook",icon:[448,512,[9820],"f447","M80 80V192c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352H85.2l9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192V72c0-22.1 17.9-40 40-40H376c22.1 0 40 17.9 40 40V192c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85H314.5l-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4V80H304v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V80H192v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V80H80zm4.7 384H363.3l-16.6-32H101.2L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H72.8C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384h265zM208 288c-8.8 0-16-7.2-16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 8.8-7.2 16-16 16H208z"]},faStarHalf:{prefix:"far",iconName:"star-half",icon:[576,512,[61731],"f089","M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4V408.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4V128.4z"]},faChessKing:{prefix:"far",iconName:"chess-king",icon:[448,512,[9818],"f43f","M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V56H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v40H59.6C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352h52.3L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6H224 388.4c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352h52.3l54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6H248V104h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H248V24zM101.2 432H346.8l16.6 32H84.7l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3H91.5c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512H375.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"]},faCircleUser:Hr,faUserCircle:Vr,faCopy:{prefix:"far",iconName:"copy",icon:[512,512,[],"f0c5","M448 384H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64H396.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V320c0 35.3-28.7 64-64 64zM64 128h96v48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H256c8.8 0 16-7.2 16-16V416h48v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64z"]},faShareFromSquare:yr,faShareSquare:Lr,faCopyright:{prefix:"far",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z"]},faMap:{prefix:"far",iconName:"map",icon:[576,512,[128506,62072],"f279","M565.6 36.2C572.1 40.7 576 48.1 576 56V392c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456V120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5V421.2l120-45.7V90.8L48 136.5zM360 422.7V137.3l-144-48V374.7l144 48zm48-1.5l120-45.7V90.8L408 136.5V421.2z"]},faBellSlash:{prefix:"far",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4V200c0-75.8-55.5-138.6-128-150.1V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V49.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96h8 8c57.4 0 104 46.6 104 104v33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48H168.3c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1v11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6H406.2zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},faHandLizard:{prefix:"far",iconName:"hand-lizard",icon:[512,512,[],"f258","M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24H240c35.3 0 64 28.7 64 64s-28.7 64-64 64H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H288c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V413.3L281.1 384H136c-39.8 0-72-32.2-72-72s32.2-72 72-72H240c8.8 0 16-7.2 16-16s-7.2-16-16-16H72c-39.8 0-72-32.2-72-72S32.2 64 72 64H281.6c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7V424c0 13.3-10.7 24-24 24s-24-10.7-24-24V316.1c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9H72z"]},faFaceSmile:Sr,faSmile:xr,faHandPeace:{prefix:"far",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320v0 24c0 92.8 75.2 168 168 168h48c92.8 0 168-75.2 168-168V272 256 224c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192v48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2h-7.4l-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240H144c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16v32 16c0 8.8-7.2 16-16 16s-16-7.2-16-16V192zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2v10c0 66.3-53.7 120-120 120H232c-66.3 0-120-53.7-120-120l0-24 0 0c0-17.7 14.3-32 32-32h80c8.8 0 16 7.2 16 16s-7.2 16-16 16H184c-13.3 0-24 10.7-24 24s10.7 24 24 24h40c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16V240 224c0-8.8 7.2-16 16-16s16 7.2 16 16v32 16z"]},faFaceGrinHearts:Pr,faGrinHearts:wr,faBuilding:{prefix:"far",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M64 48c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16h80V400c0-26.5 21.5-48 48-48s48 21.5 48 48v64h80c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64zM0 64C0 28.7 28.7 0 64 0H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm88 40c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H104c-8.8 0-16-7.2-16-16V104zM232 88h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H232c-8.8 0-16-7.2-16-16V104c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H104c-8.8 0-16-7.2-16-16V232zm144-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H232c-8.8 0-16-7.2-16-16V232c0-8.8 7.2-16 16-16z"]},faFaceGrinBeamSweat:kr,faGrinBeamSweat:Ar,faMoon:{prefix:"far",iconName:"moon",icon:[384,512,[127769,9214],"f186","M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0c-.1 0-.2 0-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z"]},faCalendar:{prefix:"far",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z"]},faFaceGrinTongueWink:Er,faGrinTongueWink:Nr,faClone:{prefix:"far",iconName:"clone",icon:[512,512,[],"f24d","M64 464H288c8.8 0 16-7.2 16-16V384h48v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h64v48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM224 352c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H224z"]},faFaceAngry:Tr,faAngry:Dr,faRectangleXmark:Rr,faRectangleTimes:_r,faTimesRectangle:Or,faWindowClose:Ir,faPaperPlane:{prefix:"far",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"]},faLifeRing:{prefix:"far",iconName:"life-ring",icon:[512,512,[],"f1cd","M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},faFaceGrimace:jr,faGrimace:Fr,faCalendarMinus:{prefix:"far",iconName:"calendar-minus",icon:[512,512,[],"f272","M160 0c13.3 0 24 10.7 24 24V64H328V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V192 144 128c0-35.3 28.7-64 64-64h40V24c0-13.3 10.7-24 24-24zM432 192H80V448c0 8.8 7.2 16 16 16H416c8.8 0 16-7.2 16-16V192zM328 352H184c-13.3 0-24-10.7-24-24s10.7-24 24-24H328c13.3 0 24 10.7 24 24s-10.7 24-24 24z"]},faCircleXmark:Br,faTimesCircle:$r,faXmarkCircle:qr,faThumbsUp:{prefix:"far",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.1s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16H286.5c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8H384c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H32z"]},faWindowMinimize:{prefix:"far",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z"]},faSquareFull:{prefix:"far",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M464 48V464H48V48H464zM48 0H0V48 464v48H48 464h48V464 48 0H464 48z"]},faNoteSticky:Gr,faStickyNote:Wr,faFaceSadTear:Ur,faSadTear:Kr,faHandPointLeft:{prefix:"far",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z"]}},Yr={prefix:"fas",iconName:"circle-chevron-right",icon:[512,512,["chevron-circle-right"],"f138","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z"]},Xr=Yr,Jr={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},Qr=Jr,eo={prefix:"fas",iconName:"user-xmark",icon:[640,512,["user-times"],"f235","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},to=eo,co={prefix:"fas",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z"]},ao=co,io={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H296c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272H216c13.3 0 24 10.7 24 24V440c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]},no=io,so={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},ro=so,oo=so,lo={prefix:"fas",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z"]},uo=lo,po={prefix:"fas",iconName:"volleyball",icon:[512,512,[127952,"volleyball-ball"],"f45f","M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z"]},fo=po,mo={prefix:"fas",iconName:"sort-down",icon:[320,512,["sort-desc"],"f0dd","M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z"]},ho=mo,vo={prefix:"fas",iconName:"circle-minus",icon:[512,512,["minus-circle"],"f056","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},go=vo,zo={prefix:"fas",iconName:"right-from-bracket",icon:[512,512,["sign-out-alt"],"f2f5","M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},bo=zo,Co={prefix:"fas",iconName:"icons",icon:[512,512,["heart-music-camera-bolt"],"f86d","M500.3 7.3C507.7 13.3 512 22.4 512 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L352 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L213.3 304H240c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48H74.7zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368H496c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400H336c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z"]},Mo=Co,Ho={prefix:"fas",iconName:"microphone-lines-slash",icon:[640,512,["microphone-alt-slash"],"f539","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z"]},Vo=Ho,yo={prefix:"fas",iconName:"magnifying-glass-location",icon:[512,512,["search-location"],"f689","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Lo=yo,So={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z"]},xo=So,Po={prefix:"fas",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},wo=Po,ko={prefix:"fas",iconName:"football",icon:[512,512,[127944,"football-ball"],"f44e","M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z"]},Ao=ko,Eo={prefix:"fas",iconName:"angles-down",icon:[448,512,["angle-double-down"],"f103","M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"]},No=Eo,To={prefix:"fas",iconName:"beer-mug-empty",icon:[512,512,["beer"],"f0fc","M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z"]},Do=To,Ro={prefix:"fas",iconName:"arrow-up-long",icon:[384,512,["long-arrow-up"],"f176","M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"]},_o=Ro,Oo={prefix:"fas",iconName:"fire-flame-simple",icon:[384,512,["burn"],"f46a","M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z"]},Io=Oo,jo={prefix:"fas",iconName:"person",icon:[320,512,[129485,"male"],"f183","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z"]},Fo=jo,Bo={prefix:"fas",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z"]},$o=Bo,qo={prefix:"fas",iconName:"spaghetti-monster-flying",icon:[640,512,["pastafarianism"],"f67b","M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Go=qo,Wo={prefix:"fas",iconName:"spoon",icon:[512,512,[129348,61873,"utensil-spoon"],"f2e5","M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z"]},Uo=Wo,Ko={prefix:"fas",iconName:"envelopes-bulk",icon:[640,512,["mail-bulk"],"f674","M128 0C110.3 0 96 14.3 96 32V224h96V192c0-35.3 28.7-64 64-64H480V32c0-17.7-14.3-32-32-32H128zM256 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H576c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H256zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32v13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301V288c0-17.7-14.3-32-32-32H64zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8V480c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V340.8z"]},Zo=Ko,Yo={prefix:"fas",iconName:"circle-h",icon:[512,512,[9405,"hospital-symbol"],"f47e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Xo=Yo,Jo={prefix:"fas",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z"]},Qo=Jo,el={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},tl=el,cl={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},al=cl,il={prefix:"fas",iconName:"truck-ramp-box",icon:[640,512,["truck-loading"],"f4de","M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z"]},nl=il,sl={prefix:"fas",iconName:"scroll-torah",icon:[640,512,["torah"],"f6a0","M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z"]},rl=sl,ol={prefix:"fas",iconName:"broom-ball",icon:[576,512,["quidditch","quidditch-broom-ball"],"f458","M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H364.3L256 211.7V182.6c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},ll=ol,ul=ol,pl={prefix:"fas",iconName:"box-archive",icon:[512,512,["archive"],"f187","M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"]},fl=pl,ml={prefix:"fas",iconName:"arrow-down-9-1",icon:[576,512,["sort-numeric-desc","sort-numeric-down-alt"],"f886","M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V416H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},dl=ml,hl=ml,vl={prefix:"fas",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},gl=vl,zl={prefix:"fas",iconName:"earth-africa",icon:[512,512,[127757,"globe-africa"],"f57c","M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},bl=zl,Cl={prefix:"fas",iconName:"tablet-screen-button",icon:[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64H64V384H384V64z"]},Ml=Cl,Hl={prefix:"fas",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Vl=Hl,yl={prefix:"fas",iconName:"gavel",icon:[512,512,["legal"],"f0e3","M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z"]},Ll=yl,Sl={prefix:"fas",iconName:"bell-concierge",icon:[512,512,[128718,"concierge-bell"],"f562","M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z"]},xl=Sl,Pl={prefix:"fas",iconName:"pen-ruler",icon:[512,512,["pencil-ruler"],"f5ae","M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z"]},wl=Pl,kl={prefix:"fas",iconName:"people-arrows",icon:[640,512,["people-arrows-left-right"],"e068","M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z"]},Al=kl,El={prefix:"fas",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},Nl=El,Tl={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Dl=Tl,Rl={prefix:"fas",iconName:"tachograph-digital",icon:[640,512,["digital-tachograph"],"f566","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},_l=Rl,Ol={prefix:"fas",iconName:"reply",icon:[512,512,[61714,"mail-reply"],"f3e5","M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"]},Il=Ol,jl={prefix:"fas",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Fl=jl,Bl={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},$l=Bl,ql={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},Gl=ql,Wl={prefix:"fas",iconName:"hourglass-end",icon:[384,512,[8987,"hourglass-3"],"f253","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z"]},Ul=Wl,Kl={prefix:"fas",iconName:"heart-crack",icon:[512,512,[128148,"heart-broken"],"f7a9","M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z"]},Zl=Kl,Yl={prefix:"fas",iconName:"square-up-right",icon:[448,512,[8599,"external-link-square-alt"],"f360","M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM320 313.4V176c0-8.8-7.2-16-16-16H166.6c-12.5 0-22.6 10.1-22.6 22.6c0 6 2.4 11.8 6.6 16L184 232l-66.3 66.3C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7L248 296l33.4 33.4c4.2 4.2 10 6.6 16 6.6c12.5 0 22.6-10.1 22.6-22.6z"]},Xl=Yl,Jl={prefix:"fas",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},Ql=Jl,eu={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},tu=eu,cu={prefix:"fas",iconName:"arrow-right-from-bracket",icon:[512,512,["sign-out"],"f08b","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"]},au=cu,iu={prefix:"fas",iconName:"circle-chevron-down",icon:[512,512,["chevron-circle-down"],"f13a","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z"]},nu=iu,su={prefix:"fas",iconName:"unlock-keyhole",icon:[448,512,["unlock-alt"],"f13e","M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z"]},ru=su,ou={prefix:"fas",iconName:"headphones-simple",icon:[512,512,["headphones-alt"],"f58f","M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z"]},lu=ou,uu={prefix:"fas",iconName:"circle-dollar-to-slot",icon:[512,512,["donate"],"f4b9","M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z"]},pu=uu,fu={prefix:"fas",iconName:"volume-low",icon:[448,512,[128264,"volume-down"],"f027","M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z"]},mu=fu,du={prefix:"fas",iconName:"wheat-awn",icon:[512,512,["wheat-alt"],"e2cd","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z"]},hu=du,vu={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},gu=vu,zu={prefix:"fas",iconName:"heading",icon:[448,512,["header"],"f1dc","M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z"]},bu=zu,Cu={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]},Mu=Cu,Hu={prefix:"fas",iconName:"square-phone-flip",icon:[448,512,["phone-square-alt"],"f87b","M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z"]},Vu=Hu,yu={prefix:"fas",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Lu=yu,Su={prefix:"fas",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z"]},xu=Su,Pu={prefix:"fas",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},wu=Pu,ku=Pu,Au={prefix:"fas",iconName:"paintbrush",icon:[576,512,[128396,"paint-brush"],"f1fc","M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H208c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"]},Eu=Au,Nu={prefix:"fas",iconName:"hot-tub-person",icon:[512,512,["hot-tub"],"f593","M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z"]},Tu=Nu,Du={prefix:"fas",iconName:"map-location",icon:[576,512,["map-marked"],"f59f","M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z"]},Ru=Du,_u={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z"]},Ou=_u,Iu={prefix:"fas",iconName:"share-nodes",icon:[448,512,["share-alt"],"f1e0","M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"]},ju=Iu,Fu={prefix:"fas",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9H112z"]},Bu=Fu,$u={prefix:"fas",iconName:"bag-shopping",icon:[448,512,["shopping-bag"],"f290","M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},qu=$u,Gu={prefix:"fas",iconName:"arrow-down-z-a",icon:[576,512,["sort-alpha-desc","sort-alpha-down-alt"],"f881","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z"]},Wu=Gu,Uu=Gu,Ku={prefix:"fas",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z"]},Zu=Ku,Yu={prefix:"fas",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Xu=Yu,Ju={prefix:"fas",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Qu=Ju,ep={prefix:"fas",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},tp=ep,cp={prefix:"fas",iconName:"ear-deaf",icon:[512,512,["deaf","deafness","hard-of-hearing"],"f2a4","M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"]},ap=cp,ip=cp,np=cp,sp={prefix:"fas",iconName:"square-rss",icon:[448,512,["rss-square"],"f143","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},rp=sp,op={prefix:"fas",iconName:"hryvnia-sign",icon:[384,512,[8372,"hryvnia"],"f6f2","M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z"]},lp=op,up={prefix:"fas",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},pp=up,fp={prefix:"fas",iconName:"staff-snake",icon:[384,512,["rod-asclepius","rod-snake","staff-aesculapius"],"e579","M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},mp=fp,dp=fp,hp=fp,vp={prefix:"fas",iconName:"truck-medical",icon:[640,512,[128657,"ambulance"],"f0f9","M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80v48l-48 0c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V192h48c8.8 0 16-7.2 16-16V144c0-8.8-7.2-16-16-16H240V80c0-8.8-7.2-16-16-16H192c-8.8 0-16 7.2-16 16z"]},gp=vp,zp={prefix:"fas",iconName:"temperature-half",icon:[320,512,[127777,"temperature-2","thermometer-2","thermometer-half"],"f2c9","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z"]},bp=zp,Cp=zp,Mp=zp,Hp={prefix:"fas",iconName:"poo-storm",icon:[448,512,["poo-bolt"],"f75a","M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17H128c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 41 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320H304c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9H360c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64h-1.4c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H233.9l52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z"]},Vp=Hp,yp={prefix:"fas",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z"]},Lp=yp,Sp={prefix:"fas",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z"]},xp=Sp,Pp={prefix:"fas",iconName:"file-waveform",icon:[448,512,["file-medical-alt"],"f478","M96 0C60.7 0 32 28.7 32 64V288H144c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320H32V448c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V160H288c-17.7 0-32-14.3-32-32V0H96zM288 0V128H416L288 0z"]},wp=Pp,kp={prefix:"fas",iconName:"gauge",icon:[512,512,["dashboard","gauge-med","tachometer-alt-average"],"f624","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Ap=kp,Ep=kp,Np=kp,Tp={prefix:"fas",iconName:"wand-magic-sparkles",icon:[576,512,["magic-wand-sparkles"],"e2ca","M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z"]},Dp=Tp,Rp={prefix:"fas",iconName:"pen-clip",icon:[512,512,["pen-alt"],"f305","M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"]},_p=Rp,Op={prefix:"fas",iconName:"van-shuttle",icon:[640,512,[128656,"shuttle-van"],"f5b6","M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},Ip=Op,jp={prefix:"fas",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},Fp=jp,Bp={prefix:"fas",iconName:"chart-area",icon:[512,512,["area-chart"],"f1fe","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z"]},$p=Bp,qp={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},Gp=qp,Wp={prefix:"fas",iconName:"spray-can-sparkles",icon:[512,512,["air-freshener"],"f5d0","M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z"]},Up=Wp,Kp={prefix:"fas",iconName:"arrow-pointer",icon:[320,512,["mouse-pointer"],"f245","M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"]},Zp=Kp,Yp={prefix:"fas",iconName:"maximize",icon:[512,512,["expand-arrows-alt"],"f31e","M200 32H56C42.7 32 32 42.7 32 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312V456c0 13.3 10.7 24 24 24H200c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H456c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z"]},Xp=Yp,Jp={prefix:"fas",iconName:"shapes",icon:[512,512,["triangle-circle-square"],"f61f","M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z"]},Qp=Jp,ef={prefix:"fas",iconName:"shuffle",icon:[512,512,[128256,"random"],"f074","M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"]},tf=ef,cf={prefix:"fas",iconName:"person-running",icon:[448,512,[127939,"running"],"f70c","M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H362.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z"]},af=cf,nf={prefix:"fas",iconName:"computer-mouse",icon:[384,512,[128433,"mouse"],"f8cc","M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z"]},sf=nf,rf={prefix:"fas",iconName:"arrow-right-to-bracket",icon:[512,512,["sign-in"],"f090","M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},of=rf,lf={prefix:"fas",iconName:"shop-slash",icon:[640,512,["store-alt-slash"],"e070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z"]},uf=lf,pf={prefix:"fas",iconName:"hourglass-start",icon:[384,512,["hourglass-1"],"f251","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z"]},ff=pf,mf={prefix:"fas",iconName:"right-to-bracket",icon:[512,512,["sign-in-alt"],"f2f6","M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},df=mf,hf={prefix:"fas",iconName:"heart-pulse",icon:[512,512,["heartbeat"],"f21e","M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z"]},vf=hf,gf={prefix:"fas",iconName:"people-carry-box",icon:[640,512,["people-carry"],"f4ce","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z"]},zf=gf,bf={prefix:"fas",iconName:"weight-scale",icon:[512,512,["weight"],"f496","M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z"]},Cf=bf,Mf={prefix:"fas",iconName:"user-group",icon:[640,512,[128101,"user-friends"],"f500","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z"]},Hf=Mf,Vf={prefix:"fas",iconName:"arrow-up-a-z",icon:[576,512,["sort-alpha-up"],"f15e","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z"]},yf=Vf,Lf={prefix:"fas",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Sf=Lf,xf={prefix:"fas",iconName:"circle-arrow-up",icon:[512,512,["arrow-circle-up"],"f0aa","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 231c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V193.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 119c9.4-9.4 24.6-9.4 33.9 0L385 231z"]},Pf=xf,wf={prefix:"fas",iconName:"person-walking",icon:[320,512,[128694,"walking"],"f554","M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z"]},kf=wf,Af={prefix:"fas",iconName:"bed-pulse",icon:[640,512,["procedures"],"f487","M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},Ef=Af,Nf={prefix:"fas",iconName:"shuttle-space",icon:[640,512,["space-shuttle"],"f197","M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z"]},Tf=Nf,Df={prefix:"fas",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rf=Df,_f={prefix:"fas",iconName:"microphone-lines",icon:[384,512,[127897,"microphone-alt"],"f3c9","M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z"]},Of=_f,If={prefix:"fas",iconName:"mars-stroke-up",icon:[320,512,[9896,"mars-stroke-v"],"f22a","M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z"]},jf=If,Ff={prefix:"fas",iconName:"champagne-glasses",icon:[640,512,[129346,"glass-cheers"],"f79f","M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z"]},Bf=Ff,$f={prefix:"fas",iconName:"file-arrow-up",icon:[384,512,["file-upload"],"f574","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z"]},qf=$f,Gf={prefix:"fas",iconName:"wifi",icon:[640,512,["wifi-3","wifi-strong"],"f1eb","M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},Wf=Gf,Uf=Gf,Kf={prefix:"fas",iconName:"bath",icon:[512,512,[128705,"bathtub"],"f2cd","M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z"]},Zf=Kf,Yf={prefix:"fas",iconName:"user-pen",icon:[640,512,["user-edit"],"f4ff","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"]},Xf=Yf,Jf={prefix:"fas",iconName:"border-top-left",icon:[448,512,["border-style"],"f853","M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Qf=Jf,em={prefix:"fas",iconName:"map-location-dot",icon:[576,512,["map-marked-alt"],"f5a0","M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},tm=em,cm={prefix:"fas",iconName:"square-poll-vertical",icon:[448,512,["poll"],"f681","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z"]},am=cm,im={prefix:"fas",iconName:"car-battery",icon:[512,512,["battery-car"],"f5df","M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z"]},nm=im,sm={prefix:"fas",iconName:"mars-stroke-right",icon:[640,512,[9897,"mars-stroke-h"],"f22b","M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z"]},rm=sm,om={prefix:"fas",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z"]},lm=om,um={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},pm=um,fm={prefix:"fas",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},mm=fm,dm={prefix:"fas",iconName:"hands-bubbles",icon:[576,512,["hands-wash"],"e05e","M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7v-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8 0 0 0 0-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.7 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4H352h13.3l0 0H397l23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352v8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H352l0 0 0 0H258.8L305 219.1c15-9.4 19.5-29.1 10.2-44.1z"]},hm=dm,vm={prefix:"fas",iconName:"eye-low-vision",icon:[640,512,["low-vision"],"f2a8","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z"]},gm=vm,zm={prefix:"fas",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},bm=zm,Cm={prefix:"fas",iconName:"martini-glass",icon:[512,512,[127864,"glass-martini-alt"],"f57b","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z"]},Mm=Cm,Hm={prefix:"fas",iconName:"rotate-left",icon:[512,512,["rotate-back","rotate-backward","undo-alt"],"f2ea","M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z"]},Vm=Hm,ym=Hm,Lm=Hm,Sm={prefix:"fas",iconName:"table-columns",icon:[512,512,["columns"],"f0db","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z"]},xm=Sm,Pm={prefix:"fas",iconName:"dolly",icon:[576,512,["dolly-box"],"f472","M0 32C0 14.3 14.3 0 32 0h72.9c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64H32C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z"]},wm=Pm,km={prefix:"fas",iconName:"minimize",icon:[512,512,["compress-arrows-alt"],"f78c","M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z"]},Am=km,Em={prefix:"fas",iconName:"angles-right",icon:[512,512,[187,"angle-double-right"],"f101","M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},Nm=Em,Tm={prefix:"fas",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]},Dm=Tm,Rm={prefix:"fas",iconName:"euro-sign",icon:[320,512,[8364,"eur","euro"],"f153","M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z"]},_m=Rm,Om=Rm,Im={prefix:"fas",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},jm=Im,Fm={prefix:"fas",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z"]},Bm=Fm,$m={prefix:"fas",iconName:"compass-drafting",icon:[512,512,["drafting-compass"],"f568","M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},qm=$m,Gm={prefix:"fas",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},Wm=Gm,Um={prefix:"fas",iconName:"circle-chevron-up",icon:[512,512,["chevron-circle-up"],"f139","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z"]},Km=Um,Zm={prefix:"fas",iconName:"sterling-sign",icon:[320,512,[163,"gbp","pound-sign"],"f154","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1C104.1 390 112 361.5 112 332.5V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z"]},Ym=Zm,Xm=Zm,Jm={prefix:"fas",iconName:"arrow-down-long",icon:[384,512,["long-arrow-down"],"f175","M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z"]},Qm=Jm,ed={prefix:"fas",iconName:"reply-all",icon:[576,512,["mail-reply-all"],"f122","M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z"]},td=ed,cd={prefix:"fas",iconName:"person-skating",icon:[448,512,["skating"],"f7c5","M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z"]},ad=cd,id={prefix:"fas",iconName:"filter-circle-dollar",icon:[576,512,["funnel-dollar"],"f662","M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z"]},nd=id,sd={prefix:"fas",iconName:"circle-arrow-down",icon:[512,512,["arrow-circle-down"],"f0ab","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 281c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 136c0-13.3 10.7-24 24-24s24 10.7 24 24l0 182.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 393c-9.4 9.4-24.6 9.4-33.9 0L127 281z"]},rd=sd,od={prefix:"fas",iconName:"file-import",icon:[512,512,["arrow-right-to-file"],"f56f","M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z"]},ld=od,ud={prefix:"fas",iconName:"square-arrow-up-right",icon:[448,512,["external-link-square"],"f14c","M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"]},pd=ud,fd={prefix:"fas",iconName:"temperature-empty",icon:[320,512,["temperature-0","thermometer-0","thermometer-empty"],"f2cb","M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},md=fd,dd=fd,hd=fd,vd={prefix:"fas",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},gd=vd,zd=vd,bd={prefix:"fas",iconName:"scale-unbalanced-flip",icon:[640,512,["balance-scale-right"],"f516","M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288H200.4zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416H583.3L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z"]},Cd=bd,Md={prefix:"fas",iconName:"diamond-turn-right",icon:[512,512,["directions"],"f5eb","M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z"]},Hd=Md,Vd={prefix:"fas",iconName:"house-laptop",icon:[640,512,["laptop-house"],"e066","M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z"]},yd=Vd,Ld={prefix:"fas",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Sd=Ld,xd={prefix:"fas",iconName:"font-awesome",icon:[448,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z"]},Pd=xd,wd=xd,kd={prefix:"fas",iconName:"cloud-arrow-up",icon:[640,512,[62338,"cloud-upload","cloud-upload-alt"],"f0ee","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z"]},Ad=kd,Ed=kd,Nd={prefix:"fas",iconName:"seedling",icon:[512,512,[127793,"sprout"],"f4d8","M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0h32c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64H64c123.7 0 224 100.3 224 224v32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320C100.3 320 0 219.7 0 96z"]},Td=Nd,Dd={prefix:"fas",iconName:"left-right",icon:[512,512,[8596,"arrows-alt-h"],"f337","M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z"]},Rd=Dd,_d={prefix:"fas",iconName:"circle-arrow-left",icon:[512,512,["arrow-circle-left"],"f0a8","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM231 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L376 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-182.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L119 273c-9.4-9.4-9.4-24.6 0-33.9L231 127z"]},Od=_d,Id={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z"]},jd=Id,Fd=Id,Bd={prefix:"fas",iconName:"cloud-bolt",icon:[512,512,[127785,"thunderstorm"],"f76c","M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z"]},$d=Bd,qd={prefix:"fas",iconName:"text-slash",icon:[640,512,["remove-format"],"f87d","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"]},Gd=qd,Wd={prefix:"fas",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},Ud=Wd,Kd={prefix:"fas",iconName:"arrows-left-right",icon:[512,512,["arrows-h"],"f07e","M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},Zd=Kd,Yd={prefix:"fas",iconName:"cloud-arrow-down",icon:[640,512,[62337,"cloud-download","cloud-download-alt"],"f0ed","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},Xd=Yd,Jd=Yd,Qd={prefix:"fas",iconName:"chalkboard",icon:[576,512,["blackboard"],"f51b","M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z"]},eh=Qd,th={prefix:"fas",iconName:"user-large-slash",icon:[640,512,["user-alt-slash"],"f4fa","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512H528L284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H545.3l.3 0z"]},ch=th,ah={prefix:"fas",iconName:"handshake-simple-slash",icon:[640,512,["handshake-alt-slash"],"e05f","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z"]},ih=ah,nh={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"]},sh=nh,rh=nh,oh={prefix:"fas",iconName:"shield-halved",icon:[512,512,["shield-alt"],"f3ed","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z"]},lh=oh,uh={prefix:"fas",iconName:"book-atlas",icon:[448,512,["atlas"],"f558","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z"]},ph=uh,fh={prefix:"fas",iconName:"house-chimney-crack",icon:[576,512,["house-damage"],"f6f1","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z"]},mh=fh,dh={prefix:"fas",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z"]},hh=dh,vh={prefix:"fas",iconName:"martini-glass-empty",icon:[512,512,["glass-martini"],"f000","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z"]},gh=vh,zh={prefix:"fas",iconName:"person-skiing",icon:[512,512,[9975,"skiing"],"f7c9","M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z"]},bh=zh,Ch={prefix:"fas",iconName:"temperature-arrow-down",icon:[576,512,["temperature-down"],"e03f","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H480V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H384c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z"]},Mh=Ch,Hh={prefix:"fas",iconName:"feather-pointed",icon:[512,512,["feather-alt"],"f56b","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},Vh=Hh,yh={prefix:"fas",iconName:"rectangle-ad",icon:[576,512,["ad"],"f641","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z"]},Lh=yh,Sh={prefix:"fas",iconName:"circle-arrow-right",icon:[512,512,["arrow-circle-right"],"f0a9","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM281 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L136 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l182.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L393 239c9.4 9.4 9.4 24.6 0 33.9L281 385z"]},xh=Sh,Ph={prefix:"fas",iconName:"sort",icon:[320,512,["unsorted"],"f0dc","M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z"]},wh=Ph,kh={prefix:"fas",iconName:"list-ol",icon:[512,512,["list-1-2","list-numeric"],"f0cb","M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Ah=kh,Eh=kh,Nh={prefix:"fas",iconName:"money-check-dollar",icon:[576,512,["money-check-alt"],"f53d","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164 152v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V360c0 11-9 20-20 20s-20-9-20-20V345.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V152c0-11 9-20 20-20s20 9 20 20z"]},Th=Nh,Dh={prefix:"fas",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},Rh=Dh,_h={prefix:"fas",iconName:"up-down-left-right",icon:[512,512,["arrows-alt"],"f0b2","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},Oh=_h,Ih={prefix:"fas",iconName:"star-half-stroke",icon:[640,512,["star-half-alt"],"f5c0","M320 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L320.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L320.1 439.8 191.8 508.3C181 514 167.9 513.1 158 506s-14.9-19.3-12.9-31.3L169.8 329 65.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L227 150.3 291.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L470.5 329l24.6 145.7z"]},jh=Ih,Fh={prefix:"fas",iconName:"whiskey-glass",icon:[512,512,[129347,"glass-whiskey"],"f7a0","M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z"]},Bh=Fh,$h={prefix:"fas",iconName:"arrow-up-right-from-square",icon:[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},qh=$h,Gh={prefix:"fas",iconName:"won-sign",icon:[512,512,[8361,"krw","won"],"f159","M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z"]},Wh=Gh,Uh=Gh,Kh={prefix:"fas",iconName:"taxi",icon:[512,512,[128662,"cab"],"f1ba","M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Zh=Kh,Yh={prefix:"fas",iconName:"chart-pie",icon:[576,512,["pie-chart"],"f200","M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z"]},Xh=Yh,Jh={prefix:"fas",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},Qh=Jh,ev={prefix:"fas",iconName:"location-pin",icon:[384,512,["map-marker"],"f041","M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"]},tv=ev,cv={prefix:"fas",iconName:"helmet-safety",icon:[576,512,["hard-hat","hat-hard"],"f807","M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z"]},av=cv,iv=cv,nv={prefix:"fas",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1l99.9 107.1c3.5 3.8 5.5 8.7 5.5 13.8s-2 10.1-5.5 13.8L294.6 376.9c-4.2 4.5-10.1 7.1-16.3 7.1C266 384 256 374 256 361.7l0-57.7-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-57.7c0-12.3 10-22.3 22.3-22.3c6.2 0 12.1 2.6 16.3 7.1z"]},sv=nv,rv={prefix:"fas",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z"]},ov=rv,lv={prefix:"fas",iconName:"chart-line",icon:[512,512,["line-chart"],"f201","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"]},uv=lv,pv={prefix:"fas",iconName:"signs-post",icon:[512,512,["map-signs"],"f277","M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},fv=pv,mv={prefix:"fas",iconName:"screwdriver-wrench",icon:[512,512,["tools"],"f7d9","M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},dv=mv,hv={prefix:"fas",iconName:"house-user",icon:[576,512,["home-user"],"e1b0","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z"]},vv=hv,gv={prefix:"fas",iconName:"martini-glass-citrus",icon:[576,512,["cocktail"],"f561","M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z"]},zv=gv,bv={prefix:"fas",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Cv=bv,Mv={prefix:"fas",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Hv=Mv,Vv={prefix:"fas",iconName:"apple-whole",icon:[448,512,[127822,127823,"apple-alt"],"f5d1","M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z"]},yv=Vv,Lv={prefix:"fas",iconName:"temperature-quarter",icon:[320,512,["temperature-1","thermometer-1","thermometer-quarter"],"f2ca","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z"]},Sv=Lv,xv=Lv,Pv=Lv,wv={prefix:"fas",iconName:"square-poll-horizontal",icon:[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"]},kv=wv,Av={prefix:"fas",iconName:"backward-fast",icon:[512,512,[9198,"fast-backward"],"f049","M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z"]},Ev=Av,Nv={prefix:"fas",iconName:"basketball",icon:[512,512,[127936,"basketball-ball"],"f434","M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z"]},Tv=Nv,Dv={prefix:"fas",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4l107.1-99.9c3.8-3.5 8.7-5.5 13.8-5.5s10.1 2 13.8 5.5l107.1 99.9c4.5 4.2 7.1 10.1 7.1 16.3c0 12.3-10 22.3-22.3 22.3H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H150.3C138 256 128 246 128 233.7c0-6.2 2.6-12.1 7.1-16.3z"]},Rv=Dv,_v={prefix:"fas",iconName:"mobile-screen-button",icon:[384,512,["mobile-alt"],"f3cd","M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64H80V384H304V64z"]},Ov=_v,Iv={prefix:"fas",iconName:"volume-high",icon:[640,512,[128266,"volume-up"],"f028","M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z"]},jv=Iv,Fv={prefix:"fas",iconName:"burger",icon:[512,512,["hamburger"],"f805","M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z"]},Bv=Fv,$v={prefix:"fas",iconName:"rupee-sign",icon:[448,512,[8360,"rupee"],"f156","M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z"]},qv=$v,Gv={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Wv=Gv,Uv={prefix:"fas",iconName:"phone-flip",icon:[512,512,[128381,"phone-alt"],"f879","M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z"]},Kv=Uv,Zv={prefix:"fas",iconName:"forward-fast",icon:[512,512,[9197,"fast-forward"],"f050","M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z"]},Yv=Zv,Xv={prefix:"fas",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Jv=Xv,Qv={prefix:"fas",iconName:"square-parking",icon:[448,512,[127359,"parking"],"f540","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z"]},eg=Qv,tg={prefix:"fas",iconName:"bars-progress",icon:[512,512,["tasks-alt"],"f828","M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z"]},cg=tg,ag={prefix:"fas",iconName:"cart-flatbed",icon:[640,512,["dolly-flatbed"],"f474","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z"]},ig=ag,ng={prefix:"fas",iconName:"ban-smoking",icon:[512,512,[128685,"smoking-ban"],"f54d","M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z"]},sg=ng,rg={prefix:"fas",iconName:"basket-shopping",icon:[576,512,["shopping-basket"],"f291","M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},og=rg,lg={prefix:"fas",iconName:"bus-simple",icon:[448,512,["bus-alt"],"f55e","M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},ug=lg,pg={prefix:"fas",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},fg=pg,mg={prefix:"fas",iconName:"signal",icon:[640,512,[128246,"signal-5","signal-perfect"],"f012","M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},dg=mg,hg=mg,vg={prefix:"fas",iconName:"house-chimney",icon:[576,512,[63499,"home-lg"],"e3af","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z"]},gg=vg,zg={prefix:"fas",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},bg=zg,Cg={prefix:"fas",iconName:"shop",icon:[640,512,["store-alt"],"f54f","M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z"]},Mg=Cg,Hg={prefix:"fas",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Vg=Hg,yg={prefix:"fas",iconName:"scale-unbalanced",icon:[640,512,["balance-scale-left"],"f515","M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288H439.6zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416H56.7l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z"]},Lg=yg,Sg={prefix:"fas",iconName:"sort-up",icon:[320,512,["sort-asc"],"f0de","M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},xg=Sg,Pg={prefix:"fas",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},wg=Pg,kg={prefix:"fas",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Ag=kg,Eg={prefix:"fas",iconName:"hand-holding-dollar",icon:[576,512,["hand-holding-usd"],"f4c0","M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]},Ng=Eg,Tg={prefix:"fas",iconName:"hands-praying",icon:[640,512,["praying-hands"],"f684","M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z"]},Dg=Tg,Rg={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]},_g=Rg,Og=Rg,Ig=Rg,jg={prefix:"fas",iconName:"location-crosshairs",icon:[512,512,["location"],"f601","M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},Fg=jg,Bg={prefix:"fas",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z"]},$g=Bg,qg={prefix:"fas",iconName:"calendar-xmark",icon:[512,512,["calendar-times"],"f273","M160 0c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H32V112c0-26.5 21.5-48 48-48h48V32c0-17.7 14.3-32 32-32zM32 192H480V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V192zM337 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"]},Gg=qg,Wg={prefix:"fas",iconName:"user-gear",icon:[640,512,["user-cog"],"f4fe","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z"]},Ug=Wg,Kg={prefix:"fas",iconName:"arrow-up-1-9",icon:[576,512,["sort-numeric-up"],"f163","M450.7 38c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V108.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},Zg=Kg,Yg={prefix:"fas",iconName:"person-digging",icon:[576,512,["digging"],"f85e","M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z"]},Xg=Yg,Jg={prefix:"fas",iconName:"gauge-simple",icon:[512,512,["gauge-simple-med","tachometer-average"],"f629","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Qg=Jg,ez=Jg,tz={prefix:"fas",iconName:"quote-right",icon:[448,512,[8221,"quote-right-alt"],"f10e","M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z"]},cz=tz,az={prefix:"fas",iconName:"shirt",icon:[640,512,[128085,"t-shirt","tshirt"],"f553","M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z"]},iz=az,nz=az,sz={prefix:"fas",iconName:"tenge-sign",icon:[384,512,[8376,"tenge"],"f7d7","M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z"]},rz=sz,oz={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},lz=oz,uz={prefix:"fas",iconName:"table-cells",icon:[512,512,["th"],"f00a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z"]},pz=uz,fz={prefix:"fas",iconName:"book-bible",icon:[448,512,["bible"],"f647","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z"]},mz=fz,dz={prefix:"fas",iconName:"suitcase-medical",icon:[512,512,["medkit"],"f0fa","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z"]},hz=dz,vz={prefix:"fas",iconName:"person-dress",icon:[320,512,["female"],"f182","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z"]},gz=vz,zz={prefix:"fas",iconName:"business-time",icon:[640,512,["briefcase-clock"],"f64a","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z"]},bz=zz,Cz={prefix:"fas",iconName:"table-cells-large",icon:[512,512,["th-large"],"f009","M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},Mz=Cz,Hz={prefix:"fas",iconName:"book-tanakh",icon:[448,512,["tanakh"],"f827","M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z"]},Vz=Hz,yz={prefix:"fas",iconName:"phone-volume",icon:[512,512,["volume-control-phone"],"f2a0","M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z"]},Lz=yz,Sz={prefix:"fas",iconName:"cake-candles",icon:[448,512,[127874,"birthday-cake","cake"],"f1fd","M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z"]},xz=Sz,Pz=Sz,wz={prefix:"fas",iconName:"angles-up",icon:[448,512,["angle-double-up"],"f102","M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},kz=wz,Az={prefix:"fas",iconName:"arrow-up-9-1",icon:[576,512,["sort-numeric-up-alt"],"f887","M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V364.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},Ez=Az,Nz={prefix:"fas",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z"]},Tz=Nz,Dz={prefix:"fas",iconName:"user-doctor",icon:[448,512,["user-md"],"f0f0","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},Rz=Dz,_z={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Oz=_z,Iz={prefix:"fas",iconName:"camera",icon:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},jz=Iz,Fz={prefix:"fas",iconName:"arrow-down-1-9",icon:[576,512,["sort-numeric-asc","sort-numeric-down"],"f162","M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V160H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},Bz=Fz,$z=Fz,qz={prefix:"fas",iconName:"hand-holding-droplet",icon:[576,512,["hand-holding-water"],"f4c1","M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]},Gz=qz,Wz={prefix:"fas",iconName:"prescription-bottle-medical",icon:[384,512,["prescription-bottle-alt"],"f486","M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"]},Uz=Wz,Kz={prefix:"fas",iconName:"arrow-down-a-z",icon:[576,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z"]},Zz=Kz,Yz=Kz,Xz={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]},Jz=Xz,Qz=Xz,eb=Xz,tb=Xz,cb={prefix:"fas",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},ab=cb,ib={prefix:"fas",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z"]},nb=ib,sb={prefix:"fas",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z"]},rb=sb,ob={prefix:"fas",iconName:"person-skiing-nordic",icon:[576,512,["skiing-nordic"],"f7ca","M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z"]},lb=ob,ub={prefix:"fas",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9L117.5 269.8c-3.5-3.8-5.5-8.7-5.5-13.8s2-10.1 5.5-13.8l99.9-107.1c4.2-4.5 10.1-7.1 16.3-7.1c12.3 0 22.3 10 22.3 22.3l0 57.7 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 57.7c0 12.3-10 22.3-22.3 22.3c-6.2 0-12.1-2.6-16.3-7.1z"]},pb=ub,fb={prefix:"fas",iconName:"train-subway",icon:[448,512,["subway"],"f239","M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},mb=fb,db={prefix:"fas",iconName:"indian-rupee-sign",icon:[320,512,["indian-rupee","inr"],"e1bc","M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z"]},hb=db,vb=db,gb={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z"]},zb=gb,bb={prefix:"fas",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z"]},Cb=bb,Mb={prefix:"fas",iconName:"left-long",icon:[512,512,["long-arrow-alt-left"],"f30a","M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z"]},Hb=Mb,Vb={prefix:"fas",iconName:"minus",icon:[448,512,[8211,8722,10134,"subtract"],"f068","M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"]},yb=Vb,Lb={prefix:"fas",iconName:"arrow-left-long",icon:[512,512,["long-arrow-left"],"f177","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"]},Sb=Lb,xb={prefix:"fas",iconName:"hands-asl-interpreting",icon:[640,512,["american-sign-language-interpreting","asl-interpreting","hands-american-sign-language-interpreting"],"f2a3","M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"]},Pb=xb,wb=xb,kb=xb,Ab={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},Eb=Ab,Nb={prefix:"fas",iconName:"droplet-slash",icon:[640,512,["tint-slash"],"f5c7","M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.1 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0h-1.8c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Tb=Nb,Db={prefix:"fas",iconName:"cart-shopping",icon:[576,512,[128722,"shopping-cart"],"f07a","M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Rb=Db,_b={prefix:"fas",iconName:"arrow-turn-up",icon:[384,512,["level-up"],"f148","M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"]},Ob=_b,Ib={prefix:"fas",iconName:"square-root-variable",icon:[576,512,["square-root-alt"],"f698","M282.6 78.1c8-27.3 33-46.1 61.4-46.1H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H344L238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H77.6c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},jb=Ib,Fb={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},Bb=Fb,$b={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z"]},qb=$b,Gb={prefix:"fas",iconName:"house-chimney-medical",icon:[576,512,["clinic-medical"],"f7f2","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z"]},Wb=Gb,Ub={prefix:"fas",iconName:"temperature-three-quarters",icon:[320,512,["temperature-3","thermometer-3","thermometer-three-quarters"],"f2c8","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V144c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z"]},Kb=Ub,Zb=Ub,Yb=Ub,Xb={prefix:"fas",iconName:"mobile-screen",icon:[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z"]},Jb=Xb,Qb={prefix:"fas",iconName:"battery-half",icon:[576,512,["battery-3"],"f242","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z"]},eC=Qb,tC={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"]},cC=tC,aC={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},iC=aC,nC={prefix:"fas",iconName:"right-long",icon:[512,512,["long-arrow-alt-right"],"f30b","M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z"]},sC=nC,rC={prefix:"fas",iconName:"tty",icon:[512,512,["teletype"],"f1e4","M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4V144c-49.6-18.1-104-18.1-153.6 0v54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V336zm0 96c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V432zM144 320h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V336zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V336zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V432c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V432z"]},oC=rC,lC={prefix:"fas",iconName:"person-hiking",icon:[384,512,["hiking"],"f6ec","M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z"]},uC=lC,pC={prefix:"fas",iconName:"cable-car",icon:[512,512,[128673,57551,"tram"],"f7da","M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z"]},fC=pC,mC={prefix:"fas",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},dC=mC,hC={prefix:"fas",iconName:"delete-left",icon:[576,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},vC=hC,gC={prefix:"fas",iconName:"eye-dropper",icon:[512,512,["eye-dropper-empty","eyedropper"],"f1fb","M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z"]},zC=gC,bC=gC,CC={prefix:"fas",iconName:"mobile",icon:[384,512,[128241,"mobile-android","mobile-phone"],"f3ce","M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},MC=CC,HC=CC,VC={prefix:"fas",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},yC=VC,LC={prefix:"fas",iconName:"book-skull",icon:[448,512,["book-dead"],"f6b7","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z"]},SC=LC,xC={prefix:"fas",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z"]},PC=xC,wC={prefix:"fas",iconName:"outdent",icon:[448,512,["dedent"],"f03b","M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"]},kC=wC,AC={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},EC=AC,NC=AC,TC=AC,DC={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]},RC=DC,_C={prefix:"fas",iconName:"rotate-right",icon:[512,512,["redo-alt","rotate-forward"],"f2f9","M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"]},OC=_C,IC=_C,jC={prefix:"fas",iconName:"utensils",icon:[448,512,[127860,61685,"cutlery"],"f2e7","M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z"]},FC=jC,BC={prefix:"fas",iconName:"arrow-up-wide-short",icon:[576,512,["sort-amount-up"],"f161","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},$C=BC,qC={prefix:"fas",iconName:"tower-broadcast",icon:[576,512,["broadcast-tower"],"f519","M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z"]},GC=qC,WC={prefix:"fas",iconName:"up-long",icon:[320,512,["long-arrow-alt-up"],"f30c","M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192H96l0 288c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32l0-288h72c9.6 0 18.2-5.7 22-14.5z"]},UC=WC,KC={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},ZC=KC,YC={prefix:"fas",iconName:"bolt",icon:[448,512,[9889,"zap"],"f0e7","M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z"]},XC=YC,JC={prefix:"fas",iconName:"yen-sign",icon:[320,512,[165,"cny","jpy","rmb","yen"],"f157","M58.6 46.2C48.8 31.5 29 27.6 14.3 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z"]},QC=JC,eM=JC,tM=JC,cM=JC,aM={prefix:"fas",iconName:"ruble-sign",icon:[384,512,[8381,"rouble","rub","ruble"],"f158","M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},iM=aM,nM=aM,sM=aM,rM={prefix:"fas",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},oM=rM,lM={prefix:"fas",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6L269.8 394.5c-3.8 3.5-8.7 5.5-13.8 5.5s-10.1-2-13.8-5.5L135.1 294.6c-4.5-4.2-7.1-10.1-7.1-16.3c0-12.3 10-22.3 22.3-22.3l57.7 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 57.7 0c12.3 0 22.3 10 22.3 22.3c0 6.2-2.6 12.1-7.1 16.3z"]},uM=lM,pM={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},fM=pM,mM=pM,dM={prefix:"fas",iconName:"arrow-right-long",icon:[512,512,["long-arrow-right"],"f178","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},hM=dM,vM={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},gM=vM,zM={prefix:"fas",iconName:"kit-medical",icon:[576,512,["first-aid"],"f479","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z"]},bM=zM,CM={prefix:"fas",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z"]},MM=CM,HM={prefix:"fas",iconName:"car",icon:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},VM=HM,yM={prefix:"fas",iconName:"book-open-reader",icon:[512,512,["book-reader"],"f5da","M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z"]},LM=yM,SM={prefix:"fas",iconName:"temperature-arrow-up",icon:[576,512,["temperature-up"],"e040","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z"]},xM=SM,PM={prefix:"fas",iconName:"square-h",icon:[448,512,["h-square"],"f0fd","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},wM=PM,kM={prefix:"fas",iconName:"temperature-full",icon:[320,512,["temperature-4","thermometer-4","thermometer-full"],"f2c7","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z"]},AM=kM,EM=kM,NM=kM,TM={prefix:"fas",iconName:"handshake-angle",icon:[640,512,["hands-helping"],"f4c4","M544 248v3.3l69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5H296c-37.1 0-67.6 28-71.6 64H224V248c0 22.1 17.9 40 40 40s40-17.9 40-40V176c0 0 0-.1 0-.1V160l16 0 136 0c0 0 0 0 .1 0H464c44.2 0 80 35.8 80 80v8zM336 192v56c0 39.8-32.2 72-72 72s-72-32.2-72-72V129.4c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1H384c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16H432c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8v-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z"]},DM=TM,RM={prefix:"fas",iconName:"location-dot",icon:[384,512,["map-marker-alt"],"f3c5","M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},_M=RM,OM={prefix:"fas",iconName:"person-swimming",icon:[576,512,[127946,"swimmer"],"f5c4","M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},IM=OM,jM={prefix:"fas",iconName:"droplet",icon:[384,512,[128167,"tint"],"f043","M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"]},FM=jM,BM={prefix:"fas",iconName:"earth-americas",icon:[512,512,[127758,"earth","earth-america","globe-americas"],"f57d","M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},$M=BM,qM=BM,GM=BM,WM={prefix:"fas",iconName:"battery-empty",icon:[576,512,["battery-0"],"f244","M80 160c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zM0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176z"]},UM=WM,KM={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},ZM=KM,YM=KM,XM={prefix:"fas",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z"]},JM=XM,QM=XM,eH={prefix:"fas",iconName:"bars-staggered",icon:[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},tH=eH,cH=eH,aH={prefix:"fas",iconName:"person-walking-with-cane",icon:[512,512,["blind"],"f29d","M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z"]},iH=aH,nH={prefix:"fas",iconName:"check-to-slot",icon:[576,512,["vote-yea"],"f772","M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z"]},sH=nH,rH={prefix:"fas",iconName:"boxes-stacked",icon:[576,512,[62625,"boxes","boxes-alt"],"f468","M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z"]},oH=rH,lH=rH,uH={prefix:"fas",iconName:"link",icon:[640,512,[128279,"chain"],"f0c1","M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"]},pH=uH,fH={prefix:"fas",iconName:"ear-listen",icon:[512,512,["assistive-listening-systems"],"f2a2","M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},mH=fH,dH={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},hH=dH,vH={prefix:"fas",iconName:"table-tennis-paddle-ball",icon:[640,512,[127955,"ping-pong-paddle-ball","table-tennis"],"f45d","M480 288c-50.1 0-93.6 28.8-114.6 70.8L132.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C535.8 297.6 509 288 480 288zM113.3 151.9L354.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H357c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L152.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32c-6.3-6.3-9.7-14.9-9.4-23.8s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8c-24-24-37.5-56.6-37.5-90.5v-2.7c0-22.8 6.1-44.9 17.3-64.3zM480 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},gH=vH,zH=vH,bH={prefix:"fas",iconName:"person-dots-from-line",icon:[576,512,["diagnoses"],"f470","M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},CH=bH,MH={prefix:"fas",iconName:"trash-can-arrow-up",icon:[448,512,["trash-restore-alt"],"f82a","M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},HH=MH,VH={prefix:"fas",iconName:"file-pen",icon:[576,512,[128221,"file-edit"],"f31c","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},yH=VH,LH={prefix:"fas",iconName:"square-pen",icon:[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},SH=LH,xH=LH,PH={prefix:"fas",iconName:"battery-full",icon:[576,512,[128267,"battery","battery-5"],"f240","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm368 96H96V320H448V192z"]},wH=PH,kH=PH,AH={prefix:"fas",iconName:"list-ul",icon:[512,512,["list-dots"],"f0ca","M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},EH=AH,NH={prefix:"fas",iconName:"down-long",icon:[320,512,["long-arrow-alt-down"],"f309","M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z"]},TH=NH,DH={prefix:"fas",iconName:"landmark-dome",icon:[512,512,["landmark-alt"],"f752","M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z"]},RH=DH,_H={prefix:"fas",iconName:"tv",icon:[640,512,[63717,"television","tv-alt"],"f26c","M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},OH=_H,IH=_H,jH={prefix:"fas",iconName:"list-check",icon:[512,512,["tasks"],"f0ae","M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},FH=jH,BH={prefix:"fas",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z"]},$H=BH,qH={prefix:"fas",iconName:"car-burst",icon:[640,512,["car-crash"],"f5e1","M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z"]},GH=qH,WH={prefix:"fas",iconName:"person-snowboarding",icon:[512,512,[127938,"snowboarding"],"f7ce","M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H472c13.3 0 24 10.7 24 24s-10.7 24-24 24H443.8c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},UH=WH,KH={prefix:"fas",iconName:"truck-fast",icon:[640,512,["shipping-fast"],"f48b","M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},ZH=KH,YH={prefix:"fas",iconName:"circle-half-stroke",icon:[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},XH=YH,JH={prefix:"fas",iconName:"circle-radiation",icon:[512,512,[9762,"radiation-alt"],"f7ba","M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},QH=JH,eV={prefix:"fas",iconName:"baseball",icon:[512,512,[129358,9918,"baseball-ball"],"f433","M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z"]},tV=eV,cV={prefix:"fas",iconName:"diagram-project",icon:[576,512,["project-diagram"],"f542","M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z"]},aV=cV,iV={prefix:"fas",iconName:"volume-xmark",icon:[576,512,["volume-mute","volume-times"],"f6a9","M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},nV=iV,sV=iV,rV={prefix:"fas",iconName:"grip",icon:[448,512,["grip-horizontal"],"f58d","M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z"]},oV=rV,lV={prefix:"fas",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z"]},uV=lV,pV={prefix:"fas",iconName:"child-combatant",icon:[576,512,["child-rifle"],"e4e0","M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z"]},fV=pV,mV={prefix:"fas",iconName:"square-phone",icon:[448,512,["phone-square"],"f098","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z"]},dV=mV,hV={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"]},vV=hV,gV={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},zV=gV,bV=gV,CV=gV,MV=gV,HV={prefix:"fas",iconName:"arrows-up-down-left-right",icon:[512,512,["arrows"],"f047","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"]},VV=HV,yV={prefix:"fas",iconName:"chalkboard-user",icon:[640,512,["chalkboard-teacher"],"f51c","M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z"]},LV=yV,SV={prefix:"fas",iconName:"quote-left",icon:[448,512,[8220,"quote-left-alt"],"f10d","M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z"]},xV=SV,PV={prefix:"fas",iconName:"trash-arrow-up",icon:[448,512,["trash-restore"],"f829","M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},wV=PV,kV={prefix:"fas",iconName:"shekel-sign",icon:[448,512,[8362,"ils","shekel","sheqel","sheqel-sign"],"f20b","M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z"]},AV=kV,EV=kV,NV=kV,TV=kV,DV={prefix:"fas",iconName:"photo-film",icon:[640,512,["photo-video"],"f87c","M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z"]},RV=DV,_V={prefix:"fas",iconName:"sign-hanging",icon:[512,512,["sign"],"f4d9","M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z"]},OV=_V,IV={prefix:"fas",iconName:"tablet",icon:[448,512,["tablet-android"],"f3fb","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},jV=IV,FV={prefix:"fas",iconName:"car-rear",icon:[512,512,["car-alt"],"f5de","M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},BV=FV,$V={prefix:"fas",iconName:"battery-quarter",icon:[576,512,["battery-2"],"f243","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm112 96H96V320h96V192z"]},qV=$V,GV={prefix:"fas",iconName:"baby-carriage",icon:[512,512,["carriage-baby"],"f77d","M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},WV=GV,UV={prefix:"fas",iconName:"percent",icon:[384,512,[62101,62785,"percentage"],"25","M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},KV=UV,ZV={prefix:"fas",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},YV=ZV,XV={prefix:"fas",iconName:"thumbtack",icon:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z"]},JV=XV,QV={prefix:"fas",iconName:"person-praying",icon:[448,512,[128720,"pray"],"f683","M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z"]},ey=QV,ty={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z"]},cy=ty,ay={prefix:"fas",iconName:"gears",icon:[640,512,["cogs"],"f085","M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},iy=ay,ny={prefix:"fas",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},sy=ny,ry={prefix:"fas",iconName:"transgender",icon:[512,512,[9895,"transgender-alt"],"f225","M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},oy=ry,ly={prefix:"fas",iconName:"arrow-turn-down",icon:[384,512,["level-down"],"f149","M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"]},uy=ly,py={prefix:"fas",iconName:"ticket-simple",icon:[576,512,["ticket-alt"],"f3ff","M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192V128z"]},fy=py,my={prefix:"fas",iconName:"angles-left",icon:[512,512,[171,"angle-double-left"],"f100","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"]},dy=my,hy={prefix:"fas",iconName:"clock-rotate-left",icon:[512,512,["history"],"f1da","M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z"]},vy=hy,gy={prefix:"fas",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z"]},zy=gy,by={prefix:"fas",iconName:"file-export",icon:[576,512,["arrow-right-from-file"],"f56e","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V288H216c-13.3 0-24 10.7-24 24s10.7 24 24 24H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM384 336V288H494.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H384zm0-208H256V0L384 128z"]},Cy=by,My={prefix:"fas",iconName:"shield",icon:[512,512,[128737,"shield-blank"],"f132","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z"]},Hy=My,Vy={prefix:"fas",iconName:"arrow-up-short-wide",icon:[576,512,["sort-amount-up-alt"],"f885","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z"]},yy=Vy,Ly={prefix:"fas",iconName:"golf-ball-tee",icon:[384,512,["golf-ball"],"f450","M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z"]},Sy=Ly,xy={prefix:"fas",iconName:"circle-chevron-left",icon:[512,512,["chevron-circle-left"],"f137","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z"]},Py=xy,wy={prefix:"fas",iconName:"wand-magic",icon:[512,512,["magic"],"f0d0","M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z"]},ky=wy,Ay={prefix:"fas",iconName:"wine-glass-empty",icon:[320,512,["wine-glass-alt"],"f5ce","M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z"]},Ey=Ay,Ny={prefix:"fas",iconName:"person-biking",icon:[640,512,[128692,"biking"],"f84a","M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},Ty=Ny,Dy={prefix:"fas",iconName:"earth-oceania",icon:[512,512,["globe-oceania"],"e47b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},Ry=Dy,_y={prefix:"fas",iconName:"square-xmark",icon:[448,512,[10062,"times-square","xmark-square"],"f2d3","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Oy=_y,Iy=_y,jy={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512H24c-13.3 0-24-10.7-24-24V344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]},Fy=jy,By={prefix:"fas",iconName:"up-down",icon:[256,512,[8597,11021,"arrows-alt-v"],"f338","M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z"]},$y=By,qy={prefix:"fas",iconName:"bahai",icon:[576,512,["haykal"],"f666","M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z"]},Gy=qy,Wy={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Uy=Wy,Ky={prefix:"fas",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Zy=Ky,Yy={prefix:"fas",iconName:"link-slash",icon:[640,512,["chain-broken","chain-slash","unlink"],"f127","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z"]},Xy=Yy,Jy=Yy,Qy=Yy,eL={prefix:"fas",iconName:"arrow-up-z-a",icon:[576,512,["sort-alpha-up-alt"],"f882","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z"]},tL=eL,cL={prefix:"fas",iconName:"fire-flame-curved",icon:[384,512,["fire-alt"],"f7e4","M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z"]},aL=cL,iL={prefix:"fas",iconName:"book-quran",icon:[448,512,["quran"],"f687","M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z"]},nL=iL,sL={prefix:"fas",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},rL=sL,oL={prefix:"fas",iconName:"rss",icon:[448,512,["feed"],"f09e","M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},lL=oL,uL={prefix:"fas",iconName:"scale-balanced",icon:[640,512,[9878,"balance-scale"],"f24e","M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288H584.4L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320H199.3L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z"]},pL=uL,fL={prefix:"fas",iconName:"gauge-simple-high",icon:[512,512,[61668,"tachometer","tachometer-fast"],"f62a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"]},mL=fL,dL=fL,hL={prefix:"fas",iconName:"desktop",icon:[576,512,[128421,61704,"desktop-alt"],"f390","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z"]},vL=hL,gL={prefix:"fas",iconName:"table-list",icon:[512,512,["th-list"],"f00b","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z"]},zL=gL,bL={prefix:"fas",iconName:"comment-sms",icon:[512,512,["sms"],"f7cd","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.8 .9 4.1 1.4l0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z"]},CL=bL,ML={prefix:"fas",iconName:"battery-three-quarters",icon:[576,512,["battery-4"],"f241","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm272 96H96V320H352V192z"]},HL=ML,VL={prefix:"fas",iconName:"hand-fist",icon:[448,512,[9994,"fist-raised"],"f6de","M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z"]},yL=VL,LL={prefix:"fas",iconName:"image-portrait",icon:[384,512,["portrait"],"f3e0","M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z"]},SL=LL,xL={prefix:"fas",iconName:"earth-europe",icon:[512,512,["globe-europe"],"f7a2","M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z"]},PL=xL,wL={prefix:"fas",iconName:"cart-flatbed-suitcase",icon:[640,512,["luggage-cart"],"f59d","M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z"]},kL=wL,AL={prefix:"fas",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},EL=AL,NL=AL,TL=AL,DL={prefix:"fas",iconName:"book-journal-whills",icon:[448,512,["journal-whills"],"f66a","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z"]},RL=DL,_L={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},OL=_L,IL=_L,jL={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z"]},FL=jL,BL=jL,$L={prefix:"fas",iconName:"right-left",icon:[512,512,["exchange-alt"],"f362","M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z"]},qL=$L,GL={prefix:"fas",iconName:"money-bill-1-wave",icon:[576,512,["money-bill-wave-alt"],"f53b","M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z"]},WL=GL,UL={prefix:"fas",iconName:"hands",icon:[576,512,["sign-language","signing"],"f2a7","M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7v-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8 0 0 0 0 43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4H224 210.7l0 0H179l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352v8c0 83.9-68.1 152-152 152H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h92c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H56c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H224l0 0 0 0h93.2L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z"]},KL=UL,ZL=UL,YL={prefix:"fas",iconName:"water-ladder",icon:[576,512,["ladder-water","swimming-pool"],"f5c5","M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},XL=YL,JL=YL,QL={prefix:"fas",iconName:"arrows-up-down",icon:[320,512,["arrows-v"],"f07d","M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"]},eS=QL,tS={prefix:"fas",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},cS=tS,aS={prefix:"fas",iconName:"wheelchair-move",icon:[448,512,["wheelchair-alt"],"e2ce","M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},iS=aS,nS={prefix:"fas",iconName:"turn-down",icon:[384,512,[10549,"level-down-alt"],"f3be","M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5h88l0-192c0-17.7-14.3-32-32-32H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192h88c9.6 0 18.2 5.7 22 14.5z"]},sS=nS,rS={prefix:"fas",iconName:"square-envelope",icon:[448,512,["envelope-square"],"f199","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z"]},oS=rS,lS={prefix:"fas",iconName:"bandage",icon:[640,512,[129657,"band-aid"],"f462","M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},uS=lS,pS={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},fS=pS,mS=pS,dS={prefix:"fas",iconName:"earth-asia",icon:[512,512,[127759,"globe-asia"],"f57e","M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z"]},hS=dS,vS={prefix:"fas",iconName:"id-card-clip",icon:[576,512,["id-card-alt"],"f47f","M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},gS=vS,zS={prefix:"fas",iconName:"magnifying-glass-plus",icon:[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z"]},bS=zS,CS={prefix:"fas",iconName:"hand-dots",icon:[512,512,["allergies"],"f461","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},MS=CS,HS={prefix:"fas",iconName:"mug-saucer",icon:[640,512,["coffee"],"f0f4","M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},VS=HS,yS={prefix:"fas",iconName:"magnifying-glass-minus",icon:[512,512,["search-minus"],"f010","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z"]},LS=yS,SS={prefix:"fas",iconName:"user-large",icon:[512,512,["user-alt"],"f406","M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z"]},xS=SS,PS={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z"]},wS=PS,kS={prefix:"fas",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},AS=kS,ES={prefix:"fas",iconName:"turkish-lira-sign",icon:[384,512,["try","turkish-lira"],"e2bb","M96 32c17.7 0 32 14.3 32 32V99.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480H96c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6V64c0-17.7 14.3-32 32-32z"]},NS=ES,TS=ES,DS={prefix:"fas",iconName:"dollar-sign",icon:[320,512,[128178,61781,"dollar","usd"],"24","M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z"]},RS=DS,_S=DS,OS={prefix:"fas",iconName:"magnifying-glass-dollar",icon:[512,512,["search-dollar"],"f688","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z"]},IS=OS,jS={prefix:"fas",iconName:"users-gear",icon:[640,512,["users-cog"],"f509","M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"]},FS=jS,BS={prefix:"fas",iconName:"building-columns",icon:[512,512,["bank","institution","museum","university"],"f19c","M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},$S=BS,qS=BS,GS=BS,WS=BS,US={prefix:"fas",iconName:"masks-theater",icon:[640,512,[127917,"theater-masks"],"f630","M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z"]},KS=US,ZS={prefix:"fas",iconName:"handshake-simple",icon:[640,512,[129309,"handshake-alt"],"f4c6","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z"]},YS=ZS,XS={prefix:"fas",iconName:"jet-fighter",icon:[640,512,["fighter-jet"],"f0fb","M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z"]},JS=XS,QS={prefix:"fas",iconName:"square-share-nodes",icon:[448,512,["share-alt-square"],"f1e1","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z"]},ex=QS,tx={prefix:"fas",iconName:"video",icon:[576,512,["video-camera"],"f03d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]},cx=tx,ax={prefix:"fas",iconName:"graduation-cap",icon:[640,512,[127891,"mortar-board"],"f19d","M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z"]},ix=ax,nx={prefix:"fas",iconName:"turn-up",icon:[384,512,[10548,"level-up-alt"],"f3bf","M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5h88l0 192c0 17.7-14.3 32-32 32H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192h88c9.6 0 18.2-5.7 22-14.5z"]},sx=nx,rx={fa0:{prefix:"fas",iconName:"0",icon:[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z"]},fa1:{prefix:"fas",iconName:"1",icon:[256,512,[],"31","M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z"]},fa2:{prefix:"fas",iconName:"2",icon:[320,512,[],"32","M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"]},fa3:{prefix:"fas",iconName:"3",icon:[320,512,[],"33","M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z"]},fa4:{prefix:"fas",iconName:"4",icon:[384,512,[],"34","M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z"]},fa5:{prefix:"fas",iconName:"5",icon:[320,512,[],"35","M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"]},fa6:{prefix:"fas",iconName:"6",icon:[320,512,[],"36","M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"]},fa7:{prefix:"fas",iconName:"7",icon:[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z"]},fa8:{prefix:"fas",iconName:"8",icon:[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"]},fa9:{prefix:"fas",iconName:"9",icon:[320,512,[],"39","M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"]},faFillDrip:{prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"]},faArrowsToCircle:{prefix:"fas",iconName:"arrows-to-circle",icon:[640,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z"]},faCircleChevronRight:Yr,faChevronCircleRight:Xr,faAt:{prefix:"fas",iconName:"at",icon:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faTrashCan:Jr,faTrashAlt:Qr,faTextHeight:{prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M64 128V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H160 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},faUserXmark:eo,faUserTimes:to,faStethoscope:{prefix:"fas",iconName:"stethoscope",icon:[576,512,[129658],"f0f1","M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faMessage:co,faCommentAlt:ao,faInfo:{prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z"]},faDownLeftAndUpRightToCenter:io,faCompressAlt:no,faExplosion:{prefix:"fas",iconName:"explosion",icon:[576,512,[],"e4e9","M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z"]},faFileLines:so,faFileAlt:ro,faFileText:oo,faWaveSquare:{prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z"]},faRing:{prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z"]},faBuildingUn:{prefix:"fas",iconName:"building-un",icon:[384,512,[],"e4d9","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faDiceThree:{prefix:"fas",iconName:"dice-three",icon:[448,512,[9858],"f527","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faCalendarDays:lo,faCalendarAlt:uo,faAnchorCircleCheck:{prefix:"fas",iconName:"anchor-circle-check",icon:[640,512,[],"e4aa","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faBuildingCircleArrowRight:{prefix:"fas",iconName:"building-circle-arrow-right",icon:[640,512,[],"e4d1","M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z"]},faVolleyball:po,faVolleyballBall:fo,faArrowsUpToLine:{prefix:"fas",iconName:"arrows-up-to-line",icon:[576,512,[],"e4c2","M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z"]},faSortDown:mo,faSortDesc:ho,faCircleMinus:vo,faMinusCircle:go,faDoorOpen:{prefix:"fas",iconName:"door-open",icon:[576,512,[],"f52b","M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z"]},faRightFromBracket:zo,faSignOutAlt:bo,faAtom:{prefix:"fas",iconName:"atom",icon:[512,512,[9883],"f5d2","M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faSoap:{prefix:"fas",iconName:"soap",icon:[512,512,[129532],"e06e","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z"]},faIcons:Co,faHeartMusicCameraBolt:Mo,faMicrophoneLinesSlash:Ho,faMicrophoneAltSlash:Vo,faBridgeCircleCheck:{prefix:"fas",iconName:"bridge-circle-check",icon:[640,512,[],"e4c9","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faPumpMedical:{prefix:"fas",iconName:"pump-medical",icon:[448,512,[],"e06a","M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},faFingerprint:{prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128v24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7V256c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256v24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8V256c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96v24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7V256c0-28.7 23.3-52 52-52s52 23.3 52 52v24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1V256c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24v24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9V256z"]},faHandPointRight:{prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z"]},faMagnifyingGlassLocation:yo,faSearchLocation:Lo,faForwardStep:So,faStepForward:xo,faFaceSmileBeam:Po,faSmileBeam:wo,faFlagCheckered:{prefix:"fas",iconName:"flag-checkered",icon:[448,512,[127937],"f11e","M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1V345.8c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V400 334 64 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9v65.5L64 252.6V318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3V238.7l38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9v66.7l-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8v71.4c21.8 1.9 43.3 6.7 64 14.4V244.2l22.7 6.7c13.5 4 27.3 6.4 41.3 7.4V194c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12v-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8v72.4c-13-.4-26 .8-38.7 3.6L128 173.2V98L64 114v73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2V251.9l-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5v77.4zm64-149.4V115.4c-20.9 6.1-42.4 9.1-64 9.1V194c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z"]},faFootball:ko,faFootballBall:Ao,faSchoolCircleExclamation:{prefix:"fas",iconName:"school-circle-exclamation",icon:[640,512,[],"e56c","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faCrop:{prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z"]},faAnglesDown:Eo,faAngleDoubleDown:No,faUsersRectangle:{prefix:"fas",iconName:"users-rectangle",icon:[640,512,[],"e594","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},faPeopleRoof:{prefix:"fas",iconName:"people-roof",icon:[640,512,[],"e537","M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z"]},faPeopleLine:{prefix:"fas",iconName:"people-line",icon:[640,512,[],"e534","M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z"]},faBeerMugEmpty:To,faBeer:Do,faDiagramPredecessor:{prefix:"fas",iconName:"diagram-predecessor",icon:[512,512,[],"e477","M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z"]},faArrowUpLong:Ro,faLongArrowUp:_o,faFireFlameSimple:Oo,faBurn:Io,faPerson:jo,faMale:Fo,faLaptop:{prefix:"fas",iconName:"laptop",icon:[640,512,[128187],"f109","M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z"]},faFileCsv:{prefix:"fas",iconName:"file-csv",icon:[512,512,[],"f6dd","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V304H176c-35.3 0-64 28.7-64 64V512H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM200 352h16c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H200c-22.1 0-40-17.9-40-40V392c0-22.1 17.9-40 40-40zm133.1 0H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H333.1c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1H304c-8.8 0-16-7.2-16-16s7.2-16 16-16h42.9c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V368c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V368c0-8.8 7.2-16 16-16z"]},faMenorah:{prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z"]},faTruckPlane:{prefix:"fas",iconName:"truck-plane",icon:[640,512,[],"e58f","M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faRecordVinyl:{prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faFaceGrinStars:Bo,faGrinStars:$o,faBong:{prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H302.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H160V208.5zM288 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H76.1c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64C78.3 64 64 49.7 64 32S78.3 0 96 0h16H272h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},faSpaghettiMonsterFlying:qo,faPastafarianism:Go,faArrowDownUpAcrossLine:{prefix:"fas",iconName:"arrow-down-up-across-line",icon:[576,512,[],"e4af","M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z"]},faSpoon:Wo,faUtensilSpoon:Uo,faJarWheat:{prefix:"fas",iconName:"jar-wheat",icon:[320,512,[],"e517","M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z"]},faEnvelopesBulk:Ko,faMailBulk:Zo,faFileCircleExclamation:{prefix:"fas",iconName:"file-circle-exclamation",icon:[576,512,[],"e4eb","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faCircleH:Yo,faHospitalSymbol:Xo,faPager:{prefix:"fas",iconName:"pager",icon:[512,512,[128223],"f815","M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z"]},faAddressBook:Jo,faContactBook:Qo,faStrikethrough:{prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z"]},faK:{prefix:"fas",iconName:"k",icon:[320,512,[107],"4b","M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z"]},faLandmarkFlag:{prefix:"fas",iconName:"landmark-flag",icon:[512,512,[],"e51c","M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z"]},faPencil:el,faPencilAlt:tl,faBackward:{prefix:"fas",iconName:"backward",icon:[512,512,[9194],"f04a","M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z"]},faCaretRight:{prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]},faComments:{prefix:"fas",iconName:"comments",icon:[640,512,[128490,61670],"f086","M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"]},faPaste:cl,faFileClipboard:al,faCodePullRequest:{prefix:"fas",iconName:"code-pull-request",icon:[512,512,[],"e13c","M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faClipboardList:{prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16z"]},faTruckRampBox:il,faTruckLoading:nl,faUserCheck:{prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},faVialVirus:{prefix:"fas",iconName:"vial-virus",icon:[512,512,[],"e597","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faSheetPlastic:{prefix:"fas",iconName:"sheet-plastic",icon:[384,512,[],"e571","M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z"]},faBlog:{prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z"]},faUserNinja:{prefix:"fas",iconName:"user-ninja",icon:[448,512,[129399],"f504","M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z"]},faPersonArrowUpFromLine:{prefix:"fas",iconName:"person-arrow-up-from-line",icon:[640,512,[],"e539","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},faScrollTorah:sl,faTorah:rl,faBroomBall:ol,faQuidditch:ll,faQuidditchBroomBall:ul,faToggleOff:{prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},faBoxArchive:pl,faArchive:fl,faPersonDrowning:{prefix:"fas",iconName:"person-drowning",icon:[576,512,[],"e545","M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z"]},faArrowDown91:ml,faSortNumericDesc:dl,faSortNumericDownAlt:hl,faFaceGrinTongueSquint:vl,faGrinTongueSquint:gl,faSprayCan:{prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faTruckMonster:{prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faW:{prefix:"fas",iconName:"w",icon:[576,512,[119],"57","M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z"]},faEarthAfrica:zl,faGlobeAfrica:bl,faRainbow:{prefix:"fas",iconName:"rainbow",icon:[640,512,[127752],"f75b","M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z"]},faCircleNotch:{prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},faTabletScreenButton:Cl,faTabletAlt:Ml,faPaw:{prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"]},faCloud:{prefix:"fas",iconName:"cloud",icon:[640,512,[9729],"f0c2","M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"]},faTrowelBricks:{prefix:"fas",iconName:"trowel-bricks",icon:[512,512,[],"e58a","M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z"]},faFaceFlushed:Hl,faFlushed:Vl,faHospitalUser:{prefix:"fas",iconName:"hospital-user",icon:[576,512,[],"f80d","M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z"]},faTentArrowLeftRight:{prefix:"fas",iconName:"tent-arrow-left-right",icon:[576,512,[],"e57f","M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faGavel:yl,faLegal:Ll,faBinoculars:{prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z"]},faMicrophoneSlash:{prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z"]},faBoxTissue:{prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z"]},faMotorcycle:{prefix:"fas",iconName:"motorcycle",icon:[640,512,[127949],"f21c","M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faBellConcierge:Sl,faConciergeBell:xl,faPenRuler:Pl,faPencilRuler:wl,faPeopleArrows:kl,faPeopleArrowsLeftRight:Al,faMarsAndVenusBurst:{prefix:"fas",iconName:"mars-and-venus-burst",icon:[640,512,[],"e523","M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z"]},faSquareCaretRight:El,faCaretSquareRight:Nl,faScissors:Tl,faCut:Dl,faSunPlantWilt:{prefix:"fas",iconName:"sun-plant-wilt",icon:[640,512,[],"e57a","M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z"]},faToiletsPortable:{prefix:"fas",iconName:"toilets-portable",icon:[576,512,[],"e584","M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z"]},faHockeyPuck:{prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z"]},faTable:{prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},faMagnifyingGlassArrowRight:{prefix:"fas",iconName:"magnifying-glass-arrow-right",icon:[512,512,[],"e521","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z"]},faTachographDigital:Rl,faDigitalTachograph:_l,faUsersSlash:{prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z"]},faClover:{prefix:"fas",iconName:"clover",icon:[448,512,[],"e139","M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z"]},faReply:Ol,faMailReply:Il,faStarAndCrescent:{prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[9770],"f699","M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z"]},faHouseFire:{prefix:"fas",iconName:"house-fire",icon:[640,512,[],"e50c","M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C640 440 568.7 512 480 512c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z"]},faSquareMinus:jl,faMinusSquare:Fl,faHelicopter:{prefix:"fas",iconName:"helicopter",icon:[640,512,[128641],"f533","M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 320c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z"]},faCompass:{prefix:"fas",iconName:"compass",icon:[512,512,[129517],"f14e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faSquareCaretDown:Bl,faCaretSquareDown:$l,faFileCircleQuestion:{prefix:"fas",iconName:"file-circle-question",icon:[576,512,[],"e4ef","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z"]},faLaptopCode:{prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},faSwatchbook:{prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faPrescriptionBottle:{prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z"]},faBars:ql,faNavicon:Gl,faPeopleGroup:{prefix:"fas",iconName:"people-group",icon:[640,512,[],"e533","M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z"]},faHourglassEnd:Wl,faHourglass3:Ul,faHeartCrack:Kl,faHeartBroken:Zl,faSquareUpRight:Yl,faExternalLinkSquareAlt:Xl,faFaceKissBeam:Jl,faKissBeam:Ql,faFilm:{prefix:"fas",iconName:"film",icon:[512,512,[127902],"f008","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z"]},faRulerHorizontal:{prefix:"fas",iconName:"ruler-horizontal",icon:[640,512,[],"f547","M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z"]},faPeopleRobbery:{prefix:"fas",iconName:"people-robbery",icon:[576,512,[],"e536","M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z"]},faLightbulb:{prefix:"fas",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"]},faCaretLeft:{prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]},faCircleExclamation:eu,faExclamationCircle:tu,faSchoolCircleXmark:{prefix:"fas",iconName:"school-circle-xmark",icon:[640,512,[],"e56d","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z"]},faArrowRightFromBracket:cu,faSignOut:au,faCircleChevronDown:iu,faChevronCircleDown:nu,faUnlockKeyhole:su,faUnlockAlt:ru,faCloudShowersHeavy:{prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z"]},faHeadphonesSimple:ou,faHeadphonesAlt:lu,faSitemap:{prefix:"fas",iconName:"sitemap",icon:[576,512,[],"f0e8","M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z"]},faCircleDollarToSlot:uu,faDonate:pu,faMemory:{prefix:"fas",iconName:"memory",icon:[576,512,[],"f538","M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faRoadSpikes:{prefix:"fas",iconName:"road-spikes",icon:[640,512,[],"e568","M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faFireBurner:{prefix:"fas",iconName:"fire-burner",icon:[640,512,[],"e4f1","M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faFlag:{prefix:"fas",iconName:"flag",icon:[448,512,[127988,61725],"f024","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z"]},faHanukiah:{prefix:"fas",iconName:"hanukiah",icon:[640,512,[128334],"f6e6","M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z"]},faFeather:{prefix:"fas",iconName:"feather",icon:[512,512,[129718],"f52d","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},faVolumeLow:fu,faVolumeDown:mu,faCommentSlash:{prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z"]},faCloudSunRain:{prefix:"fas",iconName:"cloud-sun-rain",icon:[640,512,[127782],"f743","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.1-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},faCompress:{prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z"]},faWheatAwn:du,faWheatAlt:hu,faAnkh:{prefix:"fas",iconName:"ankh",icon:[320,512,[9765],"f644","M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z"]},faHandsHoldingChild:{prefix:"fas",iconName:"hands-holding-child",icon:[640,512,[],"e4fa","M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z"]},faAsterisk:{prefix:"fas",iconName:"asterisk",icon:[384,512,[10033,61545],"2a","M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z"]},faSquareCheck:vu,faCheckSquare:gu,faPesetaSign:{prefix:"fas",iconName:"peseta-sign",icon:[384,512,[],"e221","M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z"]},faHeading:zu,faHeader:bu,faGhost:{prefix:"fas",iconName:"ghost",icon:[384,512,[128123],"f6e2","M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2V192C0 86 86 0 192 0S384 86 384 192V462.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faList:Cu,faListSquares:Mu,faSquarePhoneFlip:Hu,faPhoneSquareAlt:Vu,faCartPlus:{prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z"]},faGamepad:{prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z"]},faCircleDot:yu,faDotCircle:Lu,faFaceDizzy:Su,faDizzy:xu,faEgg:{prefix:"fas",iconName:"egg",icon:[384,512,[129370],"f7fb","M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z"]},faHouseMedicalCircleXmark:{prefix:"fas",iconName:"house-medical-circle-xmark",icon:[640,512,[],"e513","M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},faCampground:{prefix:"fas",iconName:"campground",icon:[576,512,[9978],"f6bb","M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z"]},faFolderPlus:{prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z"]},faFutbol:Pu,faFutbolBall:wu,faSoccerBall:ku,faPaintbrush:Au,faPaintBrush:Eu,faLock:{prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"]},faGasPump:{prefix:"fas",iconName:"gas-pump",icon:[512,512,[9981],"f52f","M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z"]},faHotTubPerson:Nu,faHotTub:Tu,faMapLocation:Du,faMapMarked:Ru,faHouseFloodWater:{prefix:"fas",iconName:"house-flood-water",icon:[576,512,[],"e50e","M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z"]},faTree:{prefix:"fas",iconName:"tree",icon:[448,512,[127794],"f1bb","M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z"]},faBridgeLock:{prefix:"fas",iconName:"bridge-lock",icon:[640,512,[],"e4cc","M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faSackDollar:{prefix:"fas",iconName:"sack-dollar",icon:[512,512,[128176],"f81d","M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V424c0 11 9 20 20 20s20-9 20-20V410.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l0 0-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V216z"]},faPenToSquare:_u,faEdit:Ou,faCarSide:{prefix:"fas",iconName:"car-side",icon:[640,512,[128663],"f5e4","M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faShareNodes:Iu,faShareAlt:ju,faHeartCircleMinus:{prefix:"fas",iconName:"heart-circle-minus",icon:[576,512,[],"e4ff","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z"]},faHourglassHalf:Fu,faHourglass2:Bu,faMicroscope:{prefix:"fas",iconName:"microscope",icon:[512,512,[128300],"f610","M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faSink:{prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z"]},faBagShopping:$u,faShoppingBag:qu,faArrowDownZA:Gu,faSortAlphaDesc:Wu,faSortAlphaDownAlt:Uu,faMitten:{prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z"]},faPersonRays:{prefix:"fas",iconName:"person-rays",icon:[512,512,[],"e54d","M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},faUsers:{prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"]},faEyeSlash:{prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"]},faFlaskVial:{prefix:"fas",iconName:"flask-vial",icon:[640,512,[],"e4f3","M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z"]},faHand:Ku,faHandPaper:Zu,faOm:{prefix:"fas",iconName:"om",icon:[512,512,[128329],"f679","M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z"]},faWorm:{prefix:"fas",iconName:"worm",icon:[512,512,[],"e599","M256 96c0-53 43-96 96-96h38.4C439.9 0 480 40.1 480 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H352c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faHouseCircleXmark:{prefix:"fas",iconName:"house-circle-xmark",icon:[640,512,[],"e50b","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faPlug:{prefix:"fas",iconName:"plug",icon:[384,512,[128268],"f1e6","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faChevronUp:{prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},faHandSpock:{prefix:"fas",iconName:"hand-spock",icon:[576,512,[128406],"f259","M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z"]},faStopwatch:{prefix:"fas",iconName:"stopwatch",icon:[448,512,[9201],"f2f2","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},faFaceKiss:Yu,faKiss:Xu,faBridgeCircleXmark:{prefix:"fas",iconName:"bridge-circle-xmark",icon:[640,512,[],"e4cb","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faFaceGrinTongue:Ju,faGrinTongue:Qu,faChessBishop:{prefix:"fas",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V400H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512H297.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432H48z"]},faFaceGrinWink:ep,faGrinWink:tp,faEarDeaf:cp,faDeaf:ap,faDeafness:ip,faHardOfHearing:np,faRoadCircleCheck:{prefix:"fas",iconName:"road-circle-check",icon:[640,512,[],"e564","M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faDiceFive:{prefix:"fas",iconName:"dice-five",icon:[448,512,[9860],"f523","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faSquareRss:sp,faRssSquare:rp,faLandMineOn:{prefix:"fas",iconName:"land-mine-on",icon:[640,512,[],"e51b","M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z"]},faICursor:{prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"]},faStamp:{prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z"]},faStairs:{prefix:"fas",iconName:"stairs",icon:[576,512,[],"e289","M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z"]},faI:{prefix:"fas",iconName:"i",icon:[320,512,[105],"49","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z"]},faHryvniaSign:op,faHryvnia:lp,faPills:{prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z"]},faFaceGrinWide:up,faGrinAlt:pp,faTooth:{prefix:"fas",iconName:"tooth",icon:[448,512,[129463],"f5c9","M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z"]},faV:{prefix:"fas",iconName:"v",icon:[384,512,[118],"56","M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z"]},faBangladeshiTakaSign:{prefix:"fas",iconName:"bangladeshi-taka-sign",icon:[384,512,[],"e2e6","M36 32.2C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8V160H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V384c0 53 43 96 96 96h32c106 0 192-86 192-192V256c0-53-43-96-96-96H272c-17.7 0-32 14.3-32 32s14.3 32 32 32h16c17.7 0 32 14.3 32 32v32c0 70.7-57.3 128-128 128H160c-17.7 0-32-14.3-32-32V224h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V128.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z"]},faBicycle:{prefix:"fas",iconName:"bicycle",icon:[640,512,[128690],"f206","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z"]},faStaffSnake:fp,faRodAsclepius:mp,faRodSnake:dp,faStaffAesculapius:hp,faHeadSideCoughSlash:{prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8h-3.9c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faTruckMedical:vp,faAmbulance:gp,faWheatAwnCircleExclamation:{prefix:"fas",iconName:"wheat-awn-circle-exclamation",icon:[640,512,[],"e598","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faSnowman:{prefix:"fas",iconName:"snowman",icon:[512,512,[9731,9924],"f7d0","M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H181.3c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},faMortarPestle:{prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faRoadBarrier:{prefix:"fas",iconName:"road-barrier",icon:[640,512,[],"e562","M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z"]},faSchool:{prefix:"fas",iconName:"school",icon:[640,512,[127979],"f549","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z"]},faIgloo:{prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z"]},faJoint:{prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z"]},faAngleRight:{prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]},faHorse:{prefix:"fas",iconName:"horse",icon:[576,512,[128014],"f6f0","M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faQ:{prefix:"fas",iconName:"q",icon:[448,512,[113],"51","M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z"]},faG:{prefix:"fas",iconName:"g",icon:[448,512,[103],"47","M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H400c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z"]},faNotesMedical:{prefix:"fas",iconName:"notes-medical",icon:[512,512,[],"f481","M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z"]},faTemperatureHalf:zp,faTemperature2:bp,faThermometer2:Cp,faThermometerHalf:Mp,faDongSign:{prefix:"fas",iconName:"dong-sign",icon:[384,512,[],"e169","M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faCapsules:{prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z"]},faPooStorm:Hp,faPooBolt:Vp,faFaceFrownOpen:yp,faFrownOpen:Lp,faHandPointUp:{prefix:"fas",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z"]},faMoneyBill:{prefix:"fas",iconName:"money-bill",icon:[576,512,[],"f0d6","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},faBookmark:{prefix:"fas",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"]},faAlignJustify:{prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z"]},faUmbrellaBeach:{prefix:"fas",iconName:"umbrella-beach",icon:[576,512,[127958],"f5ca","M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z"]},faHelmetUn:{prefix:"fas",iconName:"helmet-un",icon:[512,512,[],"e503","M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faBullseye:{prefix:"fas",iconName:"bullseye",icon:[512,512,[],"f140","M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faBacon:{prefix:"fas",iconName:"bacon",icon:[576,512,[129363],"f7e5","M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z"]},faHandPointDown:{prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z"]},faArrowUpFromBracket:{prefix:"fas",iconName:"arrow-up-from-bracket",icon:[448,512,[],"e09a","M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z"]},faFolder:Sp,faFolderBlank:xp,faFileWaveform:Pp,faFileMedicalAlt:wp,faRadiation:{prefix:"fas",iconName:"radiation",icon:[512,512,[],"f7b9","M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faChartSimple:{prefix:"fas",iconName:"chart-simple",icon:[448,512,[],"e473","M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z"]},faMarsStroke:{prefix:"fas",iconName:"mars-stroke",icon:[512,512,[9894],"f229","M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z"]},faVial:{prefix:"fas",iconName:"vial",icon:[512,512,[129514],"f492","M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z"]},faGauge:kp,faDashboard:Ap,faGaugeMed:Ep,faTachometerAltAverage:Np,faWandMagicSparkles:Tp,faMagicWandSparkles:Dp,faE:{prefix:"fas",iconName:"e",icon:[320,512,[101],"45","M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z"]},faPenClip:Rp,faPenAlt:_p,faBridgeCircleExclamation:{prefix:"fas",iconName:"bridge-circle-exclamation",icon:[640,512,[],"e4ca","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faUser:{prefix:"fas",iconName:"user",icon:[448,512,[128100,62144],"f007","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"]},faSchoolCircleCheck:{prefix:"fas",iconName:"school-circle-check",icon:[640,512,[],"e56b","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z"]},faDumpster:{prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z"]},faVanShuttle:Op,faShuttleVan:Ip,faBuildingUser:{prefix:"fas",iconName:"building-user",icon:[640,512,[],"e4da","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z"]},faSquareCaretLeft:jp,faCaretSquareLeft:Fp,faHighlighter:{prefix:"fas",iconName:"highlighter",icon:[576,512,[],"f591","M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H224l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H24c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"]},faKey:{prefix:"fas",iconName:"key",icon:[512,512,[128273],"f084","M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"]},faBullhorn:{prefix:"fas",iconName:"bullhorn",icon:[512,512,[128226,128363],"f0a1","M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z"]},faGlobe:{prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z"]},faSynagogue:{prefix:"fas",iconName:"synagogue",icon:[640,512,[128333],"f69b","M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z"]},faPersonHalfDress:{prefix:"fas",iconName:"person-half-dress",icon:[320,512,[],"e548","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z"]},faRoadBridge:{prefix:"fas",iconName:"road-bridge",icon:[640,512,[],"e563","M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z"]},faLocationArrow:{prefix:"fas",iconName:"location-arrow",icon:[448,512,[],"f124","M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z"]},faC:{prefix:"fas",iconName:"c",icon:[384,512,[99],"43","M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"]},faTabletButton:{prefix:"fas",iconName:"tablet-button",icon:[448,512,[],"f10a","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBuildingLock:{prefix:"fas",iconName:"building-lock",icon:[576,512,[],"e4d6","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faPizzaSlice:{prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faMoneyBillWave:{prefix:"fas",iconName:"money-bill-wave",icon:[576,512,[],"f53a","M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z"]},faChartArea:Bp,faAreaChart:$p,faHouseFlag:{prefix:"fas",iconName:"house-flag",icon:[640,512,[],"e50d","M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z"]},faPersonCircleMinus:{prefix:"fas",iconName:"person-circle-minus",icon:[576,512,[],"e540","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z"]},faBan:qp,faCancel:Gp,faCameraRotate:{prefix:"fas",iconName:"camera-rotate",icon:[640,512,[],"e0d8","M213.1 64.8L202.7 96H128c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H437.3L426.9 64.8C420.4 45.2 402.1 32 381.4 32H258.6c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16H355.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM192 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z"]},faSprayCanSparkles:Wp,faAirFreshener:Up,faStar:{prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},faRepeat:{prefix:"fas",iconName:"repeat",icon:[512,512,[128257],"f363","M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z"]},faCross:{prefix:"fas",iconName:"cross",icon:[384,512,[128327,10013],"f654","M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z"]},faBox:{prefix:"fas",iconName:"box",icon:[448,512,[128230],"f466","M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z"]},faVenusMars:{prefix:"fas",iconName:"venus-mars",icon:[640,512,[9892],"f228","M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z"]},faArrowPointer:Kp,faMousePointer:Zp,faMaximize:Yp,faExpandArrowsAlt:Xp,faChargingStation:{prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"]},faShapes:Jp,faTriangleCircleSquare:Qp,faShuffle:ef,faRandom:tf,faPersonRunning:cf,faRunning:af,faMobileRetro:{prefix:"fas",iconName:"mobile-retro",icon:[320,512,[],"e527","M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z"]},faGripLinesVertical:{prefix:"fas",iconName:"grip-lines-vertical",icon:[192,512,[],"f7a5","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z"]},faSpider:{prefix:"fas",iconName:"spider",icon:[512,512,[128375],"f717","M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z"]},faHandsBound:{prefix:"fas",iconName:"hands-bound",icon:[640,512,[],"e4f9","M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352H128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H288h64H480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1V320v32H288V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8V96 32zm64 448v32H288V480h64v32H480V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H480 352 288 160 128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z"]},faFileInvoiceDollar:{prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z"]},faPlaneCircleExclamation:{prefix:"fas",iconName:"plane-circle-exclamation",icon:[640,512,[],"e556","M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faXRay:{prefix:"fas",iconName:"x-ray",icon:[512,512,[],"f497","M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v32H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48H128c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v70.6L189.1 307c-5.2-2-10.6-3-16.2-3h-2.1c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6H316.4c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8H339c-5.5 0-11 1-16.2 3L272 326.6V256H384c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V176h80c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faSpellCheck:{prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160H93.3L112 115.2 130.7 160zM256 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H288c-17.7 0-32 14.3-32 32zm96 64H320V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320V160zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z"]},faSlash:{prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"]},faComputerMouse:nf,faMouse:sf,faArrowRightToBracket:rf,faSignIn:of,faShopSlash:lf,faStoreAltSlash:uf,faServer:{prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faVirusCovidSlash:{prefix:"fas",iconName:"virus-covid-slash",icon:[640,512,[],"e4a9","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z"]},faShopLock:{prefix:"fas",iconName:"shop-lock",icon:[640,512,[],"e4a5","M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faHourglassStart:pf,faHourglass1:ff,faBlenderPhone:{prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H224zm-16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z"]},faBuildingWheat:{prefix:"fas",iconName:"building-wheat",icon:[640,512,[],"e4db","M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z"]},faPersonBreastfeeding:{prefix:"fas",iconName:"person-breastfeeding",icon:[448,512,[],"e53a","M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z"]},faRightToBracket:mf,faSignInAlt:df,faVenus:{prefix:"fas",iconName:"venus",icon:[384,512,[9792],"f221","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z"]},faPassport:{prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z"]},faHeartPulse:hf,faHeartbeat:vf,faPeopleCarryBox:gf,faPeopleCarry:zf,faTemperatureHigh:{prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z"]},faMicrochip:{prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z"]},faCrown:{prefix:"fas",iconName:"crown",icon:[576,512,[128081],"f521","M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"]},faWeightHanging:{prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z"]},faXmarksLines:{prefix:"fas",iconName:"xmarks-lines",icon:[640,512,[],"e59a","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"]},faFilePrescription:{prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z"]},faWeightScale:bf,faWeight:Cf,faUserGroup:Mf,faUserFriends:Hf,faArrowUpAZ:Vf,faSortAlphaUp:yf,faChessKnight:{prefix:"fas",iconName:"chess-knight",icon:[448,512,[9822],"f441","M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5V238.9c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400H384l28.9-159c2.1-11.3 3.1-22.8 3.1-34.3V192C416 86 330 0 224 0H83.8C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H409.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432H64L22.6 473.4z"]},faFaceLaughSquint:Lf,faLaughSquint:Sf,faWheelchair:{prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H282.2l-9.6-48H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H259.8z"]},faCircleArrowUp:xf,faArrowCircleUp:Pf,faToggleOn:{prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},faPersonWalking:wf,faWalking:kf,faL:{prefix:"fas",iconName:"l",icon:[320,512,[108],"4c","M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z"]},faFire:{prefix:"fas",iconName:"fire",icon:[448,512,[128293],"f06d","M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z"]},faBedPulse:Af,faProcedures:Ef,faShuttleSpace:Nf,faSpaceShuttle:Tf,faFaceLaugh:Df,faLaugh:Rf,faFolderOpen:{prefix:"fas",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z"]},faHeartCirclePlus:{prefix:"fas",iconName:"heart-circle-plus",icon:[576,512,[],"e500","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faCodeFork:{prefix:"fas",iconName:"code-fork",icon:[448,512,[],"e13b","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faCity:{prefix:"fas",iconName:"city",icon:[640,512,[127961],"f64f","M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"]},faMicrophoneLines:_f,faMicrophoneAlt:Of,faPepperHot:{prefix:"fas",iconName:"pepper-hot",icon:[512,512,[127798],"f816","M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z"]},faUnlock:{prefix:"fas",iconName:"unlock",icon:[448,512,[128275],"f09c","M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z"]},faColonSign:{prefix:"fas",iconName:"colon-sign",icon:[384,512,[],"e140","M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z"]},faHeadset:{prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z"]},faStoreSlash:{prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z"]},faRoadCircleXmark:{prefix:"fas",iconName:"road-circle-xmark",icon:[640,512,[],"e566","M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},faUserMinus:{prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faMarsStrokeUp:If,faMarsStrokeV:jf,faChampagneGlasses:Ff,faGlassCheers:Bf,faClipboard:{prefix:"fas",iconName:"clipboard",icon:[384,512,[128203],"f328","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faHouseCircleExclamation:{prefix:"fas",iconName:"house-circle-exclamation",icon:[640,512,[],"e50a","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faFileArrowUp:$f,faFileUpload:qf,faWifi:Gf,faWifi3:Wf,faWifiStrong:Uf,faBath:Kf,faBathtub:Zf,faUnderline:{prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"]},faUserPen:Yf,faUserEdit:Xf,faSignature:{prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z"]},faStroopwafel:{prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z"]},faBold:{prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"]},faAnchorLock:{prefix:"fas",iconName:"anchor-lock",icon:[640,512,[],"e4ad","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faBuildingNgo:{prefix:"fas",iconName:"building-ngo",icon:[384,512,[],"e4d7","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z"]},faManatSign:{prefix:"fas",iconName:"manat-sign",icon:[384,512,[],"e1d5","M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z"]},faNotEqual:{prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z"]},faBorderTopLeft:Jf,faBorderStyle:Qf,faMapLocationDot:em,faMapMarkedAlt:tm,faJedi:{prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z"]},faSquarePollVertical:cm,faPoll:am,faMugHot:{prefix:"fas",iconName:"mug-hot",icon:[512,512,[9749],"f7b6","M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z"]},faCarBattery:im,faBatteryCar:nm,faGift:{prefix:"fas",iconName:"gift",icon:[512,512,[127873],"f06b","M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z"]},faDiceTwo:{prefix:"fas",iconName:"dice-two",icon:[448,512,[9857],"f528","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faChessQueen:{prefix:"fas",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400H384 343.6 168.4 128 112.3L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224l0 0 0 0h0zM112 432H400l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H86.6C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z"]},faGlasses:{prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z"]},faChessBoard:{prefix:"fas",iconName:"chess-board",icon:[448,512,[],"f43c","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z"]},faBuildingCircleCheck:{prefix:"fas",iconName:"building-circle-check",icon:[640,512,[],"e4d2","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faPersonChalkboard:{prefix:"fas",iconName:"person-chalkboard",icon:[640,512,[],"e53d","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},faMarsStrokeRight:sm,faMarsStrokeH:rm,faHandBackFist:om,faHandRock:lm,faSquareCaretUp:um,faCaretSquareUp:pm,faCloudShowersWater:{prefix:"fas",iconName:"cloud-showers-water",icon:[576,512,[],"e4e4","M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faChartBar:fm,faBarChart:mm,faHandsBubbles:dm,faHandsWash:hm,faLessThanEqual:{prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faTrain:{prefix:"fas",iconName:"train",icon:[448,512,[128646],"f238","M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faEyeLowVision:vm,faLowVision:gm,faCrow:{prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faSailboat:{prefix:"fas",iconName:"sailboat",icon:[576,512,[],"e445","M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z"]},faWindowRestore:{prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z"]},faSquarePlus:zm,faPlusSquare:bm,faToriiGate:{prefix:"fas",iconName:"torii-gate",icon:[512,512,[9961],"f6a1","M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V13.4C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32H126.8c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z"]},faFrog:{prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faBucket:{prefix:"fas",iconName:"bucket",icon:[448,512,[],"e4cf","M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z"]},faImage:{prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faMicrophone:{prefix:"fas",iconName:"microphone",icon:[384,512,[],"f130","M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z"]},faCow:{prefix:"fas",iconName:"cow",icon:[640,512,[128004],"f6c8","M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z"]},faCaretUp:{prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},faScrewdriver:{prefix:"fas",iconName:"screwdriver",icon:[512,512,[129691],"f54a","M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z"]},faFolderClosed:{prefix:"fas",iconName:"folder-closed",icon:[512,512,[],"e185","M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64z"]},faHouseTsunami:{prefix:"fas",iconName:"house-tsunami",icon:[576,512,[],"e515","M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z"]},faSquareNfi:{prefix:"fas",iconName:"square-nfi",icon:[448,512,[],"e576","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z"]},faArrowUpFromGroundWater:{prefix:"fas",iconName:"arrow-up-from-ground-water",icon:[576,512,[],"e4b5","M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z"]},faMartiniGlass:Cm,faGlassMartiniAlt:Mm,faRotateLeft:Hm,faRotateBack:Vm,faRotateBackward:ym,faUndoAlt:Lm,faTableColumns:Sm,faColumns:xm,faLemon:{prefix:"fas",iconName:"lemon",icon:[448,512,[127819],"f094","M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z"]},faHeadSideMask:{prefix:"fas",iconName:"head-side-mask",icon:[576,512,[],"e063","M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31V512H128c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2H336c-21.7 0-41.3 8.6-55.7 22.6zM336 304H534l0 0h10l-19.7 64H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H514.5l-9.8 32H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H494.8l-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2H288V352c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faHandshake:{prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128H16zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V144c0-8.8-7.2-16-16-16H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faGem:{prefix:"fas",iconName:"gem",icon:[512,512,[128142],"f3a5","M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"]},faDolly:Pm,faDollyBox:wm,faSmoking:{prefix:"fas",iconName:"smoking",icon:[640,512,[128684],"f48d","M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z"]},faMinimize:km,faCompressArrowsAlt:Am,faMonument:{prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faSnowplow:{prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faAnglesRight:Em,faAngleDoubleRight:Nm,faCannabis:{prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z"]},faCirclePlay:Tm,faPlayCircle:Dm,faTablets:{prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z"]},faEthernet:{prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z"]},faEuroSign:Rm,faEur:_m,faEuro:Om,faChair:{prefix:"fas",iconName:"chair",icon:[448,512,[129681],"f6c0","M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z"]},faCircleCheck:Im,faCheckCircle:jm,faCircleStop:Fm,faStopCircle:Bm,faCompassDrafting:$m,faDraftingCompass:qm,faPlateWheat:{prefix:"fas",iconName:"plate-wheat",icon:[512,512,[],"e55a","M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z"]},faIcicles:{prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z"]},faPersonShelter:{prefix:"fas",iconName:"person-shelter",icon:[512,512,[],"e54f","M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},faNeuter:{prefix:"fas",iconName:"neuter",icon:[384,512,[9906],"f22c","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z"]},faIdBadge:{prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faMarker:{prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z"]},faFaceLaughBeam:Gm,faLaughBeam:Wm,faHelicopterSymbol:{prefix:"fas",iconName:"helicopter-symbol",icon:[512,512,[],"e502","M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z"]},faUniversalAccess:{prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faCircleChevronUp:Um,faChevronCircleUp:Km,faLariSign:{prefix:"fas",iconName:"lari-sign",icon:[384,512,[],"e1c8","M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z"]},faVolcano:{prefix:"fas",iconName:"volcano",icon:[512,512,[127755],"f770","M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z"]},faPersonWalkingDashedLineArrowRight:{prefix:"fas",iconName:"person-walking-dashed-line-arrow-right",icon:[640,512,[],"e553","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z"]},faSterlingSign:Zm,faGbp:Ym,faPoundSign:Xm,faViruses:{prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faSquarePersonConfined:{prefix:"fas",iconName:"square-person-confined",icon:[448,512,[],"e577","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z"]},faUserTie:{prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M224 256A128 128 0 1 1 224 0a128 128 0 1 1 0 256zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 36-146.9c2-8.1 9.8-13.4 17.9-11.3c70.1 17.6 121.9 81 121.9 156.4c0 17-13.8 30.7-30.7 30.7H285.5c-2.1 0-4-.4-5.8-1.1l.3 1.1H168l.3-1.1c-1.8 .7-3.8 1.1-5.8 1.1H30.7C13.8 512 0 498.2 0 481.3c0-75.5 51.9-138.9 121.9-156.4c8.1-2 15.9 3.3 17.9 11.3l36 146.9 33.4-123.9z"]},faArrowDownLong:Jm,faLongArrowDown:Qm,faTentArrowDownToLine:{prefix:"fas",iconName:"tent-arrow-down-to-line",icon:[640,512,[],"e57e","M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z"]},faCertificate:{prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z"]},faReplyAll:ed,faMailReplyAll:td,faSuitcase:{prefix:"fas",iconName:"suitcase",icon:[512,512,[129523],"f0f2","M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z"]},faPersonSkating:cd,faSkating:ad,faFilterCircleDollar:id,faFunnelDollar:nd,faCameraRetro:{prefix:"fas",iconName:"camera-retro",icon:[512,512,[128247],"f083","M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z"]},faCircleArrowDown:sd,faArrowCircleDown:rd,faFileImport:od,faArrowRightToFile:ld,faSquareArrowUpRight:ud,faExternalLinkSquare:pd,faBoxOpen:{prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z"]},faScroll:{prefix:"fas",iconName:"scroll",icon:[576,512,[128220],"f70e","M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z"]},faSpa:{prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z"]},faLocationPinLock:{prefix:"fas",iconName:"location-pin-lock",icon:[512,512,[],"e51f","M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faPause:{prefix:"fas",iconName:"pause",icon:[320,512,[9208],"f04c","M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z"]},faHillAvalanche:{prefix:"fas",iconName:"hill-avalanche",icon:[576,512,[],"e507","M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87z"]},faTemperatureEmpty:fd,faTemperature0:md,faThermometer0:dd,faThermometerEmpty:hd,faBomb:{prefix:"fas",iconName:"bomb",icon:[512,512,[128163],"f1e2","M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z"]},faRegistered:{prefix:"fas",iconName:"registered",icon:[512,512,[174],"f25d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z"]},faAddressCard:vd,faContactCard:gd,faVcard:zd,faScaleUnbalancedFlip:bd,faBalanceScaleRight:Cd,faSubscript:{prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z"]},faDiamondTurnRight:Md,faDirections:Hd,faBurst:{prefix:"fas",iconName:"burst",icon:[512,512,[],"e4dc","M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z"]},faHouseLaptop:Vd,faLaptopHouse:yd,faFaceTired:Ld,faTired:Sd,faMoneyBills:{prefix:"fas",iconName:"money-bills",icon:[640,512,[],"e1f3","M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z"]},faSmog:{prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z"]},faCrutch:{prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z"]},faFontAwesome:xd,faFontAwesomeFlag:Pd,faFontAwesomeLogoFull:wd,faCloudArrowUp:kd,faCloudUpload:Ad,faCloudUploadAlt:Ed,faPalette:{prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faArrowsTurnRight:{prefix:"fas",iconName:"arrows-turn-right",icon:[448,512,[],"e4c0","M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160H128c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C0 153.3 57.3 96 128 96H338.7L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416H96c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H242.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},faVest:{prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z"]},faFerry:{prefix:"fas",iconName:"ferry",icon:[576,512,[],"e4ea","M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faArrowsDownToPeople:{prefix:"fas",iconName:"arrows-down-to-people",icon:[640,512,[],"e4b9","M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},faSeedling:Nd,faSprout:Td,faLeftRight:Dd,faArrowsAltH:Rd,faBoxesPacking:{prefix:"fas",iconName:"boxes-packing",icon:[640,512,[],"e4c7","M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z"]},faCircleArrowLeft:_d,faArrowCircleLeft:Od,faGroupArrowsRotate:{prefix:"fas",iconName:"group-arrows-rotate",icon:[512,512,[],"e4f6","M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z"]},faBowlFood:{prefix:"fas",iconName:"bowl-food",icon:[512,512,[],"e4c6","M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z"]},faCandyCane:{prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z"]},faArrowDownWideShort:Id,faSortAmountAsc:jd,faSortAmountDown:Fd,faCloudBolt:Bd,faThunderstorm:$d,faTextSlash:qd,faRemoveFormat:Gd,faFaceSmileWink:Wd,faSmileWink:Ud,faFileWord:{prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z"]},faFilePowerpoint:{prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z"]},faArrowsLeftRight:Kd,faArrowsH:Zd,faHouseLock:{prefix:"fas",iconName:"house-lock",icon:[640,512,[],"e510","M384 480c0 11.7 3.1 22.6 8.6 32H392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faCloudArrowDown:Yd,faCloudDownload:Xd,faCloudDownloadAlt:Jd,faChildren:{prefix:"fas",iconName:"children",icon:[640,512,[],"e4e1","M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z"]},faChalkboard:Qd,faBlackboard:eh,faUserLargeSlash:th,faUserAltSlash:ch,faEnvelopeOpen:{prefix:"fas",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z"]},faHandshakeSimpleSlash:ah,faHandshakeAltSlash:ih,faMattressPillow:{prefix:"fas",iconName:"mattress-pillow",icon:[640,512,[],"e525","M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z"]},faGuaraniSign:{prefix:"fas",iconName:"guarani-sign",icon:[384,512,[],"e19a","M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z"]},faArrowsRotate:nh,faRefresh:sh,faSync:rh,faFireExtinguisher:{prefix:"fas",iconName:"fire-extinguisher",icon:[512,512,[129519],"f134","M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faCruzeiroSign:{prefix:"fas",iconName:"cruzeiro-sign",icon:[448,512,[],"e152","M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z"]},faGreaterThanEqual:{prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z"]},faShieldHalved:oh,faShieldAlt:lh,faBookAtlas:uh,faAtlas:ph,faVirus:{prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faEnvelopeCircleCheck:{prefix:"fas",iconName:"envelope-circle-check",icon:[640,512,[],"e4e8","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faLayerGroup:{prefix:"fas",iconName:"layer-group",icon:[576,512,[],"f5fd","M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"]},faArrowsToDot:{prefix:"fas",iconName:"arrows-to-dot",icon:[512,512,[],"e4be","M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faArchway:{prefix:"fas",iconName:"archway",icon:[512,512,[],"f557","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z"]},faHeartCircleCheck:{prefix:"fas",iconName:"heart-circle-check",icon:[576,512,[],"e4fd","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faHouseChimneyCrack:fh,faHouseDamage:mh,faFileZipper:dh,faFileArchive:hh,faSquare:{prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]},faMartiniGlassEmpty:vh,faGlassMartini:gh,faCouch:{prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z"]},faCediSign:{prefix:"fas",iconName:"cedi-sign",icon:[384,512,[],"e0df","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z"]},faItalic:{prefix:"fas",iconName:"italic",icon:[384,512,[],"f033","M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"]},faChurch:{prefix:"fas",iconName:"church",icon:[640,512,[9962],"f51d","M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z"]},faCommentsDollar:{prefix:"fas",iconName:"comments-dollar",icon:[640,512,[],"f653","M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z"]},faDemocrat:{prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z"]},faZ:{prefix:"fas",iconName:"z",icon:[384,512,[122],"5a","M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z"]},faPersonSkiing:zh,faSkiing:bh,faRoadLock:{prefix:"fas",iconName:"road-lock",icon:[640,512,[],"e567","M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faA:{prefix:"fas",iconName:"a",icon:[384,512,[97],"41","M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384H290.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320H120l72-172.8L264 320z"]},faTemperatureArrowDown:Ch,faTemperatureDown:Mh,faFeatherPointed:Hh,faFeatherAlt:Vh,faP:{prefix:"fas",iconName:"p",icon:[320,512,[112],"50","M0 96C0 60.7 28.7 32 64 32h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V320 96zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z"]},faSnowflake:{prefix:"fas",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z"]},faNewspaper:{prefix:"fas",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H296c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"]},faRectangleAd:yh,faAd:Lh,faCircleArrowRight:Sh,faArrowCircleRight:xh,faFilterCircleXmark:{prefix:"fas",iconName:"filter-circle-xmark",icon:[576,512,[],"e17b","M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},faLocust:{prefix:"fas",iconName:"locust",icon:[576,512,[],"e520","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H431.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400H496c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C576 143 465 32 328 32H312zm50.5 168l17.1 40H333l29.5-40zm-87.7 38.1l-1.4 1.9H225.1l32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240H88.8zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faSort:Ph,faUnsorted:wh,faListOl:kh,faList12:Ah,faListNumeric:Eh,faPersonDressBurst:{prefix:"fas",iconName:"person-dress-burst",icon:[640,512,[],"e544","M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},faMoneyCheckDollar:Nh,faMoneyCheckAlt:Th,faVectorSquare:{prefix:"fas",iconName:"vector-square",icon:[448,512,[],"f5cb","M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z"]},faBreadSlice:{prefix:"fas",iconName:"bread-slice",icon:[512,512,[],"f7ec","M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z"]},faLanguage:{prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"]},faFaceKissWinkHeart:Dh,faKissWinkHeart:Rh,faFilter:{prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]},faQuestion:{prefix:"fas",iconName:"question",icon:[320,512,[10067,10068,61736],"3f","M80 160c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64v3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74V320c0 17.7 14.3 32 32 32s32-14.3 32-32v-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7V160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faFileSignature:{prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z"]},faUpDownLeftRight:_h,faArrowsAlt:Oh,faHouseChimneyUser:{prefix:"fas",iconName:"house-chimney-user",icon:[576,512,[],"e065","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z"]},faHandHoldingHeart:{prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]},faPuzzlePiece:{prefix:"fas",iconName:"puzzle-piece",icon:[512,512,[129513],"f12e","M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8v0c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2v0c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2v0c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2v0c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8v0c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320v0c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256v0C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2v0z"]},faMoneyCheck:{prefix:"fas",iconName:"money-check",icon:[576,512,[],"f53c","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z"]},faStarHalfStroke:Ih,faStarHalfAlt:jh,faCode:{prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},faWhiskeyGlass:Fh,faGlassWhiskey:Bh,faBuildingCircleExclamation:{prefix:"fas",iconName:"building-circle-exclamation",icon:[640,512,[],"e4d3","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faMagnifyingGlassChart:{prefix:"fas",iconName:"magnifying-glass-chart",icon:[512,512,[],"e522","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},faArrowUpRightFromSquare:$h,faExternalLink:qh,faCubesStacked:{prefix:"fas",iconName:"cubes-stacked",icon:[448,512,[],"e4e6","M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z"]},faWonSign:Gh,faKrw:Wh,faWon:Uh,faVirusCovid:{prefix:"fas",iconName:"virus-covid",icon:[512,512,[],"e4a8","M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faAustralSign:{prefix:"fas",iconName:"austral-sign",icon:[448,512,[],"e0a9","M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z"]},faF:{prefix:"fas",iconName:"f",icon:[320,512,[102],"46","M64 32C28.7 32 0 60.7 0 96V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z"]},faLeaf:{prefix:"fas",iconName:"leaf",icon:[512,512,[],"f06c","M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.2 5.4c-25.9 5.9-50 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z"]},faRoad:{prefix:"fas",iconName:"road",icon:[576,512,[128739],"f018","M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faTaxi:Kh,faCab:Zh,faPersonCirclePlus:{prefix:"fas",iconName:"person-circle-plus",icon:[576,512,[],"e541","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z"]},faChartPie:Yh,faPieChart:Xh,faBoltLightning:{prefix:"fas",iconName:"bolt-lightning",icon:[384,512,[],"e0b7","M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z"]},faSackXmark:{prefix:"fas",iconName:"sack-xmark",icon:[512,512,[],"e56a","M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z"]},faFileExcel:{prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z"]},faFileContract:{prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"]},faFishFins:{prefix:"fas",iconName:"fish-fins",icon:[576,512,[],"e4f2","M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faBuildingFlag:{prefix:"fas",iconName:"building-flag",icon:[640,512,[],"e4d5","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z"]},faFaceGrinBeam:Jh,faGrinBeam:Qh,faObjectUngroup:{prefix:"fas",iconName:"object-ungroup",icon:[640,512,[],"f248","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z"]},faPoop:{prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z"]},faLocationPin:ev,faMapMarker:tv,faKaaba:{prefix:"fas",iconName:"kaaba",icon:[576,512,[128331],"f66b","M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z"]},faToiletPaper:{prefix:"fas",iconName:"toilet-paper",icon:[640,512,[129531],"f71e","M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faHelmetSafety:cv,faHardHat:av,faHatHard:iv,faEject:{prefix:"fas",iconName:"eject",icon:[448,512,[9167],"f052","M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z"]},faCircleRight:nv,faArrowAltCircleRight:sv,faPlaneCircleCheck:{prefix:"fas",iconName:"plane-circle-check",icon:[640,512,[],"e555","M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faFaceRollingEyes:rv,faMehRollingEyes:ov,faObjectGroup:{prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z"]},faChartLine:lv,faLineChart:uv,faMaskVentilator:{prefix:"fas",iconName:"mask-ventilator",icon:[640,512,[],"e524","M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faArrowRight:{prefix:"fas",iconName:"arrow-right",icon:[448,512,[8594],"f061","M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"]},faSignsPost:pv,faMapSigns:fv,faCashRegister:{prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"]},faPersonCircleQuestion:{prefix:"fas",iconName:"person-circle-question",icon:[576,512,[],"e542","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z"]},faH:{prefix:"fas",iconName:"h",icon:[384,512,[104],"48","M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z"]},faTarp:{prefix:"fas",iconName:"tarp",icon:[576,512,[],"e57b","M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faScrewdriverWrench:mv,faTools:dv,faArrowsToEye:{prefix:"fas",iconName:"arrows-to-eye",icon:[640,512,[],"e4bf","M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},faPlugCircleBolt:{prefix:"fas",iconName:"plug-circle-bolt",icon:[576,512,[],"e55b","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},faHeart:{prefix:"fas",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"]},faMarsAndVenus:{prefix:"fas",iconName:"mars-and-venus",icon:[512,512,[9893],"f224","M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},faHouseUser:hv,faHomeUser:vv,faDumpsterFire:{prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z"]},faHouseCrack:{prefix:"fas",iconName:"house-crack",icon:[576,512,[],"e3b1","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z"]},faMartiniGlassCitrus:gv,faCocktail:zv,faFaceSurprise:bv,faSurprise:Cv,faBottleWater:{prefix:"fas",iconName:"bottle-water",icon:[320,512,[],"e4c5","M120 0h80c13.3 0 24 10.7 24 24V64H96V24c0-13.3 10.7-24 24-24zM32 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.1 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C40.5 415.4 32 400.7 32 384s8.5-31.4 21.5-40C40.5 335.4 32 320.7 32 304s8.5-31.4 21.5-40C40.5 255.4 32 240.7 32 224c0-15.6 7.4-29.4 18.9-38.2C39.5 178.7 32 166.1 32 151.7zM96 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z"]},faCirclePause:Mv,faPauseCircle:Hv,faToiletPaperSlash:{prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z"]},faAppleWhole:Vv,faAppleAlt:yv,faKitchenSet:{prefix:"fas",iconName:"kitchen-set",icon:[576,512,[],"e51a","M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faR:{prefix:"fas",iconName:"r",icon:[320,512,[114],"52","M64 32C28.7 32 0 60.7 0 96V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H64zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},faTemperatureQuarter:Lv,faTemperature1:Sv,faThermometer1:xv,faThermometerQuarter:Pv,faCube:{prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z"]},faBitcoinSign:{prefix:"fas",iconName:"bitcoin-sign",icon:[320,512,[],"e0b4","M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z"]},faShieldDog:{prefix:"fas",iconName:"shield-dog",icon:[512,512,[],"e573","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faSolarPanel:{prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H569c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0H122.2zM260.9 64H379.1l10.4 104h-139L260.9 64zM202.3 168H101.4L122.2 64h90.4L202.3 168zM91.8 216H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104-169.4 0 10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l31.4-6.3L517.8 64l20.8 104z"]},faLockOpen:{prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"]},faElevator:{prefix:"fas",iconName:"elevator",icon:[512,512,[],"e16d","M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z"]},faMoneyBillTransfer:{prefix:"fas",iconName:"money-bill-transfer",icon:[640,512,[],"e528","M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},faMoneyBillTrendUp:{prefix:"fas",iconName:"money-bill-trend-up",icon:[512,512,[],"e529","M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faHouseFloodWaterCircleArrowRight:{prefix:"fas",iconName:"house-flood-water-circle-arrow-right",icon:[640,512,[],"e50f","M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z"]},faSquarePollHorizontal:wv,faPollH:kv,faCircle:{prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"]},faBackwardFast:Av,faFastBackward:Ev,faRecycle:{prefix:"fas",iconName:"recycle",icon:[512,512,[9842,9850,9851],"f1b8","M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z"]},faUserAstronaut:{prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faPlaneSlash:{prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64H440.6L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0h56.2c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6H144l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4H46c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z"]},faTrademark:{prefix:"fas",iconName:"trademark",icon:[640,512,[8482],"f25c","M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z"]},faBasketball:Nv,faBasketballBall:Tv,faSatelliteDish:{prefix:"fas",iconName:"satellite-dish",icon:[512,512,[128225],"f7c0","M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faCircleUp:Dv,faArrowAltCircleUp:Rv,faMobileScreenButton:_v,faMobileAlt:Ov,faVolumeHigh:Iv,faVolumeUp:jv,faUsersRays:{prefix:"fas",iconName:"users-rays",icon:[640,512,[],"e593","M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faWallet:{prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faClipboardCheck:{prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},faFileAudio:{prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z"]},faBurger:Fv,faHamburger:Bv,faWrench:{prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faBugs:{prefix:"fas",iconName:"bugs",icon:[576,512,[],"e4d0","M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184H64v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z"]},faRupeeSign:$v,faRupee:qv,faFileImage:{prefix:"fas",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z"]},faCircleQuestion:Gv,faQuestionCircle:Wv,faPlaneDeparture:{prefix:"fas",iconName:"plane-departure",icon:[640,512,[128747],"f5b0","M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z"]},faHandshakeSlash:{prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faBookBookmark:{prefix:"fas",iconName:"book-bookmark",icon:[448,512,[],"e0bb","M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z"]},faCodeBranch:{prefix:"fas",iconName:"code-branch",icon:[448,512,[],"f126","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faHatCowboy:{prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z"]},faBridge:{prefix:"fas",iconName:"bridge",icon:[576,512,[],"e4c8","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z"]},faPhoneFlip:Uv,faPhoneAlt:Kv,faTruckFront:{prefix:"fas",iconName:"truck-front",icon:[512,512,[],"e2b7","M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faCat:{prefix:"fas",iconName:"cat",icon:[576,512,[128008],"f6be","M320 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L280 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128v0V32 12 10.7C352 4.8 356.7 .1 362.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L384 21.3l27.2 36.3L416 64h64l4.8-6.4L512 21.3 524.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C539.3 .1 544 4.8 544 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faAnchorCircleExclamation:{prefix:"fas",iconName:"anchor-circle-exclamation",icon:[640,512,[],"e4ab","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faTruckField:{prefix:"fas",iconName:"truck-field",icon:[640,512,[],"e58d","M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faRoute:{prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c53 0 96 43 96 96s-43 96-96 96H139.6c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-53 0-96-43-96-96s43-96 96-96h39.8c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faClipboardQuestion:{prefix:"fas",iconName:"clipboard-question",icon:[384,512,[],"e4e3","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faPanorama:{prefix:"fas",iconName:"panorama",icon:[640,512,[],"e209","M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z"]},faCommentMedical:{prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z"]},faTeethOpen:{prefix:"fas",iconName:"teeth-open",icon:[576,512,[],"f62f","M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z"]},faFileCircleMinus:{prefix:"fas",iconName:"file-circle-minus",icon:[576,512,[],"e4ed","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z"]},faTags:{prefix:"fas",iconName:"tags",icon:[512,512,[],"f02c","M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faWineGlass:{prefix:"fas",iconName:"wine-glass",icon:[320,512,[127863],"f4e3","M32.1 29.3C33.5 12.8 47.4 0 64 0H256c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6V448h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H160 80c-17.7 0-32-14.3-32-32s14.3-32 32-32h48V348.4C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7H231.9l-5.3-64H93.4l-5.3 64z"]},faForwardFast:Zv,faFastForward:Yv,faFaceMehBlank:Xv,faMehBlank:Jv,faSquareParking:Qv,faParking:eg,faHouseSignal:{prefix:"fas",iconName:"house-signal",icon:[576,512,[],"e012","M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6H464c26.5 0 48-21.5 48-48V256h32c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V208zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z"]},faBarsProgress:tg,faTasksAlt:cg,faFaucetDrip:{prefix:"fas",iconName:"faucet-drip",icon:[512,512,[128688],"e006","M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z"]},faCartFlatbed:ag,faDollyFlatbed:ig,faBanSmoking:ng,faSmokingBan:sg,faTerminal:{prefix:"fas",iconName:"terminal",icon:[576,512,[],"f120","M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faMobileButton:{prefix:"fas",iconName:"mobile-button",icon:[384,512,[],"f10b","M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faHouseMedicalFlag:{prefix:"fas",iconName:"house-medical-flag",icon:[640,512,[],"e514","M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z"]},faBasketShopping:rg,faShoppingBasket:og,faTape:{prefix:"fas",iconName:"tape",icon:[576,512,[],"f4db","M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faBusSimple:lg,faBusAlt:ug,faEye:{prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]},faFaceSadCry:pg,faSadCry:fg,faAudioDescription:{prefix:"fas",iconName:"audio-description",icon:[576,512,[],"f29e","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z"]},faPersonMilitaryToPerson:{prefix:"fas",iconName:"person-military-to-person",icon:[512,512,[],"e54c","M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z"]},faFileShield:{prefix:"fas",iconName:"file-shield",icon:[576,512,[],"e4f0","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z"]},faUserSlash:{prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z"]},faPen:{prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]},faTowerObservation:{prefix:"fas",iconName:"tower-observation",icon:[512,512,[],"e586","M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z"]},faFileCode:{prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},faSignal:mg,faSignal5:dg,faSignalPerfect:hg,faBus:{prefix:"fas",iconName:"bus",icon:[576,512,[128653],"f207","M288 0C422.4 0 512 35.2 512 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H192v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C64 35.2 153.6 0 288 0zM128 160v96c0 17.7 14.3 32 32 32H272V128H160c-17.7 0-32 14.3-32 32zM304 288H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H304V288zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16s7.2 16 16 16H368c8.8 0 16-7.2 16-16z"]},faHeartCircleXmark:{prefix:"fas",iconName:"heart-circle-xmark",icon:[576,512,[],"e501","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faHouseChimney:vg,faHomeLg:gg,faWindowMaximize:{prefix:"fas",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faFaceFrown:zg,faFrown:bg,faPrescription:{prefix:"fas",iconName:"prescription",icon:[448,512,[],"f5b1","M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},faShop:Cg,faStoreAlt:Mg,faFloppyDisk:Hg,faSave:Vg,faVihara:{prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z"]},faScaleUnbalanced:yg,faBalanceScaleLeft:Lg,faSortUp:Sg,faSortAsc:xg,faCommentDots:Pg,faCommenting:wg,faPlantWilt:{prefix:"fas",iconName:"plant-wilt",icon:[512,512,[],"e5aa","M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z"]},faDiamond:{prefix:"fas",iconName:"diamond",icon:[512,512,[9830],"f219","M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z"]},faFaceGrinSquint:kg,faGrinSquint:Ag,faHandHoldingDollar:Eg,faHandHoldingUsd:Ng,faBacterium:{prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3l0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faHandPointer:{prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v48 16 48c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z"]},faDrumSteelpan:{prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z"]},faHandScissors:{prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"]},faHandsPraying:Tg,faPrayingHands:Dg,faArrowRotateRight:Rg,faArrowRightRotate:_g,faArrowRotateForward:Og,faRedo:Ig,faBiohazard:{prefix:"fas",iconName:"biohazard",icon:[576,512,[9763],"f780","M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z"]},faLocationCrosshairs:jg,faLocation:Fg,faMarsDouble:{prefix:"fas",iconName:"mars-double",icon:[640,512,[9891],"f227","M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z"]},faChildDress:{prefix:"fas",iconName:"child-dress",icon:[320,512,[],"e59c","M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z"]},faUsersBetweenLines:{prefix:"fas",iconName:"users-between-lines",icon:[640,512,[],"e591","M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},faLungsVirus:{prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faFaceGrinTears:Bg,faGrinTears:$g,faPhone:{prefix:"fas",iconName:"phone",icon:[512,512,[128222,128379],"f095","M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"]},faCalendarXmark:qg,faCalendarTimes:Gg,faChildReaching:{prefix:"fas",iconName:"child-reaching",icon:[384,512,[],"e59d","M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"]},faHeadSideVirus:{prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faUserGear:Wg,faUserCog:Ug,faArrowUp19:Kg,faSortNumericUp:Zg,faDoorClosed:{prefix:"fas",iconName:"door-closed",icon:[576,512,[128682],"f52a","M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faShieldVirus:{prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faDiceSix:{prefix:"fas",iconName:"dice-six",icon:[448,512,[9861],"f526","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faMosquitoNet:{prefix:"fas",iconName:"mosquito-net",icon:[640,512,[],"e52c","M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z"]},faBridgeWater:{prefix:"fas",iconName:"bridge-water",icon:[576,512,[],"e4ce","M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faPersonBooth:{prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z"]},faTextWidth:{prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M64 128V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H224 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z"]},faHatWizard:{prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faPenFancy:{prefix:"fas",iconName:"pen-fancy",icon:[512,512,[128395,10002],"f5ac","M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z"]},faPersonDigging:Yg,faDigging:Xg,faTrash:{prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"]},faGaugeSimple:Jg,faGaugeSimpleMed:Qg,faTachometerAverage:ez,faBookMedical:{prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z"]},faPoo:{prefix:"fas",iconName:"poo",icon:[512,512,[128169],"f2fe","M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z"]},faQuoteRight:tz,faQuoteRightAlt:cz,faShirt:az,faTShirt:iz,faTshirt:nz,faCubes:{prefix:"fas",iconName:"cubes",icon:[576,512,[],"f1b3","M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z"]},faDivide:{prefix:"fas",iconName:"divide",icon:[448,512,[10135,247],"f529","M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z"]},faTengeSign:sz,faTenge:rz,faHeadphones:{prefix:"fas",iconName:"headphones",icon:[512,512,[127911],"f025","M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z"]},faHandsHolding:{prefix:"fas",iconName:"hands-holding",icon:[640,512,[],"f4c2","M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z"]},faHandsClapping:{prefix:"fas",iconName:"hands-clapping",icon:[512,512,[],"e1a8","M336 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z"]},faRepublican:{prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z"]},faArrowLeft:{prefix:"fas",iconName:"arrow-left",icon:[448,512,[8592],"f060","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},faPersonCircleXmark:{prefix:"fas",iconName:"person-circle-xmark",icon:[576,512,[],"e543","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},faRuler:{prefix:"fas",iconName:"ruler",icon:[512,512,[128207],"f545","M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"]},faAlignLeft:{prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},faDiceD6:{prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V381c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z"]},faRestroom:{prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},faJ:{prefix:"fas",iconName:"j",icon:[320,512,[106],"4a","M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z"]},faUsersViewfinder:{prefix:"fas",iconName:"users-viewfinder",icon:[640,512,[],"e595","M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z"]},faFileVideo:{prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z"]},faUpRightFromSquare:oz,faExternalLinkAlt:lz,faTableCells:uz,faTh:pz,faFilePdf:{prefix:"fas",iconName:"file-pdf",icon:[512,512,[],"f1c1","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V304H176c-35.3 0-64 28.7-64 64V512H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"]},faBookBible:fz,faBible:mz,faO:{prefix:"fas",iconName:"o",icon:[448,512,[111],"4f","M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z"]},faSuitcaseMedical:dz,faMedkit:hz,faUserSecret:{prefix:"fas",iconName:"user-secret",icon:[448,512,[128373],"f21b","M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z"]},faOtter:{prefix:"fas",iconName:"otter",icon:[640,512,[129446],"f700","M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faPersonDress:vz,faFemale:gz,faCommentDollar:{prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z"]},faBusinessTime:zz,faBriefcaseClock:bz,faTableCellsLarge:Cz,faThLarge:Mz,faBookTanakh:Hz,faTanakh:Vz,faPhoneVolume:yz,faVolumeControlPhone:Lz,faHatCowboySide:{prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1h10.7c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32h-2.7c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64H544L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9H162.9c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2V384z"]},faClipboardUser:{prefix:"fas",iconName:"clipboard-user",icon:[384,512,[],"f7f3","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z"]},faChild:{prefix:"fas",iconName:"child",icon:[320,512,[],"f1ae","M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z"]},faLiraSign:{prefix:"fas",iconName:"lira-sign",icon:[320,512,[8356],"f195","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H46c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z"]},faSatellite:{prefix:"fas",iconName:"satellite",icon:[512,512,[128752],"f7bf","M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z"]},faPlaneLock:{prefix:"fas",iconName:"plane-lock",icon:[640,512,[],"e558","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faTag:{prefix:"fas",iconName:"tag",icon:[448,512,[127991],"f02b","M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faComment:{prefix:"fas",iconName:"comment",icon:[512,512,[128489,61669],"f075","M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"]},faCakeCandles:Sz,faBirthdayCake:xz,faCake:Pz,faEnvelope:{prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"]},faAnglesUp:wz,faAngleDoubleUp:kz,faPaperclip:{prefix:"fas",iconName:"paperclip",icon:[448,512,[128206],"f0c6","M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z"]},faArrowRightToCity:{prefix:"fas",iconName:"arrow-right-to-city",icon:[640,512,[],"e4b3","M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z"]},faRibbon:{prefix:"fas",iconName:"ribbon",icon:[448,512,[127895],"f4d6","M333.2 322.8l0 0-133.9-146 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65V149.1c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0h-76c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8V164c0 23.2 8.4 45.6 23.6 63.1l56 64.2 0 0 83.3 95.6 0 0 91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z"]},faLungs:{prefix:"fas",iconName:"lungs",icon:[640,512,[129729],"f604","M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z"]},faArrowUp91:Az,faSortNumericUpAlt:Ez,faLitecoinSign:{prefix:"fas",iconName:"litecoin-sign",icon:[384,512,[],"e1d3","M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64V213.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1V448c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3V64z"]},faBorderNone:{prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},faCircleNodes:{prefix:"fas",iconName:"circle-nodes",icon:[512,512,[],"e4e2","M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"]},faParachuteBox:{prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z"]},faIndent:{prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"]},faTruckFieldUn:{prefix:"fas",iconName:"truck-field-un",icon:[640,512,[],"e58e","M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faHourglass:Nz,faHourglassEmpty:Tz,faMountain:{prefix:"fas",iconName:"mountain",icon:[512,512,[127956],"f6fc","M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8h49z"]},faUserDoctor:Dz,faUserMd:Rz,faCircleInfo:_z,faInfoCircle:Oz,faCloudMeatball:{prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faCamera:Iz,faCameraAlt:jz,faSquareVirus:{prefix:"fas",iconName:"square-virus",icon:[448,512,[],"e578","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faMeteor:{prefix:"fas",iconName:"meteor",icon:[512,512,[9732],"f753","M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faCarOn:{prefix:"fas",iconName:"car-on",icon:[512,512,[],"e4dd","M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z"]},faSleigh:{prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z"]},faArrowDown19:Fz,faSortNumericAsc:Bz,faSortNumericDown:$z,faHandHoldingDroplet:qz,faHandHoldingWater:Gz,faWater:{prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faCalendarCheck:{prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"]},faBraille:{prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},faPrescriptionBottleMedical:Wz,faPrescriptionBottleAlt:Uz,faLandmark:{prefix:"fas",iconName:"landmark",icon:[512,512,[127963],"f66f","M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z"]},faTruck:{prefix:"fas",iconName:"truck",icon:[640,512,[128666,9951],"f0d1","M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faCrosshairs:{prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faPersonCane:{prefix:"fas",iconName:"person-cane",icon:[448,512,[],"e53c","M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z"]},faTent:{prefix:"fas",iconName:"tent",icon:[576,512,[],"e57d","M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z"]},faVestPatches:{prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},faCheckDouble:{prefix:"fas",iconName:"check-double",icon:[448,512,[],"f560","M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z"]},faArrowDownAZ:Kz,faSortAlphaAsc:Zz,faSortAlphaDown:Yz,faMoneyBillWheat:{prefix:"fas",iconName:"money-bill-wheat",icon:[512,512,[],"e52a","M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faCookie:{prefix:"fas",iconName:"cookie",icon:[512,512,[127850],"f563","M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faArrowRotateLeft:Xz,faArrowLeftRotate:Jz,faArrowRotateBack:Qz,faArrowRotateBackward:eb,faUndo:tb,faHardDrive:cb,faHdd:ab,faFaceGrinSquintTears:ib,faGrinSquintTears:nb,faDumbbell:{prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M96 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V224v64V448c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H96V64zm448 0v64h32c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H544v64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z"]},faRectangleList:sb,faListAlt:rb,faTarpDroplet:{prefix:"fas",iconName:"tarp-droplet",icon:[576,512,[],"e57c","M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faHouseMedicalCircleCheck:{prefix:"fas",iconName:"house-medical-circle-check",icon:[640,512,[],"e511","M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faPersonSkiingNordic:ob,faSkiingNordic:lb,faCalendarPlus:{prefix:"fas",iconName:"calendar-plus",icon:[512,512,[],"f271","M128 32V64H80c-26.5 0-48 21.5-48 48v48H480V112c0-26.5-21.5-48-48-48H384V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H192V32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 192H32V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V192zM256 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H176c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z"]},faPlaneArrival:{prefix:"fas",iconName:"plane-arrival",icon:[640,512,[128748],"f5af","M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faCircleLeft:ub,faArrowAltCircleLeft:pb,faTrainSubway:fb,faSubway:mb,faChartGantt:{prefix:"fas",iconName:"chart-gantt",icon:[512,512,[],"e0e4","M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faIndianRupeeSign:db,faIndianRupee:hb,faInr:vb,faCropSimple:gb,faCropAlt:zb,faMoneyBill1:bb,faMoneyBillAlt:Cb,faLeftLong:Mb,faLongArrowAltLeft:Hb,faDna:{prefix:"fas",iconName:"dna",icon:[448,512,[129516],"f471","M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z"]},faVirusSlash:{prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7z"]},faMinus:Vb,faSubtract:yb,faChess:{prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H60.2C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h4L60 384H196L180 256h4c13.3 0 24-10.7 24-24s-10.7-24-24-24h-1.8l32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24H232c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416H48zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24H488c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416H336zM304 208v51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384H462.5l-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7V208c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16v16H424V208c0-8.8-7.2-16-16-16H392c-8.8 0-16 7.2-16 16v16H352V208c0-8.8-7.2-16-16-16H320c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16v32H384V304z"]},faArrowLeftLong:Lb,faLongArrowLeft:Sb,faPlugCircleCheck:{prefix:"fas",iconName:"plug-circle-check",icon:[576,512,[],"e55c","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faStreetView:{prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"]},faFrancSign:{prefix:"fas",iconName:"franc-sign",icon:[320,512,[],"e18f","M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},faVolumeOff:{prefix:"fas",iconName:"volume-off",icon:[320,512,[],"f026","M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z"]},faHandsAslInterpreting:xb,faAmericanSignLanguageInterpreting:Pb,faAslInterpreting:wb,faHandsAmericanSignLanguageInterpreting:kb,faGear:Ab,faCog:Eb,faDropletSlash:Nb,faTintSlash:Tb,faMosque:{prefix:"fas",iconName:"mosque",icon:[640,512,[128332],"f678","M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z"]},faMosquito:{prefix:"fas",iconName:"mosquito",icon:[640,512,[],"e52b","M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z"]},faStarOfDavid:{prefix:"fas",iconName:"star-of-david",icon:[512,512,[10017],"f69a","M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z"]},faPersonMilitaryRifle:{prefix:"fas",iconName:"person-military-rifle",icon:[512,512,[],"e54b","M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faCartShopping:Db,faShoppingCart:Rb,faVials:{prefix:"fas",iconName:"vials",icon:[512,512,[],"f493","M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z"]},faPlugCirclePlus:{prefix:"fas",iconName:"plug-circle-plus",icon:[576,512,[],"e55f","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faPlaceOfWorship:{prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z"]},faGripVertical:{prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z"]},faArrowTurnUp:_b,faLevelUp:Ob,faU:{prefix:"fas",iconName:"u",icon:[384,512,[117],"55","M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z"]},faSquareRootVariable:Ib,faSquareRootAlt:jb,faClock:Fb,faClockFour:Bb,faBackwardStep:$b,faStepBackward:qb,faPallet:{prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z"]},faFaucet:{prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z"]},faBaseballBatBall:{prefix:"fas",iconName:"baseball-bat-ball",icon:[512,512,[],"f432","M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z"]},faS:{prefix:"fas",iconName:"s",icon:[320,512,[115],"53","M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z"]},faTimeline:{prefix:"fas",iconName:"timeline",icon:[640,512,[],"e29c","M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faKeyboard:{prefix:"fas",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z"]},faCaretDown:{prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]},faHouseChimneyMedical:Gb,faClinicMedical:Wb,faTemperatureThreeQuarters:Ub,faTemperature3:Kb,faThermometer3:Zb,faThermometerThreeQuarters:Yb,faMobileScreen:Xb,faMobileAndroidAlt:Jb,faPlaneUp:{prefix:"fas",iconName:"plane-up",icon:[512,512,[],"e22d","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z"]},faPiggyBank:{prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h11.5c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faBatteryHalf:Qb,faBattery3:eC,faMountainCity:{prefix:"fas",iconName:"mountain-city",icon:[640,512,[],"e52e","M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z"]},faCoins:{prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"]},faKhanda:{prefix:"fas",iconName:"khanda",icon:[512,512,[9772],"f66d","M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z"]},faSliders:tC,faSlidersH:cC,faFolderTree:{prefix:"fas",iconName:"folder-tree",icon:[576,512,[],"f802","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z"]},faNetworkWired:{prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z"]},faMapPin:{prefix:"fas",iconName:"map-pin",icon:[320,512,[128205],"f276","M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},faHamsa:{prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faCentSign:{prefix:"fas",iconName:"cent-sign",icon:[384,512,[],"e3f5","M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z"]},faFlask:{prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z"]},faPersonPregnant:{prefix:"fas",iconName:"person-pregnant",icon:[384,512,[],"e31e","M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z"]},faWandSparkles:{prefix:"fas",iconName:"wand-sparkles",icon:[512,512,[],"f72b","M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"]},faEllipsisVertical:aC,faEllipsisV:iC,faTicket:{prefix:"fas",iconName:"ticket",icon:[576,512,[127903],"f145","M64 64C28.7 64 0 92.7 0 128v64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V320c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6V128c0-35.3-28.7-64-64-64H64zm64 112l0 160c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z"]},faPowerOff:{prefix:"fas",iconName:"power-off",icon:[512,512,[9211],"f011","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"]},faRightLong:nC,faLongArrowAltRight:sC,faFlagUsa:{prefix:"fas",iconName:"flag-usa",icon:[448,512,[],"f74d","M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1v36.1l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9v32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3v33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V416 345.5 312.8 249.5 216.8 153.5 120.8 64 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faLaptopFile:{prefix:"fas",iconName:"laptop-file",icon:[640,512,[],"e51d","M128 0C92.7 0 64 28.7 64 64V288H19.2C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384H320V288H128V64H448V96h64V64c0-35.3-28.7-64-64-64H128zM512 128H400c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V256H544c-17.7 0-32-14.3-32-32V128zm32 0v96h96l-96-96z"]},faTty:rC,faTeletype:oC,faDiagramNext:{prefix:"fas",iconName:"diagram-next",icon:[512,512,[],"e476","M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z"]},faPersonRifle:{prefix:"fas",iconName:"person-rifle",icon:[576,512,[],"e54e","M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z"]},faHouseMedicalCircleExclamation:{prefix:"fas",iconName:"house-medical-circle-exclamation",icon:[640,512,[],"e512","M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faClosedCaptioning:{prefix:"fas",iconName:"closed-captioning",icon:[576,512,[],"f20a","M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},faPersonHiking:lC,faHiking:uC,faVenusDouble:{prefix:"fas",iconName:"venus-double",icon:[640,512,[9890],"f226","M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z"]},faImages:{prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z"]},faCalculator:{prefix:"fas",iconName:"calculator",icon:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},faPeoplePulling:{prefix:"fas",iconName:"people-pulling",icon:[576,512,[],"e535","M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z"]},faN:{prefix:"fas",iconName:"n",icon:[384,512,[110],"4e","M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V448c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 50.5 8.4 38.5 21.1 33.9z"]},faCableCar:pC,faTram:fC,faCloudRain:{prefix:"fas",iconName:"cloud-rain",icon:[512,512,[127783,9926],"f73d","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z"]},faBuildingCircleXmark:{prefix:"fas",iconName:"building-circle-xmark",icon:[640,512,[],"e4d4","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faShip:{prefix:"fas",iconName:"ship",icon:[576,512,[128674],"f21a","M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faArrowsDownToLine:{prefix:"fas",iconName:"arrows-down-to-line",icon:[576,512,[],"e4b8","M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z"]},faDownload:{prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faFaceGrin:mC,faGrin:dC,faDeleteLeft:hC,faBackspace:vC,faEyeDropper:gC,faEyeDropperEmpty:zC,faEyedropper:bC,faFileCircleCheck:{prefix:"fas",iconName:"file-circle-check",icon:[576,512,[],"e5a0","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faForward:{prefix:"fas",iconName:"forward",icon:[512,512,[9193],"f04e","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z"]},faMobile:CC,faMobileAndroid:MC,faMobilePhone:HC,faFaceMeh:VC,faMeh:yC,faAlignCenter:{prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"]},faBookSkull:LC,faBookDead:SC,faIdCard:xC,faDriversLicense:PC,faOutdent:wC,faDedent:kC,faHeartCircleExclamation:{prefix:"fas",iconName:"heart-circle-exclamation",icon:[576,512,[],"e4fe","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faHouse:AC,faHome:EC,faHomeAlt:NC,faHomeLgAlt:TC,faCalendarWeek:{prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z"]},faLaptopMedical:{prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z"]},faB:{prefix:"fas",iconName:"b",icon:[320,512,[98],"42","M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H64zm96 192H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z"]},faFileMedical:{prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z"]},faDiceOne:{prefix:"fas",iconName:"dice-one",icon:[448,512,[9856],"f525","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faKiwiBird:{prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faArrowRightArrowLeft:DC,faExchange:RC,faRotateRight:_C,faRedoAlt:OC,faRotateForward:IC,faUtensils:jC,faCutlery:FC,faArrowUpWideShort:BC,faSortAmountUp:$C,faMillSign:{prefix:"fas",iconName:"mill-sign",icon:[384,512,[],"e1ed","M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z"]},faBowlRice:{prefix:"fas",iconName:"bowl-rice",icon:[512,512,[],"e2eb","M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faSkull:{prefix:"fas",iconName:"skull",icon:[512,512,[128128],"f54c","M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},faTowerBroadcast:qC,faBroadcastTower:GC,faTruckPickup:{prefix:"fas",iconName:"truck-pickup",icon:[640,512,[128763],"f63c","M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z"]},faUpLong:WC,faLongArrowAltUp:UC,faStop:{prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},faCodeMerge:{prefix:"fas",iconName:"code-merge",icon:[448,512,[],"f387","M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faUpload:{prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faHurricane:{prefix:"fas",iconName:"hurricane",icon:[384,512,[],"f751","M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faMound:{prefix:"fas",iconName:"mound",icon:[576,512,[],"e52d","M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z"]},faToiletPortable:{prefix:"fas",iconName:"toilet-portable",icon:[320,512,[],"e583","M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faCompactDisc:{prefix:"fas",iconName:"compact-disc",icon:[512,512,[128191,128192,128440],"f51f","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z"]},faFileArrowDown:KC,faFileDownload:ZC,faCaravan:{prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faShieldCat:{prefix:"fas",iconName:"shield-cat",icon:[512,512,[],"e572","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faBolt:YC,faZap:XC,faGlassWater:{prefix:"fas",iconName:"glass-water",icon:[384,512,[],"e4f4","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM73 156.5L66.4 64H317.6L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z"]},faOilWell:{prefix:"fas",iconName:"oil-well",icon:[576,512,[],"e532","M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z"]},faVault:{prefix:"fas",iconName:"vault",icon:[576,512,[],"e2c5","M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z"]},faMars:{prefix:"fas",iconName:"mars",icon:[448,512,[9794],"f222","M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"]},faToilet:{prefix:"fas",iconName:"toilet",icon:[448,512,[128701],"f7d8","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faPlaneCircleXmark:{prefix:"fas",iconName:"plane-circle-xmark",icon:[640,512,[],"e557","M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faYenSign:JC,faCny:QC,faJpy:eM,faRmb:tM,faYen:cM,faRubleSign:aM,faRouble:iM,faRub:nM,faRuble:sM,faSun:{prefix:"fas",iconName:"sun",icon:[512,512,[9728],"f185","M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},faGuitar:{prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faFaceLaughWink:rM,faLaughWink:oM,faHorseHead:{prefix:"fas",iconName:"horse-head",icon:[640,512,[],"f7ab","M64 464V316.9c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H112c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faBoreHole:{prefix:"fas",iconName:"bore-hole",icon:[512,512,[],"e4c3","M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H384c-17.7 0-32 14.3-32 32V352c0 53-43 96-96 96s-96-43-96-96V160c0-17.7-14.3-32-32-32H48z"]},faIndustry:{prefix:"fas",iconName:"industry",icon:[576,512,[],"f275","M64 32C46.3 32 32 46.3 32 64V304v48 80c0 26.5 21.5 48 48 48H496c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L352 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4V64c0-17.7-14.3-32-32-32H64z"]},faCircleDown:lM,faArrowAltCircleDown:uM,faArrowsTurnToDots:{prefix:"fas",iconName:"arrows-turn-to-dots",icon:[512,512,[],"e4c1","M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z"]},faFlorinSign:{prefix:"fas",iconName:"florin-sign",icon:[384,512,[],"e184","M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z"]},faArrowDownShortWide:pM,faSortAmountDesc:fM,faSortAmountDownAlt:mM,faLessThan:{prefix:"fas",iconName:"less-than",icon:[384,512,[62774],"3c","M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z"]},faAngleDown:{prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},faCarTunnel:{prefix:"fas",iconName:"car-tunnel",icon:[512,512,[],"e4de","M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h42.8c-6.6-5.9-10.8-14.4-10.8-24V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V488c0 9.6-4.2 18.1-10.8 24H448c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24V448H160v40c0 9.6-4.2 18.1-10.8 24H362.8zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faHeadSideCough:{prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416v16c0 26.5-21.5 48-48 48H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faGripLines:{prefix:"fas",iconName:"grip-lines",icon:[448,512,[],"f7a4","M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]},faThumbsDown:{prefix:"fas",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384H96c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H32C14.3 96 0 110.3 0 128V352c0 17.7 14.3 32 32 32z"]},faUserLock:{prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faArrowRightLong:dM,faLongArrowRight:hM,faAnchorCircleXmark:{prefix:"fas",iconName:"anchor-circle-xmark",icon:[640,512,[],"e4ac","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faEllipsis:vM,faEllipsisH:gM,faChessPawn:{prefix:"fas",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88H96c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400H240L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32h-8.5zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H281.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432H64L22.6 473.4z"]},faKitMedical:zM,faFirstAid:bM,faPersonThroughWindow:{prefix:"fas",iconName:"person-through-window",icon:[640,512,[],"e5a9","M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faToolbox:{prefix:"fas",iconName:"toolbox",icon:[512,512,[129520],"f552","M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"]},faHandsHoldingCircle:{prefix:"fas",iconName:"hands-holding-circle",icon:[640,512,[],"e4fb","M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z"]},faBug:{prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]},faCreditCard:CM,faCreditCardAlt:MM,faCar:HM,faAutomobile:VM,faHandHoldingHand:{prefix:"fas",iconName:"hand-holding-hand",icon:[576,512,[],"e4f7","M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z"]},faBookOpenReader:yM,faBookReader:LM,faMountainSun:{prefix:"fas",iconName:"mountain-sun",icon:[640,512,[],"e52f","M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z"]},faArrowsLeftRightToLine:{prefix:"fas",iconName:"arrows-left-right-to-line",icon:[640,512,[],"e4ba","M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faDiceD20:{prefix:"fas",iconName:"dice-d20",icon:[512,512,[],"f6cf","M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H183.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176H337.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z"]},faTruckDroplet:{prefix:"fas",iconName:"truck-droplet",icon:[640,512,[],"e58c","M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z"]},faFileCircleXmark:{prefix:"fas",iconName:"file-circle-xmark",icon:[576,512,[],"e5a1","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},faTemperatureArrowUp:SM,faTemperatureUp:xM,faMedal:{prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0H133.9c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0H487.4C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z"]},faBed:{prefix:"fas",iconName:"bed",icon:[640,512,[128716],"f236","M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},faSquareH:PM,faHSquare:wM,faPodcast:{prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},faTemperatureFull:kM,faTemperature4:AM,faThermometer4:EM,faThermometerFull:NM,faBell:{prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},faSuperscript:{prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z"]},faPlugCircleXmark:{prefix:"fas",iconName:"plug-circle-xmark",icon:[576,512,[],"e560","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faStarOfLife:{prefix:"fas",iconName:"star-of-life",icon:[512,512,[],"f621","M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z"]},faPhoneSlash:{prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z"]},faPaintRoller:{prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z"]},faHandshakeAngle:TM,faHandsHelping:DM,faLocationDot:RM,faMapMarkerAlt:_M,faFile:{prefix:"fas",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z"]},faGreaterThan:{prefix:"fas",iconName:"greater-than",icon:[384,512,[62769],"3e","M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z"]},faPersonSwimming:OM,faSwimmer:IM,faArrowDown:{prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},faDroplet:jM,faTint:FM,faEraser:{prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"]},faEarthAmericas:BM,faEarth:$M,faEarthAmerica:qM,faGlobeAmericas:GM,faPersonBurst:{prefix:"fas",iconName:"person-burst",icon:[640,512,[],"e53b","M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},faDove:{prefix:"fas",iconName:"dove",icon:[512,512,[128330],"f4ba","M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faBatteryEmpty:WM,faBattery0:UM,faSocks:{prefix:"fas",iconName:"socks",icon:[512,512,[129510],"f696","M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z"]},faInbox:{prefix:"fas",iconName:"inbox",icon:[512,512,[],"f01c","M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z"]},faSection:{prefix:"fas",iconName:"section",icon:[256,512,[],"e447","M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z"]},faGaugeHigh:KM,faTachometerAlt:ZM,faTachometerAltFast:YM,faEnvelopeOpenText:{prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faHospital:XM,faHospitalAlt:JM,faHospitalWide:QM,faWineBottle:{prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z"]},faChessRook:{prefix:"fas",iconName:"chess-rook",icon:[448,512,[9820],"f447","M32 192V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V192c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144H80L96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96h32c8.8 0 16-7.2 16-16V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432H384l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H38.6C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z"]},faBarsStaggered:eH,faReorder:tH,faStream:cH,faDharmachakra:{prefix:"fas",iconName:"dharmachakra",icon:[512,512,[9784],"f655","M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faHotdog:{prefix:"fas",iconName:"hotdog",icon:[512,512,[127789],"f80f","M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z"]},faPersonWalkingWithCane:aH,faBlind:iH,faDrum:{prefix:"fas",iconName:"drum",icon:[512,512,[129345],"f569","M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z"]},faIceCream:{prefix:"fas",iconName:"ice-cream",icon:[448,512,[127848],"f810","M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16H80c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H368c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288H96z"]},faHeartCircleBolt:{prefix:"fas",iconName:"heart-circle-bolt",icon:[576,512,[],"e4fc","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},faFax:{prefix:"fas",iconName:"fax",icon:[512,512,[128224,128439],"f1ac","M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faParagraph:{prefix:"fas",iconName:"paragraph",icon:[448,512,[182],"f1dd","M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z"]},faCheckToSlot:nH,faVoteYea:sH,faStarHalf:{prefix:"fas",iconName:"star-half",icon:[576,512,[61731],"f089","M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z"]},faBoxesStacked:rH,faBoxes:oH,faBoxesAlt:lH,faLink:uH,faChain:pH,faEarListen:fH,faAssistiveListeningSystems:mH,faTreeCity:{prefix:"fas",iconName:"tree-city",icon:[640,512,[],"e587","M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z"]},faPlay:{prefix:"fas",iconName:"play",icon:[384,512,[9654],"f04b","M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"]},faFont:{prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"]},faRupiahSign:{prefix:"fas",iconName:"rupiah-sign",icon:[512,512,[],"e23d","M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z"]},faMagnifyingGlass:dH,faSearch:hH,faTableTennisPaddleBall:vH,faPingPongPaddleBall:gH,faTableTennis:zH,faPersonDotsFromLine:bH,faDiagnoses:CH,faTrashCanArrowUp:MH,faTrashRestoreAlt:HH,faNairaSign:{prefix:"fas",iconName:"naira-sign",icon:[448,512,[],"e1f6","M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z"]},faCartArrowDown:{prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H69.5c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H199.7c-11.5 0-21.4-8.2-23.6-19.5L170.7 288H459.2c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32H360V134.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V32H120.1C111 12.8 91.6 0 69.5 0H24zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faWalkieTalkie:{prefix:"fas",iconName:"walkie-talkie",icon:[384,512,[],"f8ef","M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faFilePen:VH,faFileEdit:yH,faReceipt:{prefix:"fas",iconName:"receipt",icon:[384,512,[129534],"f543","M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z"]},faSquarePen:LH,faPenSquare:SH,faPencilSquare:xH,faSuitcaseRolling:{prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faPersonCircleExclamation:{prefix:"fas",iconName:"person-circle-exclamation",icon:[576,512,[],"e53f","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faChevronDown:{prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},faBatteryFull:PH,faBattery:wH,faBattery5:kH,faSkullCrossbones:{prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[128369,9760],"f714","M368 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H176c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z"]},faCodeCompare:{prefix:"fas",iconName:"code-compare",icon:[512,512,[],"e13a","M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z"]},faListUl:AH,faListDots:EH,faSchoolLock:{prefix:"fas",iconName:"school-lock",icon:[640,512,[],"e56f","M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96H592c26.5 0 48 21.5 48 48V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H166.3L302.2 5.4zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faTowerCell:{prefix:"fas",iconName:"tower-cell",icon:[576,512,[],"e585","M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z"]},faDownLong:NH,faLongArrowAltDown:TH,faRankingStar:{prefix:"fas",iconName:"ranking-star",icon:[640,512,[],"e561","M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z"]},faChessKing:{prefix:"fas",iconName:"chess-king",icon:[448,512,[9818],"f43f","M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H408c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400H80L3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM38.6 473.4L80 432H368l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H54.6C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z"]},faPersonHarassing:{prefix:"fas",iconName:"person-harassing",icon:[576,512,[],"e549","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z"]},faBrazilianRealSign:{prefix:"fas",iconName:"brazilian-real-sign",icon:[512,512,[],"e46c","M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z"]},faLandmarkDome:DH,faLandmarkAlt:RH,faArrowUp:{prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"]},faTv:_H,faTelevision:OH,faTvAlt:IH,faShrimp:{prefix:"fas",iconName:"shrimp",icon:[512,512,[129424],"e448","M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faListCheck:jH,faTasks:FH,faJugDetergent:{prefix:"fas",iconName:"jug-detergent",icon:[384,512,[],"e519","M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faCircleUser:BH,faUserCircle:$H,faUserShield:{prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z"]},faWind:{prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},faCarBurst:qH,faCarCrash:GH,faY:{prefix:"fas",iconName:"y",icon:[384,512,[121],"59","M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z"]},faPersonSnowboarding:WH,faSnowboarding:UH,faTruckFast:KH,faShippingFast:ZH,faFish:{prefix:"fas",iconName:"fish",icon:[576,512,[128031],"f578","M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faUserGraduate:{prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z"]},faCircleHalfStroke:YH,faAdjust:XH,faClapperboard:{prefix:"fas",iconName:"clapperboard",icon:[512,512,[],"e131","M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z"]},faCircleRadiation:JH,faRadiationAlt:QH,faBaseball:eV,faBaseballBall:tV,faJetFighterUp:{prefix:"fas",iconName:"jet-fighter-up",icon:[512,512,[],"e518","M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z"]},faDiagramProject:cV,faProjectDiagram:aV,faCopy:{prefix:"fas",iconName:"copy",icon:[512,512,[],"f0c5","M272 0H396.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128H192v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"]},faVolumeXmark:iV,faVolumeMute:nV,faVolumeTimes:sV,faHandSparkles:{prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z"]},faGrip:rV,faGripHorizontal:oV,faShareFromSquare:lV,faShareSquare:uV,faChildCombatant:pV,faChildRifle:fV,faGun:{prefix:"fas",iconName:"gun",icon:[576,512,[],"e19b","M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faSquarePhone:mV,faPhoneSquare:dV,faPlus:hV,faAdd:vV,faExpand:{prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z"]},faComputer:{prefix:"fas",iconName:"computer",icon:[640,512,[],"e4e5","M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faXmark:gV,faClose:zV,faMultiply:bV,faRemove:CV,faTimes:MV,faArrowsUpDownLeftRight:HV,faArrows:VV,faChalkboardUser:yV,faChalkboardTeacher:LV,faPesoSign:{prefix:"fas",iconName:"peso-sign",icon:[384,512,[],"e222","M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z"]},faBuildingShield:{prefix:"fas",iconName:"building-shield",icon:[576,512,[],"e4d8","M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z"]},faBaby:{prefix:"fas",iconName:"baby",icon:[448,512,[],"f77c","M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z"]},faUsersLine:{prefix:"fas",iconName:"users-line",icon:[640,512,[],"e592","M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faQuoteLeft:SV,faQuoteLeftAlt:xV,faTractor:{prefix:"fas",iconName:"tractor",icon:[640,512,[128668],"f722","M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z"]},faTrashArrowUp:PV,faTrashRestore:wV,faArrowDownUpLock:{prefix:"fas",iconName:"arrow-down-up-lock",icon:[640,512,[],"e4b0","M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faLinesLeaning:{prefix:"fas",iconName:"lines-leaning",icon:[384,512,[],"e51e","M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z"]},faRulerCombined:{prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z"]},faCopyright:{prefix:"fas",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z"]},faEquals:{prefix:"fas",iconName:"equals",icon:[448,512,[62764],"3d","M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z"]},faBlender:{prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faTeeth:{prefix:"fas",iconName:"teeth",icon:[576,512,[],"f62e","M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z"]},faShekelSign:kV,faIls:AV,faShekel:EV,faSheqel:NV,faSheqelSign:TV,faMap:{prefix:"fas",iconName:"map",icon:[576,512,[128506,62072],"f279","M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z"]},faRocket:{prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faPhotoFilm:DV,faPhotoVideo:RV,faFolderMinus:{prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z"]},faStore:{prefix:"fas",iconName:"store",icon:[576,512,[],"f54e","M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z"]},faArrowTrendUp:{prefix:"fas",iconName:"arrow-trend-up",icon:[576,512,[],"e098","M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z"]},faPlugCircleMinus:{prefix:"fas",iconName:"plug-circle-minus",icon:[576,512,[],"e55e","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z"]},faSignHanging:_V,faSign:OV,faBezierCurve:{prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z"]},faBellSlash:{prefix:"fas",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},faTablet:IV,faTabletAndroid:jV,faSchoolFlag:{prefix:"fas",iconName:"school-flag",icon:[576,512,[],"e56e","M288 0H400c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H320.7l89.6 64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z"]},faFill:{prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288H67.5c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z"]},faAngleUp:{prefix:"fas",iconName:"angle-up",icon:[448,512,[8963],"f106","M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"]},faDrumstickBite:{prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z"]},faHollyBerry:{prefix:"fas",iconName:"holly-berry",icon:[512,512,[],"f7aa","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faChevronLeft:{prefix:"fas",iconName:"chevron-left",icon:[320,512,[9001],"f053","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},faBacteria:{prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1l-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1l.1 0 29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5l0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z"]},faHandLizard:{prefix:"fas",iconName:"hand-lizard",icon:[512,512,[],"f258","M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z"]},faNotdef:{prefix:"fas",iconName:"notdef",icon:[384,512,[],"e1fe","M64 390.3L153.5 256 64 121.7V390.3zM102.5 448H281.5L192 313.7 102.5 448zm128-192L320 390.3V121.7L230.5 256zM281.5 64H102.5L192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z"]},faDisease:{prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6h10c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBriefcaseMedical:{prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z"]},faGenderless:{prefix:"fas",iconName:"genderless",icon:[384,512,[],"f22d","M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z"]},faChevronRight:{prefix:"fas",iconName:"chevron-right",icon:[320,512,[9002],"f054","M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},faRetweet:{prefix:"fas",iconName:"retweet",icon:[576,512,[],"f079","M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z"]},faCarRear:FV,faCarAlt:BV,faPumpSoap:{prefix:"fas",iconName:"pump-soap",icon:[448,512,[],"e06b","M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z"]},faVideoSlash:{prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z"]},faBatteryQuarter:$V,faBattery2:qV,faRadio:{prefix:"fas",iconName:"radio",icon:[512,512,[128251],"f8d7","M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z"]},faBabyCarriage:GV,faCarriageBaby:WV,faTrafficLight:{prefix:"fas",iconName:"traffic-light",icon:[320,512,[128678],"f637","M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"]},faThermometer:{prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z"]},faVrCardboard:{prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},faHandMiddleFinger:{prefix:"fas",iconName:"hand-middle-finger",icon:[448,512,[128405],"f806","M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z"]},faPercent:UV,faPercentage:KV,faTruckMoving:{prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faGlassWaterDroplet:{prefix:"fas",iconName:"glass-water-droplet",icon:[384,512,[],"e4f5","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM83 297.5L66.4 64H317.6L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z"]},faDisplay:{prefix:"fas",iconName:"display",icon:[576,512,[],"e163","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z"]},faFaceSmile:ZV,faSmile:YV,faThumbtack:XV,faThumbTack:JV,faTrophy:{prefix:"fas",iconName:"trophy",icon:[576,512,[127942],"f091","M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z"]},faPersonPraying:QV,faPray:ey,faHammer:{prefix:"fas",iconName:"hammer",icon:[576,512,[128296],"f6e3","M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z"]},faHandPeace:{prefix:"fas",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z"]},faRotate:ty,faSyncAlt:cy,faSpinner:{prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"]},faRobot:{prefix:"fas",iconName:"robot",icon:[640,512,[129302],"f544","M320 0c17.7 0 32 14.3 32 32V96H472c39.8 0 72 32.2 72 72V440c0 39.8-32.2 72-72 72H168c-39.8 0-72-32.2-72-72V168c0-39.8 32.2-72 72-72H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z"]},faPeace:{prefix:"fas",iconName:"peace",icon:[512,512,[9774],"f67c","M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},faGears:ay,faCogs:iy,faWarehouse:{prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z"]},faArrowUpRightDots:{prefix:"fas",iconName:"arrow-up-right-dots",icon:[576,512,[],"e4b7","M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faSplotch:{prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z"]},faFaceGrinHearts:ny,faGrinHearts:sy,faDiceFour:{prefix:"fas",iconName:"dice-four",icon:[448,512,[9859],"f524","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faSimCard:{prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z"]},faTransgender:ry,faTransgenderAlt:oy,faMercury:{prefix:"fas",iconName:"mercury",icon:[384,512,[9791],"f223","M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z"]},faArrowTurnDown:ly,faLevelDown:uy,faPersonFallingBurst:{prefix:"fas",iconName:"person-falling-burst",icon:[640,512,[],"e547","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z"]},faAward:{prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z"]},faTicketSimple:py,faTicketAlt:fy,faBuilding:{prefix:"fas",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z"]},faAnglesLeft:my,faAngleDoubleLeft:dy,faQrcode:{prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80zM64 96v64h64V96H64zM0 336c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336zm64 16v64h64V352H64zM304 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H304c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm80 64H320v64h64V96zM256 304c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16v96c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16v64c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V304zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"]},faClockRotateLeft:hy,faHistory:vy,faFaceGrinBeamSweat:gy,faGrinBeamSweat:zy,faFileExport:by,faArrowRightFromFile:Cy,faShield:My,faShieldBlank:Hy,faArrowUpShortWide:Vy,faSortAmountUpAlt:yy,faHouseMedical:{prefix:"fas",iconName:"house-medical",icon:[576,512,[],"e3b2","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z"]},faGolfBallTee:Ly,faGolfBall:Sy,faCircleChevronLeft:xy,faChevronCircleLeft:Py,faHouseChimneyWindow:{prefix:"fas",iconName:"house-chimney-window",icon:[576,512,[],"e00d","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z"]},faPenNib:{prefix:"fas",iconName:"pen-nib",icon:[512,512,[10001],"f5ad","M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z"]},faTentArrowTurnLeft:{prefix:"fas",iconName:"tent-arrow-turn-left",icon:[576,512,[],"e580","M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faTents:{prefix:"fas",iconName:"tents",icon:[640,512,[],"e582","M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faWandMagic:wy,faMagic:ky,faDog:{prefix:"fas",iconName:"dog",icon:[576,512,[128021],"f6d3","M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faCarrot:{prefix:"fas",iconName:"carrot",icon:[512,512,[129365],"f787","M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z"]},faMoon:{prefix:"fas",iconName:"moon",icon:[384,512,[127769,9214],"f186","M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]},faWineGlassEmpty:Ay,faWineGlassAlt:Ey,faCheese:{prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z"]},faYinYang:{prefix:"fas",iconName:"yin-yang",icon:[512,512,[9775],"f6ad","M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faMusic:{prefix:"fas",iconName:"music",icon:[512,512,[127925],"f001","M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"]},faCodeCommit:{prefix:"fas",iconName:"code-commit",icon:[640,512,[],"f386","M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z"]},faTemperatureLow:{prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z"]},faPersonBiking:Ny,faBiking:Ty,faBroom:{prefix:"fas",iconName:"broom",icon:[576,512,[129529],"f51a","M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6v29.1L364.3 320h29.1c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z"]},faShieldHeart:{prefix:"fas",iconName:"shield-heart",icon:[512,512,[],"e574","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z"]},faGopuram:{prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faEarthOceania:Dy,faGlobeOceania:Ry,faSquareXmark:_y,faTimesSquare:Oy,faXmarkSquare:Iy,faHashtag:{prefix:"fas",iconName:"hashtag",icon:[448,512,[62098],"23","M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z"]},faUpRightAndDownLeftFromCenter:jy,faExpandAlt:Fy,faOilCan:{prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z"]},faT:{prefix:"fas",iconName:"t",icon:[384,512,[116],"54","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z"]},faHippo:{prefix:"fas",iconName:"hippo",icon:[640,512,[129435],"f6ed","M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faChartColumn:{prefix:"fas",iconName:"chart-column",icon:[512,512,[],"e0e3","M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faInfinity:{prefix:"fas",iconName:"infinity",icon:[640,512,[8734,9854],"f534","M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z"]},faVialCircleCheck:{prefix:"fas",iconName:"vial-circle-check",icon:[512,512,[],"e596","M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faPersonArrowDownToLine:{prefix:"fas",iconName:"person-arrow-down-to-line",icon:[640,512,[],"e538","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faVoicemail:{prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},faFan:{prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faPersonWalkingLuggage:{prefix:"fas",iconName:"person-walking-luggage",icon:[576,512,[],"e554","M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z"]},faUpDown:By,faArrowsAltV:$y,faCloudMoonRain:{prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H367.9zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z"]},faCalendar:{prefix:"fas",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"]},faTrailer:{prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBahai:qy,faHaykal:Gy,faSdCard:{prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},faDragon:{prefix:"fas",iconName:"dragon",icon:[640,512,[128009],"f6d5","M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z"]},faShoePrints:{prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z"]},faCirclePlus:Wy,faPlusCircle:Uy,faFaceGrinTongueWink:Ky,faGrinTongueWink:Zy,faHandHolding:{prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-366.1-8.3a.5 .5 0 1 1 -.9 .1 .5 .5 0 1 1 .9-.1z"]},faPlugCircleExclamation:{prefix:"fas",iconName:"plug-circle-exclamation",icon:[576,512,[],"e55d","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faLinkSlash:Yy,faChainBroken:Xy,faChainSlash:Jy,faUnlink:Qy,faClone:{prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448H64V224h64V160H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64zm-64-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z"]},faPersonWalkingArrowLoopLeft:{prefix:"fas",iconName:"person-walking-arrow-loop-left",icon:[640,512,[],"e551","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"]},faArrowUpZA:eL,faSortAlphaUpAlt:tL,faFireFlameCurved:cL,faFireAlt:aL,faTornado:{prefix:"fas",iconName:"tornado",icon:[448,512,[127786],"f76f","M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z"]},faFileCirclePlus:{prefix:"fas",iconName:"file-circle-plus",icon:[576,512,[58606],"e494","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z"]},faBookQuran:iL,faQuran:nL,faAnchor:{prefix:"fas",iconName:"anchor",icon:[576,512,[9875],"f13d","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z"]},faBorderAll:{prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},faFaceAngry:sL,faAngry:rL,faCookieBite:{prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faArrowTrendDown:{prefix:"fas",iconName:"arrow-trend-down",icon:[576,512,[],"e097","M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z"]},faRss:oL,faFeed:lL,faDrawPolygon:{prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z"]},faScaleBalanced:uL,faBalanceScale:pL,faGaugeSimpleHigh:fL,faTachometer:mL,faTachometerFast:dL,faShower:{prefix:"fas",iconName:"shower",icon:[512,512,[128703],"f2cc","M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faDesktop:hL,faDesktopAlt:vL,faM:{prefix:"fas",iconName:"m",icon:[448,512,[109],"4d","M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.2c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V169.7L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 49.9 9.2 37.5 22.7 33.4z"]},faTableList:gL,faThList:zL,faCommentSms:bL,faSms:CL,faBook:{prefix:"fas",iconName:"book",icon:[448,512,[128212],"f02d","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faUserPlus:{prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},faCheck:{prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},faBatteryThreeQuarters:ML,faBattery4:HL,faHouseCircleCheck:{prefix:"fas",iconName:"house-circle-check",icon:[640,512,[],"e509","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faAngleLeft:{prefix:"fas",iconName:"angle-left",icon:[320,512,[8249],"f104","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},faDiagramSuccessor:{prefix:"fas",iconName:"diagram-successor",icon:[512,512,[],"e47a","M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z"]},faTruckArrowRight:{prefix:"fas",iconName:"truck-arrow-right",icon:[640,512,[],"e58b","M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z"]},faArrowsSplitUpAndLeft:{prefix:"fas",iconName:"arrows-split-up-and-left",icon:[512,512,[],"e4bc","M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z"]},faHandFist:VL,faFistRaised:yL,faCloudMoon:{prefix:"fas",iconName:"cloud-moon",icon:[640,512,[],"f6c3","M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},faBriefcase:{prefix:"fas",iconName:"briefcase",icon:[512,512,[128188],"f0b1","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z"]},faPersonFalling:{prefix:"fas",iconName:"person-falling",icon:[512,512,[],"e546","M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faImagePortrait:LL,faPortrait:SL,faUserTag:{prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faRug:{prefix:"fas",iconName:"rug",icon:[640,512,[],"e569","M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z"]},faEarthEurope:xL,faGlobeEurope:PL,faCartFlatbedSuitcase:wL,faLuggageCart:kL,faRectangleXmark:AL,faRectangleTimes:EL,faTimesRectangle:NL,faWindowClose:TL,faBahtSign:{prefix:"fas",iconName:"baht-sign",icon:[320,512,[],"e0ac","M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z"]},faBookOpen:{prefix:"fas",iconName:"book-open",icon:[576,512,[128214,128366],"f518","M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z"]},faBookJournalWhills:DL,faJournalWhills:RL,faHandcuffs:{prefix:"fas",iconName:"handcuffs",icon:[640,512,[],"e4f8","M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faTriangleExclamation:_L,faExclamationTriangle:OL,faWarning:IL,faDatabase:{prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z"]},faShare:jL,faArrowTurnRight:FL,faMailForward:BL,faBottleDroplet:{prefix:"fas",iconName:"bottle-droplet",icon:[320,512,[],"e4c4","M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H104l0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z"]},faMaskFace:{prefix:"fas",iconName:"mask-face",icon:[640,512,[],"e1d7","M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z"]},faHillRockslide:{prefix:"fas",iconName:"hill-rockslide",icon:[576,512,[],"e508","M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faRightLeft:$L,faExchangeAlt:qL,faPaperPlane:{prefix:"fas",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"]},faRoadCircleExclamation:{prefix:"fas",iconName:"road-circle-exclamation",icon:[640,512,[],"e565","M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faDungeon:{prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z"]},faAlignRight:{prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},faMoneyBill1Wave:GL,faMoneyBillWaveAlt:WL,faLifeRing:{prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},faHands:UL,faSignLanguage:KL,faSigning:ZL,faCalendarDay:{prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z"]},faWaterLadder:YL,faLadderWater:XL,faSwimmingPool:JL,faArrowsUpDown:QL,faArrowsV:eS,faFaceGrimace:tS,faGrimace:cS,faWheelchairMove:aS,faWheelchairAlt:iS,faTurnDown:nS,faLevelDownAlt:sS,faPersonWalkingArrowRight:{prefix:"fas",iconName:"person-walking-arrow-right",icon:[640,512,[],"e552","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"]},faSquareEnvelope:rS,faEnvelopeSquare:oS,faDice:{prefix:"fas",iconName:"dice",icon:[640,512,[127922],"f522","M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H461.7c11.6 36 3.1 77-25.4 105.5L320 413.8V448zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faBowlingBall:{prefix:"fas",iconName:"bowling-ball",icon:[512,512,[],"f436","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBrain:{prefix:"fas",iconName:"brain",icon:[512,512,[129504],"f5dc","M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z"]},faBandage:lS,faBandAid:uS,faCalendarMinus:{prefix:"fas",iconName:"calendar-minus",icon:[512,512,[],"f272","M160 0c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H32V112c0-26.5 21.5-48 48-48h48V32c0-17.7 14.3-32 32-32zM32 192H480V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V192zM344 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H168c-13.3 0-24 10.7-24 24s10.7 24 24 24H344z"]},faCircleXmark:pS,faTimesCircle:fS,faXmarkCircle:mS,faGifts:{prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z"]},faHotel:{prefix:"fas",iconName:"hotel",icon:[512,512,[127976],"f594","M0 32C0 14.3 14.3 0 32 0H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64C14.3 64 0 49.7 0 32zm96 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H240zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H112zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H368zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8H328z"]},faEarthAsia:dS,faGlobeAsia:hS,faIdCardClip:vS,faIdCardAlt:gS,faMagnifyingGlassPlus:zS,faSearchPlus:bS,faThumbsUp:{prefix:"fas",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"]},faUserClock:{prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z"]},faHandDots:CS,faAllergies:MS,faFileInvoice:{prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faWindowMinimize:{prefix:"fas",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faMugSaucer:HS,faCoffee:VS,faBrush:{prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M162.4 6c-1.5-3.6-5-6-8.9-6h-19c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6H48C21.5 0 0 21.5 0 48V224v22.4V256H9.6 374.4 384v-9.6V224 48c0-26.5-21.5-48-48-48H230.5c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faMask:{prefix:"fas",iconName:"mask",icon:[576,512,[],"f6fa","M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},faMagnifyingGlassMinus:yS,faSearchMinus:LS,faRulerVertical:{prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z"]},faUserLarge:SS,faUserAlt:xS,faTrainTram:{prefix:"fas",iconName:"train-tram",icon:[448,512,[128650],"e5b4","M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faUserNurse:{prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z"]},faSyringe:{prefix:"fas",iconName:"syringe",icon:[512,512,[128137],"f48e","M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z"]},faCloudSun:{prefix:"fas",iconName:"cloud-sun",icon:[640,512,[9925],"f6c4","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},faStopwatch20:{prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z"]},faSquareFull:{prefix:"fas",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M0 0H512V512H0V0z"]},faMagnet:{prefix:"fas",iconName:"magnet",icon:[448,512,[129522],"f076","M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z"]},faJar:{prefix:"fas",iconName:"jar",icon:[320,512,[],"e516","M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z"]},faNoteSticky:PS,faStickyNote:wS,faBugSlash:{prefix:"fas",iconName:"bug-slash",icon:[640,512,[],"e490","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z"]},faArrowUpFromWaterPump:{prefix:"fas",iconName:"arrow-up-from-water-pump",icon:[576,512,[],"e4b6","M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z"]},faBone:{prefix:"fas",iconName:"bone",icon:[576,512,[129460],"f5d7","M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"]},faUserInjured:{prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z"]},faFaceSadTear:kS,faSadTear:AS,faPlane:{prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z"]},faTentArrowsDown:{prefix:"fas",iconName:"tent-arrows-down",icon:[576,512,[],"e581","M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faExclamation:{prefix:"fas",iconName:"exclamation",icon:[64,512,[10069,10071,61738],"21","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faArrowsSpin:{prefix:"fas",iconName:"arrows-spin",icon:[512,512,[],"e4bb","M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H448c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H64c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32H99.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224H412.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H448c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H64c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z"]},faPrint:{prefix:"fas",iconName:"print",icon:[512,512,[128424,128438,9113],"f02f","M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faTurkishLiraSign:ES,faTry:NS,faTurkishLira:TS,faDollarSign:DS,faDollar:RS,faUsd:_S,faX:{prefix:"fas",iconName:"x",icon:[384,512,[120],"58","M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"]},faMagnifyingGlassDollar:OS,faSearchDollar:IS,faUsersGear:jS,faUsersCog:FS,faPersonMilitaryPointing:{prefix:"fas",iconName:"person-military-pointing",icon:[576,512,[],"e54a","M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z"]},faBuildingColumns:BS,faBank:$S,faInstitution:qS,faMuseum:GS,faUniversity:WS,faUmbrella:{prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M288 0c17.7 0 32 14.3 32 32V49.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z"]},faTrowel:{prefix:"fas",iconName:"trowel",icon:[512,512,[],"e589","M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z"]},faD:{prefix:"fas",iconName:"d",icon:[384,512,[100],"44","M0 96C0 60.7 28.7 32 64 32h96c123.7 0 224 100.3 224 224s-100.3 224-224 224H64c-35.3 0-64-28.7-64-64V96zm160 0H64V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160z"]},faStapler:{prefix:"fas",iconName:"stapler",icon:[640,512,[],"e5af","M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z"]},faMasksTheater:US,faTheaterMasks:KS,faKipSign:{prefix:"fas",iconName:"kip-sign",icon:[384,512,[],"e1c4","M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z"]},faHandPointLeft:{prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z"]},faHandshakeSimple:ZS,faHandshakeAlt:YS,faJetFighter:XS,faFighterJet:JS,faSquareShareNodes:QS,faShareAltSquare:ex,faBarcode:{prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},faPlusMinus:{prefix:"fas",iconName:"plus-minus",icon:[384,512,[],"e43c","M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z"]},faVideo:tx,faVideoCamera:cx,faGraduationCap:ax,faMortarBoard:ix,faHandHoldingMedical:{prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z"]},faPersonCircleCheck:{prefix:"fas",iconName:"person-circle-check",icon:[576,512,[],"e53e","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faTurnUp:nx,faLevelUpAlt:sx},ox={prefix:"fab",iconName:"square-js",icon:[448,512,["js-square"],"f3b9","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"]},lx=ox,ux={prefix:"fab",iconName:"square-reddit",icon:[448,512,["reddit-square"],"f1a2","M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"]},px=ux,fx={prefix:"fab",iconName:"square-instagram",icon:[448,512,["instagram-square"],"e055","M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z"]},mx=fx,dx={prefix:"fab",iconName:"square-hacker-news",icon:[448,512,["hacker-news-square"],"f3af","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"]},hx=dx,vx={prefix:"fab",iconName:"square-snapchat",icon:[448,512,["snapchat-square"],"f2ad","M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z"]},gx=vx,zx={prefix:"fab",iconName:"square-font-awesome-stroke",icon:[448,512,["font-awesome-alt"],"f35c","M201.6,152c-25.4,0-37.4,10.4-57.6,14.4V160c0-8.8-7.2-16-16-16s-16,7.2-16,16v192c0,0.8,0.1,1.6,0.2,2.4 c0.1,0.4,0.1,0.8,0.2,1.2c1.6,7.1,8,12.4,15.6,12.4s14-5.3,15.6-12.4c0.1-0.4,0.2-0.8,0.2-1.2c0.1-0.8,0.2-1.6,0.2-2.4V198.4 c4-0.8,7.7-1.8,11.2-3c14.3-4.7,26-11.4,46.4-11.4c31.4,0,43.2,16,74.6,16c8.9,0,15.9-1.1,24.2-3.5c1.2-0.3,2.4-0.7,3.6-1.1v96 c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.4-16-74.6-16c-10.2,0-18.2,1.8-25.6,4v32c7.4-2.4,15.4-4,25.6-4c31.4,0,43.2,16,74.6,16 c18.6,0,28.2-4.8,59.8-16V152c-31.6,11.2-41.2,16-59.8,16C244.8,168,232.8,152,201.6,152z M384,32H64C28.7,32,0,60.7,0,96v320 c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64V96C448,60.7,419.3,32,384,32z M416,416c0,17.6-14.4,32-32,32H64 c-17.6,0-32-14.4-32-32V96c0-17.6,14.4-32,32-32h320c17.6,0,32,14.4,32,32V416z"]},bx=zx,Cx={prefix:"fab",iconName:"square-viadeo",icon:[448,512,["viadeo-square"],"f2aa","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"]},Mx=Cx,Hx={prefix:"fab",iconName:"square-dribbble",icon:[448,512,["dribbble-square"],"f397","M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"]},Vx=Hx,yx={prefix:"fab",iconName:"square-twitter",icon:[448,512,["twitter-square"],"f081","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"]},Lx=yx,Sx={prefix:"fab",iconName:"square-youtube",icon:[448,512,[61798,"youtube-square"],"f431","M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"]},xx=Sx,Px={prefix:"fab",iconName:"wpressr",icon:[496,512,["rendact"],"f3e4","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z"]},wx=Px,kx={prefix:"fab",iconName:"square-steam",icon:[448,512,["steam-square"],"f1b7","M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"]},Ax=kx,Ex={prefix:"fab",iconName:"square-vimeo",icon:[448,512,["vimeo-square"],"f194","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"]},Nx=Ex,Tx={prefix:"fab",iconName:"font-awesome",icon:[448,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M448 48V384C385 407 366 416 329 416C266 416 242 384 179 384C159 384 143 388 128 392V328C143 324 159 320 179 320C242 320 266 352 329 352C349 352 364 349 384 343V135C364 141 349 144 329 144C266 144 242 112 179 112C128 112 104 133 64 141V448C64 466 50 480 32 480S0 466 0 448V64C0 46 14 32 32 32S64 46 64 64V77C104 69 128 48 179 48C242 48 266 80 329 80C366 80 385 71 448 48Z"]},Dx=Tx,Rx=Tx,_x={prefix:"fab",iconName:"square-github",icon:[448,512,["github-square"],"f092","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"]},Ox=_x,Ix={prefix:"fab",iconName:"square-gitlab",icon:[448,512,["gitlab-square"],"e5ae","M48 32H400C426.5 32 448 53.5 448 80V432C448 458.5 426.5 480 400 480H48C21.5 480 0 458.5 0 432V80C0 53.5 21.5 32 48 32zM382.1 224.9L337.5 108.5C336.6 106.2 334.9 104.2 332.9 102.9C331.3 101.9 329.5 101.3 327.7 101.1C325.9 100.9 324 101.2 322.3 101.8C320.6 102.5 319 103.5 317.8 104.9C316.6 106.3 315.7 107.9 315.2 109.7L285 201.9H162.1L132.9 109.7C132.4 107.9 131.4 106.3 130.2 104.9C128.1 103.6 127.4 102.5 125.7 101.9C123.1 101.2 122.1 100.1 120.3 101.1C118.5 101.3 116.7 101.9 115.1 102.9C113.1 104.2 111.5 106.2 110.6 108.5L65.94 224.9L65.47 226.1C59.05 242.9 58.26 261.3 63.22 278.6C68.18 295.9 78.62 311.1 92.97 321.9L93.14 322L93.52 322.3L161.4 373.2L215.6 414.1C217.1 415.1 220.9 416.9 223.9 416.9C226.9 416.9 229.9 415.1 232.3 414.1L286.4 373.2L354.8 322L355 321.9C369.4 311 379.8 295.8 384.8 278.6C389.7 261.3 388.1 242.9 382.5 226.1L382.1 224.9z"]},jx=Ix,Fx={prefix:"fab",iconName:"square-odnoklassniki",icon:[448,512,["odnoklassniki-square"],"f264","M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"]},Bx=Fx,$x={prefix:"fab",iconName:"square-pinterest",icon:[448,512,["pinterest-square"],"f0d3","M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"]},qx=$x,Gx={prefix:"fab",iconName:"square-google-plus",icon:[448,512,["google-plus-square"],"f0d4","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"]},Wx=Gx,Ux={prefix:"fab",iconName:"square-xing",icon:[448,512,["xing-square"],"f169","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"]},Kx=Ux,Zx={prefix:"fab",iconName:"42-group",icon:[640,512,["innosoft"],"e080","M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z"]},Yx={prefix:"fab",iconName:"square-pied-piper",icon:[448,512,["pied-piper-square"],"e01e","M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"]},Xx={prefix:"fab",iconName:"square-facebook",icon:[448,512,["facebook-square"],"f082","M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"]},Jx={prefix:"fab",iconName:"square-lastfm",icon:[448,512,["lastfm-square"],"f203","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"]},Qx={prefix:"fab",iconName:"wirsindhandwerk",icon:[512,512,["wsh"],"e2d0","M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z"]},eP={prefix:"fab",iconName:"snapchat",icon:[512,512,[62124,"snapchat-ghost"],"f2ab","M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z"]},tP={prefix:"fab",iconName:"square-behance",icon:[448,512,["behance-square"],"f1b5","M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"]},cP={prefix:"fab",iconName:"square-git",icon:[448,512,["git-square"],"f1d2","M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z"]},aP={prefix:"fab",iconName:"square-tumblr",icon:[448,512,["tumblr-square"],"f174","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"]},iP={prefix:"fab",iconName:"telegram",icon:[496,512,[62462,"telegram-plane"],"f2c6","M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z"]},nP={prefix:"fab",iconName:"square-whatsapp",icon:[448,512,["whatsapp-square"],"f40c","M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"]},sP={prefix:"fab",iconName:"slack",icon:[448,512,[62447,"slack-hash"],"f198","M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"]},rP={prefix:"fab",iconName:"medium",icon:[640,512,[62407,"medium-m"],"f23a","M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z"]},oP={faMonero:{prefix:"fab",iconName:"monero",icon:[496,512,[],"f3d0","M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"]},faHooli:{prefix:"fab",iconName:"hooli",icon:[640,512,[],"f427","M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z"]},faYelp:{prefix:"fab",iconName:"yelp",icon:[384,512,[],"f1e9","M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z"]},faCcVisa:{prefix:"fab",iconName:"cc-visa",icon:[576,512,[],"f1f0","M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"]},faLastfm:{prefix:"fab",iconName:"lastfm",icon:[512,512,[],"f202","M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"]},faShopware:{prefix:"fab",iconName:"shopware",icon:[512,512,[],"f5b5","M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z"]},faCreativeCommonsNc:{prefix:"fab",iconName:"creative-commons-nc",icon:[496,512,[],"f4e8","M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"]},faAws:{prefix:"fab",iconName:"aws",icon:[640,512,[],"f375","M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"]},faRedhat:{prefix:"fab",iconName:"redhat",icon:[512,512,[],"f7bc","M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24"]},faYoast:{prefix:"fab",iconName:"yoast",icon:[448,512,[],"f2b1","M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"]},faCloudflare:{prefix:"fab",iconName:"cloudflare",icon:[640,512,[],"e07d","M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z"]},faUps:{prefix:"fab",iconName:"ups",icon:[384,512,[],"f7e0","M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z"]},faWpexplorer:{prefix:"fab",iconName:"wpexplorer",icon:[512,512,[],"f2de","M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"]},faDyalog:{prefix:"fab",iconName:"dyalog",icon:[416,512,[],"f399","M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"]},faBity:{prefix:"fab",iconName:"bity",icon:[496,512,[],"f37a","M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"]},faStackpath:{prefix:"fab",iconName:"stackpath",icon:[448,512,[],"f842","M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z"]},faBuysellads:{prefix:"fab",iconName:"buysellads",icon:[448,512,[],"f20d","M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"]},faFirstOrder:{prefix:"fab",iconName:"first-order",icon:[448,512,[],"f2b0","M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"]},faModx:{prefix:"fab",iconName:"modx",icon:[448,512,[],"f285","M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"]},faGuilded:{prefix:"fab",iconName:"guilded",icon:[448,512,[],"e07e","M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z"]},faVnv:{prefix:"fab",iconName:"vnv",icon:[640,512,[],"f40b","M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"]},faSquareJs:ox,faJsSquare:lx,faMicrosoft:{prefix:"fab",iconName:"microsoft",icon:[448,512,[],"f3ca","M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"]},faQq:{prefix:"fab",iconName:"qq",icon:[448,512,[],"f1d6","M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"]},faOrcid:{prefix:"fab",iconName:"orcid",icon:[512,512,[],"f8d2","M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z"]},faJava:{prefix:"fab",iconName:"java",icon:[384,512,[],"f4e4","M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z"]},faInvision:{prefix:"fab",iconName:"invision",icon:[448,512,[],"f7b0","M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z"]},faCreativeCommonsPdAlt:{prefix:"fab",iconName:"creative-commons-pd-alt",icon:[496,512,[],"f4ed","M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z"]},faCentercode:{prefix:"fab",iconName:"centercode",icon:[512,512,[],"f380","M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"]},faGlideG:{prefix:"fab",iconName:"glide-g",icon:[448,512,[],"f2a6","M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"]},faDrupal:{prefix:"fab",iconName:"drupal",icon:[448,512,[],"f1a9","M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z"]},faHireAHelper:{prefix:"fab",iconName:"hire-a-helper",icon:[512,512,[],"f3b0","M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"]},faCreativeCommonsBy:{prefix:"fab",iconName:"creative-commons-by",icon:[496,512,[],"f4e7","M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"]},faUnity:{prefix:"fab",iconName:"unity",icon:[448,512,[],"e049","M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z"]},faWhmcs:{prefix:"fab",iconName:"whmcs",icon:[448,512,[],"f40d","M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"]},faRocketchat:{prefix:"fab",iconName:"rocketchat",icon:[576,512,[],"f3e8","M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z"]},faVk:{prefix:"fab",iconName:"vk",icon:[448,512,[],"f189","M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z"]},faUntappd:{prefix:"fab",iconName:"untappd",icon:[640,512,[],"f405","M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"]},faMailchimp:{prefix:"fab",iconName:"mailchimp",icon:[448,512,[],"f59e","M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z"]},faCss3Alt:{prefix:"fab",iconName:"css3-alt",icon:[384,512,[],"f38b","M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"]},faSquareReddit:ux,faRedditSquare:px,faVimeoV:{prefix:"fab",iconName:"vimeo-v",icon:[448,512,[],"f27d","M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"]},faContao:{prefix:"fab",iconName:"contao",icon:[512,512,[],"f26d","M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"]},faSquareFontAwesome:{prefix:"fab",iconName:"square-font-awesome",icon:[448,512,[],"e5ad","M384.5,32.5h-320c-35.3,0-64,28.7-64,64v320c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64v-320 C448.5,61.2,419.8,32.5,384.5,32.5z M336.5,312.5c-31.6,11.2-41.2,16-59.8,16c-31.4,0-43.2-16-74.6-16c-10.2,0-18.2,1.6-25.6,4v-32 c7.4-2.2,15.4-4,25.6-4c31.2,0,43.2,16,74.6,16c10.2,0,17.8-1.4,27.8-4.6v-96c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.2-16-74.6-16 c-25.4,0-37.4,10.4-57.6,14.4v153.6c0,8.8-7.2,16-16,16c-8.8,0-16-7.2-16-16v-192c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16v6.4 c20.2-4,32.2-14.4,57.6-14.4c31.2,0,43.2,16,74.6,16c18.6,0,28.2-4.8,59.8-16V312.5z"]},faDeskpro:{prefix:"fab",iconName:"deskpro",icon:[480,512,[],"f38f","M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"]},faSistrix:{prefix:"fab",iconName:"sistrix",icon:[448,512,[],"f3ee","M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"]},faSquareInstagram:fx,faInstagramSquare:mx,faBattleNet:{prefix:"fab",iconName:"battle-net",icon:[512,512,[],"f835","M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8"]},faTheRedYeti:{prefix:"fab",iconName:"the-red-yeti",icon:[512,512,[],"f69d","M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z"]},faSquareHackerNews:dx,faHackerNewsSquare:hx,faEdge:{prefix:"fab",iconName:"edge",icon:[512,512,[],"f282","M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z"]},faNapster:{prefix:"fab",iconName:"napster",icon:[496,512,[],"f3d2","M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"]},faSquareSnapchat:vx,faSnapchatSquare:gx,faGooglePlusG:{prefix:"fab",iconName:"google-plus-g",icon:[640,512,[],"f0d5","M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"]},faArtstation:{prefix:"fab",iconName:"artstation",icon:[512,512,[],"f77a","M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z"]},faMarkdown:{prefix:"fab",iconName:"markdown",icon:[640,512,[],"f60f","M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"]},faSourcetree:{prefix:"fab",iconName:"sourcetree",icon:[448,512,[],"f7d3","M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z"]},faGooglePlus:{prefix:"fab",iconName:"google-plus",icon:[512,512,[],"f2b3","M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z"]},faDiaspora:{prefix:"fab",iconName:"diaspora",icon:[512,512,[],"f791","M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z"]},faFoursquare:{prefix:"fab",iconName:"foursquare",icon:[368,512,[],"f180","M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"]},faStackOverflow:{prefix:"fab",iconName:"stack-overflow",icon:[384,512,[],"f16c","M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"]},faGithubAlt:{prefix:"fab",iconName:"github-alt",icon:[480,512,[],"f113","M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"]},faPhoenixSquadron:{prefix:"fab",iconName:"phoenix-squadron",icon:[512,512,[],"f511","M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z"]},faPagelines:{prefix:"fab",iconName:"pagelines",icon:[384,512,[],"f18c","M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"]},faAlgolia:{prefix:"fab",iconName:"algolia",icon:[512,512,[],"f36c","M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z"]},faRedRiver:{prefix:"fab",iconName:"red-river",icon:[448,512,[],"f3e3","M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"]},faCreativeCommonsSa:{prefix:"fab",iconName:"creative-commons-sa",icon:[496,512,[],"f4ef","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"]},faSafari:{prefix:"fab",iconName:"safari",icon:[512,512,[],"f267","M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z"]},faGoogle:{prefix:"fab",iconName:"google",icon:[488,512,[],"f1a0","M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"]},faSquareFontAwesomeStroke:zx,faFontAwesomeAlt:bx,faAtlassian:{prefix:"fab",iconName:"atlassian",icon:[512,512,[],"f77b","M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z"]},faLinkedinIn:{prefix:"fab",iconName:"linkedin-in",icon:[448,512,[],"f0e1","M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"]},faDigitalOcean:{prefix:"fab",iconName:"digital-ocean",icon:[512,512,[],"f391","M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z"]},faNimblr:{prefix:"fab",iconName:"nimblr",icon:[384,512,[],"f5a8","M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z"]},faChromecast:{prefix:"fab",iconName:"chromecast",icon:[512,512,[],"f838","M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z"]},faEvernote:{prefix:"fab",iconName:"evernote",icon:[384,512,[],"f839","M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z"]},faHackerNews:{prefix:"fab",iconName:"hacker-news",icon:[448,512,[],"f1d4","M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"]},faCreativeCommonsSampling:{prefix:"fab",iconName:"creative-commons-sampling",icon:[496,512,[],"f4f0","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"]},faAdversal:{prefix:"fab",iconName:"adversal",icon:[512,512,[],"f36a","M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"]},faCreativeCommons:{prefix:"fab",iconName:"creative-commons",icon:[496,512,[],"f25e","M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"]},faWatchmanMonitoring:{prefix:"fab",iconName:"watchman-monitoring",icon:[512,512,[],"e087","M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z"]},faFonticons:{prefix:"fab",iconName:"fonticons",icon:[448,512,[],"f280","M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z"]},faWeixin:{prefix:"fab",iconName:"weixin",icon:[576,512,[],"f1d7","M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"]},faShirtsinbulk:{prefix:"fab",iconName:"shirtsinbulk",icon:[448,512,[],"f214","M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z"]},faCodepen:{prefix:"fab",iconName:"codepen",icon:[512,512,[],"f1cb","M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"]},faGitAlt:{prefix:"fab",iconName:"git-alt",icon:[448,512,[],"f841","M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"]},faLyft:{prefix:"fab",iconName:"lyft",icon:[512,512,[],"f3c3","M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"]},faRev:{prefix:"fab",iconName:"rev",icon:[448,512,[],"f5b2","M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z"]},faWindows:{prefix:"fab",iconName:"windows",icon:[448,512,[],"f17a","M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"]},faWizardsOfTheCoast:{prefix:"fab",iconName:"wizards-of-the-coast",icon:[640,512,[],"f730","M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"]},faSquareViadeo:Cx,faViadeoSquare:Mx,faMeetup:{prefix:"fab",iconName:"meetup",icon:[512,512,[],"f2e0","M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"]},faCentos:{prefix:"fab",iconName:"centos",icon:[448,512,[],"f789","M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z"]},faAdn:{prefix:"fab",iconName:"adn",icon:[496,512,[],"f170","M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"]},faCloudsmith:{prefix:"fab",iconName:"cloudsmith",icon:[332,512,[],"f384","M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"]},faPiedPiperAlt:{prefix:"fab",iconName:"pied-piper-alt",icon:[576,512,[],"f1a8","M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z"]},faSquareDribbble:Hx,faDribbbleSquare:Vx,faCodiepie:{prefix:"fab",iconName:"codiepie",icon:[472,512,[],"f284","M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"]},faNode:{prefix:"fab",iconName:"node",icon:[640,512,[],"f419","M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"]},faMix:{prefix:"fab",iconName:"mix",icon:[448,512,[],"f3cb","M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"]},faSteam:{prefix:"fab",iconName:"steam",icon:[496,512,[],"f1b6","M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"]},faCcApplePay:{prefix:"fab",iconName:"cc-apple-pay",icon:[576,512,[],"f416","M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"]},faScribd:{prefix:"fab",iconName:"scribd",icon:[384,512,[],"f28a","M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"]},faOpenid:{prefix:"fab",iconName:"openid",icon:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"]},faInstalod:{prefix:"fab",iconName:"instalod",icon:[512,512,[],"e081","M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z"]},faExpeditedssl:{prefix:"fab",iconName:"expeditedssl",icon:[496,512,[],"f23e","M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"]},faSellcast:{prefix:"fab",iconName:"sellcast",icon:[448,512,[],"f2da","M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"]},faSquareTwitter:yx,faTwitterSquare:Lx,faRProject:{prefix:"fab",iconName:"r-project",icon:[581,512,[],"f4f7","M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"]},faDelicious:{prefix:"fab",iconName:"delicious",icon:[448,512,[],"f1a5","M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z"]},faFreebsd:{prefix:"fab",iconName:"freebsd",icon:[448,512,[],"f3a4","M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"]},faVuejs:{prefix:"fab",iconName:"vuejs",icon:[448,512,[],"f41f","M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"]},faAccusoft:{prefix:"fab",iconName:"accusoft",icon:[640,512,[],"f369","M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"]},faIoxhost:{prefix:"fab",iconName:"ioxhost",icon:[640,512,[],"f208","M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"]},faFonticonsFi:{prefix:"fab",iconName:"fonticons-fi",icon:[384,512,[],"f3a2","M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"]},faAppStore:{prefix:"fab",iconName:"app-store",icon:[512,512,[],"f36f","M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"]},faCcMastercard:{prefix:"fab",iconName:"cc-mastercard",icon:[576,512,[],"f1f1","M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"]},faItunesNote:{prefix:"fab",iconName:"itunes-note",icon:[384,512,[],"f3b5","M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"]},faGolang:{prefix:"fab",iconName:"golang",icon:[640,512,[],"e40f","M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z"]},faKickstarter:{prefix:"fab",iconName:"kickstarter",icon:[448,512,[],"f3bb","M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"]},faGrav:{prefix:"fab",iconName:"grav",icon:[512,512,[],"f2d6","M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"]},faWeibo:{prefix:"fab",iconName:"weibo",icon:[512,512,[],"f18a","M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"]},faUncharted:{prefix:"fab",iconName:"uncharted",icon:[448,512,[],"e084","M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z"]},faFirstdraft:{prefix:"fab",iconName:"firstdraft",icon:[384,512,[],"f3a1","M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"]},faSquareYoutube:Sx,faYoutubeSquare:xx,faWikipediaW:{prefix:"fab",iconName:"wikipedia-w",icon:[640,512,[],"f266","M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"]},faWpressr:Px,faRendact:wx,faAngellist:{prefix:"fab",iconName:"angellist",icon:[448,512,[],"f209","M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"]},faGalacticRepublic:{prefix:"fab",iconName:"galactic-republic",icon:[496,512,[],"f50c","M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"]},faNfcDirectional:{prefix:"fab",iconName:"nfc-directional",icon:[512,512,[],"e530","M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z"]},faSkype:{prefix:"fab",iconName:"skype",icon:[448,512,[],"f17e","M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"]},faJoget:{prefix:"fab",iconName:"joget",icon:[496,512,[],"f3b7","M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z"]},faFedora:{prefix:"fab",iconName:"fedora",icon:[448,512,[],"f798","M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z"]},faStripeS:{prefix:"fab",iconName:"stripe-s",icon:[384,512,[],"f42a","M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z"]},faMeta:{prefix:"fab",iconName:"meta",icon:[640,512,[],"e49b","M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z"]},faLaravel:{prefix:"fab",iconName:"laravel",icon:[512,512,[],"f3bd","M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z"]},faHotjar:{prefix:"fab",iconName:"hotjar",icon:[448,512,[],"f3b1","M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"]},faBluetoothB:{prefix:"fab",iconName:"bluetooth-b",icon:[320,512,[],"f294","M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"]},faStickerMule:{prefix:"fab",iconName:"sticker-mule",icon:[576,512,[],"f3f7","M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z"]},faCreativeCommonsZero:{prefix:"fab",iconName:"creative-commons-zero",icon:[496,512,[],"f4f3","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"]},faHips:{prefix:"fab",iconName:"hips",icon:[640,512,[],"f452","M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z"]},faBehance:{prefix:"fab",iconName:"behance",icon:[576,512,[],"f1b4","M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"]},faReddit:{prefix:"fab",iconName:"reddit",icon:[512,512,[],"f1a1","M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"]},faDiscord:{prefix:"fab",iconName:"discord",icon:[640,512,[],"f392","M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"]},faChrome:{prefix:"fab",iconName:"chrome",icon:[512,512,[],"f268","M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"]},faAppStoreIos:{prefix:"fab",iconName:"app-store-ios",icon:[448,512,[],"f370","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"]},faCcDiscover:{prefix:"fab",iconName:"cc-discover",icon:[576,512,[],"f1f2","M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z"]},faWpbeginner:{prefix:"fab",iconName:"wpbeginner",icon:[512,512,[],"f297","M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"]},faConfluence:{prefix:"fab",iconName:"confluence",icon:[512,512,[],"f78d","M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z"]},faMdb:{prefix:"fab",iconName:"mdb",icon:[576,512,[],"f8ca","M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z"]},faDochub:{prefix:"fab",iconName:"dochub",icon:[416,512,[],"f394","M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"]},faAccessibleIcon:{prefix:"fab",iconName:"accessible-icon",icon:[448,512,[62107],"f368","M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"]},faEbay:{prefix:"fab",iconName:"ebay",icon:[640,512,[],"f4f4","M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z"]},faAmazon:{prefix:"fab",iconName:"amazon",icon:[448,512,[],"f270","M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"]},faUnsplash:{prefix:"fab",iconName:"unsplash",icon:[448,512,[],"e07c","M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z"]},faYarn:{prefix:"fab",iconName:"yarn",icon:[496,512,[],"f7e3","M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z"]},faSquareSteam:kx,faSteamSquare:Ax,fa500px:{prefix:"fab",iconName:"500px",icon:[448,512,[],"f26e","M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"]},faSquareVimeo:Ex,faVimeoSquare:Nx,faAsymmetrik:{prefix:"fab",iconName:"asymmetrik",icon:[576,512,[],"f372","M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"]},faFontAwesome:Tx,faFontAwesomeFlag:Dx,faFontAwesomeLogoFull:Rx,faGratipay:{prefix:"fab",iconName:"gratipay",icon:[496,512,[],"f184","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"]},faApple:{prefix:"fab",iconName:"apple",icon:[384,512,[],"f179","M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"]},faHive:{prefix:"fab",iconName:"hive",icon:[512,512,[],"e07f","M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z"]},faGitkraken:{prefix:"fab",iconName:"gitkraken",icon:[592,512,[],"f3a6","M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"]},faKeybase:{prefix:"fab",iconName:"keybase",icon:[448,512,[],"f4f5","M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"]},faApplePay:{prefix:"fab",iconName:"apple-pay",icon:[640,512,[],"f415","M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"]},faPadlet:{prefix:"fab",iconName:"padlet",icon:[640,512,[],"e4a0","M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z"]},faAmazonPay:{prefix:"fab",iconName:"amazon-pay",icon:[640,512,[],"f42c","M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"]},faSquareGithub:_x,faGithubSquare:Ox,faStumbleupon:{prefix:"fab",iconName:"stumbleupon",icon:[512,512,[],"f1a4","M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"]},faFedex:{prefix:"fab",iconName:"fedex",icon:[640,512,[],"f797","M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z"]},faPhoenixFramework:{prefix:"fab",iconName:"phoenix-framework",icon:[640,512,[],"f3dc","M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"]},faShopify:{prefix:"fab",iconName:"shopify",icon:[448,512,[],"e057","M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z"]},faNeos:{prefix:"fab",iconName:"neos",icon:[512,512,[],"f612","M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z"]},faHackerrank:{prefix:"fab",iconName:"hackerrank",icon:[512,512,[],"f5f7","M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"]},faResearchgate:{prefix:"fab",iconName:"researchgate",icon:[448,512,[],"f4f8","M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"]},faSwift:{prefix:"fab",iconName:"swift",icon:[448,512,[],"f8e1","M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z"]},faAngular:{prefix:"fab",iconName:"angular",icon:[448,512,[],"f420","M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z"]},faSpeakap:{prefix:"fab",iconName:"speakap",icon:[448,512,[],"f3f3","M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"]},faAngrycreative:{prefix:"fab",iconName:"angrycreative",icon:[640,512,[],"f36e","M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"]},faYCombinator:{prefix:"fab",iconName:"y-combinator",icon:[448,512,[],"f23b","M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"]},faEmpire:{prefix:"fab",iconName:"empire",icon:[496,512,[],"f1d1","M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"]},faEnvira:{prefix:"fab",iconName:"envira",icon:[448,512,[],"f299","M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"]},faSquareGitlab:Ix,faGitlabSquare:jx,faStudiovinari:{prefix:"fab",iconName:"studiovinari",icon:[512,512,[],"f3f8","M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"]},faPiedPiper:{prefix:"fab",iconName:"pied-piper",icon:[480,512,[],"f2ae","M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z"]},faWordpress:{prefix:"fab",iconName:"wordpress",icon:[512,512,[],"f19a","M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"]},faProductHunt:{prefix:"fab",iconName:"product-hunt",icon:[512,512,[],"f288","M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"]},faFirefox:{prefix:"fab",iconName:"firefox",icon:[512,512,[],"f269","M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z"]},faLinode:{prefix:"fab",iconName:"linode",icon:[448,512,[],"f2b8","M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z"]},faGoodreads:{prefix:"fab",iconName:"goodreads",icon:[448,512,[],"f3a8","M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"]},faSquareOdnoklassniki:Fx,faOdnoklassnikiSquare:Bx,faJsfiddle:{prefix:"fab",iconName:"jsfiddle",icon:[576,512,[],"f1cc","M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"]},faSith:{prefix:"fab",iconName:"sith",icon:[448,512,[],"f512","M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"]},faThemeisle:{prefix:"fab",iconName:"themeisle",icon:[512,512,[],"f2b2","M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"]},faPage4:{prefix:"fab",iconName:"page4",icon:[496,512,[],"f3d7","M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"]},faHashnode:{prefix:"fab",iconName:"hashnode",icon:[512,512,[],"e499","M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z"]},faReact:{prefix:"fab",iconName:"react",icon:[512,512,[],"f41b","M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z"]},faCcPaypal:{prefix:"fab",iconName:"cc-paypal",icon:[576,512,[],"f1f4","M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"]},faSquarespace:{prefix:"fab",iconName:"squarespace",icon:[512,512,[],"f5be","M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"]},faCcStripe:{prefix:"fab",iconName:"cc-stripe",icon:[576,512,[],"f1f5","M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z"]},faCreativeCommonsShare:{prefix:"fab",iconName:"creative-commons-share",icon:[496,512,[],"f4f2","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"]},faBitcoin:{prefix:"fab",iconName:"bitcoin",icon:[512,512,[],"f379","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"]},faKeycdn:{prefix:"fab",iconName:"keycdn",icon:[512,512,[],"f3ba","M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"]},faOpera:{prefix:"fab",iconName:"opera",icon:[496,512,[],"f26a","M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"]},faItchIo:{prefix:"fab",iconName:"itch-io",icon:[512,512,[],"f83a","M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z"]},faUmbraco:{prefix:"fab",iconName:"umbraco",icon:[510,512,[],"f8e8","M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z"]},faGalacticSenate:{prefix:"fab",iconName:"galactic-senate",icon:[512,512,[],"f50d","M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"]},faUbuntu:{prefix:"fab",iconName:"ubuntu",icon:[496,512,[],"f7df","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z"]},faDraft2digital:{prefix:"fab",iconName:"draft2digital",icon:[480,512,[],"f396","M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z"]},faStripe:{prefix:"fab",iconName:"stripe",icon:[640,512,[],"f429","M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z"]},faHouzz:{prefix:"fab",iconName:"houzz",icon:[448,512,[],"f27c","M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z"]},faGg:{prefix:"fab",iconName:"gg",icon:[512,512,[],"f260","M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"]},faDhl:{prefix:"fab",iconName:"dhl",icon:[640,512,[],"f790","M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z"]},faSquarePinterest:$x,faPinterestSquare:qx,faXing:{prefix:"fab",iconName:"xing",icon:[384,512,[],"f168","M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"]},faBlackberry:{prefix:"fab",iconName:"blackberry",icon:[512,512,[],"f37b","M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"]},faCreativeCommonsPd:{prefix:"fab",iconName:"creative-commons-pd",icon:[496,512,[],"f4ec","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"]},faPlaystation:{prefix:"fab",iconName:"playstation",icon:[576,512,[],"f3df","M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"]},faQuinscape:{prefix:"fab",iconName:"quinscape",icon:[512,512,[],"f459","M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z"]},faLess:{prefix:"fab",iconName:"less",icon:[640,512,[],"f41d","M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"]},faBloggerB:{prefix:"fab",iconName:"blogger-b",icon:[448,512,[],"f37d","M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"]},faOpencart:{prefix:"fab",iconName:"opencart",icon:[640,512,[],"f23d","M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"]},faVine:{prefix:"fab",iconName:"vine",icon:[384,512,[],"f1ca","M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"]},faPaypal:{prefix:"fab",iconName:"paypal",icon:[384,512,[],"f1ed","M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"]},faGitlab:{prefix:"fab",iconName:"gitlab",icon:[512,512,[],"f296","M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z"]},faTypo3:{prefix:"fab",iconName:"typo3",icon:[448,512,[],"f42b","M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z"]},faRedditAlien:{prefix:"fab",iconName:"reddit-alien",icon:[512,512,[],"f281","M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"]},faYahoo:{prefix:"fab",iconName:"yahoo",icon:[512,512,[],"f19e","M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z"]},faDailymotion:{prefix:"fab",iconName:"dailymotion",icon:[448,512,[],"e052","M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z"]},faAffiliatetheme:{prefix:"fab",iconName:"affiliatetheme",icon:[512,512,[],"f36b","M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"]},faPiedPiperPp:{prefix:"fab",iconName:"pied-piper-pp",icon:[448,512,[],"f1a7","M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"]},faBootstrap:{prefix:"fab",iconName:"bootstrap",icon:[576,512,[],"f836","M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z"]},faOdnoklassniki:{prefix:"fab",iconName:"odnoklassniki",icon:[320,512,[],"f263","M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"]},faNfcSymbol:{prefix:"fab",iconName:"nfc-symbol",icon:[576,512,[],"e531","M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z"]},faEthereum:{prefix:"fab",iconName:"ethereum",icon:[320,512,[],"f42e","M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"]},faSpeakerDeck:{prefix:"fab",iconName:"speaker-deck",icon:[512,512,[],"f83c","M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z"]},faCreativeCommonsNcEu:{prefix:"fab",iconName:"creative-commons-nc-eu",icon:[496,512,[],"f4e9","M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"]},faPatreon:{prefix:"fab",iconName:"patreon",icon:[512,512,[],"f3d9","M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"]},faAvianex:{prefix:"fab",iconName:"avianex",icon:[512,512,[],"f374","M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"]},faEllo:{prefix:"fab",iconName:"ello",icon:[496,512,[],"f5f1","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"]},faGofore:{prefix:"fab",iconName:"gofore",icon:[400,512,[],"f3a7","M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"]},faBimobject:{prefix:"fab",iconName:"bimobject",icon:[448,512,[],"f378","M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"]},faFacebookF:{prefix:"fab",iconName:"facebook-f",icon:[320,512,[],"f39e","M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"]},faSquareGooglePlus:Gx,faGooglePlusSquare:Wx,faMandalorian:{prefix:"fab",iconName:"mandalorian",icon:[448,512,[],"f50f","M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z"]},faFirstOrderAlt:{prefix:"fab",iconName:"first-order-alt",icon:[496,512,[],"f50a","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"]},faOsi:{prefix:"fab",iconName:"osi",icon:[512,512,[],"f41a","M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z"]},faGoogleWallet:{prefix:"fab",iconName:"google-wallet",icon:[448,512,[],"f1ee","M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"]},faDAndDBeyond:{prefix:"fab",iconName:"d-and-d-beyond",icon:[640,512,[],"f6ca","M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z"]},faPeriscope:{prefix:"fab",iconName:"periscope",icon:[448,512,[],"f3da","M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"]},faFulcrum:{prefix:"fab",iconName:"fulcrum",icon:[320,512,[],"f50b","M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z"]},faCloudscale:{prefix:"fab",iconName:"cloudscale",icon:[448,512,[],"f383","M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"]},faForumbee:{prefix:"fab",iconName:"forumbee",icon:[448,512,[],"f211","M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"]},faMizuni:{prefix:"fab",iconName:"mizuni",icon:[496,512,[],"f3cc","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"]},faSchlix:{prefix:"fab",iconName:"schlix",icon:[448,512,[],"f3ea","M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"]},faSquareXing:Ux,faXingSquare:Kx,faBandcamp:{prefix:"fab",iconName:"bandcamp",icon:[512,512,[],"f2d5","M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z"]},faWpforms:{prefix:"fab",iconName:"wpforms",icon:[448,512,[],"f298","M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"]},faCloudversify:{prefix:"fab",iconName:"cloudversify",icon:[616,512,[],"f385","M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"]},faUsps:{prefix:"fab",iconName:"usps",icon:[576,512,[],"f7e1","M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z"]},faMegaport:{prefix:"fab",iconName:"megaport",icon:[496,512,[],"f5a3","M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z"]},faMagento:{prefix:"fab",iconName:"magento",icon:[448,512,[],"f3c4","M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"]},faSpotify:{prefix:"fab",iconName:"spotify",icon:[496,512,[],"f1bc","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"]},faOptinMonster:{prefix:"fab",iconName:"optin-monster",icon:[576,512,[],"f23c","M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z"]},faFly:{prefix:"fab",iconName:"fly",icon:[384,512,[],"f417","M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"]},faAviato:{prefix:"fab",iconName:"aviato",icon:[640,512,[],"f421","M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"]},faItunes:{prefix:"fab",iconName:"itunes",icon:[448,512,[],"f3b4","M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"]},faCuttlefish:{prefix:"fab",iconName:"cuttlefish",icon:[440,512,[],"f38c","M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"]},faBlogger:{prefix:"fab",iconName:"blogger",icon:[448,512,[],"f37c","M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"]},faFlickr:{prefix:"fab",iconName:"flickr",icon:[448,512,[],"f16e","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"]},faViber:{prefix:"fab",iconName:"viber",icon:[512,512,[],"f409","M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"]},faSoundcloud:{prefix:"fab",iconName:"soundcloud",icon:[640,512,[],"f1be","M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"]},faDigg:{prefix:"fab",iconName:"digg",icon:[512,512,[],"f1a6","M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"]},faTencentWeibo:{prefix:"fab",iconName:"tencent-weibo",icon:[384,512,[],"f1d5","M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"]},faSymfony:{prefix:"fab",iconName:"symfony",icon:[512,512,[],"f83d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z"]},faMaxcdn:{prefix:"fab",iconName:"maxcdn",icon:[512,512,[],"f136","M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"]},faEtsy:{prefix:"fab",iconName:"etsy",icon:[384,512,[],"f2d7","M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"]},faFacebookMessenger:{prefix:"fab",iconName:"facebook-messenger",icon:[512,512,[],"f39f","M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z"]},faAudible:{prefix:"fab",iconName:"audible",icon:[640,512,[],"f373","M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"]},faThinkPeaks:{prefix:"fab",iconName:"think-peaks",icon:[576,512,[],"f731","M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z"]},faBilibili:{prefix:"fab",iconName:"bilibili",icon:[512,512,[],"e3d9","M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z"]},faErlang:{prefix:"fab",iconName:"erlang",icon:[640,512,[],"f39d","M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z"]},faCottonBureau:{prefix:"fab",iconName:"cotton-bureau",icon:[512,512,[],"f89e","M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z"]},faDashcube:{prefix:"fab",iconName:"dashcube",icon:[448,512,[],"f210","M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"]},fa42Group:Zx,faInnosoft:Zx,faStackExchange:{prefix:"fab",iconName:"stack-exchange",icon:[448,512,[],"f18d","M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"]},faElementor:{prefix:"fab",iconName:"elementor",icon:[512,512,[],"f430","M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z"]},faSquarePiedPiper:Yx,faPiedPiperSquare:Yx,faCreativeCommonsNd:{prefix:"fab",iconName:"creative-commons-nd",icon:[496,512,[],"f4eb","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"]},faPalfed:{prefix:"fab",iconName:"palfed",icon:[576,512,[],"f3d8","M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"]},faSuperpowers:{prefix:"fab",iconName:"superpowers",icon:[448,512,[],"f2dd","M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"]},faResolving:{prefix:"fab",iconName:"resolving",icon:[496,512,[],"f3e7","M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"]},faXbox:{prefix:"fab",iconName:"xbox",icon:[512,512,[],"f412","M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"]},faSearchengin:{prefix:"fab",iconName:"searchengin",icon:[460,512,[],"f3eb","M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"]},faTiktok:{prefix:"fab",iconName:"tiktok",icon:[448,512,[],"e07b","M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"]},faSquareFacebook:Xx,faFacebookSquare:Xx,faRenren:{prefix:"fab",iconName:"renren",icon:[512,512,[],"f18b","M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"]},faLinux:{prefix:"fab",iconName:"linux",icon:[448,512,[],"f17c","M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"]},faGlide:{prefix:"fab",iconName:"glide",icon:[448,512,[],"f2a5","M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"]},faLinkedin:{prefix:"fab",iconName:"linkedin",icon:[448,512,[],"f08c","M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"]},faHubspot:{prefix:"fab",iconName:"hubspot",icon:[512,512,[],"f3b2","M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"]},faDeploydog:{prefix:"fab",iconName:"deploydog",icon:[512,512,[],"f38e","M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"]},faTwitch:{prefix:"fab",iconName:"twitch",icon:[512,512,[],"f1e8","M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"]},faRavelry:{prefix:"fab",iconName:"ravelry",icon:[512,512,[],"f2d9","M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z"]},faMixer:{prefix:"fab",iconName:"mixer",icon:[512,512,[],"e056","M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z"]},faSquareLastfm:Jx,faLastfmSquare:Jx,faVimeo:{prefix:"fab",iconName:"vimeo",icon:[448,512,[],"f40a","M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"]},faMendeley:{prefix:"fab",iconName:"mendeley",icon:[640,512,[],"f7b3","M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z"]},faUniregistry:{prefix:"fab",iconName:"uniregistry",icon:[384,512,[],"f404","M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z"]},faFigma:{prefix:"fab",iconName:"figma",icon:[384,512,[],"f799","M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z"]},faCreativeCommonsRemix:{prefix:"fab",iconName:"creative-commons-remix",icon:[496,512,[],"f4ee","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"]},faCcAmazonPay:{prefix:"fab",iconName:"cc-amazon-pay",icon:[576,512,[],"f42d","M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"]},faDropbox:{prefix:"fab",iconName:"dropbox",icon:[528,512,[],"f16b","M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"]},faInstagram:{prefix:"fab",iconName:"instagram",icon:[448,512,[],"f16d","M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"]},faCmplid:{prefix:"fab",iconName:"cmplid",icon:[640,512,[],"e360","M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z"]},faFacebook:{prefix:"fab",iconName:"facebook",icon:[512,512,[62e3],"f09a","M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"]},faGripfire:{prefix:"fab",iconName:"gripfire",icon:[384,512,[],"f3ac","M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z"]},faJediOrder:{prefix:"fab",iconName:"jedi-order",icon:[448,512,[],"f50e","M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z"]},faUikit:{prefix:"fab",iconName:"uikit",icon:[448,512,[],"f403","M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"]},faFortAwesomeAlt:{prefix:"fab",iconName:"fort-awesome-alt",icon:[512,512,[],"f3a3","M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z"]},faPhabricator:{prefix:"fab",iconName:"phabricator",icon:[496,512,[],"f3db","M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"]},faUssunnah:{prefix:"fab",iconName:"ussunnah",icon:[482,512,[],"f407","M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z"]},faEarlybirds:{prefix:"fab",iconName:"earlybirds",icon:[480,512,[],"f39a","M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"]},faTradeFederation:{prefix:"fab",iconName:"trade-federation",icon:[496,512,[],"f513","M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z"]},faAutoprefixer:{prefix:"fab",iconName:"autoprefixer",icon:[640,512,[],"f41c","M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"]},faWhatsapp:{prefix:"fab",iconName:"whatsapp",icon:[448,512,[],"f232","M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"]},faSlideshare:{prefix:"fab",iconName:"slideshare",icon:[512,512,[],"f1e7","M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z"]},faGooglePlay:{prefix:"fab",iconName:"google-play",icon:[512,512,[],"f3ab","M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"]},faViadeo:{prefix:"fab",iconName:"viadeo",icon:[448,512,[],"f2a9","M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"]},faLine:{prefix:"fab",iconName:"line",icon:[512,512,[],"f3c0","M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z"]},faGoogleDrive:{prefix:"fab",iconName:"google-drive",icon:[512,512,[],"f3aa","M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"]},faServicestack:{prefix:"fab",iconName:"servicestack",icon:[496,512,[],"f3ec","M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"]},faSimplybuilt:{prefix:"fab",iconName:"simplybuilt",icon:[512,512,[],"f215","M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"]},faBitbucket:{prefix:"fab",iconName:"bitbucket",icon:[512,512,[61810],"f171","M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z"]},faImdb:{prefix:"fab",iconName:"imdb",icon:[448,512,[],"f2d8","M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z"]},faDeezer:{prefix:"fab",iconName:"deezer",icon:[576,512,[],"e077","M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z"]},faRaspberryPi:{prefix:"fab",iconName:"raspberry-pi",icon:[407,512,[],"f7bb","M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z"]},faJira:{prefix:"fab",iconName:"jira",icon:[496,512,[],"f7b1","M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z"]},faDocker:{prefix:"fab",iconName:"docker",icon:[640,512,[],"f395","M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"]},faScreenpal:{prefix:"fab",iconName:"screenpal",icon:[512,512,[],"e570","M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z"]},faBluetooth:{prefix:"fab",iconName:"bluetooth",icon:[448,512,[],"f293","M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"]},faGitter:{prefix:"fab",iconName:"gitter",icon:[384,512,[],"f426","M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"]},faDAndD:{prefix:"fab",iconName:"d-and-d",icon:[576,512,[],"f38d","M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"]},faMicroblog:{prefix:"fab",iconName:"microblog",icon:[448,512,[],"e01a","M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z"]},faCcDinersClub:{prefix:"fab",iconName:"cc-diners-club",icon:[576,512,[],"f24c","M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"]},faGgCircle:{prefix:"fab",iconName:"gg-circle",icon:[512,512,[],"f261","M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"]},faPiedPiperHat:{prefix:"fab",iconName:"pied-piper-hat",icon:[640,512,[],"f4e5","M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"]},faKickstarterK:{prefix:"fab",iconName:"kickstarter-k",icon:[384,512,[],"f3bc","M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"]},faYandex:{prefix:"fab",iconName:"yandex",icon:[256,512,[],"f413","M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"]},faReadme:{prefix:"fab",iconName:"readme",icon:[576,512,[],"f4d5","M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"]},faHtml5:{prefix:"fab",iconName:"html5",icon:[384,512,[],"f13b","M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"]},faSellsy:{prefix:"fab",iconName:"sellsy",icon:[640,512,[],"f213","M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"]},faSass:{prefix:"fab",iconName:"sass",icon:[640,512,[],"f41e","M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z"]},faWirsindhandwerk:Qx,faWsh:Qx,faBuromobelexperte:{prefix:"fab",iconName:"buromobelexperte",icon:[448,512,[],"f37f","M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"]},faSalesforce:{prefix:"fab",iconName:"salesforce",icon:[640,512,[],"f83b","M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z"]},faOctopusDeploy:{prefix:"fab",iconName:"octopus-deploy",icon:[512,512,[],"e082","M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z"]},faMedapps:{prefix:"fab",iconName:"medapps",icon:[320,512,[],"f3c6","M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"]},faNs8:{prefix:"fab",iconName:"ns8",icon:[640,512,[],"f3d5","M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z"]},faPinterestP:{prefix:"fab",iconName:"pinterest-p",icon:[384,512,[],"f231","M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"]},faApper:{prefix:"fab",iconName:"apper",icon:[640,512,[],"f371","M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"]},faFortAwesome:{prefix:"fab",iconName:"fort-awesome",icon:[512,512,[],"f286","M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"]},faWaze:{prefix:"fab",iconName:"waze",icon:[512,512,[],"f83f","M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z"]},faCcJcb:{prefix:"fab",iconName:"cc-jcb",icon:[576,512,[],"f24b","M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"]},faSnapchat:eP,faSnapchatGhost:eP,faFantasyFlightGames:{prefix:"fab",iconName:"fantasy-flight-games",icon:[512,512,[],"f6dc","M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"]},faRust:{prefix:"fab",iconName:"rust",icon:[512,512,[],"e07a","M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z"]},faWix:{prefix:"fab",iconName:"wix",icon:[640,512,[],"f5cf","M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"]},faSquareBehance:tP,faBehanceSquare:tP,faSupple:{prefix:"fab",iconName:"supple",icon:[640,512,[],"f3f9","M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"]},faRebel:{prefix:"fab",iconName:"rebel",icon:[512,512,[],"f1d0","M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"]},faCss3:{prefix:"fab",iconName:"css3",icon:[512,512,[],"f13c","M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"]},faStaylinked:{prefix:"fab",iconName:"staylinked",icon:[440,512,[],"f3f5","M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z"]},faKaggle:{prefix:"fab",iconName:"kaggle",icon:[320,512,[],"f5fa","M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z"]},faSpaceAwesome:{prefix:"fab",iconName:"space-awesome",icon:[512,512,[],"e5ac","M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z"]},faDeviantart:{prefix:"fab",iconName:"deviantart",icon:[320,512,[],"f1bd","M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"]},faCpanel:{prefix:"fab",iconName:"cpanel",icon:[640,512,[],"f388","M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z"]},faGoodreadsG:{prefix:"fab",iconName:"goodreads-g",icon:[384,512,[],"f3a9","M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"]},faSquareGit:cP,faGitSquare:cP,faSquareTumblr:aP,faTumblrSquare:aP,faTrello:{prefix:"fab",iconName:"trello",icon:[448,512,[],"f181","M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z"]},faCreativeCommonsNcJp:{prefix:"fab",iconName:"creative-commons-nc-jp",icon:[496,512,[],"f4ea","M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"]},faGetPocket:{prefix:"fab",iconName:"get-pocket",icon:[448,512,[],"f265","M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"]},faPerbyte:{prefix:"fab",iconName:"perbyte",icon:[448,512,[],"e083","M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z"]},faGrunt:{prefix:"fab",iconName:"grunt",icon:[384,512,[],"f3ad","M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z"]},faWeebly:{prefix:"fab",iconName:"weebly",icon:[512,512,[],"f5cc","M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"]},faConnectdevelop:{prefix:"fab",iconName:"connectdevelop",icon:[576,512,[],"f20e","M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"]},faLeanpub:{prefix:"fab",iconName:"leanpub",icon:[576,512,[],"f212","M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"]},faBlackTie:{prefix:"fab",iconName:"black-tie",icon:[448,512,[],"f27e","M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"]},faThemeco:{prefix:"fab",iconName:"themeco",icon:[448,512,[],"f5c6","M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z"]},faPython:{prefix:"fab",iconName:"python",icon:[448,512,[],"f3e2","M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"]},faAndroid:{prefix:"fab",iconName:"android",icon:[576,512,[],"f17b","M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"]},faBots:{prefix:"fab",iconName:"bots",icon:[640,512,[],"e340","M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z"]},faFreeCodeCamp:{prefix:"fab",iconName:"free-code-camp",icon:[576,512,[],"f2c5","M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z"]},faHornbill:{prefix:"fab",iconName:"hornbill",icon:[512,512,[],"f592","M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z"]},faJs:{prefix:"fab",iconName:"js",icon:[448,512,[],"f3b8","M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"]},faIdeal:{prefix:"fab",iconName:"ideal",icon:[576,512,[],"e013","M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z"]},faGit:{prefix:"fab",iconName:"git",icon:[512,512,[],"f1d3","M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z"]},faDev:{prefix:"fab",iconName:"dev",icon:[448,512,[],"f6cc","M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"]},faSketch:{prefix:"fab",iconName:"sketch",icon:[512,512,[],"f7c6","M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z"]},faYandexInternational:{prefix:"fab",iconName:"yandex-international",icon:[320,512,[],"f414","M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"]},faCcAmex:{prefix:"fab",iconName:"cc-amex",icon:[576,512,[],"f1f3","M48 480C21.49 480 0 458.5 0 432V80C0 53.49 21.49 32 48 32H528C554.5 32 576 53.49 576 80V82.43H500.5L483.5 130L466.6 82.43H369.4V145.6L341.3 82.43H262.7L181 267.1H246.8V430.9H450.5L482.4 395.8L514.3 430.9H576V432C576 458.5 554.5 480 528 480H48zM482.6 364L440.4 410.3H390.5L458 338.6L390.5 266.1H441.9L483.4 312.8L525.4 266.1H576L508 338.2L576 410.3H524.6L482.6 364zM576 296.9V380.2L536.7 338.3L576 296.9zM307.6 377.1H390.6V410.3H268.6V267.1H390.6V300.2H307.6V322.6H388.5V354.9H307.6V377.2V377.1zM537.3 145.7L500.4 246.3H466L429.2 146V246.3H390.5V103H451.7L483.6 192.3L515.8 103H576V246.3H537.3V145.7zM334.5 217.6H268.6L256.7 246.3H213.7L276.1 103H327.3L390.6 246.3H346.5L334.5 217.6zM301.5 138.5L282 185.4H320.9L301.5 138.5z"]},faUber:{prefix:"fab",iconName:"uber",icon:[448,512,[],"f402","M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"]},faGithub:{prefix:"fab",iconName:"github",icon:[496,512,[],"f09b","M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"]},faPhp:{prefix:"fab",iconName:"php",icon:[640,512,[],"f457","M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"]},faAlipay:{prefix:"fab",iconName:"alipay",icon:[448,512,[],"f642","M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"]},faYoutube:{prefix:"fab",iconName:"youtube",icon:[576,512,[61802],"f167","M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"]},faSkyatlas:{prefix:"fab",iconName:"skyatlas",icon:[640,512,[],"f216","M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"]},faFirefoxBrowser:{prefix:"fab",iconName:"firefox-browser",icon:[512,512,[],"e007","M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z"]},faReplyd:{prefix:"fab",iconName:"replyd",icon:[448,512,[],"f3e6","M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"]},faSuse:{prefix:"fab",iconName:"suse",icon:[640,512,[],"f7d6","M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z"]},faJenkins:{prefix:"fab",iconName:"jenkins",icon:[512,512,[],"f3b6","M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"]},faTwitter:{prefix:"fab",iconName:"twitter",icon:[512,512,[],"f099","M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"]},faRockrms:{prefix:"fab",iconName:"rockrms",icon:[496,512,[],"f3e9","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"]},faPinterest:{prefix:"fab",iconName:"pinterest",icon:[496,512,[],"f0d2","M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"]},faBuffer:{prefix:"fab",iconName:"buffer",icon:[448,512,[],"f837","M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z"]},faNpm:{prefix:"fab",iconName:"npm",icon:[576,512,[],"f3d4","M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"]},faYammer:{prefix:"fab",iconName:"yammer",icon:[512,512,[],"f840","M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z"]},faBtc:{prefix:"fab",iconName:"btc",icon:[384,512,[],"f15a","M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"]},faDribbble:{prefix:"fab",iconName:"dribbble",icon:[512,512,[],"f17d","M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"]},faStumbleuponCircle:{prefix:"fab",iconName:"stumbleupon-circle",icon:[496,512,[],"f1a3","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"]},faInternetExplorer:{prefix:"fab",iconName:"internet-explorer",icon:[512,512,[],"f26b","M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"]},faStubber:{prefix:"fab",iconName:"stubber",icon:[448,512,[],"e5c7","M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z"]},faTelegram:iP,faTelegramPlane:iP,faOldRepublic:{prefix:"fab",iconName:"old-republic",icon:[496,512,[],"f510","M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"]},faOdysee:{prefix:"fab",iconName:"odysee",icon:[512,512,[],"e5c6","M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z"]},faSquareWhatsapp:nP,faWhatsappSquare:nP,faNodeJs:{prefix:"fab",iconName:"node-js",icon:[448,512,[],"f3d3","M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"]},faEdgeLegacy:{prefix:"fab",iconName:"edge-legacy",icon:[512,512,[],"e078","M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z"]},faSlack:sP,faSlackHash:sP,faMedrt:{prefix:"fab",iconName:"medrt",icon:[544,512,[],"f3c8","M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"]},faUsb:{prefix:"fab",iconName:"usb",icon:[640,512,[],"f287","M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"]},faTumblr:{prefix:"fab",iconName:"tumblr",icon:[320,512,[],"f173","M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"]},faVaadin:{prefix:"fab",iconName:"vaadin",icon:[448,512,[],"f408","M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"]},faQuora:{prefix:"fab",iconName:"quora",icon:[448,512,[],"f2c4","M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"]},faReacteurope:{prefix:"fab",iconName:"reacteurope",icon:[576,512,[],"f75d","M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z"]},faMedium:rP,faMediumM:rP,faAmilia:{prefix:"fab",iconName:"amilia",icon:[448,512,[],"f36d","M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z"]},faMixcloud:{prefix:"fab",iconName:"mixcloud",icon:[640,512,[],"f289","M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z"]},faFlipboard:{prefix:"fab",iconName:"flipboard",icon:[448,512,[],"f44d","M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"]},faViacoin:{prefix:"fab",iconName:"viacoin",icon:[384,512,[],"f237","M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"]},faCriticalRole:{prefix:"fab",iconName:"critical-role",icon:[448,512,[],"f6c9","M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z"]},faSitrox:{prefix:"fab",iconName:"sitrox",icon:[448,512,[],"e44a","M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z"]},faDiscourse:{prefix:"fab",iconName:"discourse",icon:[448,512,[],"f393","M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"]},faJoomla:{prefix:"fab",iconName:"joomla",icon:[448,512,[],"f1aa","M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"]},faMastodon:{prefix:"fab",iconName:"mastodon",icon:[448,512,[],"f4f6","M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"]},faAirbnb:{prefix:"fab",iconName:"airbnb",icon:[448,512,[],"f834","M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z"]},faWolfPackBattalion:{prefix:"fab",iconName:"wolf-pack-battalion",icon:[512,512,[],"f514","M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z"]},faBuyNLarge:{prefix:"fab",iconName:"buy-n-large",icon:[576,512,[],"f8a6","M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z"]},faGulp:{prefix:"fab",iconName:"gulp",icon:[256,512,[],"f3ae","M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"]},faCreativeCommonsSamplingPlus:{prefix:"fab",iconName:"creative-commons-sampling-plus",icon:[496,512,[],"f4f1","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"]},faStrava:{prefix:"fab",iconName:"strava",icon:[384,512,[],"f428","M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"]},faEmber:{prefix:"fab",iconName:"ember",icon:[640,512,[],"f423","M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"]},faCanadianMapleLeaf:{prefix:"fab",iconName:"canadian-maple-leaf",icon:[512,512,[],"f785","M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z"]},faTeamspeak:{prefix:"fab",iconName:"teamspeak",icon:[576,512,[],"f4f9","M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z"]},faPushed:{prefix:"fab",iconName:"pushed",icon:[432,512,[],"f3e1","M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"]},faWordpressSimple:{prefix:"fab",iconName:"wordpress-simple",icon:[512,512,[],"f411","M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"]},faNutritionix:{prefix:"fab",iconName:"nutritionix",icon:[400,512,[],"f3d6","M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"]},faWodu:{prefix:"fab",iconName:"wodu",icon:[640,512,[],"e088","M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z"]},faGooglePay:{prefix:"fab",iconName:"google-pay",icon:[640,512,[],"e079","M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z"]},faIntercom:{prefix:"fab",iconName:"intercom",icon:[448,512,[],"f7af","M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z"]},faZhihu:{prefix:"fab",iconName:"zhihu",icon:[640,512,[],"f63f","M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"]},faKorvue:{prefix:"fab",iconName:"korvue",icon:[446,512,[],"f42f","M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"]},faPix:{prefix:"fab",iconName:"pix",icon:[512,512,[],"e43a","M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z"]},faSteamSymbol:{prefix:"fab",iconName:"steam-symbol",icon:[448,512,[],"f3f6","M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"]}};function lP(e,t){var c=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),c.push.apply(c,a)}return c}function uP(e){for(var t=1;t=0||(i[c]=e[c]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,c)&&(i[c]=e[c])}return i}function dP(e){return function(e){if(Array.isArray(e))return hP(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return hP(e,t);var c=Object.prototype.toString.call(e).slice(8,-1);"Object"===c&&e.constructor&&(c=e.constructor.name);if("Map"===c||"Set"===c)return Array.from(e);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return hP(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hP(e,t){(null==t||t>e.length)&&(t=e.length);for(var c=0,a=new Array(t);c2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(t.children||[]).map(VP.bind(null,e)),n=Object.keys(t.attributes||{}).reduce((function(e,c){var a=t.attributes[c];switch(c){case"class":e.class=MP(a);break;case"style":e.style=CP(a);break;default:e.attrs[c]=a}return e}),{class:{},style:{},attrs:{}}),s=a.class,r=void 0===s?{}:s,o=a.style,l=void 0===o?{}:o,u=a.attrs,p=void 0===u?{}:u,f=mP(a,bP);return"string"==typeof t?t:e(t.tag,uP(uP({class:HP(n.class,r),style:uP(uP({},n.style),l),attrs:uP(uP({},n.attrs),p)},f),{},{props:c}),i)}var yP=!1;try{yP=!0}catch(e){}function LP(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?fP({},e,t):{}}function SP(e){return e&&"object"===pP(e)&&e.prefix&&e.iconName&&e.icon?e:xi.icon?xi.icon(e):null===e?null:"object"===pP(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}var xP={name:"FontAwesomeIcon",functional:!0,props:{beat:{type:Boolean,default:!1},border:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(e){return[!0,!1,"horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1}},render:function(e,t){var c=t.props,a=c.icon,i=c.mask,n=c.symbol,s=c.title,r=SP(a),o=LP("classes",function(e){var t,c=(fP(t={"fa-spin":e.spin,"fa-spin-pulse":e.spinPulse,"fa-spin-reverse":e.spinReverse,"fa-pulse":e.pulse,"fa-beat":e.beat,"fa-fade":e.fade,"fa-flash":e.flash,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":!0===e.flip,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},"fa-".concat(e.size),null!==e.size),fP(t,"fa-rotate-".concat(e.rotation),null!==e.rotation),fP(t,"fa-pull-".concat(e.pull),null!==e.pull),fP(t,"fa-swap-opacity",e.swapOpacity),fP(t,"fa-bounce",e.bounce),fP(t,"fa-shake",e.shake),fP(t,"fa-beat-fade",e.beatFade),t);return Object.keys(c).map((function(e){return c[e]?e:null})).filter((function(e){return e}))}(c)),l=LP("transform","string"==typeof c.transform?xi.transform(c.transform):c.transform),u=LP("mask",SP(i)),p=Pi(r,uP(uP(uP(uP({},o),l),u),{},{symbol:n,title:s}));if(!p)return function(){var e;!yP&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find one or more icon(s)",r,u);var f=p.abstract;return VP.bind(null,e)(f[0],{},t.data)}},PP={name:"FontAwesomeLayers",functional:!0,props:{fixedWidth:{type:Boolean,default:!1}},render:function(e,t){var c,a,i=Li.familyPrefix,n=t.data.staticClass,s=["".concat(i,"-layers")].concat(dP(t.props.fixedWidth?["".concat(i,"-fw")]:[]));return e("div",uP(uP({},t.data),{},{staticClass:(c=n,a=s,(0===(c||"").length?[]:[c]).concat(a).join(" "))}),t.children)}},wP={name:"FontAwesomeLayersText",functional:!0,props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(e){return["bottom-left","bottom-right","top-left","top-right"].indexOf(e)>-1}}},render:function(e,t){var c=Li.familyPrefix,a=t.props,i=LP("classes",[].concat(dP(a.counter?["".concat(c,"-layers-counter")]:[]),dP(a.position?["".concat(c,"-layers-").concat(a.position)]:[]))),n=LP("transform","string"==typeof a.transform?xi.transform(a.transform):a.transform),s=wi(a.value.toString(),uP(uP({},n),i)).abstract;return a.counter&&(s[0].attributes.class=s[0].attributes.class.replace("fa-layers-text","")),VP.bind(null,e)(s[0],{},t.data)}};Si.add(rx,Zr,oP),a.default.component("font-awesome-icon",xP),a.default.component("font-awesome-layers",PP),a.default.component("font-awesome-layers-text",wP),a.default.config.productionTip=!1;var kP=c(109),AP=c.n(kP);c(256);a.default.use(AP.a);var EP=c(8);a.default.use(EP.a);const NP={dark:!1,settings:{component:"PageSettings",display:!1}},TP={host:{secure:"https://127.0.0.1:8083",default:"http://127.0.0.1:8081"}},DP={host:{default:"http://webacs.asterics.eu/"}},RP={host:{default:"https://grid.asterics.eu/#grid"}},_P=new EP.a.Store({state:{settings:{page:{...NP},are:{host:TP.host.default},webacs:{host:DP.host.default},grid:{host:RP.host.default}},search:{plugins:"",filter:""}},mutations:{load(e){localStorage&&(e.settings=Object.assign(e.settings,JSON.parse(localStorage.getItem("asterics-docs-settings")))||{...settingsDefaults},e.settings.page.settings.display=!1)},save(e){localStorage&&localStorage.setItem("asterics-docs-settings",JSON.stringify(e.settings))},toggleDarkMode(e){e.settings.page.dark=!e.settings.page.dark},showSettings(e){e.settings.page.settings.display=!0},hideSettings(e){e.settings.page.settings.display=!1},setSettingsView(e,t){e.settings.page.settings.component=t},updateARE(e,t){e.settings.are.host=t},updateWebACS(e,t){e.settings.webacs.host=t},updateGrid(e,t){e.settings.grid.host=t},updatePluginSearch(e,t){e.search.plugins=t},updatePluginFilter(e,t){e.search.filter=t}}});var OP=c(110),IP=c.n(OP),jP={name:"Close",methods:{onClose(e){this.$emit("click-close",e)}}},FP=(c(257),Object(Vt.a)(jP,(function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"settings-close"}},[t("font-awesome-icon",{attrs:{id:"toolbar-close-icon",icon:"times",tabindex:"0"},on:{click:e.onClose,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:(t.preventDefault(),e.onClose.apply(null,arguments))}}})],1)}),[],!1,null,"4140cd12",null).exports),BP={name:"Settings",components:{Close:FP},methods:{onClose(){this.$store.commit("hideSettings")}}},$P=(c(258),Object(Vt.a)(BP,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"settings-page"},[t("div",{staticClass:"toolbar"},[t("div",{staticClass:"title"},[e._t("title",(function(){return[e._v("Settings")]}))],2),e._v(" "),t("Close",{on:{"click-close":e.onClose}})],1),e._v(" "),t("div",{key:"setting-scroll",staticClass:"settings"},[e._t("default")],2)])}),[],!1,null,"dfb1e88e",null).exports),qP={name:"DarkMode",computed:{...Object(EP.b)(["settings"]),darkMode(){return this.settings.page.dark}},methods:{onClickOn(){this.$store.commit("toggleDarkMode"),this.$store.commit("save")},onClickOff(){this.$store.commit("toggleDarkMode"),this.$store.commit("save")}},watch:{darkMode(e){document&&e?document.documentElement.classList.add("dark-mode"):document.documentElement.classList.remove("dark-mode")}},created(){this.darkMode&&document.documentElement.classList.add("dark-mode")}},GP=(c(259),{name:"PageSettings",components:{Settings:$P,DarkMode:Object(Vt.a)(qP,(function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"dark-mode"}},[t("div",[t("span",[e._t("default",(function(){return[e._v("Dark Mode")]}))],2)]),e._v(" "),t("div",{attrs:{id:"dark-mode-buttons"}},[t("button",{attrs:{disabled:!e.darkMode,id:"dark-mode-off"},on:{click:e.onClickOff}},[e._v("Light")]),e._v(" "),t("button",{attrs:{disabled:e.darkMode,id:"dark-mode-on"},on:{click:e.onClickOn}},[e._v("Dark")])])])}),[],!1,null,"000b9ec2",null).exports}}),WP=Object(Vt.a)(GP,(function(){var e=this._self._c;return e("Settings",[e("span",{staticClass:"settings-title",attrs:{slot:"title"},slot:"title"},[this._v("Page Settings")]),this._v(" "),e("DarkMode",[this._v("Theme")])],1)}),[],!1,null,"28165873",null).exports,UP={name:"URL",props:{value:{type:String,default:""}},methods:{onSubmit(){},onInput(e){this.$emit("input-url",e.target.value)},onRestore(){this.$emit("restore-url")}}},KP=(c(260),{name:"SolutionsSettings",components:{Settings:$P,URL:Object(Vt.a)(UP,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"url"},[t("div",{staticClass:"title"},[e._t("default",(function(){return[e._v("URL")]}))],2),e._v(" "),t("div",[t("form",{staticClass:"input",on:{submit:function(t){return t.preventDefault(),e.onSubmit.apply(null,arguments)}}},[t("input",{attrs:{type:"text","aria-label":"Change URL",autocomplete:"off",spellcheck:"false"},domProps:{value:e.value},on:{input:function(t){return e.onInput(t)}}}),e._v(" "),t("div",{staticClass:"controls"},[t("font-awesome-icon",{attrs:{tabindex:"0",icon:"undo"},on:{click:e.onRestore,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:(t.preventDefault(),e.onRestore.apply(null,arguments))}}})],1)])])])}),[],!1,null,"3fbaee58",null).exports},computed:Object(EP.b)(["settings"]),methods:{onInputARE(e){this.$store.commit("updateARE",e),this.$store.commit("save")},onInputWebACS(e){this.$store.commit("updateWebACS",e),this.$store.commit("save")},onInputGrid(e){this.$store.commit("updateGrid",e),this.$store.commit("save")},onRestoreARE(){this.$store.commit("updateARE",TP.host.default),this.$store.commit("save")},onRestoreWebACS(){this.$store.commit("updateWebACS",DP.host.default),this.$store.commit("save")},onRestoreGrid(){this.$store.commit("updateGrid",RP.host.default),this.$store.commit("save")}}}),ZP={name:"SettingsView",components:{PageSettings:WP,SolutionSettings:Object(Vt.a)(KP,(function(){var e=this,t=e._self._c;return t("Settings",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("Solution Settings")]),e._v(" "),t("URL",{attrs:{value:e.settings.are.host},on:{"input-url":e.onInputARE,"restore-url":e.onRestoreARE}},[e._v("AsTeRICS Runtime Environment")]),e._v(" "),t("URL",{attrs:{value:e.settings.webacs.host},on:{"input-url":e.onInputWebACS,"restore-url":e.onRestoreWebACS}},[e._v("WebACS")]),e._v(" "),t("URL",{attrs:{value:e.settings.grid.host},on:{"input-url":e.onInputGrid,"restore-url":e.onRestoreGrid}},[e._v("AsTeRICS Grid")])],1)}),[],!1,null,"c57b1654",null).exports},data:()=>({browser:"default"}),computed:{...Object(EP.b)(["settings"]),display(){return this.settings.page.settings.display},view(){return this.settings.page.settings.component}},methods:{isAREConfigured(){if(!localStorage)return!1;const e=JSON.parse(localStorage.getItem("asterics-docs-settings"));return!(!e||void 0===e.are.host)},isSecureConnection(){return!(!this.isAREConfigured()&&"Firefox"===this.browser)}},created(){this.$store.commit("load")},mounted(){this.isSecureConnection()||(console.log(`Detected Firefox browser. Setting default ARE URL from ${this.settings.are.host} to ${TP.host.secure}.\nOpen the solution settings to configure the URL manually.`),this.$store.commit("updateARE",TP.host.secure))},beforeMount(){this.browser=IP.a.getParser(window.navigator.userAgent).getBrowserName()}},YP=(c(261),Object(Vt.a)(ZP,(function(){var e=this._self._c;return e("div",{directives:[{name:"show",rawName:"v-show",value:this.display,expression:"display"}],staticClass:"settings-view"},[e(this.view,{key:this.view,tag:"component"})],1)}),[],!1,null,null,null).exports),XP=c(15),JP={name:"Toast",components:{Close:FP},methods:{onClose(e){this.$emit("delete-toast")}}},QP=(c(262),Object(Vt.a)(JP,(function(){var e=this,t=e._self._c;return t("li",{staticClass:"toast"},[t("div",{staticClass:"toast-header"},[e._t("title",(function(){return[e._v("Message")]})),e._v(" "),t("Close",{on:{"click-close":e.onClose}})],2),e._v(" "),t("div",{staticClass:"toast-content"},[e._t("default",(function(){return[e._v("\n Toast\n ")]}))],2)])}),[],!1,null,"004f2b8f",null).exports),ew={name:"InternalServerError",components:{Toast:QP},props:{supportedOS:{type:String,default:""}},computed:{os(){return this.supportedOS.split(",")}}},tw=(c(263),Object(Vt.a)(ew,(function(){var e=this,t=e._self._c;return t("Toast",{on:{"delete-toast":function(t){return e.$emit("delete-toast")}}},[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("Internal Server Error")]),e._v(" "),t("div",{staticClass:"internal-server-error"},[e._v("\n Make sure to run the "),t("abbr",{attrs:{title:"AsTeRICS Runtime Environment"}},[e._v("ARE")]),e._v(" on a supported\n platform:\n "),e._l(e.os,(function(c,a){return t("span",{key:a},[e._v(e._s(`${c}${a===e.os.length-1?".":", "}`))])}))],2)])}),[],!1,null,"613826d5",null).exports),cw={name:"NetworkError",components:{Toast:QP},props:{host:{type:String,required:!0}},computed:{secure(){return this.host.startsWith("https://")}}},aw=(c(264),{name:"Toaster",components:{Toast:QP,InternalServerError:tw,NetworkError:Object(Vt.a)(cw,(function(){var e=this,t=e._self._c;return t("Toast",{on:{"delete-toast":function(t){return e.$emit("delete-toast")}}},[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("Network Error")]),e._v(" "),t("div",{staticClass:"network-error"},[e.secure?t("div",[e._v("\n Your browser cannot access the "),t("abbr",{attrs:{title:"AsTeRICS Runtime Environment"}},[e._v("ARE")]),e._v(" at\n "),t("a",{attrs:{href:e.host,rel:"noopener",target:"_blank"}},[e._v(e._s(e.host)+" "),t("OutboundLink")],1),e._v(". To grant\n access, execute following steps:\n "),t("ol",[t("li",[e._v("\n Open link "),t("a",{attrs:{href:e.host,rel:"noopener",target:"_blank"}},[e._v(e._s(e.host)+" "),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Add exception")])])]):t("div",[e._v("\n Your browser cannot access the "),t("abbr",{attrs:{title:"AsTeRICS Runtime Environment"}},[e._v("ARE")]),e._v(" at\n "),t("a",{attrs:{href:e.host,rel:"noopener",target:"_blank"}},[e._v(e._s(e.host)+" "),t("OutboundLink")],1),e._v(". Make sure it\n is running and available at the configured domain.\n ")])])])}),[],!1,null,"f7aa2bf6",null).exports},props:{items:{type:Array,default:()=>[]}},methods:{onDelete(e){this.$emit("delete-toast",e)}}}),iw=(c(265),{name:"ToastsView",components:{Toaster:Object(Vt.a)(aw,(function(){var e=this,t=e._self._c;return t("div",[t("transition-group",{attrs:{name:"list",tag:"ul",id:"toaster"}},e._l(e.items,(function(c,a){return t(c.component,e._b({key:c.key,tag:"Toast",staticClass:"list-item",on:{"delete-toast":function(t){return e.onDelete(a)}}},"Toast",c,!1))})),1)],1)}),[],!1,null,"40409937",null).exports},data:()=>({items:[]}),computed:{list(){return this.items.reverse()}},methods:{handleToasterPush(e){this.items.unshift({...e,key:Date.now()})},onDelete(e){e>=0&&e0?e("div",{attrs:{id:"toasts-view"}},[e("Toaster",{staticClass:"toaster",attrs:{items:this.items},on:{"delete-toast":this.onDelete}})],1):this._e()}),[],!1,null,"93e8c1e2",null).exports),sw={name:"SSRSettingsView"},rw=Object(Vt.a)(sw,(function(){return(0,this._self._c)("div")}),[],!1,null,"5eebb96a",null).exports,ow={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null,container:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),XP.a.$on("scroll-y",this.onScrollY)},beforeDestroy(){XP.a.$off("scroll-y",this.onScrollY)},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){this.container&&this.container.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0},onScrollY({ps:e,$refs:t}){this.scrollTop=e.scrollbarYTop,this.container=t.container}}},lw=(c(267),Object(Vt.a)(ow,(function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"fade"}},[e.show?t("svg",{staticClass:"go-to-top",attrs:{tabindex:"0",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:e.scrollToTop,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:e.scrollToTop.apply(null,arguments)}}},[t("g",{attrs:{transform:"translate(-229 -126.358)"}},[t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),e._v(" "),t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):e._e()])}),[],!1,null,"02efbe36",null).exports),uw={name:"SSRBackToTop"},pw=Object(Vt.a)(uw,(function(){return(0,this._self._c)("div")}),[],!1,null,"0876c064",null).exports,fw=async({Vue:e,options:t,router:c,siteData:a,isServer:i})=>{e.prototype.$store=_P,i?(e.component("BackToTop",pw),e.component("SettingsView",rw)):(e.component("SettingsView",YP),e.component("BackToTop",lw)),e.component("ToastsView",nw)};c(268);a.default.component("AstericsSWUpdatePopup",()=>Promise.all([c.e(0),c.e(48)]).then(c.bind(null,909))),a.default.component("ActionGroup",()=>Promise.all([c.e(0),c.e(50)]).then(c.bind(null,910))),a.default.component("Action",()=>Promise.all([c.e(0),c.e(49)]).then(c.bind(null,911))),a.default.component("Actions",()=>Promise.all([c.e(0),c.e(51)]).then(c.bind(null,912))),a.default.component("Funding",()=>Promise.all([c.e(0),c.e(52)]).then(c.bind(null,913))),a.default.component("Header",()=>Promise.all([c.e(0),c.e(53)]).then(c.bind(null,914))),a.default.component("Label",()=>c.e(285).then(c.bind(null,915))),a.default.component("Partner",()=>Promise.all([c.e(0),c.e(17)]).then(c.bind(null,916))),a.default.component("PluginsSearch",()=>Promise.all([c.e(0),c.e(8)]).then(c.bind(null,902))),a.default.component("Solution",()=>Promise.all([c.e(0),c.e(2),c.e(7)]).then(c.bind(null,903))),a.default.component("Solutions",()=>Promise.all([c.e(0),c.e(32)]).then(c.bind(null,917))),a.default.component("Subtitle",()=>Promise.all([c.e(0),c.e(54)]).then(c.bind(null,918))),a.default.component("UseCases",()=>c.e(286).then(c.bind(null,919))),a.default.component("UseCase",()=>Promise.all([c.e(0),c.e(2),c.e(33)]).then(c.bind(null,906))),a.default.component("Video",()=>Promise.all([c.e(0),c.e(9)]).then(c.bind(null,920))),a.default.component("Badge",()=>Promise.all([c.e(0),c.e(55)]).then(c.bind(null,1285))),a.default.component("CodeBlock",()=>Promise.all([c.e(0),c.e(56)]).then(c.bind(null,921))),a.default.component("CodeGroup",()=>Promise.all([c.e(0),c.e(57)]).then(c.bind(null,922)));c(269),c(270);function mw(e){const t=document.documentElement.getBoundingClientRect(),c=e.getBoundingClientRect();return{x:c.left-t.left,y:c.top-t.top}}var dw=c(105),hw=c(7),vw={name:"AutoSWUpdatePopup",components:{SWUpdatePopup:dw.a},data:()=>({updateTimer:0,cancel:!1,interval:0}),computed:{countDown(){return this.cancel?"":` (${this.updateTimer})`},showCancel(){return!Boolean(this.cancel)}},methods:{clickUpdate(){if("undefined"!=typeof window){window.document.getElementById("auto-sw-update-popup").click()}},clickCancel(){this.cancel=!0,"undefined"!=typeof window&&this.interval&&window.clearInterval(this.interval)}},created(){const e=this;hw.a.$on("sw-updated",(function(){"undefined"!=typeof window&&(e.updateTimer=3,e.interval=window.setInterval(()=>{e.updateTimer<=0&&(window.clearInterval(e.interval),e.clickUpdate()),e.updateTimer--},1e3))}))},beforeDestroy(){"undefined"!=typeof window&&this.interval&&window.clearInterval(this.interval)}},gw=Object(Vt.a)(vw,(function(){var e=this,t=e._self._c;return t("SWUpdatePopup",{scopedSlots:e._u([{key:"default",fn:function({enabled:c,reload:a,message:i,buttonText:n}){return[c?t("div",{staticClass:"sw-update-popup"},[e._v("\n "+e._s(i)+"\n "),t("br"),e._v(" "),t("button",{attrs:{id:"auto-sw-update-popup"},on:{click:a}},[e._v(e._s(n+e.countDown))]),e._v(" "),e.showCancel?t("button",{staticClass:"cancel",on:{click:e.clickCancel}},[e._v("Cancel")]):e._e()]):e._e()]}}])})}),[],!1,null,"10918b5a",null).exports;class zw{constructor(e){Object.defineProperty(this,"registration",{value:e,configurable:!0,writable:!0})}update(){return this.registration.update()}skipWaiting(){const e=this.registration.waiting;return e?(console.log("[vuepress:sw] Doing worker.skipWaiting()."),new Promise((t,c)=>{const a=new MessageChannel;a.port1.onmessage=e=>{console.log("[vuepress:sw] Done worker.skipWaiting()."),e.data.error?c(e.data.error):t(e.data)},e.postMessage({type:"skip-waiting"},[a.port2])})):Promise.resolve()}}var bw=[async({Vue:e,options:t,router:c,siteData:a,isServer:i})=>{0},fw,{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:e,router:t})=>{t.options.scrollBehavior=(t,c,a)=>{if(a)return window.scrollTo({top:a.y,behavior:"smooth"});if(t.hash){if(e.$vuepress.$get("disableScrollBehavior"))return!1;const c=document.querySelector(t.hash);return!!c&&window.scrollTo({top:mw(c).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},fw,({Vue:e})=>{e.component("AutoSWUpdatePopup",gw)},async({router:e,isServer:t})=>{if(!t){const{register:t}=await c.e(389).then(c.bind(null,900));e.onReady(()=>{t("/service-worker.js",{registrationOptions:{},ready(){console.log("[vuepress:sw] Service worker is active."),hw.a.$emit("sw-ready")},cached(e){console.log("[vuepress:sw] Content has been cached for offline use."),hw.a.$emit("sw-cached",new zw(e))},updated(e){console.log("[vuepress:sw] Content updated."),hw.a.$emit("sw-updated",new zw(e))},offline(){console.log("[vuepress:sw] No internet connection found. App is running in offline mode."),hw.a.$emit("sw-offline")},error(e){console.error("[vuepress:sw] Error during service worker registration:",e),hw.a.$emit("sw-error",e),GA_ID&&ga("send","exception",{exDescription:e.message,exFatal:!1})}})})}}],Cw=["SettingsView","BackToTop","ToastsView","AutoSWUpdatePopup","AutoSWUpdatePopup"];class Mw extends class{constructor(){this.store=new a.default({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){a.default.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(Mw.prototype,{getPageAsyncComponent:Ke.d,getLayoutAsyncComponent:Ke.c,getAsyncComponent:Ke.b,getVueComponent:Ke.e});var Hw={install(e){const t=new Mw;e.$vuepress=t,e.prototype.$vuepress=t}};function Vw(e,t){const c=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===c)}var yw={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return Object(Ke.h)("pageKey",t),a.default.component(t)||a.default.component(t,Object(Ke.d)(t)),a.default.component(t)?e(t):e("")}},Lw={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:c})=>e("div",{class:["content__"+t.slotKey]},c()[t.slotKey])},Sw={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},xw=(c(272),c(273),Object(Vt.a)(Sw,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Pw={functional:!0,render(e,{parent:t,children:c}){if(t._isMounted)return c;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};a.default.config.productionTip=!1,a.default.use(We),a.default.use(Hw),a.default.mixin(function(e,t,c=a.default){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),c.$vuepress.$set("siteData",t);const i=new(e(c.$vuepress.$get("siteData"))),n=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(i)),s={};return Object.keys(n).reduce((e,t)=>(t.startsWith("$")&&(e[t]=n[t].get),e),s),{computed:s}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,c;for(const a in e)"/"===a?c=e[a]:0===this.$page.path.indexOf(a)&&(t=e[a]);return t||c||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const c=this.$siteTitle,a=e.frontmatter.home?null:e.frontmatter.title||e.title;return c?a?a+" | "+c:c:a||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let c=0;cc||(e.hash?!a.default.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,c,a)=>{if(Vw(e,t.path))a();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const c=t.path.replace(/\/$/,"")+".html";Vw(e,c)?a(c):a()}else a();else{const c=t.path+"/",i=t.path+".html";Vw(e,i)?a(i):Vw(e,c)?a(c):a()}})}(c);const i={};try{await Promise.all(bw.filter(e=>"function"==typeof e).map(t=>t({Vue:a.default,options:i,router:c,siteData:St,isServer:e})))}catch(e){console.error(e)}return{app:new a.default(Object.assign(i,{router:c,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},Cw.map(t=>e(t)))])})),router:c}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})},function(e,t,c){"use strict";function a(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function i(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((function(c){void 0===e[c]?e[c]=t[c]:a(t[c])&&a(e[c])&&Object.keys(t[c]).length>0&&i(e[c],t[c])}))}c.r(t);var n="undefined"!=typeof document?document:{},s={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};i(n,s);var r="undefined"!=typeof window?window:{};i(r,{document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}}});class o{constructor(e){const t=this;for(let c=0;c=0&&r.indexOf(">")>=0){let e="div";for(0===r.indexOf(":~]/)?(t||n).querySelectorAll(e.trim()):[n.getElementById(e.trim().split("#")[1])],a=0;a0&&e[0].nodeType)for(a=0;a=0;e-=1){const c=s[e];a&&c.listener===a||a&&c.listener&&c.listener.dom7proxy&&c.listener.dom7proxy===a?(n.removeEventListener(t,c.proxyListener,i),s.splice(e,1)):a||(n.removeEventListener(t,c.proxyListener,i),s.splice(e,1))}}}return this},trigger:function(...e){const t=e[0].split(" "),c=e[1];for(let a=0;at>0),a.dispatchEvent(s),a.dom7EventData=[],delete a.dom7EventData}}return this},transitionEnd:function(e){const t=["webkitTransitionEnd","transitionend"],c=this;let a;function i(n){if(n.target===this)for(e.call(this,n),a=0;a0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},offset:function(){if(this.length>0){const e=this[0],t=e.getBoundingClientRect(),c=n.body,a=e.clientTop||c.clientTop||0,i=e.clientLeft||c.clientLeft||0,s=e===r?r.scrollY:e.scrollTop,o=e===r?r.scrollX:e.scrollLeft;return{top:t.top+s-a,left:t.left+o-i}}return null},css:function(e,t){let c;if(1===arguments.length){if("string"!=typeof e){for(c=0;ct-1?new o([]):e<0?(c=t+e,new o(c<0?[]:[this[c]])):new o([this[e]])},append:function(...e){let t;for(let c=0;c=0;c-=1)this[t].insertBefore(a.childNodes[c],this[t].childNodes[0])}else if(e instanceof o)for(c=0;c0?e?this[0].nextElementSibling&&l(this[0].nextElementSibling).is(e)?new o([this[0].nextElementSibling]):new o([]):this[0].nextElementSibling?new o([this[0].nextElementSibling]):new o([]):new o([])},nextAll:function(e){const t=[];let c=this[0];if(!c)return new o([]);for(;c.nextElementSibling;){const a=c.nextElementSibling;e?l(a).is(e)&&t.push(a):t.push(a),c=a}return new o(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&l(t.previousElementSibling).is(e)?new o([t.previousElementSibling]):new o([]):t.previousElementSibling?new o([t.previousElementSibling]):new o([])}return new o([])},prevAll:function(e){const t=[];let c=this[0];if(!c)return new o([]);for(;c.previousElementSibling;){const a=c.previousElementSibling;e?l(a).is(e)&&t.push(a):t.push(a),c=a}return new o(t)},parent:function(e){const t=[];for(let c=0;c{l.fn[e]=l.fn[e]||p[e]});const f={deleteProps(e){const t=e;Object.keys(t).forEach(e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})},nextTick:(e,t=0)=>setTimeout(e,t),now:()=>Date.now(),getTranslate(e,t="x"){let c,a,i;const n=r.getComputedStyle(e,null);return r.WebKitCSSMatrix?(a=n.transform||n.webkitTransform,a.split(",").length>6&&(a=a.split(", ").map(e=>e.replace(",",".")).join(", ")),i=new r.WebKitCSSMatrix("none"===a?"":a)):(i=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),c=i.toString().split(",")),"x"===t&&(a=r.WebKitCSSMatrix?i.m41:16===c.length?parseFloat(c[12]):parseFloat(c[4])),"y"===t&&(a=r.WebKitCSSMatrix?i.m42:16===c.length?parseFloat(c[13]):parseFloat(c[5])),a||0},parseUrlQuery(e){const t={};let c,a,i,n,s=e||r.location.href;if("string"==typeof s&&s.length)for(s=s.indexOf("?")>-1?s.replace(/\S*\?/,""):"",a=s.split("&").filter(e=>""!==e),n=a.length,c=0;c"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object,extend(...e){const t=Object(e[0]);for(let c=1;c=0,observer:"MutationObserver"in r||"WebkitMutationObserver"in r,passiveListener:function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get(){e=!0}});r.addEventListener("testPassiveListener",null,t)}catch(e){}return e}(),gestures:"ongesturestart"in r};class d{constructor(e={}){const t=this;t.params=e,t.eventsListeners={},t.params&&t.params.on&&Object.keys(t.params.on).forEach(e=>{t.on(e,t.params.on[e])})}on(e,t,c){const a=this;if("function"!=typeof t)return a;const i=c?"unshift":"push";return e.split(" ").forEach(e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)}),a}once(e,t,c){const a=this;if("function"!=typeof t)return a;function i(...c){a.off(e,i),i.f7proxy&&delete i.f7proxy,t.apply(a,c)}return i.f7proxy=t,a.on(e,i,c)}off(e,t){const c=this;return c.eventsListeners?(e.split(" ").forEach(e=>{void 0===t?c.eventsListeners[e]=[]:c.eventsListeners[e]&&c.eventsListeners[e].length&&c.eventsListeners[e].forEach((a,i)=>{(a===t||a.f7proxy&&a.f7proxy===t)&&c.eventsListeners[e].splice(i,1)})}),c):c}emit(...e){const t=this;if(!t.eventsListeners)return t;let c,a,i;"string"==typeof e[0]||Array.isArray(e[0])?(c=e[0],a=e.slice(1,e.length),i=t):(c=e[0].events,a=e[0].data,i=e[0].context||t);return(Array.isArray(c)?c:c.split(" ")).forEach(e=>{if(t.eventsListeners&&t.eventsListeners[e]){const c=[];t.eventsListeners[e].forEach(e=>{c.push(e)}),c.forEach(e=>{e.apply(i,a)})}}),t}useModulesParams(e){const t=this;t.modules&&Object.keys(t.modules).forEach(c=>{const a=t.modules[c];a.params&&f.extend(e,a.params)})}useModules(e={}){const t=this;t.modules&&Object.keys(t.modules).forEach(c=>{const a=t.modules[c],i=e[c]||{};a.instance&&Object.keys(a.instance).forEach(e=>{const c=a.instance[e];t[e]="function"==typeof c?c.bind(t):c}),a.on&&t.on&&Object.keys(a.on).forEach(e=>{t.on(e,a.on[e])}),a.create&&a.create.bind(t)(i)})}static set components(e){this.use&&this.use(e)}static installModule(e,...t){const c=this;c.prototype.modules||(c.prototype.modules={});const a=e.name||`${Object.keys(c.prototype.modules).length}_${f.now()}`;return c.prototype.modules[a]=e,e.proto&&Object.keys(e.proto).forEach(t=>{c.prototype[t]=e.proto[t]}),e.static&&Object.keys(e.static).forEach(t=>{c[t]=e.static[t]}),e.install&&e.install.apply(c,t),c}static use(e,...t){const c=this;return Array.isArray(e)?(e.forEach(e=>c.installModule(e)),c):c.installModule(e,...t)}}var h={updateSize:function(){const e=this;let t,c;const a=e.$el;t=void 0!==e.params.width?e.params.width:a[0].clientWidth,c=void 0!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===c&&e.isVertical()||(t=t-parseInt(a.css("padding-left"),10)-parseInt(a.css("padding-right"),10),c=c-parseInt(a.css("padding-top"),10)-parseInt(a.css("padding-bottom"),10),f.extend(e,{width:t,height:c,size:e.isHorizontal()?t:c}))},updateSlides:function(){const e=this,t=e.params,{$wrapperEl:c,size:a,rtlTranslate:i,wrongRTL:n}=e,s=e.virtual&&t.virtual.enabled,o=s?e.virtual.slides.length:e.slides.length,l=c.children("."+e.params.slideClass),u=s?e.virtual.slides.length:l.length;let p=[];const m=[],d=[];function h(e){return!t.cssMode||e!==l.length-1}let v=t.slidesOffsetBefore;"function"==typeof v&&(v=t.slidesOffsetBefore.call(e));let g=t.slidesOffsetAfter;"function"==typeof g&&(g=t.slidesOffsetAfter.call(e));const z=e.snapGrid.length,b=e.snapGrid.length;let C,M,H=t.spaceBetween,V=-v,y=0,L=0;if(void 0===a)return;"string"==typeof H&&H.indexOf("%")>=0&&(H=parseFloat(H.replace("%",""))/100*a),e.virtualSize=-H,i?l.css({marginLeft:"",marginTop:""}):l.css({marginRight:"",marginBottom:""}),t.slidesPerColumn>1&&(C=Math.floor(u/t.slidesPerColumn)===u/e.params.slidesPerColumn?u:Math.ceil(u/t.slidesPerColumn)*t.slidesPerColumn,"auto"!==t.slidesPerView&&"row"===t.slidesPerColumnFill&&(C=Math.max(C,t.slidesPerView*t.slidesPerColumn)));const S=t.slidesPerColumn,x=C/S,P=Math.floor(u/t.slidesPerColumn);for(let c=0;c1){let a,n,s;if("row"===t.slidesPerColumnFill&&t.slidesPerGroup>1){const e=Math.floor(c/(t.slidesPerGroup*t.slidesPerColumn)),r=c-t.slidesPerColumn*t.slidesPerGroup*e,o=0===e?t.slidesPerGroup:Math.min(Math.ceil((u-e*S*t.slidesPerGroup)/S),t.slidesPerGroup);s=Math.floor(r/o),n=r-s*o+e*t.slidesPerGroup,a=n+s*C/S,i.css({"-webkit-box-ordinal-group":a,"-moz-box-ordinal-group":a,"-ms-flex-order":a,"-webkit-order":a,order:a})}else"column"===t.slidesPerColumnFill?(n=Math.floor(c/S),s=c-n*S,(n>P||n===P&&s===S-1)&&(s+=1,s>=S&&(s=0,n+=1))):(s=Math.floor(c/x),n=c-s*x);i.css("margin-"+(e.isHorizontal()?"top":"left"),0!==s&&t.spaceBetween&&t.spaceBetween+"px")}if("none"!==i.css("display")){if("auto"===t.slidesPerView){const c=r.getComputedStyle(i[0],null),a=i[0].style.transform,n=i[0].style.webkitTransform;if(a&&(i[0].style.transform="none"),n&&(i[0].style.webkitTransform="none"),t.roundLengths)M=e.isHorizontal()?i.outerWidth(!0):i.outerHeight(!0);else if(e.isHorizontal()){const e=parseFloat(c.getPropertyValue("width")),t=parseFloat(c.getPropertyValue("padding-left")),a=parseFloat(c.getPropertyValue("padding-right")),i=parseFloat(c.getPropertyValue("margin-left")),n=parseFloat(c.getPropertyValue("margin-right")),s=c.getPropertyValue("box-sizing");M=s&&"border-box"===s?e+i+n:e+t+a+i+n}else{const e=parseFloat(c.getPropertyValue("height")),t=parseFloat(c.getPropertyValue("padding-top")),a=parseFloat(c.getPropertyValue("padding-bottom")),i=parseFloat(c.getPropertyValue("margin-top")),n=parseFloat(c.getPropertyValue("margin-bottom")),s=c.getPropertyValue("box-sizing");M=s&&"border-box"===s?e+i+n:e+t+a+i+n}a&&(i[0].style.transform=a),n&&(i[0].style.webkitTransform=n),t.roundLengths&&(M=Math.floor(M))}else M=(a-(t.slidesPerView-1)*H)/t.slidesPerView,t.roundLengths&&(M=Math.floor(M)),l[c]&&(e.isHorizontal()?l[c].style.width=M+"px":l[c].style.height=M+"px");l[c]&&(l[c].swiperSlideSize=M),d.push(M),t.centeredSlides?(V=V+M/2+y/2+H,0===y&&0!==c&&(V=V-a/2-H),0===c&&(V=V-a/2-H),Math.abs(V)<.001&&(V=0),t.roundLengths&&(V=Math.floor(V)),L%t.slidesPerGroup==0&&p.push(V),m.push(V)):(t.roundLengths&&(V=Math.floor(V)),(L-Math.min(e.params.slidesPerGroupSkip,L))%e.params.slidesPerGroup==0&&p.push(V),m.push(V),V=V+M+H),e.virtualSize+=M+H,y=M,L+=1}}let w;if(e.virtualSize=Math.max(e.virtualSize,a)+g,i&&n&&("slide"===t.effect||"coverflow"===t.effect)&&c.css({width:e.virtualSize+t.spaceBetween+"px"}),t.setWrapperSize&&(e.isHorizontal()?c.css({width:e.virtualSize+t.spaceBetween+"px"}):c.css({height:e.virtualSize+t.spaceBetween+"px"})),t.slidesPerColumn>1&&(e.virtualSize=(M+t.spaceBetween)*C,e.virtualSize=Math.ceil(e.virtualSize/t.slidesPerColumn)-t.spaceBetween,e.isHorizontal()?c.css({width:e.virtualSize+t.spaceBetween+"px"}):c.css({height:e.virtualSize+t.spaceBetween+"px"}),t.centeredSlides)){w=[];for(let c=0;c1&&p.push(e.virtualSize-a)}if(0===p.length&&(p=[0]),0!==t.spaceBetween&&(e.isHorizontal()?i?l.filter(h).css({marginLeft:H+"px"}):l.filter(h).css({marginRight:H+"px"}):l.filter(h).css({marginBottom:H+"px"})),t.centeredSlides&&t.centeredSlidesBounds){let e=0;d.forEach(c=>{e+=c+(t.spaceBetween?t.spaceBetween:0)}),e-=t.spaceBetween;const c=e-a;p=p.map(e=>e<0?-v:e>c?c+g:e)}if(t.centerInsufficientSlides){let e=0;if(d.forEach(c=>{e+=c+(t.spaceBetween?t.spaceBetween:0)}),e-=t.spaceBetween,e{p[c]=e-t}),m.forEach((e,c)=>{m[c]=e+t})}}f.extend(e,{slides:l,snapGrid:p,slidesGrid:m,slidesSizesGrid:d}),u!==o&&e.emit("slidesLengthChange"),p.length!==z&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),m.length!==b&&e.emit("slidesGridLengthChange"),(t.watchSlidesProgress||t.watchSlidesVisibility)&&e.updateSlidesOffset()},updateAutoHeight:function(e){const t=this,c=[];let a,i=0;if("number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed),"auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)t.visibleSlides.each((e,t)=>{c.push(t)});else for(a=0;at.slides.length)break;c.push(t.slides.eq(e)[0])}else c.push(t.slides.eq(t.activeIndex)[0]);for(a=0;ai?e:i}i&&t.$wrapperEl.css("height",i+"px")},updateSlidesOffset:function(){const e=this,t=e.slides;for(let c=0;c=0&&i1&&r<=t.size||i<=0&&r>=t.size)&&(t.visibleSlides.push(s),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(c.slideVisibleClass))}s.progress=i?-r:r}t.visibleSlides=l(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const c=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*c||0}const c=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:n,isEnd:s}=t;const r=n,o=s;0===a?(i=0,n=!0,s=!0):(i=(e-t.minTranslate())/a,n=i<=0,s=i>=1),f.extend(t,{progress:i,isBeginning:n,isEnd:s}),(c.watchSlidesProgress||c.watchSlidesVisibility||c.centeredSlides&&c.autoHeight)&&t.updateSlidesProgress(e),n&&!r&&t.emit("reachBeginning toEdge"),s&&!o&&t.emit("reachEnd toEdge"),(r&&!n||o&&!s)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:c,$wrapperEl:a,activeIndex:i,realIndex:n}=e,s=e.virtual&&c.virtual.enabled;let r;t.removeClass(`${c.slideActiveClass} ${c.slideNextClass} ${c.slidePrevClass} ${c.slideDuplicateActiveClass} ${c.slideDuplicateNextClass} ${c.slideDuplicatePrevClass}`),r=s?e.$wrapperEl.find(`.${c.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),r.addClass(c.slideActiveClass),c.loop&&(r.hasClass(c.slideDuplicateClass)?a.children(`.${c.slideClass}:not(.${c.slideDuplicateClass})[data-swiper-slide-index="${n}"]`).addClass(c.slideDuplicateActiveClass):a.children(`.${c.slideClass}.${c.slideDuplicateClass}[data-swiper-slide-index="${n}"]`).addClass(c.slideDuplicateActiveClass));let o=r.nextAll("."+c.slideClass).eq(0).addClass(c.slideNextClass);c.loop&&0===o.length&&(o=t.eq(0),o.addClass(c.slideNextClass));let l=r.prevAll("."+c.slideClass).eq(0).addClass(c.slidePrevClass);c.loop&&0===l.length&&(l=t.eq(-1),l.addClass(c.slidePrevClass)),c.loop&&(o.hasClass(c.slideDuplicateClass)?a.children(`.${c.slideClass}:not(.${c.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicateNextClass):a.children(`.${c.slideClass}.${c.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicateNextClass),l.hasClass(c.slideDuplicateClass)?a.children(`.${c.slideClass}:not(.${c.slideDuplicateClass})[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicatePrevClass):a.children(`.${c.slideClass}.${c.slideDuplicateClass}[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicatePrevClass))},updateActiveIndex:function(e){const t=this,c=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:n,activeIndex:s,realIndex:r,snapIndex:o}=t;let l,u=e;if(void 0===u){for(let e=0;e=a[e]&&c=a[e]&&c=a[e]&&(u=e);n.normalizeSlideIndex&&(u<0||void 0===u)&&(u=0)}if(i.indexOf(c)>=0)l=i.indexOf(c);else{const e=Math.min(n.slidesPerGroupSkip,u);l=e+Math.floor((u-e)/n.slidesPerGroup)}if(l>=i.length&&(l=i.length-1),u===s)return void(l!==o&&(t.snapIndex=l,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(u).attr("data-swiper-slide-index")||u,10);f.extend(t,{snapIndex:l,realIndex:p,previousIndex:s,activeIndex:u}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),r!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,c=t.params,a=l(e.target).closest("."+c.slideClass)[0];let i=!1;if(a)for(let e=0;eo?o:a&&en?"next":ai?"next":a=r.length&&(d=r.length-1),(u||s.initialSlide||0)===(l||0)&&c&&i.emit("beforeSlideChangeStart");const h=-r[d];if(i.updateProgress(h),s.normalizeSlideIndex)for(let e=0;e=Math.floor(100*o[e])&&(n=e);if(i.initialized&&n!==u){if(!i.allowSlideNext&&hi.translate&&h>i.maxTranslate()&&(u||0)!==n)return!1}let v;if(v=n>u?"next":nl(e));r.map(e=>l(e)),s[p.indexOf(u)];let f,m=s[p.indexOf(u)-1];return void 0===m&&i.cssMode&&s.forEach(e=>{!m&&u>=e&&(m=e)}),void 0!==m&&(f=r.indexOf(m),f<0&&(f=a.activeIndex-1)),a.slideTo(f,e,t,c)},slideReset:function(e=this.params.speed,t=!0,c){return this.slideTo(this.activeIndex,e,t,c)},slideToClosest:function(e=this.params.speed,t=!0,c,a=.5){const i=this;let n=i.activeIndex;const s=Math.min(i.params.slidesPerGroupSkip,n),r=s+Math.floor((n-s)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[r]){const e=i.snapGrid[r];o-e>(i.snapGrid[r+1]-e)*a&&(n+=i.params.slidesPerGroup)}else{const e=i.snapGrid[r-1];o-e<=(i.snapGrid[r]-e)*a&&(n-=i.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,i.slidesGrid.length-1),i.slideTo(n,e,t,c)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:c}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,n=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(l(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?ne.slides.length-e.loopedSlides+a/2?(e.loopFix(),n=c.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),f.nextTick(()=>{e.slideTo(n)})):e.slideTo(n):n>e.slides.length-a?(e.loopFix(),n=c.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),f.nextTick(()=>{e.slideTo(n)})):e.slideTo(n)}else e.slideTo(n)}};var b={loopCreate:function(){const e=this,{params:t,$wrapperEl:c}=e;c.children(`.${t.slideClass}.${t.slideDuplicateClass}`).remove();let a=c.children("."+t.slideClass);if(t.loopFillGroupWithBlank){const e=t.slidesPerGroup-a.length%t.slidesPerGroup;if(e!==t.slidesPerGroup){for(let a=0;aa.length&&(e.loopedSlides=a.length);const i=[],s=[];a.each((t,c)=>{const n=l(c);t=a.length-e.loopedSlides&&i.push(c),n.attr("data-swiper-slide-index",t)});for(let e=0;e=0;e-=1)c.prepend(l(i[e].cloneNode(!0)).addClass(t.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:c,loopedSlides:a,allowSlidePrev:i,allowSlideNext:n,snapGrid:s,rtlTranslate:r}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const l=-s[t]-e.getTranslate();if(t=c.length-a){o=-c.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==l&&e.setTranslate((r?-e.translate:e.translate)-l)}e.allowSlidePrev=i,e.allowSlideNext=n,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:c}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),c.removeAttr("data-swiper-slide-index")}};var C={setGrabCursor:function(e){if(m.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked||this.params.cssMode)return;const t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){m.touch||this.params.watchOverflow&&this.isLocked||this.params.cssMode||(this.el.style.cursor="")}};var M={appendSlide:function(e){const t=this,{$wrapperEl:c,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t=r)return void c.appendSlide(t);let o=s>e?s+1:s;const l=[];for(let t=r-1;t>=e;t-=1){const e=c.slides.eq(t);e.remove(),l.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?s+t.length:s}else a.append(t);for(let e=0;e=0||t.indexOf("Trident/")>=0,p=t.indexOf("Edge/")>=0,f=t.indexOf("Gecko/")>=0&&t.indexOf("Firefox/")>=0,d="Win32"===e,h=t.toLowerCase().indexOf("electron")>=0;let v="MacIntel"===e;return!s&&v&&m.touch&&(1024===a&&1366===i||834===a&&1194===i||834===a&&1112===i||768===a&&1024===i)&&(s=t.match(/(Version)\/([\d.]+)/),v=!1),c.ie=u,c.edge=p,c.firefox=f,n&&!d&&(c.os="android",c.osVersion=n[2],c.android=!0,c.androidChrome=t.toLowerCase().indexOf("chrome")>=0),(s||l||o)&&(c.os="ios",c.ios=!0),l&&!o&&(c.osVersion=l[2].replace(/_/g,"."),c.iphone=!0),s&&(c.osVersion=s[2].replace(/_/g,"."),c.ipad=!0),o&&(c.osVersion=o[3]?o[3].replace(/_/g,"."):null,c.ipod=!0),c.ios&&c.osVersion&&t.indexOf("Version/")>=0&&"10"===c.osVersion.split(".")[0]&&(c.osVersion=t.toLowerCase().split("version/")[1].split(" ")[0]),c.webView=!(!(l||s||o)||!t.match(/.*AppleWebKit(?!.*Safari)/i)&&!r.navigator.standalone)||r.matchMedia&&r.matchMedia("(display-mode: standalone)").matches,c.webview=c.webView,c.standalone=c.webView,c.desktop=!(c.ios||c.android)||h,c.desktop&&(c.electron=h,c.macos=v,c.windows=d,c.macos&&(c.os="macos"),c.windows&&(c.os="windows")),c.pixelRatio=r.devicePixelRatio||1,c}();function V(e){const t=this,c=t.touchEventsData,{params:a,touches:i}=t;if(t.animating&&a.preventInteractionOnTransition)return;let s=e;s.originalEvent&&(s=s.originalEvent);const o=l(s.target);if("wrapper"===a.touchEventsTarget&&!o.closest(t.wrapperEl).length)return;if(c.isTouchEvent="touchstart"===s.type,!c.isTouchEvent&&"which"in s&&3===s.which)return;if(!c.isTouchEvent&&"button"in s&&s.button>0)return;if(c.isTouched&&c.isMoved)return;if(a.noSwiping&&o.closest(a.noSwipingSelector?a.noSwipingSelector:"."+a.noSwipingClass)[0])return void(t.allowClick=!0);if(a.swipeHandler&&!o.closest(a.swipeHandler)[0])return;i.currentX="touchstart"===s.type?s.targetTouches[0].pageX:s.pageX,i.currentY="touchstart"===s.type?s.targetTouches[0].pageY:s.pageY;const u=i.currentX,p=i.currentY,m=a.edgeSwipeDetection||a.iOSEdgeSwipeDetection,d=a.edgeSwipeThreshold||a.iOSEdgeSwipeThreshold;if(!m||!(u<=d||u>=r.screen.width-d)){if(f.extend(c,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),i.startX=u,i.startY=p,c.touchStartTime=f.now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,a.threshold>0&&(c.allowThresholdMove=!1),"touchstart"!==s.type){let e=!0;o.is(c.formElements)&&(e=!1),n.activeElement&&l(n.activeElement).is(c.formElements)&&n.activeElement!==o[0]&&n.activeElement.blur();const i=e&&t.allowTouchMove&&a.touchStartPreventDefault;(a.touchStartForcePreventDefault||i)&&s.preventDefault()}t.emit("touchStart",s)}}function y(e){const t=this,c=t.touchEventsData,{params:a,touches:i,rtlTranslate:s}=t;let r=e;if(r.originalEvent&&(r=r.originalEvent),!c.isTouched)return void(c.startMoving&&c.isScrolling&&t.emit("touchMoveOpposite",r));if(c.isTouchEvent&&"touchmove"!==r.type)return;const o="touchmove"===r.type&&r.targetTouches&&(r.targetTouches[0]||r.changedTouches[0]),u="touchmove"===r.type?o.pageX:r.pageX,p="touchmove"===r.type?o.pageY:r.pageY;if(r.preventedByNestedSwiper)return i.startX=u,void(i.startY=p);if(!t.allowTouchMove)return t.allowClick=!1,void(c.isTouched&&(f.extend(i,{startX:u,startY:p,currentX:u,currentY:p}),c.touchStartTime=f.now()));if(c.isTouchEvent&&a.touchReleaseOnEdges&&!a.loop)if(t.isVertical()){if(pi.startY&&t.translate>=t.minTranslate())return c.isTouched=!1,void(c.isMoved=!1)}else if(ui.startX&&t.translate>=t.minTranslate())return;if(c.isTouchEvent&&n.activeElement&&r.target===n.activeElement&&l(r.target).is(c.formElements))return c.isMoved=!0,void(t.allowClick=!1);if(c.allowTouchCallbacks&&t.emit("touchMove",r),r.targetTouches&&r.targetTouches.length>1)return;i.currentX=u,i.currentY=p;const m=i.currentX-i.startX,d=i.currentY-i.startY;if(t.params.threshold&&Math.sqrt(m**2+d**2)=25&&(e=180*Math.atan2(Math.abs(d),Math.abs(m))/Math.PI,c.isScrolling=t.isHorizontal()?e>a.touchAngle:90-e>a.touchAngle)}if(c.isScrolling&&t.emit("touchMoveOpposite",r),void 0===c.startMoving&&(i.currentX===i.startX&&i.currentY===i.startY||(c.startMoving=!0)),c.isScrolling)return void(c.isTouched=!1);if(!c.startMoving)return;t.allowClick=!1,!a.cssMode&&r.cancelable&&r.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&r.stopPropagation(),c.isMoved||(a.loop&&t.loopFix(),c.startTranslate=t.getTranslate(),t.setTransition(0),t.animating&&t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),c.allowMomentumBounce=!1,!a.grabCursor||!0!==t.allowSlideNext&&!0!==t.allowSlidePrev||t.setGrabCursor(!0),t.emit("sliderFirstMove",r)),t.emit("sliderMove",r),c.isMoved=!0;let h=t.isHorizontal()?m:d;i.diff=h,h*=a.touchRatio,s&&(h=-h),t.swipeDirection=h>0?"prev":"next",c.currentTranslate=h+c.startTranslate;let v=!0,g=a.resistanceRatio;if(a.touchReleaseOnEdges&&(g=0),h>0&&c.currentTranslate>t.minTranslate()?(v=!1,a.resistance&&(c.currentTranslate=t.minTranslate()-1+(-t.minTranslate()+c.startTranslate+h)**g)):h<0&&c.currentTranslatec.startTranslate&&(c.currentTranslate=c.startTranslate),a.threshold>0){if(!(Math.abs(h)>a.threshold||c.allowThresholdMove))return void(c.currentTranslate=c.startTranslate);if(!c.allowThresholdMove)return c.allowThresholdMove=!0,i.startX=i.currentX,i.startY=i.currentY,c.currentTranslate=c.startTranslate,void(i.diff=t.isHorizontal()?i.currentX-i.startX:i.currentY-i.startY)}a.followFinger&&!a.cssMode&&((a.freeMode||a.watchSlidesProgress||a.watchSlidesVisibility)&&(t.updateActiveIndex(),t.updateSlidesClasses()),a.freeMode&&(0===c.velocities.length&&c.velocities.push({position:i[t.isHorizontal()?"startX":"startY"],time:c.touchStartTime}),c.velocities.push({position:i[t.isHorizontal()?"currentX":"currentY"],time:f.now()})),t.updateProgress(c.currentTranslate),t.setTranslate(c.currentTranslate))}function L(e){const t=this,c=t.touchEventsData,{params:a,touches:i,rtlTranslate:n,$wrapperEl:s,slidesGrid:r,snapGrid:o}=t;let l=e;if(l.originalEvent&&(l=l.originalEvent),c.allowTouchCallbacks&&t.emit("touchEnd",l),c.allowTouchCallbacks=!1,!c.isTouched)return c.isMoved&&a.grabCursor&&t.setGrabCursor(!1),c.isMoved=!1,void(c.startMoving=!1);a.grabCursor&&c.isMoved&&c.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=f.now(),p=u-c.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(l),t.emit("tap click",l),p<300&&u-c.lastClickTime<300&&t.emit("doubleTap doubleClick",l)),c.lastClickTime=f.now(),f.nextTick(()=>{t.destroyed||(t.allowClick=!0)}),!c.isTouched||!c.isMoved||!t.swipeDirection||0===i.diff||c.currentTranslate===c.startTranslate)return c.isTouched=!1,c.isMoved=!1,void(c.startMoving=!1);let m;if(c.isTouched=!1,c.isMoved=!1,c.startMoving=!1,m=a.followFinger?n?t.translate:-t.translate:-c.currentTranslate,a.cssMode)return;if(a.freeMode){if(m<-t.minTranslate())return void t.slideTo(t.activeIndex);if(m>-t.maxTranslate())return void(t.slides.length1){const e=c.velocities.pop(),i=c.velocities.pop(),n=e.position-i.position,s=e.time-i.time;t.velocity=n/s,t.velocity/=2,Math.abs(t.velocity)150||f.now()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=a.freeModeMomentumVelocityRatio,c.velocities.length=0;let e=1e3*a.freeModeMomentumRatio;const i=t.velocity*e;let r=t.translate+i;n&&(r=-r);let l,u=!1;const p=20*Math.abs(t.velocity)*a.freeModeMomentumBounceRatio;let m;if(rt.minTranslate())a.freeModeMomentumBounce?(r-t.minTranslate()>p&&(r=t.minTranslate()+p),l=t.minTranslate(),u=!0,c.allowMomentumBounce=!0):r=t.minTranslate(),a.loop&&a.centeredSlides&&(m=!0);else if(a.freeModeSticky){let e;for(let t=0;t-r){e=t;break}r=Math.abs(o[e]-r){t.loopFix()}),0!==t.velocity){if(e=n?Math.abs((-r-t.translate)/t.velocity):Math.abs((r-t.translate)/t.velocity),a.freeModeSticky){const c=Math.abs((n?-r:r)-t.translate),i=t.slidesSizesGrid[t.activeIndex];e=c{t&&!t.destroyed&&c.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(a.speed),setTimeout(()=>{t.setTranslate(l),s.transitionEnd(()=>{t&&!t.destroyed&&t.transitionEnd()})},0))})):t.velocity?(t.updateProgress(r),t.setTransition(e),t.setTranslate(r),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,s.transitionEnd(()=>{t&&!t.destroyed&&t.transitionEnd()}))):t.updateProgress(r),t.updateActiveIndex(),t.updateSlidesClasses()}else if(a.freeModeSticky)return void t.slideToClosest();return void((!a.freeModeMomentum||p>=a.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses()))}let d=0,h=t.slidesSizesGrid[0];for(let e=0;e=r[e]&&m=r[e]&&(d=e,h=r[r.length-1]-r[r.length-2])}const v=(m-r[d])/h,g=da.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(v>=a.longSwipesRatio?t.slideTo(d+g):t.slideTo(d)),"prev"===t.swipeDirection&&(v>1-a.longSwipesRatio?t.slideTo(d+g):t.slideTo(d))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(l.target===t.navigation.nextEl||l.target===t.navigation.prevEl)?l.target===t.navigation.nextEl?t.slideTo(d+g):t.slideTo(d):("next"===t.swipeDirection&&t.slideTo(d+g),"prev"===t.swipeDirection&&t.slideTo(d))}}function S(){const e=this,{params:t,el:c}=e;if(c&&0===c.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:n}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function x(e){const t=this;t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}function P(){const e=this,{wrapperEl:t,rtlTranslate:c}=e;let a;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=c?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const i=e.maxTranslate()-e.minTranslate();a=0===i?0:(e.translate-e.minTranslate())/i,a!==e.progress&&e.updateProgress(c?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let w=!1;function k(){}var A={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,preventInteractionOnTransition:!1,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0};const E={update:h,translate:v,transition:g,slide:z,loop:b,grabCursor:C,manipulation:M,events:{attachEvents:function(){const e=this,{params:t,touchEvents:c,el:a,wrapperEl:i}=e;e.onTouchStart=V.bind(e),e.onTouchMove=y.bind(e),e.onTouchEnd=L.bind(e),t.cssMode&&(e.onScroll=P.bind(e)),e.onClick=x.bind(e);const s=!!t.nested;if(!m.touch&&m.pointerEvents)a.addEventListener(c.start,e.onTouchStart,!1),n.addEventListener(c.move,e.onTouchMove,s),n.addEventListener(c.end,e.onTouchEnd,!1);else{if(m.touch){const i=!("touchstart"!==c.start||!m.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};a.addEventListener(c.start,e.onTouchStart,i),a.addEventListener(c.move,e.onTouchMove,m.passiveListener?{passive:!1,capture:s}:s),a.addEventListener(c.end,e.onTouchEnd,i),c.cancel&&a.addEventListener(c.cancel,e.onTouchEnd,i),w||(n.addEventListener("touchstart",k),w=!0)}(t.simulateTouch&&!H.ios&&!H.android||t.simulateTouch&&!m.touch&&H.ios)&&(a.addEventListener("mousedown",e.onTouchStart,!1),n.addEventListener("mousemove",e.onTouchMove,s),n.addEventListener("mouseup",e.onTouchEnd,!1))}(t.preventClicks||t.preventClicksPropagation)&&a.addEventListener("click",e.onClick,!0),t.cssMode&&i.addEventListener("scroll",e.onScroll),t.updateOnWindowResize?e.on(H.ios||H.android?"resize orientationchange observerUpdate":"resize observerUpdate",S,!0):e.on("observerUpdate",S,!0)},detachEvents:function(){const e=this,{params:t,touchEvents:c,el:a,wrapperEl:i}=e,s=!!t.nested;if(!m.touch&&m.pointerEvents)a.removeEventListener(c.start,e.onTouchStart,!1),n.removeEventListener(c.move,e.onTouchMove,s),n.removeEventListener(c.end,e.onTouchEnd,!1);else{if(m.touch){const i=!("onTouchStart"!==c.start||!m.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};a.removeEventListener(c.start,e.onTouchStart,i),a.removeEventListener(c.move,e.onTouchMove,s),a.removeEventListener(c.end,e.onTouchEnd,i),c.cancel&&a.removeEventListener(c.cancel,e.onTouchEnd,i)}(t.simulateTouch&&!H.ios&&!H.android||t.simulateTouch&&!m.touch&&H.ios)&&(a.removeEventListener("mousedown",e.onTouchStart,!1),n.removeEventListener("mousemove",e.onTouchMove,s),n.removeEventListener("mouseup",e.onTouchEnd,!1))}(t.preventClicks||t.preventClicksPropagation)&&a.removeEventListener("click",e.onClick,!0),t.cssMode&&i.removeEventListener("scroll",e.onScroll),e.off(H.ios||H.android?"resize orientationchange observerUpdate":"resize observerUpdate",S)}},breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:c,loopedSlides:a=0,params:i,$el:n}=e,s=i.breakpoints;if(!s||s&&0===Object.keys(s).length)return;const r=e.getBreakpoint(s);if(r&&e.currentBreakpoint!==r){const o=r in s?s[r]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach(e=>{const t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});const l=o||e.originalParams,u=i.slidesPerColumn>1,p=l.slidesPerColumn>1;u&&!p?n.removeClass(`${i.containerModifierClass}multirow ${i.containerModifierClass}multirow-column`):!u&&p&&(n.addClass(i.containerModifierClass+"multirow"),"column"===l.slidesPerColumnFill&&n.addClass(i.containerModifierClass+"multirow-column"));const m=l.direction&&l.direction!==i.direction,d=i.loop&&(l.slidesPerView!==i.slidesPerView||m);m&&c&&e.changeDirection(),f.extend(e.params,l),f.extend(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=r,d&&c&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",l)}},getBreakpoint:function(e){if(!e)return;let t=!1;const c=Object.keys(e).map(e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:r.innerHeight*t,point:e}}return{value:e,point:e}});c.sort((e,t)=>parseInt(e.value,10)-parseInt(t.value,10));for(let e=0;e0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&a?e.isLocked=a<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,c!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),c&&c!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}},classes:{addClasses:function(){const{classNames:e,params:t,rtl:c,$el:a}=this,i=[];i.push("initialized"),i.push(t.direction),t.freeMode&&i.push("free-mode"),t.autoHeight&&i.push("autoheight"),c&&i.push("rtl"),t.slidesPerColumn>1&&(i.push("multirow"),"column"===t.slidesPerColumnFill&&i.push("multirow-column")),H.android&&i.push("android"),H.ios&&i.push("ios"),t.cssMode&&i.push("css-mode"),i.forEach(c=>{e.push(t.containerModifierClass+c)}),a.addClass(e.join(" "))},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" "))}},images:{loadImage:function(e,t,c,a,i,n){let s;function o(){n&&n()}l(e).parent("picture")[0]||e.complete&&i?o():t?(s=new r.Image,s.onload=o,s.onerror=o,a&&(s.sizes=a),c&&(s.srcset=c),t&&(s.src=t)):o()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let c=0;c{Object.keys(E[e]).forEach(t=>{T.prototype[t]||(T.prototype[t]=E[e][t])})});const a=this;void 0===a.modules&&(a.modules={}),Object.keys(a.modules).forEach(e=>{const t=a.modules[e];if(t.params){const e=Object.keys(t.params)[0],a=t.params[e];if("object"!=typeof a||null===a)return;if(!(e in c)||!("enabled"in a))return;!0===c[e]&&(c[e]={enabled:!0}),"object"!=typeof c[e]||"enabled"in c[e]||(c[e].enabled=!0),c[e]||(c[e]={enabled:!1})}});const i=f.extend({},A);a.useModulesParams(i),a.params=f.extend({},i,N,c),a.originalParams=f.extend({},a.params),a.passedParams=f.extend({},c),a.$=l;const n=l(a.params.el);if(t=n[0],!t)return;if(n.length>1){const e=[];return n.each((t,a)=>{const i=f.extend({},c,{el:a});e.push(new T(i))}),e}let s;return t.swiper=a,n.data("swiper",a),t&&t.shadowRoot&&t.shadowRoot.querySelector?(s=l(t.shadowRoot.querySelector("."+a.params.wrapperClass)),s.children=e=>n.children(e)):s=n.children("."+a.params.wrapperClass),f.extend(a,{$el:n,el:t,$wrapperEl:s,wrapperEl:s[0],classNames:[],slides:l(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.params.direction,rtl:"rtl"===t.dir.toLowerCase()||"rtl"===n.css("direction"),rtlTranslate:"horizontal"===a.params.direction&&("rtl"===t.dir.toLowerCase()||"rtl"===n.css("direction")),wrongRTL:"-webkit-box"===s.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"];let t=["mousedown","mousemove","mouseup"];return m.pointerEvents&&(t=["pointerdown","pointermove","pointerup"]),a.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},a.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},m.touch||!a.params.simulateTouch?a.touchEventsTouch:a.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video, label",lastClickTime:f.now(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.useModules(),a.params.init&&a.init(),a}slidesPerViewDynamic(){const{params:e,slides:t,slidesGrid:c,size:a,activeIndex:i}=this;let n=1;if(e.centeredSlides){let e,c=t[i].swiperSlideSize;for(let s=i+1;sa&&(e=!0));for(let s=i-1;s>=0;s-=1)t[s]&&!e&&(c+=t[s].swiperSlideSize,n+=1,c>a&&(e=!0))}else for(let e=i+1;e1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),c.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t=!0){const c=this,a=c.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(c.$el.removeClass(`${c.params.containerModifierClass}${a}`).addClass(`${c.params.containerModifierClass}${e}`),c.params.direction=e,c.slides.each((t,c)=>{"vertical"===e?c.style.width="":c.style.height=""}),c.emit("changeDirection"),t&&c.update()),c}init(){const e=this;e.initialized||(e.emit("beforeInit"),e.params.breakpoints&&e.setBreakpoint(),e.addClasses(),e.params.loop&&e.loopCreate(),e.updateSize(),e.updateSlides(),e.params.watchOverflow&&e.checkOverflow(),e.params.grabCursor&&e.setGrabCursor(),e.params.preloadImages&&e.preloadImages(),e.params.loop?e.slideTo(e.params.initialSlide+e.loopedSlides,0,e.params.runCallbacksOnInit):e.slideTo(e.params.initialSlide,0,e.params.runCallbacksOnInit),e.attachEvents(),e.initialized=!0,e.emit("init"))}destroy(e=!0,t=!0){const c=this,{params:a,$el:i,$wrapperEl:n,slides:s}=c;return void 0===c.params||c.destroyed||(c.emit("beforeDestroy"),c.initialized=!1,c.detachEvents(),a.loop&&c.loopDestroy(),t&&(c.removeClasses(),i.removeAttr("style"),n.removeAttr("style"),s&&s.length&&s.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),c.emit("destroy"),Object.keys(c.eventsListeners).forEach(e=>{c.off(e)}),!1!==e&&(c.$el[0].swiper=null,c.$el.data("swiper",null),f.deleteProps(c)),c.destroyed=!0),null}static extendDefaults(e){f.extend(N,e)}static get extendedDefaults(){return N}static get defaults(){return A}static get Class(){return d}static get $(){return l}}var D={name:"device",proto:{device:H},static:{device:H}},R={name:"support",proto:{support:m},static:{support:m}};const _={isEdge:!!r.navigator.userAgent.match(/Edge/g),isSafari:function(){const e=r.navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(r.navigator.userAgent)};var O={name:"browser",proto:{browser:_},static:{browser:_}},I={name:"resize",create(){const e=this;f.extend(e,{resize:{resizeHandler(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init(){r.addEventListener("resize",this.resize.resizeHandler),r.addEventListener("orientationchange",this.resize.orientationChangeHandler)},destroy(){r.removeEventListener("resize",this.resize.resizeHandler),r.removeEventListener("orientationchange",this.resize.orientationChangeHandler)}}};const j={func:r.MutationObserver||r.WebkitMutationObserver,attach(e,t={}){const c=this,a=new(0,j.func)(e=>{if(1===e.length)return void c.emit("observerUpdate",e[0]);const t=function(){c.emit("observerUpdate",e[0])};r.requestAnimationFrame?r.requestAnimationFrame(t):r.setTimeout(t,0)});a.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),c.observer.observers.push(a)},init(){const e=this;if(m.observer&&e.params.observer){if(e.params.observeParents){const t=e.$el.parents();for(let c=0;c{e.disconnect()}),this.observer.observers=[]}};var F={name:"observer",params:{observer:!1,observeParents:!1,observeSlideChildren:!1},create(){f.extend(this,{observer:{init:j.init.bind(this),attach:j.attach.bind(this),destroy:j.destroy.bind(this),observers:[]}})},on:{init(){this.observer.init()},destroy(){this.observer.destroy()}}};const B={update(e){const t=this,{slidesPerView:c,slidesPerGroup:a,centeredSlides:i}=t.params,{addSlidesBefore:n,addSlidesAfter:s}=t.params.virtual,{from:r,to:o,slides:l,slidesGrid:u,renderSlide:p,offset:m}=t.virtual;t.updateActiveIndex();const d=t.activeIndex||0;let h,v,g;h=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",i?(v=Math.floor(c/2)+a+n,g=Math.floor(c/2)+a+s):(v=c+(a-1)+n,g=a+s);const z=Math.max((d||0)-g,0),b=Math.min((d||0)+v,l.length-1),C=(t.slidesGrid[z]||0)-(t.slidesGrid[0]||0);function M(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(f.extend(t.virtual,{from:z,to:b,offset:C,slidesGrid:t.slidesGrid}),r===z&&o===b&&!e)return t.slidesGrid!==u&&C!==m&&t.slides.css(h,C+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:C,from:z,to:b,slides:function(){const e=[];for(let t=z;t<=b;t+=1)e.push(l[t]);return e}()}),void M();const H=[],V=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(let e=r;e<=o;e+=1)(eb)&&t.$wrapperEl.find(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t=z&&t<=b&&(void 0===o||e?V.push(t):(t>o&&V.push(t),t{t.$wrapperEl.append(p(l[e],e))}),H.sort((e,t)=>t-e).forEach(e=>{t.$wrapperEl.prepend(p(l[e],e))}),t.$wrapperEl.children(".swiper-slide").css(h,C+"px"),M()},renderSlide(e,t){const c=this,a=c.params.virtual;if(a.cache&&c.virtual.cache[t])return c.virtual.cache[t];const i=a.renderSlide?l(a.renderSlide.call(c,e,t)):l(`
      ${e}
      `);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(c.virtual.cache[t]=i),i},appendSlide(e){const t=this;if("object"==typeof e&&"length"in e)for(let c=0;c{const a=e[t],n=a.attr("data-swiper-slide-index");n&&a.attr("data-swiper-slide-index",parseInt(n,10)+1),c[parseInt(t,10)+i]=a}),t.virtual.cache=c}t.virtual.update(!0),t.slideTo(a,0)},removeSlide(e){const t=this;if(null==e)return;let c=t.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)t.virtual.slides.splice(e[a],1),t.params.virtual.cache&&delete t.virtual.cache[e[a]],e[a]0&&0===t.$el.parents("."+t.params.slideActiveClass).length)return;const a=r.innerWidth,i=r.innerHeight,n=t.$el.offset();c&&(n.left-=t.$el[0].scrollLeft);const s=[[n.left,n.top],[n.left+t.width,n.top],[n.left,n.top+t.height],[n.left+t.width,n.top+t.height]];for(let t=0;t=0&&c[0]<=a&&c[1]>=0&&c[1]<=i&&(e=!0)}if(!e)return}t.isHorizontal()?((o||l||u||p)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((l||p)&&!c||(o||u)&&c)&&t.slideNext(),((o||u)&&!c||(l||p)&&c)&&t.slidePrev()):((o||l||f||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(l||m)&&t.slideNext(),(o||f)&&t.slidePrev()),t.emit("keyPress",i)}},enable(){this.keyboard.enabled||(l(n).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable(){this.keyboard.enabled&&(l(n).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}};var G={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}},create(){f.extend(this,{keyboard:{enabled:!1,enable:q.enable.bind(this),disable:q.disable.bind(this),handle:q.handle.bind(this)}})},on:{init(){const e=this;e.params.keyboard.enabled&&e.keyboard.enable()},destroy(){const e=this;e.keyboard.enabled&&e.keyboard.disable()}}};const W={lastScrollTime:f.now(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:()=>r.navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){let e="onwheel"in n;if(!e){const t=n.createElement("div");t.setAttribute("onwheel","return;"),e="function"==typeof t.onwheel}return!e&&n.implementation&&n.implementation.hasFeature&&!0!==n.implementation.hasFeature("","")&&(e=n.implementation.hasFeature("Events.wheel","3.0")),e}()?"wheel":"mousewheel",normalize(e){let t=0,c=0,a=0,i=0;return"detail"in e&&(c=e.detail),"wheelDelta"in e&&(c=-e.wheelDelta/120),"wheelDeltaY"in e&&(c=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=c,c=0),a=10*t,i=10*c,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!c&&(c=i<1?-1:1),{spinX:t,spinY:c,pixelX:a,pixelY:i}},handleMouseEnter(){this.mouseEntered=!0},handleMouseLeave(){this.mouseEntered=!1},handle(e){let t=e;const c=this,a=c.params.mousewheel;c.params.cssMode&&t.preventDefault();let i=c.$el;if("container"!==c.params.mousewheel.eventsTarged&&(i=l(c.params.mousewheel.eventsTarged)),!c.mouseEntered&&!i[0].contains(t.target)&&!a.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);let n=0;const s=c.rtlTranslate?-1:1,r=W.normalize(t);if(a.forceToAxis)if(c.isHorizontal()){if(!(Math.abs(r.pixelX)>Math.abs(r.pixelY)))return!0;n=-r.pixelX*s}else{if(!(Math.abs(r.pixelY)>Math.abs(r.pixelX)))return!0;n=-r.pixelY}else n=Math.abs(r.pixelX)>Math.abs(r.pixelY)?-r.pixelX*s:-r.pixelY;if(0===n)return!0;if(a.invert&&(n=-n),c.params.freeMode){const e={time:f.now(),delta:Math.abs(n),direction:Math.sign(n)},{lastEventBeforeSnap:i}=c.mousewheel,s=i&&e.time=c.minTranslate()&&(i=c.minTranslate()),i<=c.maxTranslate()&&(i=c.maxTranslate()),c.setTransition(0),c.setTranslate(i),c.updateProgress(),c.updateActiveIndex(),c.updateSlidesClasses(),(!r&&c.isBeginning||!o&&c.isEnd)&&c.updateSlidesClasses(),c.params.freeModeSticky){clearTimeout(c.mousewheel.timeout),c.mousewheel.timeout=void 0;const t=c.mousewheel.recentWheelEvents;t.length>=15&&t.shift();const a=t.length?t[t.length-1]:void 0,i=t[0];if(t.push(e),a&&(e.delta>a.delta||e.direction!==a.direction))t.splice(0);else if(t.length>=15&&e.time-i.time<500&&i.delta-e.delta>=1&&e.delta<=6){const a=n>0?.8:.2;c.mousewheel.lastEventBeforeSnap=e,t.splice(0),c.mousewheel.timeout=f.nextTick(()=>{c.slideToClosest(c.params.speed,!0,void 0,a)},0)}c.mousewheel.timeout||(c.mousewheel.timeout=f.nextTick(()=>{c.mousewheel.lastEventBeforeSnap=e,t.splice(0),c.slideToClosest(c.params.speed,!0,void 0,.5)},500))}if(s||c.emit("scroll",t),c.params.autoplay&&c.params.autoplayDisableOnInteraction&&c.autoplay.stop(),i===c.minTranslate()||i===c.maxTranslate())return!0}}else{const t={time:f.now(),delta:Math.abs(n),direction:Math.sign(n),raw:e},a=c.mousewheel.recentWheelEvents;a.length>=2&&a.shift();const i=a.length?a[a.length-1]:void 0;if(a.push(t),i?(t.direction!==i.direction||t.delta>i.delta||t.time>i.time+150)&&c.mousewheel.animateSlider(t):c.mousewheel.animateSlider(t),c.mousewheel.releaseScroll(t))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1},animateSlider(e){const t=this;return e.delta>=6&&f.now()-t.mousewheel.lastScrollTime<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),t.emit("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),t.emit("scroll",e.raw)),t.mousewheel.lastScrollTime=(new r.Date).getTime(),!1)},releaseScroll(e){const t=this,c=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&c.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&c.releaseOnEdges)return!0;return!1},enable(){const e=this,t=W.event();if(e.params.cssMode)return e.wrapperEl.removeEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(e.mousewheel.enabled)return!1;let c=e.$el;return"container"!==e.params.mousewheel.eventsTarged&&(c=l(e.params.mousewheel.eventsTarged)),c.on("mouseenter",e.mousewheel.handleMouseEnter),c.on("mouseleave",e.mousewheel.handleMouseLeave),c.on(t,e.mousewheel.handle),e.mousewheel.enabled=!0,!0},disable(){const e=this,t=W.event();if(e.params.cssMode)return e.wrapperEl.addEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(!e.mousewheel.enabled)return!1;let c=e.$el;return"container"!==e.params.mousewheel.eventsTarged&&(c=l(e.params.mousewheel.eventsTarged)),c.off(t,e.mousewheel.handle),e.mousewheel.enabled=!1,!0}};const U={update(){const e=this,t=e.params.navigation;if(e.params.loop)return;const{$nextEl:c,$prevEl:a}=e.navigation;a&&a.length>0&&(e.isBeginning?a.addClass(t.disabledClass):a.removeClass(t.disabledClass),a[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass)),c&&c.length>0&&(e.isEnd?c.addClass(t.disabledClass):c.removeClass(t.disabledClass),c[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass))},onPrevClick(e){e.preventDefault(),this.isBeginning&&!this.params.loop||this.slidePrev()},onNextClick(e){e.preventDefault(),this.isEnd&&!this.params.loop||this.slideNext()},init(){const e=this,t=e.params.navigation;if(!t.nextEl&&!t.prevEl)return;let c,a;t.nextEl&&(c=l(t.nextEl),e.params.uniqueNavElements&&"string"==typeof t.nextEl&&c.length>1&&1===e.$el.find(t.nextEl).length&&(c=e.$el.find(t.nextEl))),t.prevEl&&(a=l(t.prevEl),e.params.uniqueNavElements&&"string"==typeof t.prevEl&&a.length>1&&1===e.$el.find(t.prevEl).length&&(a=e.$el.find(t.prevEl))),c&&c.length>0&&c.on("click",e.navigation.onNextClick),a&&a.length>0&&a.on("click",e.navigation.onPrevClick),f.extend(e.navigation,{$nextEl:c,nextEl:c&&c[0],$prevEl:a,prevEl:a&&a[0]})},destroy(){const e=this,{$nextEl:t,$prevEl:c}=e.navigation;t&&t.length&&(t.off("click",e.navigation.onNextClick),t.removeClass(e.params.navigation.disabledClass)),c&&c.length&&(c.off("click",e.navigation.onPrevClick),c.removeClass(e.params.navigation.disabledClass))}};const K={update(){const e=this,t=e.rtl,c=e.params.pagination;if(!c.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length)return;const a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el;let n;const s=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(n=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup),n>a-1-2*e.loopedSlides&&(n-=a-2*e.loopedSlides),n>s-1&&(n-=s),n<0&&"bullets"!==e.params.paginationType&&(n=s+n)):n=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===c.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const a=e.pagination.bullets;let s,r,o;if(c.dynamicBullets&&(e.pagination.bulletSize=a.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),i.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(c.dynamicMainBullets+4)+"px"),c.dynamicMainBullets>1&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=n-e.previousIndex,e.pagination.dynamicBulletIndex>c.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=c.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),s=n-e.pagination.dynamicBulletIndex,r=s+(Math.min(a.length,c.dynamicMainBullets)-1),o=(r+s)/2),a.removeClass(`${c.bulletActiveClass} ${c.bulletActiveClass}-next ${c.bulletActiveClass}-next-next ${c.bulletActiveClass}-prev ${c.bulletActiveClass}-prev-prev ${c.bulletActiveClass}-main`),i.length>1)a.each((e,t)=>{const a=l(t),i=a.index();i===n&&a.addClass(c.bulletActiveClass),c.dynamicBullets&&(i>=s&&i<=r&&a.addClass(c.bulletActiveClass+"-main"),i===s&&a.prev().addClass(c.bulletActiveClass+"-prev").prev().addClass(c.bulletActiveClass+"-prev-prev"),i===r&&a.next().addClass(c.bulletActiveClass+"-next").next().addClass(c.bulletActiveClass+"-next-next"))});else{const t=a.eq(n),i=t.index();if(t.addClass(c.bulletActiveClass),c.dynamicBullets){const t=a.eq(s),n=a.eq(r);for(let e=s;e<=r;e+=1)a.eq(e).addClass(c.bulletActiveClass+"-main");if(e.params.loop)if(i>=a.length-c.dynamicMainBullets){for(let e=c.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(c.bulletActiveClass+"-main");a.eq(a.length-c.dynamicMainBullets-1).addClass(c.bulletActiveClass+"-prev")}else t.prev().addClass(c.bulletActiveClass+"-prev").prev().addClass(c.bulletActiveClass+"-prev-prev"),n.next().addClass(c.bulletActiveClass+"-next").next().addClass(c.bulletActiveClass+"-next-next");else t.prev().addClass(c.bulletActiveClass+"-prev").prev().addClass(c.bulletActiveClass+"-prev-prev"),n.next().addClass(c.bulletActiveClass+"-next").next().addClass(c.bulletActiveClass+"-next-next")}}if(c.dynamicBullets){const i=Math.min(a.length,c.dynamicMainBullets+4),n=(e.pagination.bulletSize*i-e.pagination.bulletSize)/2-o*e.pagination.bulletSize,s=t?"right":"left";a.css(e.isHorizontal()?s:"top",n+"px")}}if("fraction"===c.type&&(i.find("."+c.currentClass).text(c.formatFractionCurrent(n+1)),i.find("."+c.totalClass).text(c.formatFractionTotal(s))),"progressbar"===c.type){let t;t=c.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const a=(n+1)/s;let r=1,o=1;"horizontal"===t?r=a:o=a,i.find("."+c.progressbarFillClass).transform(`translate3d(0,0,0) scaleX(${r}) scaleY(${o})`).transition(e.params.speed)}"custom"===c.type&&c.renderCustom?(i.html(c.renderCustom(e,n+1,s)),e.emit("paginationRender",e,i[0])):e.emit("paginationUpdate",e,i[0]),i[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](c.lockClass)},render(){const e=this,t=e.params.pagination;if(!t.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length)return;const c=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,a=e.pagination.$el;let i="";if("bullets"===t.type){const n=e.params.loop?Math.ceil((c-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;for(let c=0;c`;a.html(i),e.pagination.bullets=a.find("."+t.bulletClass)}"fraction"===t.type&&(i=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):` / `,a.html(i)),"progressbar"===t.type&&(i=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):``,a.html(i)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])},init(){const e=this,t=e.params.pagination;if(!t.el)return;let c=l(t.el);0!==c.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&c.length>1&&(c=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&c.addClass(t.clickableClass),c.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(c.addClass(`${t.modifierClass}${t.type}-dynamic`),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&c.addClass(t.progressbarOppositeClass),t.clickable&&c.on("click","."+t.bulletClass,(function(t){t.preventDefault();let c=l(this).index()*e.params.slidesPerGroup;e.params.loop&&(c+=e.loopedSlides),e.slideTo(c)})),f.extend(e.pagination,{$el:c,el:c[0]}))},destroy(){const e=this.params.pagination;if(!e.el||!this.pagination.el||!this.pagination.$el||0===this.pagination.$el.length)return;const t=this.pagination.$el;t.removeClass(e.hiddenClass),t.removeClass(e.modifierClass+e.type),this.pagination.bullets&&this.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&t.off("click","."+e.bulletClass)}};const Z={setTranslate(){const e=this;if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t,rtlTranslate:c,progress:a}=e,{dragSize:i,trackSize:n,$dragEl:s,$el:r}=t,o=e.params.scrollbar;let l=i,u=(n-i)*a;c?(u=-u,u>0?(l=i-u,u=0):-u+i>n&&(l=n+u)):u<0?(l=i+u,u=0):u+i>n&&(l=n-u),e.isHorizontal()?(s.transform(`translate3d(${u}px, 0, 0)`),s[0].style.width=l+"px"):(s.transform(`translate3d(0px, ${u}px, 0)`),s[0].style.height=l+"px"),o.hide&&(clearTimeout(e.scrollbar.timeout),r[0].style.opacity=1,e.scrollbar.timeout=setTimeout(()=>{r[0].style.opacity=0,r.transition(400)},1e3))},setTransition(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize(){const e=this;if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t}=e,{$dragEl:c,$el:a}=t;c[0].style.width="",c[0].style.height="";const i=e.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,n=e.size/e.virtualSize,s=n*(i/e.size);let r;r="auto"===e.params.scrollbar.dragSize?i*n:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?c[0].style.width=r+"px":c[0].style.height=r+"px",a[0].style.display=n>=1?"none":"",e.params.scrollbar.hide&&(a[0].style.opacity=0),f.extend(t,{trackSize:i,divider:n,moveDivider:s,dragSize:r}),t.$el[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)},getPointerPosition(e){return this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY},setDragPosition(e){const{scrollbar:t,rtlTranslate:c}=this,{$el:a,dragSize:i,trackSize:n,dragStartPos:s}=t;let r;r=(t.getPointerPosition(e)-a.offset()[this.isHorizontal()?"left":"top"]-(null!==s?s:i/2))/(n-i),r=Math.max(Math.min(r,1),0),c&&(r=1-r);const o=this.minTranslate()+(this.maxTranslate()-this.minTranslate())*r;this.updateProgress(o),this.setTranslate(o),this.updateActiveIndex(),this.updateSlidesClasses()},onDragStart(e){const t=this,c=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:s}=a;t.scrollbar.isTouched=!0,t.scrollbar.dragStartPos=e.target===s[0]||e.target===s?a.getPointerPosition(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),s.transition(100),a.setDragPosition(e),clearTimeout(t.scrollbar.dragTimeout),n.transition(0),c.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),t.emit("scrollbarDragStart",e)},onDragMove(e){const{scrollbar:t,$wrapperEl:c}=this,{$el:a,$dragEl:i}=t;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),c.transition(0),a.transition(0),i.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd(e){const t=this,c=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;t.scrollbar.isTouched&&(t.scrollbar.isTouched=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),c.hide&&(clearTimeout(t.scrollbar.dragTimeout),t.scrollbar.dragTimeout=f.nextTick(()=>{n.css("opacity",0),n.transition(400)},1e3)),t.emit("scrollbarDragEnd",e),c.snapOnRelease&&t.slideToClosest())},enableDraggable(){const e=this;if(!e.params.scrollbar.el)return;const{scrollbar:t,touchEventsTouch:c,touchEventsDesktop:a,params:i}=e,s=t.$el[0],r=!(!m.passiveListener||!i.passiveListeners)&&{passive:!1,capture:!1},o=!(!m.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};m.touch?(s.addEventListener(c.start,e.scrollbar.onDragStart,r),s.addEventListener(c.move,e.scrollbar.onDragMove,r),s.addEventListener(c.end,e.scrollbar.onDragEnd,o)):(s.addEventListener(a.start,e.scrollbar.onDragStart,r),n.addEventListener(a.move,e.scrollbar.onDragMove,r),n.addEventListener(a.end,e.scrollbar.onDragEnd,o))},disableDraggable(){const e=this;if(!e.params.scrollbar.el)return;const{scrollbar:t,touchEventsTouch:c,touchEventsDesktop:a,params:i}=e,s=t.$el[0],r=!(!m.passiveListener||!i.passiveListeners)&&{passive:!1,capture:!1},o=!(!m.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};m.touch?(s.removeEventListener(c.start,e.scrollbar.onDragStart,r),s.removeEventListener(c.move,e.scrollbar.onDragMove,r),s.removeEventListener(c.end,e.scrollbar.onDragEnd,o)):(s.removeEventListener(a.start,e.scrollbar.onDragStart,r),n.removeEventListener(a.move,e.scrollbar.onDragMove,r),n.removeEventListener(a.end,e.scrollbar.onDragEnd,o))},init(){const e=this;if(!e.params.scrollbar.el)return;const{scrollbar:t,$el:c}=e,a=e.params.scrollbar;let i=l(a.el);e.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===c.find(a.el).length&&(i=c.find(a.el));let n=i.find("."+e.params.scrollbar.dragClass);0===n.length&&(n=l(`
      `),i.append(n)),f.extend(t,{$el:i,el:i[0],$dragEl:n,dragEl:n[0]}),a.draggable&&t.enableDraggable()},destroy(){this.scrollbar.disableDraggable()}};const Y={setTransform(e,t){const{rtl:c}=this,a=l(e),i=c?-1:1,n=a.attr("data-swiper-parallax")||"0";let s=a.attr("data-swiper-parallax-x"),r=a.attr("data-swiper-parallax-y");const o=a.attr("data-swiper-parallax-scale"),u=a.attr("data-swiper-parallax-opacity");if(s||r?(s=s||"0",r=r||"0"):this.isHorizontal()?(s=n,r="0"):(r=n,s="0"),s=s.indexOf("%")>=0?parseInt(s,10)*t*i+"%":s*t*i+"px",r=r.indexOf("%")>=0?parseInt(r,10)*t+"%":r*t+"px",null!=u){const e=u-(u-1)*(1-Math.abs(t));a[0].style.opacity=e}if(null==o)a.transform(`translate3d(${s}, ${r}, 0px)`);else{const e=o-(o-1)*(1-Math.abs(t));a.transform(`translate3d(${s}, ${r}, 0px) scale(${e})`)}},setTranslate(){const e=this,{$el:t,slides:c,progress:a,snapGrid:i}=e;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,c)=>{e.parallax.setTransform(c,a)}),c.each((t,c)=>{let n=c.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(t/2)-a*(i.length-1)),n=Math.min(Math.max(n,-1),1),l(c).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,c)=>{e.parallax.setTransform(c,n)})})},setTransition(e=this.params.speed){const{$el:t}=this;t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,c)=>{const a=l(c);let i=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),a.transition(i)})}};const X={getDistanceBetweenTouches(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,c=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-c)**2)},onGestureStart(e){const t=this,c=t.params.zoom,a=t.zoom,{gesture:i}=a;if(a.fakeGestureTouched=!1,a.fakeGestureMoved=!1,!m.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;a.fakeGestureTouched=!0,i.scaleStart=X.getDistanceBetweenTouches(e)}i.$slideEl&&i.$slideEl.length||(i.$slideEl=l(e.target).closest("."+t.params.slideClass),0===i.$slideEl.length&&(i.$slideEl=t.slides.eq(t.activeIndex)),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+c.containerClass),i.maxRatio=i.$imageWrapEl.attr("data-swiper-zoom")||c.maxRatio,0!==i.$imageWrapEl.length)?(i.$imageEl&&i.$imageEl.transition(0),t.zoom.isScaling=!0):i.$imageEl=void 0},onGestureChange(e){const t=this.params.zoom,c=this.zoom,{gesture:a}=c;if(!m.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c.fakeGestureMoved=!0,a.scaleMove=X.getDistanceBetweenTouches(e)}a.$imageEl&&0!==a.$imageEl.length&&(c.scale=m.gestures?e.scale*c.currentScale:a.scaleMove/a.scaleStart*c.currentScale,c.scale>a.maxRatio&&(c.scale=a.maxRatio-1+(c.scale-a.maxRatio+1)**.5),c.scalei.touchesStart.x))return void(i.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(i.minY)===Math.floor(i.startY)&&i.touchesCurrent.yi.touchesStart.y))return void(i.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),i.isMoved=!0,i.currentX=i.touchesCurrent.x-i.touchesStart.x+i.startX,i.currentY=i.touchesCurrent.y-i.touchesStart.y+i.startY,i.currentXi.maxX&&(i.currentX=i.maxX-1+(i.currentX-i.maxX+1)**.8),i.currentYi.maxY&&(i.currentY=i.maxY-1+(i.currentY-i.maxY+1)**.8),n.prevPositionX||(n.prevPositionX=i.touchesCurrent.x),n.prevPositionY||(n.prevPositionY=i.touchesCurrent.y),n.prevTime||(n.prevTime=Date.now()),n.x=(i.touchesCurrent.x-n.prevPositionX)/(Date.now()-n.prevTime)/2,n.y=(i.touchesCurrent.y-n.prevPositionY)/(Date.now()-n.prevTime)/2,Math.abs(i.touchesCurrent.x-n.prevPositionX)<2&&(n.x=0),Math.abs(i.touchesCurrent.y-n.prevPositionY)<2&&(n.y=0),n.prevPositionX=i.touchesCurrent.x,n.prevPositionY=i.touchesCurrent.y,n.prevTime=Date.now(),a.$imageWrapEl.transform(`translate3d(${i.currentX}px, ${i.currentY}px,0)`)}},onTouchEnd(){const e=this.zoom,{gesture:t,image:c,velocity:a}=e;if(!t.$imageEl||0===t.$imageEl.length)return;if(!c.isTouched||!c.isMoved)return c.isTouched=!1,void(c.isMoved=!1);c.isTouched=!1,c.isMoved=!1;let i=300,n=300;const s=a.x*i,r=c.currentX+s,o=a.y*n,l=c.currentY+o;0!==a.x&&(i=Math.abs((r-c.currentX)/a.x)),0!==a.y&&(n=Math.abs((l-c.currentY)/a.y));const u=Math.max(i,n);c.currentX=r,c.currentY=l;const p=c.width*e.scale,f=c.height*e.scale;c.minX=Math.min(t.slideWidth/2-p/2,0),c.maxX=-c.minX,c.minY=Math.min(t.slideHeight/2-f/2,0),c.maxY=-c.minY,c.currentX=Math.max(Math.min(c.currentX,c.maxX),c.minX),c.currentY=Math.max(Math.min(c.currentY,c.maxY),c.minY),t.$imageWrapEl.transition(u).transform(`translate3d(${c.currentX}px, ${c.currentY}px,0)`)},onTransitionEnd(){const e=this.zoom,{gesture:t}=e;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl&&t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl&&t.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,e.currentScale=1,t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0)},toggle(e){const t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in(e){const t=this,c=t.zoom,a=t.params.zoom,{gesture:i,image:n}=c;if(i.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?i.$slideEl=t.$wrapperEl.children("."+t.params.slideActiveClass):i.$slideEl=t.slides.eq(t.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+a.containerClass)),!i.$imageEl||0===i.$imageEl.length)return;let s,r,o,l,u,p,f,m,d,h,v,g,z,b,C,M,H,V;i.$slideEl.addClass(""+a.zoomedSlideClass),void 0===n.touchesStart.x&&e?(s="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(s=n.touchesStart.x,r=n.touchesStart.y),c.scale=i.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,c.currentScale=i.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?(H=i.$slideEl[0].offsetWidth,V=i.$slideEl[0].offsetHeight,o=i.$slideEl.offset().left,l=i.$slideEl.offset().top,u=o+H/2-s,p=l+V/2-r,d=i.$imageEl[0].offsetWidth,h=i.$imageEl[0].offsetHeight,v=d*c.scale,g=h*c.scale,z=Math.min(H/2-v/2,0),b=Math.min(V/2-g/2,0),C=-z,M=-b,f=u*c.scale,m=p*c.scale,fC&&(f=C),mM&&(m=M)):(f=0,m=0),i.$imageWrapEl.transition(300).transform(`translate3d(${f}px, ${m}px,0)`),i.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${c.scale})`)},out(){const e=this,t=e.zoom,c=e.params.zoom,{gesture:a}=t;a.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?a.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):a.$slideEl=e.slides.eq(e.activeIndex),a.$imageEl=a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),a.$imageWrapEl=a.$imageEl.parent("."+c.containerClass)),a.$imageEl&&0!==a.$imageEl.length&&(t.scale=1,t.currentScale=1,a.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),a.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),a.$slideEl.removeClass(""+c.zoomedSlideClass),a.$slideEl=void 0)},enable(){const e=this,t=e.zoom;if(t.enabled)return;t.enabled=!0;const c=!("touchstart"!==e.touchEvents.start||!m.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},a=!m.passiveListener||{passive:!1,capture:!0},i="."+e.params.slideClass;m.gestures?(e.$wrapperEl.on("gesturestart",i,t.onGestureStart,c),e.$wrapperEl.on("gesturechange",i,t.onGestureChange,c),e.$wrapperEl.on("gestureend",i,t.onGestureEnd,c)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,i,t.onGestureStart,c),e.$wrapperEl.on(e.touchEvents.move,i,t.onGestureChange,a),e.$wrapperEl.on(e.touchEvents.end,i,t.onGestureEnd,c),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,i,t.onGestureEnd,c)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,a)},disable(){const e=this,t=e.zoom;if(!t.enabled)return;e.zoom.enabled=!1;const c=!("touchstart"!==e.touchEvents.start||!m.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},a=!m.passiveListener||{passive:!1,capture:!0},i="."+e.params.slideClass;m.gestures?(e.$wrapperEl.off("gesturestart",i,t.onGestureStart,c),e.$wrapperEl.off("gesturechange",i,t.onGestureChange,c),e.$wrapperEl.off("gestureend",i,t.onGestureEnd,c)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,i,t.onGestureStart,c),e.$wrapperEl.off(e.touchEvents.move,i,t.onGestureChange,a),e.$wrapperEl.off(e.touchEvents.end,i,t.onGestureEnd,c),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,i,t.onGestureEnd,c)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,a)}};const J={loadInSlide(e,t=!0){const c=this,a=c.params.lazy;if(void 0===e)return;if(0===c.slides.length)return;const i=c.virtual&&c.params.virtual.enabled?c.$wrapperEl.children(`.${c.params.slideClass}[data-swiper-slide-index="${e}"]`):c.slides.eq(e);let n=i.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!i.hasClass(a.elementClass)||i.hasClass(a.loadedClass)||i.hasClass(a.loadingClass)||(n=n.add(i[0])),0!==n.length&&n.each((e,n)=>{const s=l(n);s.addClass(a.loadingClass);const r=s.attr("data-background"),o=s.attr("data-src"),u=s.attr("data-srcset"),p=s.attr("data-sizes"),f=s.parent("picture");c.loadImage(s[0],o||r,u,p,!1,()=>{if(null!=c&&c&&(!c||c.params)&&!c.destroyed){if(r?(s.css("background-image",`url("${r}")`),s.removeAttr("data-background")):(u&&(s.attr("srcset",u),s.removeAttr("data-srcset")),p&&(s.attr("sizes",p),s.removeAttr("data-sizes")),f.length&&f.children("source").each((e,t)=>{const c=l(t);c.attr("data-srcset")&&(c.attr("srcset",c.attr("data-srcset")),c.removeAttr("data-srcset"))}),o&&(s.attr("src",o),s.removeAttr("data-src"))),s.addClass(a.loadedClass).removeClass(a.loadingClass),i.find("."+a.preloaderClass).remove(),c.params.loop&&t){const e=i.attr("data-swiper-slide-index");if(i.hasClass(c.params.slideDuplicateClass)){const t=c.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${c.params.slideDuplicateClass})`);c.lazy.loadInSlide(t.index(),!1)}else{const t=c.$wrapperEl.children(`.${c.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`);c.lazy.loadInSlide(t.index(),!1)}}c.emit("lazyImageReady",i[0],s[0]),c.params.autoHeight&&c.updateAutoHeight()}}),c.emit("lazyImageLoad",i[0],s[0])})},load(){const e=this,{$wrapperEl:t,params:c,slides:a,activeIndex:i}=e,n=e.virtual&&c.virtual.enabled,s=c.lazy;let r=c.slidesPerView;function o(e){if(n){if(t.children(`.${c.slideClass}[data-swiper-slide-index="${e}"]`).length)return!0}else if(a[e])return!0;return!1}function u(e){return n?l(e).attr("data-swiper-slide-index"):l(e).index()}if("auto"===r&&(r=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+c.slideVisibleClass).each((t,c)=>{const a=n?l(c).attr("data-swiper-slide-index"):l(c).index();e.lazy.loadInSlide(a)});else if(r>1)for(let t=i;t1||s.loadPrevNextAmount&&s.loadPrevNextAmount>1){const t=s.loadPrevNextAmount,c=r,n=Math.min(i+c+Math.max(t,c),a.length),l=Math.max(i-Math.max(c,t),0);for(let t=i+r;t0&&e.lazy.loadInSlide(u(a));const i=t.children("."+c.slidePrevClass);i.length>0&&e.lazy.loadInSlide(u(i))}}};const Q={LinearSpline:function(e,t){const c=function(){let e,t,c;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)c=e+t>>1,a[c]<=i?t=c:e=c;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=c(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this},getInterpolateFunction(e){const t=this;t.controller.spline||(t.controller.spline=t.params.loop?new Q.LinearSpline(t.slidesGrid,e.slidesGrid):new Q.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate(e,t){const c=this,a=c.controller.control;let i,n;function s(e){const t=c.rtlTranslate?-c.translate:c.translate;"slide"===c.params.controller.by&&(c.controller.getInterpolateFunction(e),n=-c.controller.spline.interpolate(-t)),n&&"container"!==c.params.controller.by||(i=(e.maxTranslate()-e.minTranslate())/(c.maxTranslate()-c.minTranslate()),n=(t-c.minTranslate())*i+e.minTranslate()),c.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,c),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{t.updateAutoHeight()}),t.$wrapperEl.transitionEnd(()=>{a&&(t.params.loop&&"slide"===c.params.controller.by&&t.loopFix(),t.transitionEnd())}))}if(Array.isArray(a))for(i=0;i(e.attr("tabIndex","0"),e),makeElNotFocusable:e=>(e.attr("tabIndex","-1"),e),addElRole:(e,t)=>(e.attr("role",t),e),addElLabel:(e,t)=>(e.attr("aria-label",t),e),disableEl:e=>(e.attr("aria-disabled",!0),e),enableEl:e=>(e.attr("aria-disabled",!1),e),onEnterKey(e){const t=this,c=t.params.a11y;if(13!==e.keyCode)return;const a=l(e.target);t.navigation&&t.navigation.$nextEl&&a.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?t.a11y.notify(c.lastSlideMessage):t.a11y.notify(c.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&a.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?t.a11y.notify(c.firstSlideMessage):t.a11y.notify(c.prevSlideMessage)),t.pagination&&a.is("."+t.params.pagination.bulletClass)&&a[0].click()},notify(e){const t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation(){const e=this;if(e.params.loop||!e.navigation)return;const{$nextEl:t,$prevEl:c}=e.navigation;c&&c.length>0&&(e.isBeginning?(e.a11y.disableEl(c),e.a11y.makeElNotFocusable(c)):(e.a11y.enableEl(c),e.a11y.makeElFocusable(c))),t&&t.length>0&&(e.isEnd?(e.a11y.disableEl(t),e.a11y.makeElNotFocusable(t)):(e.a11y.enableEl(t),e.a11y.makeElFocusable(t)))},updatePagination(){const e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((c,a)=>{const i=l(a);e.a11y.makeElFocusable(i),e.a11y.addElRole(i,"button"),e.a11y.addElLabel(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,i.index()+1))})},init(){const e=this;e.$el.append(e.a11y.liveRegion);const t=e.params.a11y;let c,a;e.navigation&&e.navigation.$nextEl&&(c=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(a=e.navigation.$prevEl),c&&(e.a11y.makeElFocusable(c),e.a11y.addElRole(c,"button"),e.a11y.addElLabel(c,t.nextSlideMessage),c.on("keydown",e.a11y.onEnterKey)),a&&(e.a11y.makeElFocusable(a),e.a11y.addElRole(a,"button"),e.a11y.addElLabel(a,t.prevSlideMessage),a.on("keydown",e.a11y.onEnterKey)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown","."+e.params.pagination.bulletClass,e.a11y.onEnterKey)},destroy(){const e=this;let t,c;e.a11y.liveRegion&&e.a11y.liveRegion.length>0&&e.a11y.liveRegion.remove(),e.navigation&&e.navigation.$nextEl&&(t=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(c=e.navigation.$prevEl),t&&t.off("keydown",e.a11y.onEnterKey),c&&c.off("keydown",e.a11y.onEnterKey),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.off("keydown","."+e.params.pagination.bulletClass,e.a11y.onEnterKey)}};const te={init(){const e=this;if(!e.params.history)return;if(!r.history||!r.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);const t=e.history;t.initialized=!0,t.paths=te.getPathValues(),(t.paths.key||t.paths.value)&&(t.scrollToSlide(0,t.paths.value,e.params.runCallbacksOnInit),e.params.history.replaceState||r.addEventListener("popstate",e.history.setHistoryPopState))},destroy(){const e=this;e.params.history.replaceState||r.removeEventListener("popstate",e.history.setHistoryPopState)},setHistoryPopState(){this.history.paths=te.getPathValues(),this.history.scrollToSlide(this.params.speed,this.history.paths.value,!1)},getPathValues(){const e=r.location.pathname.slice(1).split("/").filter(e=>""!==e),t=e.length;return{key:e[t-2],value:e[t-1]}},setHistory(e,t){if(!this.history.initialized||!this.params.history.enabled)return;const c=this.slides.eq(t);let a=te.slugify(c.attr("data-history"));r.location.pathname.includes(e)||(a=`${e}/${a}`);const i=r.history.state;i&&i.value===a||(this.params.history.replaceState?r.history.replaceState({value:a},null,a):r.history.pushState({value:a},null,a))},slugify:e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),scrollToSlide(e,t,c){const a=this;if(t)for(let i=0,n=a.slides.length;i{e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")),e.params.cssMode&&e.autoplay.running&&e.autoplay.run()},c)},start(){return void 0===this.autoplay.timeout&&(!this.autoplay.running&&(this.autoplay.running=!0,this.emit("autoplayStart"),this.autoplay.run(),!0))},stop(){const e=this;return!!e.autoplay.running&&(void 0!==e.autoplay.timeout&&(e.autoplay.timeout&&(clearTimeout(e.autoplay.timeout),e.autoplay.timeout=void 0),e.autoplay.running=!1,e.emit("autoplayStop"),!0))},pause(e){const t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?(t.$wrapperEl[0].addEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].addEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd)):(t.autoplay.paused=!1,t.autoplay.run())))}};const ie={setTranslate(){const e=this,{slides:t}=e;for(let c=0;c{if(e)return;if(!t||t.destroyed)return;e=!0,t.animating=!1;const c=["webkitTransitionEnd","transitionend"];for(let e=0;e
'),t.append(p)),p.css({height:a+"px"})):(p=e.find(".swiper-cube-shadow"),0===p.length&&(p=l('
'),e.append(p))));for(let e=0;e-1&&(f=90*a+90*m,n&&(f=90*-a-90*m)),t.transform(g),r.slideShadows){let e=o?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),c=o?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=l(`
`),t.append(e)),0===c.length&&(c=l(`
`),t.append(c)),e.length&&(e[0].style.opacity=Math.max(-m,0)),c.length&&(c[0].style.opacity=Math.max(m,0))}}if(t.css({"-webkit-transform-origin":`50% 50% -${s/2}px`,"-moz-transform-origin":`50% 50% -${s/2}px`,"-ms-transform-origin":`50% 50% -${s/2}px`,"transform-origin":`50% 50% -${s/2}px`}),r.shadow)if(o)p.transform(`translate3d(0px, ${a/2+r.shadowOffset}px, ${-a/2}px) rotateX(90deg) rotateZ(0deg) scale(${r.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),c=r.shadowScale,a=r.shadowScale/t,n=r.shadowOffset;p.transform(`scale3d(${c}, 1, ${a}) translate3d(0px, ${i/2+n}px, ${-i/2/a}px) rotateX(-90deg)`)}const m=_.isSafari||_.isWebView?-s/2:0;t.transform(`translate3d(0px,0,${m}px) rotateX(${this.isHorizontal()?0:f}deg) rotateY(${this.isHorizontal()?-f:0}deg)`)},setTransition(e){const{$el:t,slides:c}=this;c.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}};const se={setTranslate(){const e=this,{slides:t,rtlTranslate:c}=e;for(let a=0;a
`),i.append(t)),0===c.length&&(c=l(`
`),i.append(c)),t.length&&(t[0].style.opacity=Math.max(-n,0)),c.length&&(c[0].style.opacity=Math.max(n,0))}i.transform(`translate3d(${o}px, ${u}px, 0px) rotateX(${r}deg) rotateY(${s}deg)`)}},setTransition(e){const t=this,{slides:c,activeIndex:a,$wrapperEl:i}=t;if(c.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){let e=!1;c.eq(a).transitionEnd((function(){if(e)return;if(!t||t.destroyed)return;e=!0,t.animating=!1;const c=["webkitTransitionEnd","transitionend"];for(let e=0;e
`),t.append(e)),0===c.length&&(c=l(`
`),t.append(c)),e.length&&(e[0].style.opacity=r>0?r:0),c.length&&(c[0].style.opacity=-r>0?-r:0)}}if(m.pointerEvents||m.prefixedPointerEvents){a[0].style.perspectiveOrigin=o+"px 50%"}},setTransition(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}};const oe={init(){const e=this,{thumbs:t}=e.params,c=e.constructor;t.swiper instanceof c?(e.thumbs.swiper=t.swiper,f.extend(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),f.extend(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):f.isObject(t.swiper)&&(e.thumbs.swiper=new c(f.extend({},t.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),e.thumbs.swiperCreated=!0),e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",e.thumbs.onThumbClick)},onThumbClick(){const e=this,t=e.thumbs.swiper;if(!t)return;const c=t.clickedIndex,a=t.clickedSlide;if(a&&l(a).hasClass(e.params.thumbs.slideThumbActiveClass))return;if(null==c)return;let i;if(i=t.params.loop?parseInt(l(t.clickedSlide).attr("data-swiper-slide-index"),10):c,e.params.loop){let t=e.activeIndex;e.slides.eq(t).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,t=e.activeIndex);const c=e.slides.eq(t).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=e.slides.eq(t).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===c?a:void 0===a?c:a-tt.previousIndex?"next":"prev"}else s=t.realIndex,r=s>t.previousIndex?"next":"prev";n&&(s+="next"===r?i:-1*i),c.visibleSlidesIndexes&&c.visibleSlidesIndexes.indexOf(s)<0&&(c.params.centeredSlides?s=s>o?s-Math.floor(a/2)+1:s+Math.floor(a/2)-1:s>o&&(s=s-a+1),c.slideTo(s,e?0:void 0))}let s=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(s=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(s=1),s=Math.floor(s),c.slides.removeClass(r),c.params.loop||c.params.virtual&&c.params.virtual.enabled)for(let e=0;ee,formatFractionTotal:e=>e,bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create(){f.extend(this,{pagination:{init:K.init.bind(this),render:K.render.bind(this),update:K.update.bind(this),destroy:K.destroy.bind(this),dynamicBulletIndex:0}})},on:{init(){this.pagination.init(),this.pagination.render(),this.pagination.update()},activeIndexChange(){const e=this;(e.params.loop||void 0===e.snapIndex)&&e.pagination.update()},snapIndexChange(){const e=this;e.params.loop||e.pagination.update()},slidesLengthChange(){const e=this;e.params.loop&&(e.pagination.render(),e.pagination.update())},snapGridLengthChange(){const e=this;e.params.loop||(e.pagination.render(),e.pagination.update())},destroy(){this.pagination.destroy()},click(e){const t=this;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&t.pagination.$el.length>0&&!l(e.target).hasClass(t.params.pagination.bulletClass)){!0===t.pagination.$el.hasClass(t.params.pagination.hiddenClass)?t.emit("paginationShow",t):t.emit("paginationHide",t),t.pagination.$el.toggleClass(t.params.pagination.hiddenClass)}}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create(){f.extend(this,{scrollbar:{init:Z.init.bind(this),destroy:Z.destroy.bind(this),updateSize:Z.updateSize.bind(this),setTranslate:Z.setTranslate.bind(this),setTransition:Z.setTransition.bind(this),enableDraggable:Z.enableDraggable.bind(this),disableDraggable:Z.disableDraggable.bind(this),setDragPosition:Z.setDragPosition.bind(this),getPointerPosition:Z.getPointerPosition.bind(this),onDragStart:Z.onDragStart.bind(this),onDragMove:Z.onDragMove.bind(this),onDragEnd:Z.onDragEnd.bind(this),isTouched:!1,timeout:null,dragTimeout:null}})},on:{init(){this.scrollbar.init(),this.scrollbar.updateSize(),this.scrollbar.setTranslate()},update(){this.scrollbar.updateSize()},resize(){this.scrollbar.updateSize()},observerUpdate(){this.scrollbar.updateSize()},setTranslate(){this.scrollbar.setTranslate()},setTransition(e){this.scrollbar.setTransition(e)},destroy(){this.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create(){f.extend(this,{parallax:{setTransform:Y.setTransform.bind(this),setTranslate:Y.setTranslate.bind(this),setTransition:Y.setTransition.bind(this)}})},on:{beforeInit(){this.params.parallax.enabled&&(this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},init(){this.params.parallax.enabled&&this.parallax.setTranslate()},setTranslate(){this.params.parallax.enabled&&this.parallax.setTranslate()},setTransition(e){this.params.parallax.enabled&&this.parallax.setTransition(e)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create(){const e=this,t={enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}};"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(c=>{t[c]=X[c].bind(e)}),f.extend(e,{zoom:t});let c=1;Object.defineProperty(e.zoom,"scale",{get:()=>c,set(t){if(c!==t){const c=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,a=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",t,c,a)}c=t}})},on:{init(){const e=this;e.params.zoom.enabled&&e.zoom.enable()},destroy(){this.zoom.disable()},touchStart(e){this.zoom.enabled&&this.zoom.onTouchStart(e)},touchEnd(e){this.zoom.enabled&&this.zoom.onTouchEnd(e)},doubleTap(e){const t=this;t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&t.zoom.toggle(e)},transitionEnd(){const e=this;e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange(){const e=this;e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create(){f.extend(this,{lazy:{initialImageLoaded:!1,load:J.load.bind(this),loadInSlide:J.loadInSlide.bind(this)}})},on:{beforeInit(){const e=this;e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)},init(){const e=this;e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&e.lazy.load()},scroll(){const e=this;e.params.freeMode&&!e.params.freeModeSticky&&e.lazy.load()},resize(){const e=this;e.params.lazy.enabled&&e.lazy.load()},scrollbarDragMove(){const e=this;e.params.lazy.enabled&&e.lazy.load()},transitionStart(){const e=this;e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd(){const e=this;e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&e.lazy.load()},slideChange(){const e=this;e.params.lazy.enabled&&e.params.cssMode&&e.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create(){f.extend(this,{controller:{control:this.params.controller.control,getInterpolateFunction:Q.getInterpolateFunction.bind(this),setTranslate:Q.setTranslate.bind(this),setTransition:Q.setTransition.bind(this)}})},on:{update(){const e=this;e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},resize(){const e=this;e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},observerUpdate(){const e=this;e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},setTranslate(e,t){this.controller.control&&this.controller.setTranslate(e,t)},setTransition(e,t){this.controller.control&&this.controller.setTransition(e,t)}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}"}},create(){const e=this;f.extend(e,{a11y:{liveRegion:l(``)}}),Object.keys(ee).forEach(t=>{e.a11y[t]=ee[t].bind(e)})},on:{init(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create(){f.extend(this,{history:{init:te.init.bind(this),setHistory:te.setHistory.bind(this),setHistoryPopState:te.setHistoryPopState.bind(this),scrollToSlide:te.scrollToSlide.bind(this),destroy:te.destroy.bind(this)}})},on:{init(){const e=this;e.params.history.enabled&&e.history.init()},destroy(){const e=this;e.params.history.enabled&&e.history.destroy()},transitionEnd(){const e=this;e.history.initialized&&e.history.setHistory(e.params.history.key,e.activeIndex)},slideChange(){const e=this;e.history.initialized&&e.params.cssMode&&e.history.setHistory(e.params.history.key,e.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create(){f.extend(this,{hashNavigation:{initialized:!1,init:ce.init.bind(this),destroy:ce.destroy.bind(this),setHash:ce.setHash.bind(this),onHashCange:ce.onHashCange.bind(this)}})},on:{init(){const e=this;e.params.hashNavigation.enabled&&e.hashNavigation.init()},destroy(){const e=this;e.params.hashNavigation.enabled&&e.hashNavigation.destroy()},transitionEnd(){const e=this;e.hashNavigation.initialized&&e.hashNavigation.setHash()},slideChange(){const e=this;e.hashNavigation.initialized&&e.params.cssMode&&e.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create(){const e=this;f.extend(e,{autoplay:{running:!1,paused:!1,run:ae.run.bind(e),start:ae.start.bind(e),stop:ae.stop.bind(e),pause:ae.pause.bind(e),onVisibilityChange(){"hidden"===document.visibilityState&&e.autoplay.running&&e.autoplay.pause(),"visible"===document.visibilityState&&e.autoplay.paused&&(e.autoplay.run(),e.autoplay.paused=!1)},onTransitionEnd(t){e&&!e.destroyed&&e.$wrapperEl&&t.target===this&&(e.$wrapperEl[0].removeEventListener("transitionend",e.autoplay.onTransitionEnd),e.$wrapperEl[0].removeEventListener("webkitTransitionEnd",e.autoplay.onTransitionEnd),e.autoplay.paused=!1,e.autoplay.running?e.autoplay.run():e.autoplay.stop())}}})},on:{init(){const e=this;e.params.autoplay.enabled&&(e.autoplay.start(),document.addEventListener("visibilitychange",e.autoplay.onVisibilityChange))},beforeTransitionStart(e,t){const c=this;c.autoplay.running&&(t||!c.params.autoplay.disableOnInteraction?c.autoplay.pause(e):c.autoplay.stop())},sliderFirstMove(){const e=this;e.autoplay.running&&(e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause())},touchEnd(){const e=this;e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&e.autoplay.run()},destroy(){const e=this;e.autoplay.running&&e.autoplay.stop(),document.removeEventListener("visibilitychange",e.autoplay.onVisibilityChange)}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create(){f.extend(this,{fadeEffect:{setTranslate:ie.setTranslate.bind(this),setTransition:ie.setTransition.bind(this)}})},on:{beforeInit(){if("fade"!==this.params.effect)return;this.classNames.push(this.params.containerModifierClass+"fade");const e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};f.extend(this.params,e),f.extend(this.originalParams,e)},setTranslate(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create(){f.extend(this,{cubeEffect:{setTranslate:ne.setTranslate.bind(this),setTransition:ne.setTransition.bind(this)}})},on:{beforeInit(){if("cube"!==this.params.effect)return;this.classNames.push(this.params.containerModifierClass+"cube"),this.classNames.push(this.params.containerModifierClass+"3d");const e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};f.extend(this.params,e),f.extend(this.originalParams,e)},setTranslate(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create(){f.extend(this,{flipEffect:{setTranslate:se.setTranslate.bind(this),setTransition:se.setTransition.bind(this)}})},on:{beforeInit(){if("flip"!==this.params.effect)return;this.classNames.push(this.params.containerModifierClass+"flip"),this.classNames.push(this.params.containerModifierClass+"3d");const e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};f.extend(this.params,e),f.extend(this.originalParams,e)},setTranslate(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}},create(){f.extend(this,{coverflowEffect:{setTranslate:re.setTranslate.bind(this),setTransition:re.setTransition.bind(this)}})},on:{beforeInit(){"coverflow"===this.params.effect&&(this.classNames.push(this.params.containerModifierClass+"coverflow"),this.classNames.push(this.params.containerModifierClass+"3d"),this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},setTranslate(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}},{name:"thumbs",params:{thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create(){f.extend(this,{thumbs:{swiper:null,init:oe.init.bind(this),update:oe.update.bind(this),onThumbClick:oe.onThumbClick.bind(this)}})},on:{beforeInit(){const{thumbs:e}=this.params;e&&e.swiper&&(this.thumbs.init(),this.thumbs.update(!0))},slideChange(){this.thumbs.swiper&&this.thumbs.update()},update(){this.thumbs.swiper&&this.thumbs.update()},resize(){this.thumbs.swiper&&this.thumbs.update()},observerUpdate(){this.thumbs.swiper&&this.thumbs.update()},setTransition(e){const t=this.thumbs.swiper;t&&t.setTransition(e)},beforeDestroy(){const e=this.thumbs.swiper;e&&this.thumbs.swiperCreated&&e&&e.destroy()}}}];void 0===T.use&&(T.use=T.Class.use,T.installModule=T.Class.installModule),T.use(le);t.default=T}]); \ No newline at end of file + */function i(e,t){for(var c in t)e[c]=t[c];return e}var n=/[!'()*]/g,s=function(e){return"%"+e.charCodeAt(0).toString(16)},r=/%2C/g,o=function(e){return encodeURIComponent(e).replace(n,s).replace(r,",")};function l(e){try{return decodeURIComponent(e)}catch(e){0}return e}var u=function(e){return null==e||"object"==typeof e?e:String(e)};function p(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var c=e.replace(/\+/g," ").split("="),a=l(c.shift()),i=c.length>0?l(c.join("=")):null;void 0===t[a]?t[a]=i:Array.isArray(t[a])?t[a].push(i):t[a]=[t[a],i]})),t):t}function f(e){var t=e?Object.keys(e).map((function(t){var c=e[t];if(void 0===c)return"";if(null===c)return o(t);if(Array.isArray(c)){var a=[];return c.forEach((function(e){void 0!==e&&(null===e?a.push(o(t)):a.push(o(t)+"="+o(e)))})),a.join("&")}return o(t)+"="+o(c)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var m=/\/?$/;function d(e,t,c,a){var i=a&&a.options.stringifyQuery,n=t.query||{};try{n=h(n)}catch(e){}var s={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:n,params:t.params||{},fullPath:z(t,i),matched:e?g(e):[]};return c&&(s.redirectedFrom=z(c,i)),Object.freeze(s)}function h(e){if(Array.isArray(e))return e.map(h);if(e&&"object"==typeof e){var t={};for(var c in e)t[c]=h(e[c]);return t}return e}var v=d(null,{path:"/"});function g(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function z(e,t){var c=e.path,a=e.query;void 0===a&&(a={});var i=e.hash;return void 0===i&&(i=""),(c||"/")+(t||f)(a)+i}function b(e,t,c){return t===v?e===t:!!t&&(e.path&&t.path?e.path.replace(m,"")===t.path.replace(m,"")&&(c||e.hash===t.hash&&C(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(c||e.hash===t.hash&&C(e.query,t.query)&&C(e.params,t.params))))}function C(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var c=Object.keys(e).sort(),a=Object.keys(t).sort();return c.length===a.length&&c.every((function(c,i){var n=e[c];if(a[i]!==c)return!1;var s=t[c];return null==n||null==s?n===s:"object"==typeof n&&"object"==typeof s?C(n,s):String(n)===String(s)}))}function M(e){for(var t=0;t=0&&(t=e.slice(a),e=e.slice(0,a));var i=e.indexOf("?");return i>=0&&(c=e.slice(i+1),e=e.slice(0,i)),{path:e,query:c,hash:t}}(n.path||""),f=t&&t.path||"/",m=l.path?y(l.path,f,c||n.append):f,d=function(e,t,c){void 0===t&&(t={});var a,i=c||p;try{a=i(e||"")}catch(e){a={}}for(var n in t){var s=t[n];a[n]=Array.isArray(s)?s.map(u):u(s)}return a}(l.query,n.query,a&&a.options.parseQuery),h=n.hash||l.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:m,query:d,hash:h}}var G,W=function(){},U={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,c=this.$router,a=this.$route,n=c.resolve(this.to,a,this.append),s=n.location,r=n.route,o=n.href,l={},u=c.options.linkActiveClass,p=c.options.linkExactActiveClass,f=null==u?"router-link-active":u,h=null==p?"router-link-exact-active":p,v=null==this.activeClass?f:this.activeClass,g=null==this.exactActiveClass?h:this.exactActiveClass,z=r.redirectedFrom?d(null,q(r.redirectedFrom),null,c):r;l[g]=b(a,z,this.exactPath),l[v]=this.exact||this.exactPath?l[g]:function(e,t){return 0===e.path.replace(m,"/").indexOf(t.path.replace(m,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var c in t)if(!(c in e))return!1;return!0}(e.query,t.query)}(a,z);var C=l[g]?this.ariaCurrentValue:null,M=function(e){K(e)&&(t.replace?c.replace(s,W):c.push(s,W))},H={click:K};Array.isArray(this.event)?this.event.forEach((function(e){H[e]=M})):H[this.event]=M;var V={class:l},y=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:o,route:r,navigate:M,isActive:l[v],isExactActive:l[g]});if(y){if(1===y.length)return y[0];if(y.length>1||!y.length)return 0===y.length?e():e("span",{},y)}if("a"===this.tag)V.on=H,V.attrs={href:o,"aria-current":C};else{var L=function e(t){var c;if(t)for(var a=0;a-1&&(r.params[f]=c.params[f]);return r.path=$(u.path,r.params),o(u,r,s)}if(r.path){r.params={};for(var m=0;m-1}function Le(e,t){return ye(e)&&e._isRouter&&(null==t||e.type===t)}function Se(e,t,c){var a=function(i){i>=e.length?c():e[i]?t(e[i],(function(){a(i+1)})):a(i+1)};a(0)}function xe(e){return function(t,c,a){var i=!1,n=0,s=null;Pe(e,(function(e,t,c,r){if("function"==typeof e&&void 0===e.cid){i=!0,n++;var o,l=Ae((function(t){var i;((i=t).__esModule||ke&&"Module"===i[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:G.extend(t),c.components[r]=t,--n<=0&&a()})),u=Ae((function(e){var t="Failed to resolve async component "+r+": "+e;s||(s=ye(e)?e:new Error(t),a(s))}));try{o=e(l,u)}catch(e){u(e)}if(o)if("function"==typeof o.then)o.then(l,u);else{var p=o.component;p&&"function"==typeof p.then&&p.then(l,u)}}})),i||a()}}function Pe(e,t){return we(e.map((function(e){return Object.keys(e.components).map((function(c){return t(e.components[c],e.instances[c],e,c)}))})))}function we(e){return Array.prototype.concat.apply([],e)}var ke="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ae(e){var t=!1;return function(){for(var c=[],a=arguments.length;a--;)c[a]=arguments[a];if(!t)return t=!0,e.apply(this,c)}}var Ee=function(e,t){this.router=e,this.base=function(e){if(!e)if(Z){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=v,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ne(e,t,c,a){var i=Pe(e,(function(e,a,i,n){var s=function(e,t){"function"!=typeof e&&(e=G.extend(e));return e.options[t]}(e,t);if(s)return Array.isArray(s)?s.map((function(e){return c(e,a,i,n)})):c(s,a,i,n)}));return we(a?i.reverse():i)}function Te(e,t){if(t)return function(){return e.apply(t,arguments)}}Ee.prototype.listen=function(e){this.cb=e},Ee.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Ee.prototype.onError=function(e){this.errorCbs.push(e)},Ee.prototype.transitionTo=function(e,t,c){var a,i=this;try{a=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var n=this.current;this.confirmTransition(a,(function(){i.updateRoute(a),t&&t(a),i.ensureURL(),i.router.afterHooks.forEach((function(e){e&&e(a,n)})),i.ready||(i.ready=!0,i.readyCbs.forEach((function(e){e(a)})))}),(function(e){c&&c(e),e&&!i.ready&&(Le(e,be.redirected)&&n===v||(i.ready=!0,i.readyErrorCbs.forEach((function(t){t(e)}))))}))},Ee.prototype.confirmTransition=function(e,t,c){var a=this,i=this.current;this.pending=e;var n,s,r=function(e){!Le(e)&&ye(e)&&(a.errorCbs.length?a.errorCbs.forEach((function(t){t(e)})):console.error(e)),c&&c(e)},o=e.matched.length-1,l=i.matched.length-1;if(b(e,i)&&o===l&&e.matched[o]===i.matched[l])return this.ensureURL(),e.hash&&re(this.router,i,e,!1),r(((s=He(n=i,e,be.duplicated,'Avoided redundant navigation to current location: "'+n.fullPath+'".')).name="NavigationDuplicated",s));var u=function(e,t){var c,a=Math.max(e.length,t.length);for(c=0;c0)){var t=this.router,c=t.options.scrollBehavior,a=ve&&c;a&&this.listeners.push(se());var i=function(){var c=e.current,i=Re(e.base);e.current===v&&i===e._startLocation||e.transitionTo(i,(function(e){a&&re(t,e,c,!0)}))};window.addEventListener("popstate",i),this.listeners.push((function(){window.removeEventListener("popstate",i)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){ge(L(a.base+e.fullPath)),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.replace=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){ze(L(a.base+e.fullPath)),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.ensureURL=function(e){if(Re(this.base)!==this.current.fullPath){var t=L(this.base+this.current.fullPath);e?ge(t):ze(t)}},t.prototype.getCurrentLocation=function(){return Re(this.base)},t}(Ee);function Re(e){var t=window.location.pathname,c=t.toLowerCase(),a=e.toLowerCase();return!e||c!==a&&0!==c.indexOf(L(a+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var _e=function(e){function t(t,c,a){e.call(this,t,c),a&&function(e){var t=Re(e);if(!/^\/#/.test(t))return window.location.replace(L(e+"/#"+t)),!0}(this.base)||Oe()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,c=ve&&t;c&&this.listeners.push(se());var a=function(){var t=e.current;Oe()&&e.transitionTo(Ie(),(function(a){c&&re(e.router,a,t,!0),ve||Be(a.fullPath)}))},i=ve?"popstate":"hashchange";window.addEventListener(i,a),this.listeners.push((function(){window.removeEventListener(i,a)}))}},t.prototype.push=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){Fe(e.fullPath),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.replace=function(e,t,c){var a=this,i=this.current;this.transitionTo(e,(function(e){Be(e.fullPath),re(a.router,e,i,!1),t&&t(e)}),c)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Ie()!==t&&(e?Fe(t):Be(t))},t.prototype.getCurrentLocation=function(){return Ie()},t}(Ee);function Oe(){var e=Ie();return"/"===e.charAt(0)||(Be("/"+e),!1)}function Ie(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function je(e){var t=window.location.href,c=t.indexOf("#");return(c>=0?t.slice(0,c):t)+"#"+e}function Fe(e){ve?ge(je(e)):window.location.hash=e}function Be(e){ve?ze(je(e)):window.location.replace(je(e))}var $e=function(e){function t(t,c){e.call(this,t,c),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,c){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index+1).concat(e),a.index++,t&&t(e)}),c)},t.prototype.replace=function(e,t,c){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index).concat(e),t&&t(e)}),c)},t.prototype.go=function(e){var t=this,c=this.index+e;if(!(c<0||c>=this.stack.length)){var a=this.stack[c];this.confirmTransition(a,(function(){var e=t.current;t.index=c,t.updateRoute(a),t.router.afterHooks.forEach((function(t){t&&t(a,e)}))}),(function(e){Le(e,be.duplicated)&&(t.index=c)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Ee),qe=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=J(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ve&&!1!==e.fallback,this.fallback&&(t="hash"),Z||(t="abstract"),this.mode=t,t){case"history":this.history=new De(this,e.base);break;case"hash":this.history=new _e(this,e.base,this.fallback);break;case"abstract":this.history=new $e(this,e.base);break;default:0}},Ge={currentRoute:{configurable:!0}};qe.prototype.match=function(e,t,c){return this.matcher.match(e,t,c)},Ge.currentRoute.get=function(){return this.history&&this.history.current},qe.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var c=t.apps.indexOf(e);c>-1&&t.apps.splice(c,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var c=this.history;if(c instanceof De||c instanceof _e){var a=function(e){c.setupListeners(),function(e){var a=c.current,i=t.options.scrollBehavior;ve&&i&&"fullPath"in e&&re(t,e,a,!1)}(e)};c.transitionTo(c.getCurrentLocation(),a,a)}c.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},qe.prototype.beforeEach=function(e){return Ue(this.beforeHooks,e)},qe.prototype.beforeResolve=function(e){return Ue(this.resolveHooks,e)},qe.prototype.afterEach=function(e){return Ue(this.afterHooks,e)},qe.prototype.onReady=function(e,t){this.history.onReady(e,t)},qe.prototype.onError=function(e){this.history.onError(e)},qe.prototype.push=function(e,t,c){var a=this;if(!t&&!c&&"undefined"!=typeof Promise)return new Promise((function(t,c){a.history.push(e,t,c)}));this.history.push(e,t,c)},qe.prototype.replace=function(e,t,c){var a=this;if(!t&&!c&&"undefined"!=typeof Promise)return new Promise((function(t,c){a.history.replace(e,t,c)}));this.history.replace(e,t,c)},qe.prototype.go=function(e){this.history.go(e)},qe.prototype.back=function(){this.go(-1)},qe.prototype.forward=function(){this.go(1)},qe.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},qe.prototype.resolve=function(e,t,c){var a=q(e,t=t||this.history.current,c,this),i=this.match(a,t),n=i.redirectedFrom||i.fullPath;return{location:a,route:i,href:function(e,t,c){var a="hash"===c?"#"+t:t;return e?L(e+"/"+a):a}(this.history.base,n,this.mode),normalizedTo:a,resolved:i}},qe.prototype.getRoutes=function(){return this.matcher.getRoutes()},qe.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},qe.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==v&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qe.prototype,Ge);var We=qe;function Ue(e,t){return e.push(t),function(){var c=e.indexOf(t);c>-1&&e.splice(c,1)}}qe.install=function e(t){if(!e.installed||G!==t){e.installed=!0,G=t;var c=function(e){return void 0!==e},a=function(e,t){var a=e.$options._parentVnode;c(a)&&c(a=a.data)&&c(a=a.registerRouteInstance)&&a(e,t)};t.mixin({beforeCreate:function(){c(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,a(this,this)},destroyed:function(){a(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",H),t.component("RouterLink",U);var i=t.config.optionMergeStrategies;i.beforeRouteEnter=i.beforeRouteLeave=i.beforeRouteUpdate=i.created}},qe.version="3.6.5",qe.isNavigationFailure=Le,qe.NavigationFailureType=be,qe.START_LOCATION=v,Z&&window.Vue&&window.Vue.use(qe);c(112);var Ke=c(0),Ze=c(106),Ye=c.n(Ze),Xe=c(107),Je=c.n(Xe),Qe={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${c}="${Je()(e[c])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=tt(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=ct(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return Ye()([{name:"description",content:this.$description}],e,this.siteMeta,at)},updateCanonicalLink(){et(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",tt(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){ct(null,this.currentMetaTags),et()}};function et(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function tt(e=""){return e?``:""}function ct(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(c=>{t.setAttribute(c,e[c])}),document.head.appendChild(t),t})}function at(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var it=c(49),nt={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:c.n(it)()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),t=[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(e=>e.hash===t.hash)),c=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),i=window.innerHeight+c;for(let e=0;e=n.parentElement.offsetTop+10&&(!s||c{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},st=c(27),rt=c.n(st),ot={mounted(){rt.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,c)=>{e.path===t.path||a.default.component(e.name)||rt.a.start(),c()}),this.$router.afterEach(()=>{rt.a.done(),this.isSidebarOpen=!1})}},lt=c(108),ut=c.n(lt),pt={mounted(){ut.a.polyfill()}},ft=(c(254),Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},a=window.Promise||function(e){function t(){}e(t,t)},i=function(e){var t=e.target;t!==L?-1!==b.indexOf(t)&&h({target:t}):d()},n=function(){if(!M&&y.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(H-e)>V.scrollOffset&&setTimeout(d,150)}},s=function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||d()},r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(L.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=ft({},V.container,e.container)),e.template){var c=dt(e.template)?e.template:document.querySelector(e.template);t.template=c}return V=ft({},V,t),b.forEach((function(e){e.dispatchEvent(bt("medium-zoom:update",{detail:{zoom:S}}))})),S},o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(ft({},V,t))},l=function(){for(var e=arguments.length,t=Array(e),c=0;c0?t.reduce((function(e,t){return[].concat(e,vt(t))}),[]):b;return a.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(bt("medium-zoom:detach",{detail:{zoom:S}}))})),b=b.filter((function(e){return-1===a.indexOf(e)})),S},p=function(e,t){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(a){a.addEventListener("medium-zoom:"+e,t,c)})),C.push({type:"medium-zoom:"+e,listener:t,options:c}),S},f=function(e,t){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(a){a.removeEventListener("medium-zoom:"+e,t,c)})),C=C.filter((function(c){return!(c.type==="medium-zoom:"+e&&c.listener.toString()===t.toString())})),S},m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,c=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,c=void 0;if(V.container)if(V.container instanceof Object)t=(e=ft({},e,V.container)).width-e.left-e.right-2*V.margin,c=e.height-e.top-e.bottom-2*V.margin;else{var a=(dt(V.container)?V.container:document.querySelector(V.container)).getBoundingClientRect(),i=a.width,n=a.height,s=a.left,r=a.top;e=ft({},e,{width:i,height:n,left:s,top:r})}t=t||e.width-2*V.margin,c=c||e.height-2*V.margin;var o=y.zoomedHd||y.original,l=ht(o)?t:o.naturalWidth||t,u=ht(o)?c:o.naturalHeight||c,p=o.getBoundingClientRect(),f=p.top,m=p.left,d=p.width,h=p.height,v=Math.min(Math.max(d,l),t)/d,g=Math.min(Math.max(h,u),c)/h,z=Math.min(v,g),b="scale("+z+") translate3d("+((t-d)/2-m+V.margin+e.left)/z+"px, "+((c-h)/2-f+V.margin+e.top)/z+"px, 0)";y.zoomed.style.transform=b,y.zoomedHd&&(y.zoomedHd.style.transform=b)};return new a((function(e){if(t&&-1===b.indexOf(t))e(S);else{if(y.zoomed)e(S);else{if(t)y.original=t;else{if(!(b.length>0))return void e(S);var a=b;y.original=a[0]}if(y.original.dispatchEvent(bt("medium-zoom:open",{detail:{zoom:S}})),H=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,M=!0,y.zoomed=zt(y.original),document.body.appendChild(L),V.template){var i=dt(V.template)?V.template:document.querySelector(V.template);y.template=document.createElement("div"),y.template.appendChild(i.content.cloneNode(!0)),document.body.appendChild(y.template)}if(y.original.parentElement&&"PICTURE"===y.original.parentElement.tagName&&y.original.currentSrc&&(y.zoomed.src=y.original.currentSrc),document.body.appendChild(y.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),y.original.classList.add("medium-zoom-image--hidden"),y.zoomed.classList.add("medium-zoom-image--opened"),y.zoomed.addEventListener("click",d),y.zoomed.addEventListener("transitionend",(function t(){M=!1,y.zoomed.removeEventListener("transitionend",t),y.original.dispatchEvent(bt("medium-zoom:opened",{detail:{zoom:S}})),e(S)})),y.original.getAttribute("data-zoom-src")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("srcset"),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading"),y.zoomedHd.src=y.zoomed.getAttribute("data-zoom-src"),y.zoomedHd.onerror=function(){clearInterval(n),console.warn("Unable to reach the zoom image target "+y.zoomedHd.src),y.zoomedHd=null,c()};var n=setInterval((function(){y.zoomedHd.complete&&(clearInterval(n),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),c())}),10)}else if(y.original.hasAttribute("srcset")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading");var s=y.zoomedHd.addEventListener("load",(function(){y.zoomedHd.removeEventListener("load",s),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",d),document.body.appendChild(y.zoomedHd),c()}))}else c()}}}))},d=function(){return new a((function(e){if(!M&&y.original){M=!0,document.body.classList.remove("medium-zoom--opened"),y.zoomed.style.transform="",y.zoomedHd&&(y.zoomedHd.style.transform=""),y.template&&(y.template.style.transition="opacity 150ms",y.template.style.opacity=0),y.original.dispatchEvent(bt("medium-zoom:close",{detail:{zoom:S}})),y.zoomed.addEventListener("transitionend",(function t(){y.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(y.zoomed),y.zoomedHd&&document.body.removeChild(y.zoomedHd),document.body.removeChild(L),y.zoomed.classList.remove("medium-zoom-image--opened"),y.template&&document.body.removeChild(y.template),M=!1,y.zoomed.removeEventListener("transitionend",t),y.original.dispatchEvent(bt("medium-zoom:closed",{detail:{zoom:S}})),y.original=null,y.zoomed=null,y.zoomedHd=null,y.template=null,e(S)}))}else e(S)}))},h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target;return y.original?d():m({target:t})},v=function(){return V},g=function(){return b},z=function(){return y.original},b=[],C=[],M=!1,H=0,V=c,y={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?V=t:(t||"string"==typeof t)&&l(t),V=ft({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},V);var L=gt(V.background);document.addEventListener("click",i),document.addEventListener("keyup",s),document.addEventListener("scroll",n),window.addEventListener("resize",d);var S={open:m,close:d,toggle:h,update:r,clone:o,attach:l,detach:u,on:p,off:f,getOptions:v,getImages:g,getZoomedImage:z};return S},Mt=[Qe,nt,ot,pt,{data:()=>({zoom:null}),mounted(){this.updateZoom()},updated(){this.updateZoom()},methods:{updateZoom(){setTimeout(()=>{this.zoom&&this.zoom.detach(),this.zoom=Ct(".theme-default-content :not(a) > img :not(.no-zoom)",void 0)},1e3)}}}],Ht={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return Object(Ke.h)("layout",e),a.default.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},Vt=c(2),yt=Object(Vt.a)(Ht,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;Object(Ke.f)(yt,"mixins",Mt);const Lt=[{name:"v-70c82db4",path:"/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Home","v-70c82db4").then(c)}},{path:"/index.html",redirect:"/"},{name:"v-72aa7b60",path:"/customize/bioelectrical-input/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-72aa7b60").then(c)}},{path:"/customize/bioelectrical-input/index.html",redirect:"/customize/bioelectrical-input/"},{name:"v-0f066768",path:"/customize/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0f066768").then(c)}},{path:"/customize/index.html",redirect:"/customize/"},{name:"v-1353f741",path:"/customize/grid/Grid-Creation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1353f741").then(c)}},{name:"v-74675454",path:"/customize/gaming-toys-music/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-74675454").then(c)}},{path:"/customize/gaming-toys-music/index.html",redirect:"/customize/gaming-toys-music/"},{name:"v-a10b0572",path:"/customize/grid/Grid-Customization.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-a10b0572").then(c)}},{name:"v-10c8bfce",path:"/customize/environmental-control/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-10c8bfce").then(c)}},{path:"/customize/environmental-control/index.html",redirect:"/customize/environmental-control/"},{name:"v-9b65a438",path:"/customize/grid/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-9b65a438").then(c)}},{path:"/customize/grid/index.html",redirect:"/customize/grid/"},{name:"v-f23dedf2",path:"/customize/model/Model-Customization.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-f23dedf2").then(c)}},{name:"v-06145dae",path:"/customize/model/Model-Creation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-06145dae").then(c)}},{name:"v-9d3a03d0",path:"/customize/model/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-9d3a03d0").then(c)}},{path:"/customize/model/index.html",redirect:"/customize/model/"},{name:"v-536028e7",path:"/develop/APE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-536028e7").then(c)}},{name:"v-54cb8a6c",path:"/customize/other/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-54cb8a6c").then(c)}},{path:"/customize/other/index.html",redirect:"/customize/other/"},{name:"v-791888ea",path:"/develop/ARE%20API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-791888ea").then(c)}},{path:"/develop/ARE API.html",redirect:"/develop/ARE%20API.html"},{path:"/develop/ARE API.html",redirect:"/develop/ARE%20API.html"},{name:"v-26c664f2",path:"/develop/ARE-Keyboard-Mouse-Services.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-26c664f2").then(c)}},{name:"v-440b00d9",path:"/develop/ARE-HW-Interfacing-CIM.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-440b00d9").then(c)}},{name:"v-72593097",path:"/develop/ARE/ARE-Development-Manual.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-72593097").then(c)}},{name:"v-bae20b32",path:"/develop/AT-solution-demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-bae20b32").then(c)}},{name:"v-6b8fd6b2",path:"/develop/ARE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6b8fd6b2").then(c)}},{name:"v-46ee2c72",path:"/develop/AT_solution_development.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-46ee2c72").then(c)}},{name:"v-05927867",path:"/develop/Coding-Guidelines.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-05927867").then(c)}},{name:"v-88946f32",path:"/develop/ARE-Webserver.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-88946f32").then(c)}},{name:"v-b05cb8b2",path:"/develop/Plugin-Advanced.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b05cb8b2").then(c)}},{name:"v-587f5c72",path:"/develop/Development-Environment.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-587f5c72").then(c)}},{name:"v-5ad5b4a7",path:"/develop/Plugin-Introduction.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5ad5b4a7").then(c)}},{name:"v-601a5927",path:"/develop/Plugin-Tutorial.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-601a5927").then(c)}},{name:"v-484bb6ca",path:"/develop/REST-API-java-client.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-484bb6ca").then(c)}},{name:"v-0907f972",path:"/develop/REST-API-js-areCommunicator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0907f972").then(c)}},{name:"v-cc275ef2",path:"/develop/REST-API-js-wrapper-ext.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-cc275ef2").then(c)}},{name:"v-3e7c0826",path:"/develop/REST-API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3e7c0826").then(c)}},{name:"v-442ae018",path:"/develop/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-442ae018").then(c)}},{path:"/develop/index.html",redirect:"/develop/"},{name:"v-1fef0fc1",path:"/develop/REST-demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1fef0fc1").then(c)}},{name:"v-1ac13561",path:"/develop/Unit-Testing.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1ac13561").then(c)}},{name:"v-a7f6f946",path:"/develop/are-remote-apis/REST-API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-a7f6f946").then(c)}},{name:"v-6b057aa8",path:"/develop/are-remote-apis/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6b057aa8").then(c)}},{path:"/develop/are-remote-apis/index.html",redirect:"/develop/are-remote-apis/"},{name:"v-d3e94d9e",path:"/develop/are-remote-apis/REST-demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d3e94d9e").then(c)}},{name:"v-628a78c7",path:"/develop/are-remote-apis/Webserver.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-628a78c7").then(c)}},{name:"v-aefc4a72",path:"/develop/are-remote-apis/Websocket.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-aefc4a72").then(c)}},{name:"v-3fb3a679",path:"/develop/asterics-grid/01_structure.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3fb3a679").then(c)}},{name:"v-052f3aa7",path:"/develop/asterics-grid/03_grid.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-052f3aa7").then(c)}},{name:"v-52eb403b",path:"/develop/asterics-grid/04_vuejs.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-52eb403b").then(c)}},{name:"v-64d69327",path:"/develop/asterics-grid/02_tools.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-64d69327").then(c)}},{name:"v-045e7207",path:"/develop/asterics-grid/06_data_storage.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-045e7207").then(c)}},{name:"v-217e7fd9",path:"/develop/asterics-grid/05_datamodel.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-217e7fd9").then(c)}},{name:"v-b5855fb2",path:"/develop/asterics-grid/07_i18n.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b5855fb2").then(c)}},{name:"v-5d66a48b",path:"/develop/asterics-wiki/api/REST-API.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5d66a48b").then(c)}},{name:"v-1a112707",path:"/develop/asterics-grid/collaboration.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1a112707").then(c)}},{name:"v-e8933724",path:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e8933724").then(c)}},{path:"/develop/asterics-wiki/api/AsTeRICS Websocket.html",redirect:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html"},{path:"/develop/asterics-wiki/api/AsTeRICS Websocket.html",redirect:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html"},{name:"v-e0ec9638",path:"/develop/asterics-grid/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e0ec9638").then(c)}},{path:"/develop/asterics-grid/index.html",redirect:"/develop/asterics-grid/"},{name:"v-a04bf3f8",path:"/develop/asterics-wiki/api/Resource%20Handling.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-a04bf3f8").then(c)}},{path:"/develop/asterics-wiki/api/Resource Handling.html",redirect:"/develop/asterics-wiki/api/Resource%20Handling.html"},{path:"/develop/asterics-wiki/api/Resource Handling.html",redirect:"/develop/asterics-wiki/api/Resource%20Handling.html"},{name:"v-013fce70",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-013fce70").then(c)}},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html"},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html"},{name:"v-35094c20",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-35094c20").then(c)}},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html"},{path:"/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html",redirect:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html"},{name:"v-7903e66c",path:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7903e66c").then(c)}},{path:"/develop/asterics-wiki/components/AsTeRICS Plugins.html",redirect:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html"},{path:"/develop/asterics-wiki/components/AsTeRICS Plugins.html",redirect:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html"},{name:"v-5c6ba0e0",path:"/develop/at-solution/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5c6ba0e0").then(c)}},{path:"/develop/at-solution/index.html",redirect:"/develop/at-solution/"},{name:"v-04acb1a3",path:"/develop/asterics-wiki/coding_instructions/JavaCV.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-04acb1a3").then(c)}},{name:"v-73196267",path:"/develop/at-solution/APE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-73196267").then(c)}},{name:"v-d3fed8f4",path:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d3fed8f4").then(c)}},{path:"/develop/asterics-wiki/coding_instructions/Unit Tests.html",redirect:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html"},{path:"/develop/asterics-wiki/coding_instructions/Unit Tests.html",redirect:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html"},{name:"v-962a65f2",path:"/develop/get-started/Coding-Guidelines.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-962a65f2").then(c)}},{name:"v-0a2795a7",path:"/develop/get-started/Development-Environment.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0a2795a7").then(c)}},{name:"v-1f5a7833",path:"/develop/plugin/Computer-Vision.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1f5a7833").then(c)}},{name:"v-66af9122",path:"/develop/get-started/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-66af9122").then(c)}},{path:"/develop/get-started/index.html",redirect:"/develop/get-started/"},{name:"v-58b05fce",path:"/develop/ARE/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-58b05fce").then(c)}},{path:"/develop/ARE/index.html",redirect:"/develop/ARE/"},{name:"v-076485ef",path:"/develop/plugin/Plugin-Advanced.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-076485ef").then(c)}},{name:"v-0bd51ec9",path:"/develop/plugin/Plugin-Averager.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0bd51ec9").then(c)}},{name:"v-167b3e84",path:"/develop/plugin/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-167b3e84").then(c)}},{path:"/develop/plugin/index.html",redirect:"/develop/plugin/"},{name:"v-e5deb1f2",path:"/get-involved/About-us.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e5deb1f2").then(c)}},{name:"v-ae39e142",path:"/develop/plugin/Resource-Handling.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-ae39e142").then(c)}},{name:"v-688a4fc7",path:"/get-involved/Legal-Notice.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-688a4fc7").then(c)}},{name:"v-8dbe5096",path:"/get-involved/Contact.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-8dbe5096").then(c)}},{name:"v-0c0bf027",path:"/get-involved/Contribute.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0c0bf027").then(c)}},{name:"v-4c4b4fb8",path:"/get-involved/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4c4b4fb8").then(c)}},{path:"/get-involved/index.html",redirect:"/get-involved/"},{name:"v-e8b9abf2",path:"/get-started/Demos.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e8b9abf2").then(c)}},{name:"v-5f7524be",path:"/get-started/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5f7524be").then(c)}},{path:"/get-started/index.html",redirect:"/get-started/"},{name:"v-6ead8b55",path:"/get-started/Installation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6ead8b55").then(c)}},{name:"v-3822cb17",path:"/get-started/Overview.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3822cb17").then(c)}},{name:"v-db6f5b92",path:"/guide/docs.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-db6f5b92").then(c)}},{name:"v-14a1e3d3",path:"/guide/editor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-14a1e3d3").then(c)}},{name:"v-44873dcf",path:"/guide/markdown.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-44873dcf").then(c)}},{name:"v-0c72b81d",path:"/manuals/ACS/Colours_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0c72b81d").then(c)}},{name:"v-b14aa6b2",path:"/manuals/ACS/Actuators.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b14aa6b2").then(c)}},{name:"v-3b633733",path:"/manuals/ACS/Channels.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3b633733").then(c)}},{name:"v-860d4992",path:"/manuals/ACS/Component_Collection_Manager.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-860d4992").then(c)}},{name:"v-29b66472",path:"/manuals/ACS/Connected.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-29b66472").then(c)}},{name:"v-53fb73f1",path:"/manuals/ACS/Component_Context_Menu.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-53fb73f1").then(c)}},{name:"v-7185b8e7",path:"/manuals/ACS/Control_the_ARE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7185b8e7").then(c)}},{name:"v-10853d87",path:"/manuals/ACS/Create_and_Edit_a_Model.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-10853d87").then(c)}},{name:"v-373a5a25",path:"/manuals/ACS/Dialogs_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-373a5a25").then(c)}},{name:"v-89ebe0c6",path:"/manuals/ACS/Disconnected.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-89ebe0c6").then(c)}},{name:"v-7c5fd547",path:"/manuals/ACS/External_Tools_Options.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7c5fd547").then(c)}},{name:"v-5d863821",path:"/manuals/ACS/Events.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5d863821").then(c)}},{name:"v-9cea1016",path:"/manuals/ACS/GUI_Designer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-9cea1016").then(c)}},{name:"v-4233ca76",path:"/manuals/ACS/External_Tools.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4233ca76").then(c)}},{name:"v-34eb0509",path:"/manuals/ACS/Keyboard_control.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-34eb0509").then(c)}},{name:"v-33fac21f",path:"/manuals/ACS/General_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-33fac21f").then(c)}},{name:"v-e8c20486",path:"/manuals/ACS/Load_and_Save_Models.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-e8c20486").then(c)}},{name:"v-1b0ea627",path:"/manuals/ACS/Miscellaneous.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-1b0ea627").then(c)}},{name:"v-d79ede32",path:"/manuals/ACS/Modes.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d79ede32").then(c)}},{name:"v-af9b77b2",path:"/manuals/ACS/Options.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-af9b77b2").then(c)}},{name:"v-048cd127",path:"/manuals/ACS/Pause.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-048cd127").then(c)}},{name:"v-70395034",path:"/manuals/ACS/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-70395034").then(c)}},{path:"/manuals/ACS/index.html",redirect:"/manuals/ACS/"},{name:"v-f5f710de",path:"/manuals/ACS/Processors.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-f5f710de").then(c)}},{name:"v-59f1b672",path:"/manuals/ACS/Print.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-59f1b672").then(c)}},{name:"v-0318f572",path:"/manuals/ACS/Running.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0318f572").then(c)}},{name:"v-bb83c2f2",path:"/manuals/ACS/Sensors.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-bb83c2f2").then(c)}},{name:"v-ec9a5262",path:"/manuals/ACS/Status_Reporting_and_Error_Logging.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-ec9a5262").then(c)}},{name:"v-4736d21a",path:"/manuals/ACS/Setting_the_Properties.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4736d21a").then(c)}},{name:"v-2e0cc312",path:"/manuals/ACS/The_Edit_Tab.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-2e0cc312").then(c)}},{name:"v-26b3c0ab",path:"/manuals/ACS/Synchronized.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-26b3c0ab").then(c)}},{name:"v-d204bc10",path:"/manuals/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d204bc10").then(c)}},{path:"/manuals/index.html",redirect:"/manuals/"},{name:"v-4ac08567",path:"/manuals/WebACS/AREStatus.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4ac08567").then(c)}},{name:"v-66f839ae",path:"/manuals/ARE/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-66f839ae").then(c)}},{path:"/manuals/ARE/index.html",redirect:"/manuals/ARE/"},{name:"v-411ff967",path:"/manuals/WebACS/Channels.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-411ff967").then(c)}},{name:"v-79865d33",path:"/manuals/ACS/Tooltips.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-79865d33").then(c)}},{name:"v-404dcbaa",path:"/manuals/WebACS/Control_the_ARE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-404dcbaa").then(c)}},{name:"v-567470f2",path:"/manuals/WebACS/Keyboard_control.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-567470f2").then(c)}},{name:"v-30f7abf1",path:"/manuals/WebACS/Create_and_Edit_a_Model.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-30f7abf1").then(c)}},{name:"v-38306472",path:"/manuals/WebACS/Events.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-38306472").then(c)}},{name:"v-b3f08772",path:"/manuals/WebACS/GUI_Designer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b3f08772").then(c)}},{name:"v-03d92972",path:"/manuals/WebACS/Open_and_Save_Models.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-03d92972").then(c)}},{name:"v-b20fab52",path:"/manuals/WebACS/Miscellaneous.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-b20fab52").then(c)}},{name:"v-11bd40a7",path:"/manuals/WebACS/List_View.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-11bd40a7").then(c)}},{name:"v-6deb6d78",path:"/manuals/WebACS/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6deb6d78").then(c)}},{path:"/manuals/WebACS/index.html",redirect:"/manuals/WebACS/"},{name:"v-27668de7",path:"/manuals/WebACS/Setting_the_Properties.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-27668de7").then(c)}},{name:"v-73d3dc27",path:"/manuals/WebACS/The_Edit_Tab.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-73d3dc27").then(c)}},{name:"v-401e7446",path:"/manuals/asterics-grid/010_settings.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-401e7446").then(c)}},{name:"v-c701961e",path:"/manuals/asterics-grid/01_terms.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-c701961e").then(c)}},{name:"v-5cc12287",path:"/manuals/asterics-grid/02_navigation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5cc12287").then(c)}},{name:"v-432b669e",path:"/manuals/asterics-grid/03_appearance_layout.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-432b669e").then(c)}},{name:"v-3bc61fa7",path:"/manuals/asterics-grid/04_input_options.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3bc61fa7").then(c)}},{name:"v-0776413d",path:"/manuals/asterics-grid/05_actions.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-0776413d").then(c)}},{name:"v-403b9736",path:"/manuals/asterics-grid/06_users.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-403b9736").then(c)}},{name:"v-67cb4567",path:"/manuals/asterics-grid/07_dictionaries.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-67cb4567").then(c)}},{name:"v-5a470632",path:"/manuals/asterics-grid/08_keyboard_shortcuts.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-5a470632").then(c)}},{name:"v-74240617",path:"/manuals/asterics-grid/10_faq.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-74240617").then(c)}},{name:"v-4d499b72",path:"/manuals/asterics-grid/513_http-action-tutorials.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-4d499b72").then(c)}},{name:"v-124d7766",path:"/manuals/asterics-grid/09_translation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-124d7766").then(c)}},{name:"v-6fb78227",path:"/manuals/asterics-grid/514_uart-action-tutorials.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6fb78227").then(c)}},{name:"v-6214c2a7",path:"/manuals/asterics-grid/10_word_forms.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-6214c2a7").then(c)}},{name:"v-7b526a78",path:"/manuals/asterics-grid/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-7b526a78").then(c)}},{path:"/manuals/asterics-grid/index.html",redirect:"/manuals/asterics-grid/"},{name:"v-d65cc238",path:"/manuals/fabi/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-d65cc238").then(c)}},{path:"/manuals/fabi/index.html",redirect:"/manuals/fabi/"},{name:"v-3ad8af32",path:"/plugins/actuators/AREWindow.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3ad8af32").then(c)}},{name:"v-08b9c8b4",path:"/manuals/flipmouse/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-08b9c8b4").then(c)}},{path:"/manuals/flipmouse/index.html",redirect:"/manuals/flipmouse/"},{name:"v-13ecdddc",path:"/plugins/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-13ecdddc").then(c)}},{path:"/plugins/index.html",redirect:"/plugins/"},{name:"v-403588b2",path:"/plugins/actuators/AnalogOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-403588b2").then(c)}},{name:"v-dd8b41a2",path:"/plugins/actuators/Android_connection.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-dd8b41a2").then(c)}},{name:"v-7a3eb067",path:"/plugins/actuators/ApplicationLauncher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7a3eb067").then(c)}},{name:"v-516240a7",path:"/plugins/actuators/AndroidPhoneControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-516240a7").then(c)}},{name:"v-18096926",path:"/plugins/actuators/BarDisplay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-18096926").then(c)}},{name:"v-9c892f7e",path:"/plugins/actuators/AngularCursorControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9c892f7e").then(c)}},{name:"v-1f6d465f",path:"/plugins/actuators/DigitalOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1f6d465f").then(c)}},{name:"v-ef1e54fe",path:"/plugins/actuators/CrosshairCursorControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ef1e54fe").then(c)}},{name:"v-32d57c47",path:"/plugins/actuators/DialogBox.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-32d57c47").then(c)}},{name:"v-1988f40b",path:"/plugins/actuators/DotMeter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1988f40b").then(c)}},{name:"v-ca981632",path:"/plugins/actuators/EnobioDisplay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ca981632").then(c)}},{name:"v-27a39b47",path:"/plugins/actuators/Enocean.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-27a39b47").then(c)}},{name:"v-cc3c0472",path:"/plugins/actuators/EmulateFaultyPlugin.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-cc3c0472").then(c)}},{name:"v-716ac7e7",path:"/plugins/actuators/EasyHomeControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-716ac7e7").then(c)}},{name:"v-5b2ddb8b",path:"/plugins/actuators/FS20Sender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b2ddb8b").then(c)}},{name:"v-956c78a6",path:"/plugins/actuators/FileWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-956c78a6").then(c)}},{name:"v-09250a67",path:"/plugins/actuators/EventVisualizer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-09250a67").then(c)}},{name:"v-b436f6a6",path:"/plugins/actuators/GMailShortcuts.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b436f6a6").then(c)}},{name:"v-d264918e",path:"/plugins/actuators/GSMModem.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d264918e").then(c)}},{name:"v-e81af0b2",path:"/plugins/actuators/FlickeringLightStimulator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e81af0b2").then(c)}},{name:"v-d206b2aa",path:"/plugins/actuators/ImageBox.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d206b2aa").then(c)}},{name:"v-6daf09f2",path:"/plugins/actuators/IRTrans.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6daf09f2").then(c)}},{name:"v-c41a3672",path:"/plugins/actuators/Knx.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-c41a3672").then(c)}},{name:"v-b8da8e86",path:"/plugins/actuators/LineWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b8da8e86").then(c)}},{name:"v-15d2dabd",path:"/plugins/actuators/Keyboard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-15d2dabd").then(c)}},{name:"v-92953be6",path:"/plugins/actuators/LegacyDigitalOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-92953be6").then(c)}},{name:"v-4cb9a3c7",path:"/plugins/actuators/MediaPlayer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4cb9a3c7").then(c)}},{name:"v-171c2d27",path:"/plugins/actuators/ModelSwitcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-171c2d27").then(c)}},{name:"v-8ea2c272",path:"/plugins/actuators/MidiPlayer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8ea2c272").then(c)}},{name:"v-38d36e07",path:"/plugins/actuators/Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-38d36e07").then(c)}},{name:"v-7c5d8272",path:"/plugins/actuators/NetConnection.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7c5d8272").then(c)}},{name:"v-3e837632",path:"/plugins/actuators/MousecursorIcon.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e837632").then(c)}},{name:"v-1d867097",path:"/plugins/actuators/OscOutClient.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1d867097").then(c)}},{name:"v-5b29f0ed",path:"/plugins/actuators/Oscilloscope.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b29f0ed").then(c)}},{name:"v-8679e6b2",path:"/plugins/actuators/PicoTTS.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8679e6b2").then(c)}},{name:"v-6337e0ed",path:"/plugins/actuators/PhoneControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6337e0ed").then(c)}},{name:"v-0dab47bd",path:"/plugins/actuators/PhilipsHue.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0dab47bd").then(c)}},{name:"v-779d0f79",path:"/plugins/actuators/PlatformDigitalOut.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-779d0f79").then(c)}},{name:"v-5e80a527",path:"/plugins/actuators/PlatformLCD.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5e80a527").then(c)}},{name:"v-7c85c247",path:"/plugins/actuators/RemoteJoystick.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7c85c247").then(c)}},{name:"v-599c9c31",path:"/plugins/actuators/RemoteKeyboard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-599c9c31").then(c)}},{name:"v-aa237ef2",path:"/plugins/actuators/RemoteMouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-aa237ef2").then(c)}},{name:"v-50c42842",path:"/plugins/actuators/RemoteWindow.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-50c42842").then(c)}},{name:"v-5032dd77",path:"/plugins/actuators/PongGame.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5032dd77").then(c)}},{name:"v-2304fb67",path:"/plugins/actuators/SSVEPFileWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2304fb67").then(c)}},{name:"v-84d9f01a",path:"/plugins/actuators/RemoteTablet.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-84d9f01a").then(c)}},{name:"v-3a500587",path:"/plugins/actuators/SSVEPStimulator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3a500587").then(c)}},{name:"v-7ae45d79",path:"/plugins/actuators/SerialSender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7ae45d79").then(c)}},{name:"v-74496ef1",path:"/plugins/actuators/SyntheticVoice.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-74496ef1").then(c)}},{name:"v-6ca50ab2",path:"/plugins/actuators/SkyWatcherMount.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6ca50ab2").then(c)}},{name:"v-bc5321f2",path:"/plugins/actuators/TeensyRCPrototype.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-bc5321f2").then(c)}},{name:"v-9d737472",path:"/plugins/actuators/TextDisplay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9d737472").then(c)}},{name:"v-d68a2ef2",path:"/plugins/actuators/ToneGenerator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d68a2ef2").then(c)}},{name:"v-83e29ef2",path:"/plugins/actuators/Tooltip.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-83e29ef2").then(c)}},{name:"v-3c600ed7",path:"/plugins/actuators/TextArea.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3c600ed7").then(c)}},{name:"v-f257b186",path:"/plugins/actuators/WriteCSV.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-f257b186").then(c)}},{name:"v-0563b61f",path:"/plugins/actuators/WavefilePlayer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0563b61f").then(c)}},{name:"v-79a7ccfb",path:"/plugins/actuators/WriteEDF.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-79a7ccfb").then(c)}},{name:"v-6cf61c72",path:"/plugins/processors/AcousticScanning.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6cf61c72").then(c)}},{name:"v-646dcee6",path:"/plugins/processors/AdjustmentCurve.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-646dcee6").then(c)}},{name:"v-52053829",path:"/plugins/processors/AmazonEchoControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-52053829").then(c)}},{name:"v-ec67f37e",path:"/plugins/processors/Arduino.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ec67f37e").then(c)}},{name:"v-45b5002f",path:"/plugins/processors/Amplifier.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-45b5002f").then(c)}},{name:"v-09085367",path:"/plugins/processors/AudioSelector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-09085367").then(c)}},{name:"v-4e288232",path:"/plugins/processors/Averager.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4e288232").then(c)}},{name:"v-7cf4c0b1",path:"/plugins/processors/BasicTRalgorithms.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7cf4c0b1").then(c)}},{name:"v-4d0a7bd2",path:"/plugins/processors/Benchmark.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4d0a7bd2").then(c)}},{name:"v-2788c5e7",path:"/plugins/processors/BlinkDetection.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2788c5e7").then(c)}},{name:"v-43a714a7",path:"/plugins/processors/BlinkDetectorTrainer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-43a714a7").then(c)}},{name:"v-e6456966",path:"/plugins/processors/BlinkDetector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e6456966").then(c)}},{name:"v-b8389226",path:"/plugins/processors/BlinkChangeDetector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b8389226").then(c)}},{name:"v-d38dd566",path:"/plugins/processors/ComPort.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d38dd566").then(c)}},{name:"v-04510947",path:"/plugins/processors/Comparator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-04510947").then(c)}},{name:"v-5009f567",path:"/plugins/processors/ComputeBandpower.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5009f567").then(c)}},{name:"v-1ba2eab2",path:"/plugins/processors/ConstantDispatcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1ba2eab2").then(c)}},{name:"v-691ee647",path:"/plugins/processors/Deadzone.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-691ee647").then(c)}},{name:"v-1e825672",path:"/plugins/processors/DataType.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1e825672").then(c)}},{name:"v-5e6cfe07",path:"/plugins/processors/DateToDouble.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5e6cfe07").then(c)}},{name:"v-6631ec8b",path:"/plugins/processors/Delay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6631ec8b").then(c)}},{name:"v-7db60c2f",path:"/plugins/processors/Dissimilarity.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7db60c2f").then(c)}},{name:"v-4b632167",path:"/plugins/processors/DoubleToString.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4b632167").then(c)}},{name:"v-5d044327",path:"/plugins/processors/Derivative.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5d044327").then(c)}},{name:"v-50d5674d",path:"/plugins/processors/Differentiate.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-50d5674d").then(c)}},{name:"v-69219697",path:"/plugins/processors/ECMAScriptInterpreter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-69219697").then(c)}},{name:"v-897a9bb2",path:"/plugins/processors/Decimation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-897a9bb2").then(c)}},{name:"v-d8c21cb2",path:"/plugins/processors/EventBlock.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d8c21cb2").then(c)}},{name:"v-0faadb07",path:"/plugins/processors/EventCounter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0faadb07").then(c)}},{name:"v-8cf913f2",path:"/plugins/processors/EventCascade.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8cf913f2").then(c)}},{name:"v-257632e7",path:"/plugins/processors/EventDelay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-257632e7").then(c)}},{name:"v-0de90216",path:"/plugins/processors/EventFlipFlop.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0de90216").then(c)}},{name:"v-4f6abeea",path:"/plugins/processors/EventRouter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f6abeea").then(c)}},{name:"v-b68a9862",path:"/plugins/processors/EventDispatcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-b68a9862").then(c)}},{name:"v-92543f1e",path:"/plugins/processors/EventStateMachine.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-92543f1e").then(c)}},{name:"v-170dfcf2",path:"/plugins/processors/Filter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-170dfcf2").then(c)}},{name:"v-f5401bf2",path:"/plugins/processors/FABI.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-f5401bf2").then(c)}},{name:"v-1715ece5",path:"/plugins/processors/FabiCronusMax.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1715ece5").then(c)}},{name:"v-38d069b2",path:"/plugins/processors/HRVRmssdFromRR.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-38d069b2").then(c)}},{name:"v-7f5ffdc1",path:"/plugins/processors/HRVAnalysis.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7f5ffdc1").then(c)}},{name:"v-1d0ab506",path:"/plugins/processors/IIRFilter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1d0ab506").then(c)}},{name:"v-d1dfaaca",path:"/plugins/processors/IntToString.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d1dfaaca").then(c)}},{name:"v-47f9c35b",path:"/plugins/processors/IrMicro.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-47f9c35b").then(c)}},{name:"v-19088f27",path:"/plugins/processors/JsonParser.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-19088f27").then(c)}},{name:"v-1d065aa2",path:"/plugins/processors/Integrate.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1d065aa2").then(c)}},{name:"v-6736aafa",path:"/plugins/processors/MathEvaluator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6736aafa").then(c)}},{name:"v-50964747",path:"/plugins/processors/MinMax.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-50964747").then(c)}},{name:"v-bf091772",path:"/plugins/processors/MotionAnalysis.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-bf091772").then(c)}},{name:"v-e3fa9f72",path:"/plugins/processors/MultiSourceString.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e3fa9f72").then(c)}},{name:"v-30be31a9",path:"/plugins/processors/MultiSource.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-30be31a9").then(c)}},{name:"v-d29b3b66",path:"/plugins/processors/NeuralNetworkLoader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-d29b3b66").then(c)}},{name:"v-6bf745d3",path:"/plugins/processors/OpenHAB.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6bf745d3").then(c)}},{name:"v-13b74a72",path:"/plugins/processors/NexusConnector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-13b74a72").then(c)}},{name:"v-4c4414bd",path:"/plugins/processors/OneEventManyActions.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4c4414bd").then(c)}},{name:"v-2921d7e7",path:"/plugins/processors/OskaExternalScanning1D.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2921d7e7").then(c)}},{name:"v-5a24aa07",path:"/plugins/processors/OscGestureFollower.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5a24aa07").then(c)}},{name:"v-4be94031",path:"/plugins/processors/PathMultiplexer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4be94031").then(c)}},{name:"v-e83ea4f2",path:"/plugins/processors/OskaExternalScanning2D.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e83ea4f2").then(c)}},{name:"v-637b13c7",path:"/plugins/processors/OskaInternalScanning.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-637b13c7").then(c)}},{name:"v-5c2cfb72",path:"/plugins/processors/Pathselector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5c2cfb72").then(c)}},{name:"v-5b5e6427",path:"/plugins/processors/ProtocolSSVEPTrain.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b5e6427").then(c)}},{name:"v-7c537de7",path:"/plugins/processors/PeakDetector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7c537de7").then(c)}},{name:"v-21b721ae",path:"/plugins/processors/RegularExpression.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-21b721ae").then(c)}},{name:"v-61da4eee",path:"/plugins/processors/SSVEPDetect.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-61da4eee").then(c)}},{name:"v-3b520e4f",path:"/plugins/processors/Quantizer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3b520e4f").then(c)}},{name:"v-77363772",path:"/plugins/processors/FS20CommandInterpreter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-77363772").then(c)}},{name:"v-11a59ef9",path:"/plugins/processors/SampleAndHold.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-11a59ef9").then(c)}},{name:"v-9f5a7d32",path:"/plugins/processors/SerialPort.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9f5a7d32").then(c)}},{name:"v-64552681",path:"/plugins/processors/Sampler.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-64552681").then(c)}},{name:"v-a40c8732",path:"/plugins/processors/SerialSender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-a40c8732").then(c)}},{name:"v-9198a01e",path:"/plugins/processors/SpeechProcessor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9198a01e").then(c)}},{name:"v-1013433f",path:"/plugins/processors/SignalTranslation.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1013433f").then(c)}},{name:"v-67dbcba7",path:"/plugins/processors/StringAppend.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-67dbcba7").then(c)}},{name:"v-14661c2d",path:"/plugins/processors/StringDelay.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-14661c2d").then(c)}},{name:"v-59dccef2",path:"/plugins/processors/StringExpander.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-59dccef2").then(c)}},{name:"v-4cf6bf32",path:"/plugins/processors/StringFilter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4cf6bf32").then(c)}},{name:"v-100a3e47",path:"/plugins/processors/StringDispatcher.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-100a3e47").then(c)}},{name:"v-3e8a576b",path:"/plugins/processors/StringExtractor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e8a576b").then(c)}},{name:"v-1709c1d3",path:"/plugins/processors/StringPathMultiplexer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1709c1d3").then(c)}},{name:"v-3d455e1f",path:"/plugins/processors/StringFormatter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3d455e1f").then(c)}},{name:"v-690e9367",path:"/plugins/processors/StringPathSelector.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-690e9367").then(c)}},{name:"v-2ce14ef2",path:"/plugins/processors/StringSplitter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2ce14ef2").then(c)}},{name:"v-281449cb",path:"/plugins/processors/StringToInt.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-281449cb").then(c)}},{name:"v-77d7abc7",path:"/plugins/processors/TextSender.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-77d7abc7").then(c)}},{name:"v-1e8b2167",path:"/plugins/processors/StringToDouble.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1e8b2167").then(c)}},{name:"v-3eb0087b",path:"/plugins/processors/RelativeMoveSampler.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3eb0087b").then(c)}},{name:"v-01319b07",path:"/plugins/processors/UniversalRemoteControl.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-01319b07").then(c)}},{name:"v-1b0560c3",path:"/plugins/processors/WebSocket.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1b0560c3").then(c)}},{name:"v-8ed10332",path:"/plugins/processors/eg_example.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-8ed10332").then(c)}},{name:"v-846ec7f2",path:"/plugins/processors/Yaak.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-846ec7f2").then(c)}},{name:"v-2e4c9dc9",path:"/plugins/sensors/Acceleration.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-2e4c9dc9").then(c)}},{name:"v-53da033f",path:"/plugins/processors/TimestampWriter.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-53da033f").then(c)}},{name:"v-1b90e4c2",path:"/plugins/sensors/AnalogIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1b90e4c2").then(c)}},{name:"v-7841dcfb",path:"/plugins/sensors/AutostartEvent.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7841dcfb").then(c)}},{name:"v-5889cb59",path:"/plugins/sensors/ButtonGrid.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5889cb59").then(c)}},{name:"v-1eb18087",path:"/plugins/sensors/CellBoard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1eb18087").then(c)}},{name:"v-48688967",path:"/plugins/sensors/EOG.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-48688967").then(c)}},{name:"v-28fc4432",path:"/plugins/sensors/DigitalIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-28fc4432").then(c)}},{name:"v-3098c387",path:"/plugins/sensors/EShoe.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3098c387").then(c)}},{name:"v-1134a2e7",path:"/plugins/sensors/EditBox.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1134a2e7").then(c)}},{name:"v-64af51d7",path:"/plugins/sensors/EventGenerator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-64af51d7").then(c)}},{name:"v-9ccbeb76",path:"/plugins/sensors/Enobio.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9ccbeb76").then(c)}},{name:"v-157f848a",path:"/plugins/sensors/Eyetracker.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-157f848a").then(c)}},{name:"v-001ddafb",path:"/plugins/sensors/EyeX.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-001ddafb").then(c)}},{name:"v-12d7b90f",path:"/plugins/sensors/EyeTribe.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-12d7b90f").then(c)}},{name:"v-16e38c56",path:"/plugins/sensors/FS20Receiver.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-16e38c56").then(c)}},{name:"v-58df42b7",path:"/plugins/sensors/FacetrackerCLM.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-58df42b7").then(c)}},{name:"v-7381d572",path:"/plugins/sensors/FacetrackerLK.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-7381d572").then(c)}},{name:"v-568f6d7e",path:"/plugins/sensors/HeadPositionHC.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-568f6d7e").then(c)}},{name:"v-668f1587",path:"/plugins/sensors/JoystickCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-668f1587").then(c)}},{name:"v-12144d72",path:"/plugins/sensors/FolderBrowser.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-12144d72").then(c)}},{name:"v-6bfe6a39",path:"/plugins/sensors/HoverPanel.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6bfe6a39").then(c)}},{name:"v-690635bb",path:"/plugins/sensors/KeyCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-690635bb").then(c)}},{name:"v-0031f5d6",path:"/plugins/sensors/IntelRealSense.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0031f5d6").then(c)}},{name:"v-0f25337d",path:"/plugins/sensors/Kinect.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0f25337d").then(c)}},{name:"v-08564da7",path:"/plugins/sensors/KeyboardCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-08564da7").then(c)}},{name:"v-5f99c5b2",path:"/plugins/sensors/KinectJ4K.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5f99c5b2").then(c)}},{name:"v-760221cd",path:"/plugins/sensors/LegacyAnalogIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-760221cd").then(c)}},{name:"v-258c6472",path:"/plugins/sensors/LegacyDigitalIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-258c6472").then(c)}},{name:"v-9d2ec7de",path:"/plugins/sensors/Lightscore.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9d2ec7de").then(c)}},{name:"v-acbfcc4a",path:"/plugins/sensors/LineReader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-acbfcc4a").then(c)}},{name:"v-cb421036",path:"/plugins/sensors/Lipmouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-cb421036").then(c)}},{name:"v-5b66ee52",path:"/plugins/sensors/MicGPI.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5b66ee52").then(c)}},{name:"v-3e2501ee",path:"/plugins/sensors/OpenVibe.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e2501ee").then(c)}},{name:"v-6c144d07",path:"/plugins/sensors/OpenBCI.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-6c144d07").then(c)}},{name:"v-1327575a",path:"/plugins/sensors/LipmouseIR.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1327575a").then(c)}},{name:"v-fa5974f2",path:"/plugins/sensors/P2_Parser.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-fa5974f2").then(c)}},{name:"v-16942872",path:"/plugins/sensors/PhilipsHueSensor.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-16942872").then(c)}},{name:"v-ae820072",path:"/plugins/sensors/OscServer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-ae820072").then(c)}},{name:"v-9043d372",path:"/plugins/sensors/MouseCapture.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9043d372").then(c)}},{name:"v-e648748e",path:"/plugins/sensors/PlatformAnalogIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-e648748e").then(c)}},{name:"v-34a03bc7",path:"/plugins/sensors/PlatformDigitalIn.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-34a03bc7").then(c)}},{name:"v-327fbaa7",path:"/plugins/sensors/Proximity.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-327fbaa7").then(c)}},{name:"v-4f8d10e5",path:"/plugins/sensors/RFIDReader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f8d10e5").then(c)}},{name:"v-1912fd7a",path:"/plugins/sensors/RazorIMU.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-1912fd7a").then(c)}},{name:"v-f2533c1e",path:"/plugins/sensors/RandomNumber.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-f2533c1e").then(c)}},{name:"v-3e1f8c47",path:"/plugins/sensors/ReadCSV.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-3e1f8c47").then(c)}},{name:"v-347024e7",path:"/plugins/sensors/ReadEDF.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-347024e7").then(c)}},{name:"v-058dc5b2",path:"/plugins/sensors/SignalGenerator.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-058dc5b2").then(c)}},{name:"v-5ffb0147",path:"/plugins/sensors/Sensorboard.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5ffb0147").then(c)}},{name:"v-524244c7",path:"/plugins/sensors/Slider.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-524244c7").then(c)}},{name:"v-4f75de97",path:"/plugins/sensors/SignalShaper.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f75de97").then(c)}},{name:"v-4f2ebfb2",path:"/plugins/sensors/SpaceNavigator3DMouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f2ebfb2").then(c)}},{name:"v-741a2432",path:"/plugins/sensors/Timer.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-741a2432").then(c)}},{name:"v-0c6bef47",path:"/plugins/sensors/TextfieldReader.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-0c6bef47").then(c)}},{name:"v-9d9cc472",path:"/plugins/sensors/TobiTic.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-9d9cc472").then(c)}},{name:"v-dc917076",path:"/plugins/sensors/Tobii4CHeadTracker.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-dc917076").then(c)}},{name:"v-326ed2c7",path:"/plugins/sensors/TrackIR.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-326ed2c7").then(c)}},{name:"v-5a274087",path:"/plugins/sensors/WiiMote.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-5a274087").then(c)}},{name:"v-4f597976",path:"/plugins/sensors/XFacetrackerLK.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-4f597976").then(c)}},{name:"v-254d4e97",path:"/plugins/sensors/TuioReactivision.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-254d4e97").then(c)}},{name:"v-3fac8f47",path:"/solutions/AAC-Basic.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3fac8f47").then(c)}},{name:"v-3a4e136f",path:"/solutions/Camera-Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3a4e136f").then(c)}},{name:"v-f2e2c936",path:"/solutions/Head-Sound.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-f2e2c936").then(c)}},{name:"v-3696ee5a",path:"/solutions/Eye-Tracking-Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3696ee5a").then(c)}},{name:"v-bcda9044",path:"/solutions/",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-bcda9044").then(c)}},{path:"/solutions/index.html",redirect:"/solutions/"},{name:"v-3d668687",path:"/develop/at-solution/AT-solution-tutorial.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-3d668687").then(c)}},{name:"v-79720951",path:"/solutions/Switch-Mouse.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-79720951").then(c)}},{name:"v-81ac5472",path:"/webapps/AT-solution-IDE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-81ac5472").then(c)}},{name:"v-25491f21",path:"/webapps/Plugin-IDE.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Layout","v-25491f21").then(c)}},{name:"v-75091cbb",path:"/plugins/processors/Threshold.html",component:yt,beforeEnter:(e,t,c)=>{Object(Ke.a)("Page","v-75091cbb").then(c)}},{path:"*",component:yt}],St={title:"AsTeRICS",description:"Customized Low-Cost Assistive Technologies",base:"/",headTags:[["link",{rel:"apple-touch-icon",sizes:"180x180",href:"/favicon/apple-touch-icon.png"}],["link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon/favicon-32x32.png"}],["link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon/favicon-16x16.png"}],["link",{rel:"manifest",href:"/favicon/site.webmanifest"}],["link",{rel:"mask-icon",href:"/favicon/safari-pinned-tab.svg",color:"#0ea1f2"}],["meta",{name:"apple-mobile-web-app-title",content:"AsTeRICS Docs"}],["meta",{name:"application-name",content:"AsTeRICS Docs"}],["meta",{name:"msapplication-TileColor",content:"#2b5797"}],["meta",{name:"theme-color",content:"#ffffff"}],["meta",{name:"google-site-verification",content:"FuUwJLLJcBGeCw84D05phyWRmWYIlT-q3HttcdwThtg"}]],pages:[{title:"Home",frontmatter:{layout:"Home",title:"Home"},regularPath:"/",relativePath:"README.md",key:"v-70c82db4",path:"/",headers:[{level:2,title:"Use Cases",slug:"use-cases"},{level:2,title:"Why AsTeRICS?",slug:"why-asterics"},{level:2,title:"Partners & Funding",slug:"partners-funding"},{level:2,title:"AsTeRICS Project Web Page",slug:"asterics-project-web-page"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/README.md"},{title:"Bioelectrical Input",frontmatter:{},regularPath:"/customize/bioelectrical-input/",relativePath:"customize/bioelectrical-input/README.md",key:"v-72aa7b60",path:"/customize/bioelectrical-input/",headers:[{level:2,title:"EMG-based Mouse Click",slug:"emg-based-mouse-click"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/bioelectrical-input/README.md"},{title:"Tutorials",frontmatter:{},regularPath:"/customize/",relativePath:"customize/README.md",key:"v-0f066768",path:"/customize/",headers:[{level:2,title:"Go to",slug:"go-to"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/README.md"},{title:"Grid Creation",frontmatter:{},regularPath:"/customize/grid/Grid-Creation.html",relativePath:"customize/grid/Grid-Creation.md",key:"v-1353f741",path:"/customize/grid/Grid-Creation.html",headers:[{level:2,title:"AsTeRICS Grid web application",slug:"asterics-grid-web-application"},{level:2,title:"Create New grid",slug:"create-new-grid"},{level:2,title:"Add cells",slug:"add-cells"},{level:2,title:"Adapt layout",slug:"adapt-layout"},{level:3,title:"Change size",slug:"change-size"},{level:3,title:"Change position",slug:"change-position"},{level:3,title:"More options",slug:"more-options"},{level:3,title:"Close Edit mode",slug:"close-edit-mode"},{level:2,title:"Conclusion",slug:"conclusion"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/grid/Grid-Creation.md"},{title:"Gaming, Toys & Music",frontmatter:{},regularPath:"/customize/gaming-toys-music/",relativePath:"customize/gaming-toys-music/README.md",key:"v-74675454",path:"/customize/gaming-toys-music/",headers:[{level:2,title:"Head Movement to Smiley Tutorial",slug:"head-movement-to-smiley-tutorial"},{level:3,title:"Model Description",slug:"model-description"},{level:2,title:"Gaming",slug:"gaming"},{level:2,title:"Sound and Voice",slug:"sound-and-voice"},{level:2,title:"Light",slug:"light"},{level:2,title:"Toys",slug:"toys"},{level:2,title:"Example Projects",slug:"example-projects"},{level:3,title:"Blood Pressure Cuff Sound and Toy Control",slug:"blood-pressure-cuff-sound-and-toy-control"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/gaming-toys-music/README.md"},{title:"Grid Customization",frontmatter:{},regularPath:"/customize/grid/Grid-Customization.html",relativePath:"customize/grid/Grid-Customization.md",key:"v-a10b0572",path:"/customize/grid/Grid-Customization.html",headers:[{level:2,title:"AsTeRICS Grid web application",slug:"asterics-grid-web-application"},{level:2,title:"Open grid",slug:"open-grid"},{level:3,title:"Saved Grids",slug:"saved-grids"},{level:3,title:"Import Grid file",slug:"import-grid-file"},{level:2,title:"Change cell",slug:"change-cell"},{level:3,title:"Cell text and image",slug:"cell-text-and-image"},{level:3,title:"Spoken text",slug:"spoken-text"},{level:3,title:"Close Edit mode",slug:"close-edit-mode"},{level:2,title:"Conclusion",slug:"conclusion"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/grid/Grid-Customization.md"},{title:"Environmental Control",frontmatter:{},regularPath:"/customize/environmental-control/",relativePath:"customize/environmental-control/README.md",key:"v-10c8bfce",path:"/customize/environmental-control/",headers:[{level:2,title:"OpenHAB",slug:"openhab"},{level:3,title:"Accessible UI",slug:"accessible-ui"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/environmental-control/README.md"},{title:"Customize Grid",frontmatter:{},regularPath:"/customize/grid/",relativePath:"customize/grid/README.md",key:"v-9b65a438",path:"/customize/grid/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/grid/README.md"},{title:"Model Customization",frontmatter:{},regularPath:"/customize/model/Model-Customization.html",relativePath:"customize/model/Model-Customization.md",key:"v-f23dedf2",path:"/customize/model/Model-Customization.html",headers:[{level:2,title:"Open model",slug:"open-model"},{level:3,title:"Model of Solutions",slug:"model-of-solutions"},{level:3,title:"Deployed Model",slug:"deployed-model"},{level:2,title:"Change Plugin Property",slug:"change-plugin-property"},{level:3,title:"Change Property Value",slug:"change-property-value"},{level:3,title:"Test Change",slug:"test-change"},{level:2,title:"Conclusion",slug:"conclusion"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/model/Model-Customization.md"},{title:"Model Creation",frontmatter:{},regularPath:"/customize/model/Model-Creation.html",relativePath:"customize/model/Model-Creation.md",key:"v-06145dae",path:"/customize/model/Model-Creation.html",headers:[{level:2,title:"Camera Mouse Simple",slug:"camera-mouse-simple"},{level:3,title:"Add Facetracking",slug:"add-facetracking"},{level:3,title:"Add Mouse",slug:"add-mouse"},{level:3,title:"Add Mouse Click",slug:"add-mouse-click"},{level:3,title:"Test Model",slug:"test-model"},{level:3,title:"Reducing Tremor",slug:"reducing-tremor"},{level:3,title:"Adjusting the Webcam",slug:"adjusting-the-webcam"},{level:2,title:"Camera Mouse Advanced",slug:"camera-mouse-advanced"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/model/Model-Creation.md"},{title:"Customize Model",frontmatter:{},regularPath:"/customize/model/",relativePath:"customize/model/README.md",key:"v-9d3a03d0",path:"/customize/model/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/model/README.md"},{title:"AsTeRICS Packaging Environment (APE)",frontmatter:{},regularPath:"/develop/APE.html",relativePath:"develop/APE.md",key:"v-536028e7",path:"/develop/APE.html",headers:[{level:2,title:"APE consists of two major elements",slug:"ape-consists-of-two-major-elements"},{level:2,title:"Important Terms",slug:"important-terms"},{level:2,title:"Dependencies",slug:"dependencies"},{level:2,title:"APE-copy commandline tool",slug:"ape-copy-commandline-tool"},{level:3,title:"Example usages of the APE-copy commandline tool",slug:"example-usages-of-the-ape-copy-commandline-tool"},{level:2,title:"Build infrastructure and native installer creation",slug:"build-infrastructure-and-native-installer-creation"},{level:3,title:"Simplified folder structure",slug:"simplified-folder-structure"},{level:3,title:"General workflow for using the build infrastructure",slug:"general-workflow-for-using-the-build-infrastructure"},{level:3,title:"Example usages of the build infrastructure",slug:"example-usages-of-the-build-infrastructure"},{level:3,title:"Properties for copying/extraction behaviour of APE",slug:"properties-for-copying-extraction-behaviour-of-ape"},{level:3,title:"Properties for installer creation",slug:"properties-for-installer-creation"},{level:3,title:"ARE customization",slug:"are-customization"},{level:3,title:"Installer customization",slug:"installer-customization"},{level:3,title:"ant build files",slug:"ant-build-files"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/APE.md"},{title:"Other Use Cases and Information",frontmatter:{},regularPath:"/customize/other/",relativePath:"customize/other/README.md",key:"v-54cb8a6c",path:"/customize/other/",headers:[{level:2,title:"Complete AsTeRICS User Manual",slug:"complete-asterics-user-manual"},{level:2,title:"DIY Guides",slug:"diy-guides"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/customize/other/README.md"},{title:"ARE Middleware",frontmatter:{},regularPath:"/develop/ARE%20API.html",relativePath:"develop/ARE API.md",key:"v-791888ea",path:"/develop/ARE%20API.html",headers:[{level:2,title:"Logging",slug:"logging"},{level:2,title:"Model execution",slug:"model-execution"},{level:3,title:"Event propagation",slug:"event-propagation"},{level:3,title:"Data propagation & conversion",slug:"data-propagation-conversion"},{level:2,title:"ARE Threading",slug:"are-threading"},{level:3,title:"Threading concept",slug:"threading-concept"},{level:3,title:"Thread pool",slug:"thread-pool"},{level:2,title:"ARE Desktop (GUI)",slug:"are-desktop-gui"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE API.md"},{title:"ARE Keyboard and Mouse Services",frontmatter:{},regularPath:"/develop/ARE-Keyboard-Mouse-Services.html",relativePath:"develop/ARE-Keyboard-Mouse-Services.md",key:"v-26c664f2",path:"/develop/ARE-Keyboard-Mouse-Services.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE-Keyboard-Mouse-Services.md"},{title:"Interfacing AsTeRICS HW using the CIM protocol",frontmatter:{},regularPath:"/develop/ARE-HW-Interfacing-CIM.html",relativePath:"develop/ARE-HW-Interfacing-CIM.md",key:"v-440b00d9",path:"/develop/ARE-HW-Interfacing-CIM.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE-HW-Interfacing-CIM.md"},{title:"ARE Development Manual",frontmatter:{},regularPath:"/develop/ARE/ARE-Development-Manual.html",relativePath:"develop/ARE/ARE-Development-Manual.md",key:"v-72593097",path:"/develop/ARE/ARE-Development-Manual.html",headers:[{level:2,title:"Understanding the component build-scripts",slug:"understanding-the-component-build-scripts"},{level:2,title:"Starting the ARE middleware and component deployments",slug:"starting-the-are-middleware-and-component-deployments"},{level:2,title:"Structure of the runtime folder “./bin/ARE”:",slug:"structure-of-the-runtime-folder-bin-are"},{level:2,title:"AsteRICS services",slug:"asterics-services"},{level:2,title:"Running a deployment",slug:"running-a-deployment"},{level:2,title:"ARE webserver (including REST API, websocket)",slug:"are-webserver-including-rest-api-websocket"},{level:2,title:"Define autostart model per command line",slug:"define-autostart-model-per-command-line"},{level:2,title:"Change model task submit timeout",slug:"change-model-task-submit-timeout"},{level:2,title:"Debugging the ARE",slug:"debugging-the-are"},{level:2,title:"Services and Utils: Infrastructure for plugins",slug:"services-and-utils-infrastructure-for-plugins"},{level:2,title:"Communicating with peripherals: CIM Communication service",slug:"communicating-with-peripherals-cim-communication-service"},{level:2,title:"CIMPortController",slug:"cimportcontroller"},{level:2,title:"CIMPortManager",slug:"cimportmanager"},{level:2,title:"CIMEventHandler",slug:"cimeventhandler"},{level:2,title:"CIMProtocolPacket",slug:"cimprotocolpacket"},{level:2,title:"Serial ports not adhering to CIM Protocol (Raw Ports)",slug:"serial-ports-not-adhering-to-cim-protocol-raw-ports"},{level:2,title:"Communication through a socket interface: Remote Connection Manager",slug:"communication-through-a-socket-interface-remote-connection-manager"},{level:2,title:"IRemoteConnectionListener",slug:"iremoteconnectionlistener"},{level:2,title:"RemoteConnectionManager",slug:"remoteconnectionmanager"},{level:2,title:"Local Storage Service",slug:"local-storage-service"},{level:2,title:"Keyboard/Mouse Native Hook Services",slug:"keyboard-mouse-native-hook-services"},{level:2,title:"Computer Vision Services",slug:"computer-vision-services"},{level:2,title:"Data Conversion Utilities",slug:"data-conversion-utilities"},{level:2,title:"Fetching resource URIs with ResourceRegistry class",slug:"fetching-resource-uris-with-resourceregistry-class"},{level:2,title:"Error Reporting (AstericsErrorHandling)",slug:"error-reporting-astericserrorhandling"},{level:3,title:"Logging",slug:"logging"},{level:3,title:"Error Reporting of components",slug:"error-reporting-of-components"},{level:3,title:"Status checking",slug:"status-checking"},{level:2,title:"The ARE Thread Pool",slug:"the-are-thread-pool"},{level:2,title:"The ARE GUI support",slug:"the-are-gui-support"},{level:2,title:"ARE core events notification services",slug:"are-core-events-notification-services"},{level:2,title:"Dynamic Properties",slug:"dynamic-properties"},{level:2,title:"Data Synchronization",slug:"data-synchronization"},{level:2,title:"Interfacing Native C/C++ Code via JNI",slug:"interfacing-native-c-c-code-via-jni"},{level:2,title:"Java-Implementation: JNI-Bridge",slug:"java-implementation-jni-bridge"},{level:2,title:"C-Implementation: Callbacks and JNI code",slug:"c-implementation-callbacks-and-jni-code"},{level:2,title:"AsTeRICS Packaging Environment (APE)",slug:"asterics-packaging-environment-ape"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE/ARE-Development-Manual.md"},{title:"AT Solutions Demos",frontmatter:{},regularPath:"/develop/AT-solution-demos.html",relativePath:"develop/AT-solution-demos.md",key:"v-bae20b32",path:"/develop/AT-solution-demos.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/AT-solution-demos.md"},{title:"ARE Middleware",frontmatter:{},regularPath:"/develop/ARE.html",relativePath:"develop/ARE.md",key:"v-6b8fd6b2",path:"/develop/ARE.html",headers:[{level:2,title:"The AsTeRICS Runtime Environment",slug:"the-asterics-runtime-environment"},{level:2,title:"ARE Components",slug:"are-components"},{level:2,title:"About OSGi",slug:"about-osgi"},{level:2,title:"Getting Started with AsTeRICS Development",slug:"getting-started-with-asterics-development"},{level:2,title:"Understanding the component build-scripts",slug:"understanding-the-component-build-scripts"},{level:2,title:"Starting the ARE middleware and component deployments",slug:"starting-the-are-middleware-and-component-deployments"},{level:2,title:"Structure of the runtime folder “./bin/ARE”:",slug:"structure-of-the-runtime-folder-bin-are"},{level:2,title:"AsteRICS services",slug:"asterics-services"},{level:2,title:"Running a deployment",slug:"running-a-deployment"},{level:2,title:"ARE webserver (including REST API, websocket)",slug:"are-webserver-including-rest-api-websocket"},{level:2,title:"Define autostart model per command line",slug:"define-autostart-model-per-command-line"},{level:2,title:"Change model task submit timeout",slug:"change-model-task-submit-timeout"},{level:2,title:"Debugging the ARE",slug:"debugging-the-are"},{level:2,title:"Services and Utils: Infrastructure for plugins",slug:"services-and-utils-infrastructure-for-plugins"},{level:2,title:"Communicating with peripherals: CIM Communication service",slug:"communicating-with-peripherals-cim-communication-service"},{level:2,title:"CIMPortController",slug:"cimportcontroller"},{level:2,title:"CIMPortManager",slug:"cimportmanager"},{level:2,title:"CIMEventHandler",slug:"cimeventhandler"},{level:2,title:"CIMProtocolPacket",slug:"cimprotocolpacket"},{level:2,title:"Serial ports not adhering to CIM Protocol (Raw Ports)",slug:"serial-ports-not-adhering-to-cim-protocol-raw-ports"},{level:2,title:"Communication through a socket interface: Remote Connection Manager",slug:"communication-through-a-socket-interface-remote-connection-manager"},{level:2,title:"IRemoteConnectionListener",slug:"iremoteconnectionlistener"},{level:2,title:"RemoteConnectionManager",slug:"remoteconnectionmanager"},{level:2,title:"Local Storage Service",slug:"local-storage-service"},{level:2,title:"Keyboard/Mouse Native Hook Services",slug:"keyboard-mouse-native-hook-services"},{level:2,title:"Computer Vision Services",slug:"computer-vision-services"},{level:2,title:"Data Conversion Utilities",slug:"data-conversion-utilities"},{level:2,title:"Fetching resource URIs with ResourceRegistry class",slug:"fetching-resource-uris-with-resourceregistry-class"},{level:2,title:"Error Reporting (AstericsErrorHandling)",slug:"error-reporting-astericserrorhandling"},{level:3,title:"Logging",slug:"logging"},{level:3,title:"Error Reporting of components",slug:"error-reporting-of-components"},{level:3,title:"Status checking",slug:"status-checking"},{level:2,title:"The ARE Thread Pool",slug:"the-are-thread-pool"},{level:2,title:"The ARE GUI support",slug:"the-are-gui-support"},{level:2,title:"ARE core events notification services",slug:"are-core-events-notification-services"},{level:2,title:"Dynamic Properties",slug:"dynamic-properties"},{level:2,title:"Data Synchronization",slug:"data-synchronization"},{level:2,title:"Interfacing Native C/C++ Code via JNI",slug:"interfacing-native-c-c-code-via-jni"},{level:2,title:"Java-Implementation: JNI-Bridge",slug:"java-implementation-jni-bridge"},{level:2,title:"C-Implementation: Callbacks and JNI code",slug:"c-implementation-callbacks-and-jni-code"},{level:2,title:"AsTeRICS Packaging Environment (APE)",slug:"asterics-packaging-environment-ape"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE.md"},{title:"AT Solution",frontmatter:{},regularPath:"/develop/AT_solution_development.html",relativePath:"develop/AT_solution_development.md",key:"v-46ee2c72",path:"/develop/AT_solution_development.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/AT_solution_development.md"},{title:"Coding Guidelines",frontmatter:{},regularPath:"/develop/Coding-Guidelines.html",relativePath:"develop/Coding-Guidelines.md",key:"v-05927867",path:"/develop/Coding-Guidelines.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Coding-Guidelines.md"},{title:"ARE Webserver",frontmatter:{},regularPath:"/develop/ARE-Webserver.html",relativePath:"develop/ARE-Webserver.md",key:"v-88946f32",path:"/develop/ARE-Webserver.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE-Webserver.md"},{title:"Plugin Advanced",frontmatter:{},regularPath:"/develop/Plugin-Advanced.html",relativePath:"develop/Plugin-Advanced.md",key:"v-b05cb8b2",path:"/develop/Plugin-Advanced.html",headers:[{level:2,title:"Writing AsTeRICS Plugin Code",slug:"writing-asterics-plugin-code"},{level:3,title:"ARE Coding Guidelines",slug:"are-coding-guidelines"},{level:2,title:"Eclipse Code Style Settings",slug:"eclipse-code-style-settings"},{level:2,title:"Port Naming Conventions",slug:"port-naming-conventions"},{level:2,title:"Property Naming Conventions",slug:"property-naming-conventions"},{level:2,title:"Bundle Descriptor Naming Conventions",slug:"bundle-descriptor-naming-conventions"},{level:2,title:"AsTeRICS ARE, service and plugin source file header",slug:"asterics-are-service-and-plugin-source-file-header"},{level:2,title:"JavaDoc compatible comments",slug:"javadoc-compatible-comments"},{level:2,title:"Implementing AsTeRICS components",slug:"implementing-asterics-components"},{level:2,title:"The Bundle Descriptors",slug:"the-bundle-descriptors"},{level:2,title:"The Deployment Descriptor",slug:"the-deployment-descriptor"},{level:2,title:"The Manifest file",slug:"the-manifest-file"},{level:2,title:"Structure of OSGi bundles containing ARE components",slug:"structure-of-osgi-bundles-containing-are-components"},{level:2,title:"Component lifecyle",slug:"component-lifecyle"},{level:2,title:"Threading",slug:"threading"},{level:2,title:"Writing plugins using Swing",slug:"writing-plugins-using-swing"},{level:2,title:"Long lasting method calls",slug:"long-lasting-method-calls"},{level:2,title:"Sensor callbacks",slug:"sensor-callbacks"},{level:2,title:"Contributing a developed plugin (git pull request)",slug:"contributing-a-developed-plugin-git-pull-request"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Plugin-Advanced.md"},{title:"Development Environment",frontmatter:{},regularPath:"/develop/Development-Environment.html",relativePath:"develop/Development-Environment.md",key:"v-587f5c72",path:"/develop/Development-Environment.html",headers:[{level:2,title:"Repository Overview",slug:"repository-overview"},{level:2,title:"Clone Repository",slug:"clone-repository"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Environment Variables",slug:"environment-variables"},{level:2,title:"Build",slug:"build"},{level:3,title:"Building ARE Middleware, Services and Plugins",slug:"building-are-middleware-services-and-plugins"},{level:2,title:"Eclipse Setup",slug:"eclipse-setup"},{level:3,title:"Java Project",slug:"java-project"},{level:3,title:"Character encoding",slug:"character-encoding"},{level:3,title:"Editing Model Files (windows-only)",slug:"editing-model-files-windows-only"},{level:3,title:"Ant within Eclipse",slug:"ant-within-eclipse"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Development-Environment.md"},{title:"Plugin Introduction",frontmatter:{},regularPath:"/develop/Plugin-Introduction.html",relativePath:"develop/Plugin-Introduction.md",key:"v-5ad5b4a7",path:"/develop/Plugin-Introduction.html",headers:[{level:2,title:"A Quick Guide to AsTeRICS Plugin Development",slug:"a-quick-guide-to-asterics-plugin-development"},{level:2,title:"The Plugin Creation Wizard",slug:"the-plugin-creation-wizard"},{level:2,title:"Created files and folders",slug:"created-files-and-folders"},{level:2,title:"Plugin Activation in ACS and ARE",slug:"plugin-activation-in-acs-and-are"},{level:2,title:"Component-Collection Management in the ACS",slug:"component-collection-management-in-the-acs"},{level:2,title:"Plugin License Declaration",slug:"plugin-license-declaration"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Plugin-Introduction.md"},{title:"Plugin Tutorial",frontmatter:{},regularPath:"/develop/Plugin-Tutorial.html",relativePath:"develop/Plugin-Tutorial.md",key:"v-601a5927",path:"/develop/Plugin-Tutorial.html",headers:[{level:2,title:"Step-by-Step implementation: Averager processor",slug:"step-by-step-implementation-averager-processor"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Plugin-Tutorial.md"},{title:"REST Java Client library",frontmatter:{},regularPath:"/develop/REST-API-java-client.html",relativePath:"develop/REST-API-java-client.md",key:"v-484bb6ca",path:"/develop/REST-API-java-client.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API-java-client.md"},{title:"Javascript REST API client library",frontmatter:{},regularPath:"/develop/REST-API-js-areCommunicator.html",relativePath:"develop/REST-API-js-areCommunicator.md",key:"v-0907f972",path:"/develop/REST-API-js-areCommunicator.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API-js-areCommunicator.md"},{title:"Javascript model manipulation and deployment",frontmatter:{},regularPath:"/develop/REST-API-js-wrapper-ext.html",relativePath:"develop/REST-API-js-wrapper-ext.md",key:"v-cc275ef2",path:"/develop/REST-API-js-wrapper-ext.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API-js-wrapper-ext.md"},{title:"REST API",frontmatter:{},regularPath:"/develop/REST-API.html",relativePath:"develop/REST-API.md",key:"v-3e7c0826",path:"/develop/REST-API.html",headers:[{level:2,title:"General Information",slug:"general-information"},{level:2,title:"REST API Links",slug:"rest-api-links"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-API.md"},{title:"Develop",frontmatter:{},regularPath:"/develop/",relativePath:"develop/README.md",key:"v-442ae018",path:"/develop/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/README.md"},{title:"REST demos with Javascript client library",frontmatter:{},regularPath:"/develop/REST-demos.html",relativePath:"develop/REST-demos.md",key:"v-1fef0fc1",path:"/develop/REST-demos.html",headers:[{level:2,title:"Examples",slug:"examples"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/REST-demos.md"},{title:"Unit Testing",frontmatter:{},regularPath:"/develop/Unit-Testing.html",relativePath:"develop/Unit-Testing.md",key:"v-1ac13561",path:"/develop/Unit-Testing.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/Unit-Testing.md"},{title:"REST API Tutorial",frontmatter:{},regularPath:"/develop/are-remote-apis/REST-API.html",relativePath:"develop/are-remote-apis/REST-API.md",key:"v-a7f6f946",path:"/develop/are-remote-apis/REST-API.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Example 1 - Model start/stop",slug:"example-1-model-start-stop"},{level:2,title:"Example 2 - Model upload",slug:"example-2-model-upload"},{level:2,title:"Example 3 - Change plugin property values",slug:"example-3-change-plugin-property-values"},{level:2,title:"Example 4 - Send data to input port",slug:"example-4-send-data-to-input-port"},{level:2,title:"Example 5 - Trigger event listener",slug:"example-5-trigger-event-listener"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/REST-API.md"},{title:"ARE Remote APIs",frontmatter:{},regularPath:"/develop/are-remote-apis/",relativePath:"develop/are-remote-apis/README.md",key:"v-6b057aa8",path:"/develop/are-remote-apis/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/README.md"},{title:"REST demos with Javascript client library",frontmatter:{},regularPath:"/develop/are-remote-apis/REST-demos.html",relativePath:"develop/are-remote-apis/REST-demos.md",key:"v-d3e94d9e",path:"/develop/are-remote-apis/REST-demos.html",headers:[{level:2,title:"Examples",slug:"examples"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/REST-demos.md"},{title:"ARE Webserver",frontmatter:{},regularPath:"/develop/are-remote-apis/Webserver.html",relativePath:"develop/are-remote-apis/Webserver.md",key:"v-628a78c7",path:"/develop/are-remote-apis/Webserver.html",headers:[{level:2,title:"Document root subpath definitions",slug:"document-root-subpath-definitions"},{level:2,title:"Physical folder structure",slug:"physical-folder-structure"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/Webserver.md"},{title:"Websocket Tutorial",frontmatter:{},regularPath:"/develop/are-remote-apis/Websocket.html",relativePath:"develop/are-remote-apis/Websocket.md",key:"v-aefc4a72",path:"/develop/are-remote-apis/Websocket.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Example 1 - Web socket echo",slug:"example-1-web-socket-echo"},{level:3,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Create model with WebSocket plugin",slug:"create-model-with-websocket-plugin"},{level:3,title:"Create web page with web socket client",slug:"create-web-page-with-web-socket-client"},{level:3,title:"Resulting output",slug:"resulting-output"},{level:2,title:"Example 2 - Web socket demo with signal data live chart",slug:"example-2-web-socket-demo-with-signal-data-live-chart"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/are-remote-apis/Websocket.md"},{title:"Structure",frontmatter:{},regularPath:"/develop/asterics-grid/01_structure.html",relativePath:"develop/asterics-grid/01_structure.md",key:"v-3fb3a679",path:"/develop/asterics-grid/01_structure.html",headers:[{level:2,title:"Project structure",slug:"project-structure"},{level:2,title:"Sources structure",slug:"sources-structure"},{level:3,title:'Elements in folder "app/"',slug:"elements-in-folder-app"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/01_structure.md"},{title:"Dynamic grid",frontmatter:{},regularPath:"/develop/asterics-grid/03_grid.html",relativePath:"develop/asterics-grid/03_grid.md",key:"v-052f3aa7",path:"/develop/asterics-grid/03_grid.html",headers:[{level:2,title:"General",slug:"general"},{level:2,title:"GridList and grid.js",slug:"gridlist-and-grid-js"},{level:2,title:"Repositioning and resizing of elements",slug:"repositioning-and-resizing-of-elements"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/03_grid.md"},{title:"Vue.js",frontmatter:{},regularPath:"/develop/asterics-grid/04_vuejs.html",relativePath:"develop/asterics-grid/04_vuejs.md",key:"v-52eb403b",path:"/develop/asterics-grid/04_vuejs.html",headers:[{level:2,title:"General",slug:"general"},{level:2,title:"Component structure",slug:"component-structure"},{level:2,title:"Used components",slug:"used-components"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/04_vuejs.md"},{title:"Tools and libraries",frontmatter:{},regularPath:"/develop/asterics-grid/02_tools.html",relativePath:"develop/asterics-grid/02_tools.md",key:"v-64d69327",path:"/develop/asterics-grid/02_tools.html",headers:[{level:2,title:"Tools",slug:"tools"},{level:3,title:"Node package manager (npm)",slug:"node-package-manager-npm"},{level:3,title:"Webpack",slug:"webpack"},{level:2,title:"Javascript libraries",slug:"javascript-libraries"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/02_tools.md"},{title:"Data storage",frontmatter:{},regularPath:"/develop/asterics-grid/06_data_storage.html",relativePath:"develop/asterics-grid/06_data_storage.md",key:"v-045e7207",path:"/develop/asterics-grid/06_data_storage.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Data storage abstraction layers",slug:"data-storage-abstraction-layers"},{level:2,title:"One database per user",slug:"one-database-per-user"},{level:2,title:"Authentication layer",slug:"authentication-layer"},{level:2,title:"Inspecting locally saved data",slug:"inspecting-locally-saved-data"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/06_data_storage.md"},{title:"Data model",frontmatter:{},regularPath:"/develop/asterics-grid/05_datamodel.html",relativePath:"develop/asterics-grid/05_datamodel.md",key:"v-217e7fd9",path:"/develop/asterics-grid/05_datamodel.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Data models saved to database",slug:"data-models-saved-to-database"},{level:2,title:"Data models not saved to database",slug:"data-models-not-saved-to-database"},{level:2,title:"Common data model properties",slug:"common-data-model-properties"},{level:2,title:"Full and short objects",slug:"full-and-short-objects"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/05_datamodel.md"},{title:"Internationalization",frontmatter:{next:!1},regularPath:"/develop/asterics-grid/07_i18n.html",relativePath:"develop/asterics-grid/07_i18n.md",key:"v-b5855fb2",path:"/develop/asterics-grid/07_i18n.html",headers:[{level:2,title:"dom-i18n",slug:"dom-i18n"},{level:2,title:"i18nService.js",slug:"i18nservice-js"},{level:3,title:"Usage example",slug:"usage-example"},{level:2,title:"Vue.js filter",slug:"vue-js-filter"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/07_i18n.md"},{title:"REST Tutorial",frontmatter:{},regularPath:"/develop/asterics-wiki/api/REST-API.html",relativePath:"develop/asterics-wiki/api/REST-API.md",key:"v-5d66a48b",path:"/develop/asterics-wiki/api/REST-API.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Example 1 - Model start/stop",slug:"example-1-model-start-stop"},{level:2,title:"Example 2 - Model upload",slug:"example-2-model-upload"},{level:2,title:"Example 3 - Change plugin property values",slug:"example-3-change-plugin-property-values"},{level:2,title:"Example 4 - Send data to input port",slug:"example-4-send-data-to-input-port"},{level:2,title:"Example 5 - Trigger event listener",slug:"example-5-trigger-event-listener"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/api/REST-API.md"},{title:"Collaboration",frontmatter:{},regularPath:"/develop/asterics-grid/collaboration.html",relativePath:"develop/asterics-grid/collaboration.md",key:"v-1a112707",path:"/develop/asterics-grid/collaboration.html",headers:[{level:2,title:"General info",slug:"general-info"},{level:2,title:"Public collaboration",slug:"public-collaboration"},{level:3,title:"Working on issues",slug:"working-on-issues"},{level:3,title:"Review and test open PR's",slug:"review-and-test-open-pr-s"},{level:3,title:"Working on translations",slug:"working-on-translations"},{level:2,title:"Internal collaboration",slug:"internal-collaboration"},{level:3,title:"Responding to email requests",slug:"responding-to-email-requests"},{level:3,title:"Checking the server",slug:"checking-the-server"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/collaboration.md"},{title:"Websocket Tutorial",frontmatter:{},regularPath:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html",relativePath:"develop/asterics-wiki/api/AsTeRICS Websocket.md",key:"v-e8933724",path:"/develop/asterics-wiki/api/AsTeRICS%20Websocket.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Example 1 - Web socket echo",slug:"example-1-web-socket-echo"},{level:3,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Create model with WebSocket plugin",slug:"create-model-with-websocket-plugin"},{level:3,title:"Create web page with web socket client",slug:"create-web-page-with-web-socket-client"},{level:3,title:"Resulting output",slug:"resulting-output"},{level:2,title:"Example 2 - Web socket demo with signal data live chart",slug:"example-2-web-socket-demo-with-signal-data-live-chart"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/api/AsTeRICS Websocket.md"},{title:"AsTeRICS Grid developer documentation",frontmatter:{},regularPath:"/develop/asterics-grid/",relativePath:"develop/asterics-grid/README.md",key:"v-e0ec9638",path:"/develop/asterics-grid/",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_dev/README.md"},{title:"Objective",frontmatter:{},regularPath:"/develop/asterics-wiki/api/Resource%20Handling.html",relativePath:"develop/asterics-wiki/api/Resource Handling.md",key:"v-a04bf3f8",path:"/develop/asterics-wiki/api/Resource%20Handling.html",headers:[{level:2,title:"Main benefits of class ResourceRegistry",slug:"main-benefits-of-class-resourceregistry"},{level:2,title:"Resource types",slug:"resource-types"},{level:2,title:"Get model URI",slug:"get-model-uri"},{level:2,title:"Get URI of a data file",slug:"get-uri-of-a-data-file"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/api/Resource Handling.md"},{title:"AT Solution Tutorial",frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html",relativePath:"develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.md",key:"v-013fce70",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Solutions.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Download / Clone template repository",slug:"download-clone-template-repository"},{level:2,title:"Example 1 - Run project",slug:"example-1-run-project"},{level:2,title:"Example 2 - Edit and test model",slug:"example-2-edit-and-test-model"},{level:2,title:"AsTeRICS model + web application",slug:"asterics-model-web-application"},{level:2,title:"Example 3 - Model parametrization through web page",slug:"example-3-model-parametrization-through-web-page"},{level:2,title:"Example 4 - Rename web application folder and title",slug:"example-4-rename-web-application-folder-and-title"},{level:2,title:"Eclipse installation and setup",slug:"eclipse-installation-and-setup"},{level:3,title:"Eclipse project setup",slug:"eclipse-project-setup"},{level:3,title:"Using ant within eclipse",slug:"using-ant-within-eclipse"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.md"},{frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html",relativePath:"develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.md",key:"v-35094c20",path:"/develop/asterics-wiki/coding_instructions/AsTeRICS%20Webserver%20Document%20Root.html",headers:[{level:2,title:"Security considerations",slug:"security-considerations"},{level:2,title:"Virtual Subpath definitions",slug:"virtual-subpath-definitions"},{level:2,title:"Physical folder structure",slug:"physical-folder-structure"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.md"},{frontmatter:{},regularPath:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html",relativePath:"develop/asterics-wiki/components/AsTeRICS Plugins.md",key:"v-7903e66c",path:"/develop/asterics-wiki/components/AsTeRICS%20Plugins.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/components/AsTeRICS Plugins.md"},{title:"AT Solution Introduction (Demos)",frontmatter:{},regularPath:"/develop/at-solution/",relativePath:"develop/at-solution/README.md",key:"v-5c6ba0e0",path:"/develop/at-solution/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/at-solution/README.md"},{title:"Objective",frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/JavaCV.html",relativePath:"develop/asterics-wiki/coding_instructions/JavaCV.md",key:"v-04acb1a3",path:"/develop/asterics-wiki/coding_instructions/JavaCV.html",headers:[{level:2,title:"JavaCV",slug:"javacv"},{level:2,title:"Example 1 - Face detection and face rectangle",slug:"example-1-face-detection-and-face-rectangle"},{level:3,title:"Init and Start grabbing",slug:"init-and-start-grabbing"},{level:3,title:"Face detection and drawing",slug:"face-detection-and-drawing"},{level:3,title:"Stop grabbing & cleanup",slug:"stop-grabbing-cleanup"},{level:2,title:"Example 2 - Drawing a hat on top of the face",slug:"example-2-drawing-a-hat-on-top-of-the-face"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/JavaCV.md"},{title:"AsTeRICS Packaging Environment (APE)",frontmatter:{},regularPath:"/develop/at-solution/APE.html",relativePath:"develop/at-solution/APE.md",key:"v-73196267",path:"/develop/at-solution/APE.html",headers:[{level:2,title:"APE consists of two major elements",slug:"ape-consists-of-two-major-elements"},{level:2,title:"Important Terms",slug:"important-terms"},{level:2,title:"Dependencies",slug:"dependencies"},{level:2,title:"APE-copy commandline tool",slug:"ape-copy-commandline-tool"},{level:3,title:"Example usages of the APE-copy commandline tool",slug:"example-usages-of-the-ape-copy-commandline-tool"},{level:2,title:"Build infrastructure and native installer creation",slug:"build-infrastructure-and-native-installer-creation"},{level:3,title:"Simplified folder structure",slug:"simplified-folder-structure"},{level:3,title:"General workflow for using the build infrastructure",slug:"general-workflow-for-using-the-build-infrastructure"},{level:3,title:"Example usages of the build infrastructure",slug:"example-usages-of-the-build-infrastructure"},{level:3,title:"Properties for copying/extraction behaviour of APE",slug:"properties-for-copying-extraction-behaviour-of-ape"},{level:3,title:"Properties for installer creation",slug:"properties-for-installer-creation"},{level:3,title:"ARE customization",slug:"are-customization"},{level:3,title:"Installer customization",slug:"installer-customization"},{level:3,title:"ant build files",slug:"ant-build-files"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/at-solution/APE.md"},{frontmatter:{},regularPath:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html",relativePath:"develop/asterics-wiki/coding_instructions/Unit Tests.md",key:"v-d3fed8f4",path:"/develop/asterics-wiki/coding_instructions/Unit%20Tests.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/asterics-wiki/coding_instructions/Unit Tests.md"},{title:"Coding Guidelines",frontmatter:{},regularPath:"/develop/get-started/Coding-Guidelines.html",relativePath:"develop/get-started/Coding-Guidelines.md",key:"v-962a65f2",path:"/develop/get-started/Coding-Guidelines.html",headers:[{level:2,title:"Eclipse Code Style Settings",slug:"eclipse-code-style-settings"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/get-started/Coding-Guidelines.md"},{title:"Development Environment",frontmatter:{},regularPath:"/develop/get-started/Development-Environment.html",relativePath:"develop/get-started/Development-Environment.md",key:"v-0a2795a7",path:"/develop/get-started/Development-Environment.html",headers:[{level:2,title:"Repository Overview",slug:"repository-overview"},{level:2,title:"Clone Repository",slug:"clone-repository"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Environment Variables",slug:"environment-variables"},{level:2,title:"Build",slug:"build"},{level:3,title:"Building ARE Middleware, Services and Plugins",slug:"building-are-middleware-services-and-plugins"},{level:2,title:"Eclipse Setup",slug:"eclipse-setup"},{level:3,title:"Java Project",slug:"java-project"},{level:3,title:"Character encoding",slug:"character-encoding"},{level:3,title:"Editing Model Files (windows-only)",slug:"editing-model-files-windows-only"},{level:3,title:"Ant within Eclipse",slug:"ant-within-eclipse"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/get-started/Development-Environment.md"},{title:"Computer Vision using JavaCV",frontmatter:{},regularPath:"/develop/plugin/Computer-Vision.html",relativePath:"develop/plugin/Computer-Vision.md",key:"v-1f5a7833",path:"/develop/plugin/Computer-Vision.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"JavaCV",slug:"javacv"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Preparation",slug:"preparation"},{level:2,title:"Example 1 - Face detection and face rectangle",slug:"example-1-face-detection-and-face-rectangle"},{level:3,title:"Init and Start grabbing",slug:"init-and-start-grabbing"},{level:3,title:"Face detection and drawing",slug:"face-detection-and-drawing"},{level:3,title:"Stop grabbing & cleanup",slug:"stop-grabbing-cleanup"},{level:2,title:"Example 2 - Drawing a hat on top of the face",slug:"example-2-drawing-a-hat-on-top-of-the-face"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Computer-Vision.md"},{title:"Development Environment Introduction",frontmatter:{},regularPath:"/develop/get-started/",relativePath:"develop/get-started/README.md",key:"v-66af9122",path:"/develop/get-started/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/get-started/README.md"},{title:"ARE Development Overview",frontmatter:{},regularPath:"/develop/ARE/",relativePath:"develop/ARE/README.md",key:"v-58b05fce",path:"/develop/ARE/",headers:[{level:2,title:"The AsTeRICS Runtime Environment",slug:"the-asterics-runtime-environment"},{level:2,title:"ARE Components",slug:"are-components"},{level:2,title:"About OSGi",slug:"about-osgi"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/ARE/README.md"},{title:"Plugin Development Advanced",frontmatter:{},regularPath:"/develop/plugin/Plugin-Advanced.html",relativePath:"develop/plugin/Plugin-Advanced.md",key:"v-076485ef",path:"/develop/plugin/Plugin-Advanced.html",headers:[{level:2,title:"Port Naming Conventions",slug:"port-naming-conventions"},{level:2,title:"Property Naming Conventions",slug:"property-naming-conventions"},{level:2,title:"Bundle Descriptor Naming Conventions",slug:"bundle-descriptor-naming-conventions"},{level:2,title:"AsTeRICS ARE, service and plugin source file header",slug:"asterics-are-service-and-plugin-source-file-header"},{level:2,title:"JavaDoc compatible comments",slug:"javadoc-compatible-comments"},{level:2,title:"Implementing AsTeRICS components",slug:"implementing-asterics-components"},{level:2,title:"The Bundle Descriptors",slug:"the-bundle-descriptors"},{level:2,title:"The Deployment Descriptor",slug:"the-deployment-descriptor"},{level:2,title:"The Manifest file",slug:"the-manifest-file"},{level:2,title:"Structure of OSGi bundles containing ARE components",slug:"structure-of-osgi-bundles-containing-are-components"},{level:2,title:"Component lifecyle",slug:"component-lifecyle"},{level:2,title:"Threading",slug:"threading"},{level:2,title:"Writing plugins using Swing",slug:"writing-plugins-using-swing"},{level:2,title:"Long lasting method calls",slug:"long-lasting-method-calls"},{level:2,title:"Sensor callbacks",slug:"sensor-callbacks"},{level:2,title:"Contributing a developed plugin (git pull request)",slug:"contributing-a-developed-plugin-git-pull-request"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Plugin-Advanced.md"},{title:"Plugin Development: Averager",frontmatter:{},regularPath:"/develop/plugin/Plugin-Averager.html",relativePath:"develop/plugin/Plugin-Averager.md",key:"v-0bd51ec9",path:"/develop/plugin/Plugin-Averager.html",headers:[{level:2,title:"Step-by-Step implementation: Averager processor",slug:"step-by-step-implementation-averager-processor"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Plugin-Averager.md"},{title:"Plugin Development",frontmatter:{},regularPath:"/develop/plugin/",relativePath:"develop/plugin/README.md",key:"v-167b3e84",path:"/develop/plugin/",headers:[{level:2,title:"A Quick Guide to AsTeRICS Plugin Development",slug:"a-quick-guide-to-asterics-plugin-development"},{level:2,title:"The Plugin Creation Wizard",slug:"the-plugin-creation-wizard"},{level:2,title:"Created files and folders",slug:"created-files-and-folders"},{level:2,title:"Plugin Activation in ACS and ARE",slug:"plugin-activation-in-acs-and-are"},{level:2,title:"Component-Collection Management in the ACS",slug:"component-collection-management-in-the-acs"},{level:2,title:"Plugin License Declaration",slug:"plugin-license-declaration"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/README.md"},{title:"About Us",frontmatter:{},regularPath:"/get-involved/About-us.html",relativePath:"get-involved/About-us.md",key:"v-e5deb1f2",path:"/get-involved/About-us.html",headers:[{level:2,title:"Contributions",slug:"contributions"},{level:2,title:"Partner Organizations",slug:"partner-organizations"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/About-us.md"},{title:"Resource Handling (ResourceRegistry)",frontmatter:{},regularPath:"/develop/plugin/Resource-Handling.html",relativePath:"develop/plugin/Resource-Handling.md",key:"v-ae39e142",path:"/develop/plugin/Resource-Handling.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Main benefits",slug:"main-benefits"},{level:2,title:"Resource types",slug:"resource-types"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Preparation",slug:"preparation"},{level:2,title:"Example 1 - Getting resource URI",slug:"example-1-getting-resource-uri"},{level:3,title:"Get model URI",slug:"get-model-uri"},{level:3,title:"Get URI of a data file",slug:"get-uri-of-a-data-file"},{level:2,title:"Example 2 - Getting resource content",slug:"example-2-getting-resource-content"},{level:2,title:"Example 3 - Storing resource content",slug:"example-3-storing-resource-content"},{level:2,title:"Example 4 - Getting a resource list",slug:"example-4-getting-a-resource-list"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/plugin/Resource-Handling.md"},{title:"Legal Notice",frontmatter:{},regularPath:"/get-involved/Legal-Notice.html",relativePath:"get-involved/Legal-Notice.md",key:"v-688a4fc7",path:"/get-involved/Legal-Notice.html",headers:[{level:2,title:"Publisher and editorial responsibility",slug:"publisher-and-editorial-responsibility"},{level:2,title:"Responsible for Content & Webmaster",slug:"responsible-for-content-webmaster"},{level:2,title:"Disclaimer",slug:"disclaimer"},{level:2,title:"Copyright",slug:"copyright"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/Legal-Notice.md"},{title:"Contact",frontmatter:{},regularPath:"/get-involved/Contact.html",relativePath:"get-involved/Contact.md",key:"v-8dbe5096",path:"/get-involved/Contact.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/Contact.md"},{title:"Contribute",frontmatter:{},regularPath:"/get-involved/Contribute.html",relativePath:"get-involved/Contribute.md",key:"v-0c0bf027",path:"/get-involved/Contribute.html",headers:[{level:2,title:"Documentation",slug:"documentation"},{level:2,title:"Issue / Bug Report",slug:"issue-bug-report"},{level:2,title:"Code",slug:"code"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/Contribute.md"},{frontmatter:{},regularPath:"/get-involved/",relativePath:"get-involved/README.md",key:"v-4c4b4fb8",path:"/get-involved/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-involved/README.md"},{title:"Demos",frontmatter:{},regularPath:"/get-started/Demos.html",relativePath:"get-started/Demos.md",key:"v-e8b9abf2",path:"/get-started/Demos.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/Demos.md"},{title:"Get Started",frontmatter:{},regularPath:"/get-started/",relativePath:"get-started/README.md",key:"v-5f7524be",path:"/get-started/",headers:[{level:2,title:"Go to",slug:"go-to"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/README.md"},{title:"AsTeRICS Installation",frontmatter:{},regularPath:"/get-started/Installation.html",relativePath:"get-started/Installation.md",key:"v-6ead8b55",path:"/get-started/Installation.html",headers:[{level:2,title:"Windows",slug:"windows"},{level:3,title:"Download",slug:"download"},{level:3,title:"Installation Steps",slug:"installation-steps"},{level:3,title:"Desktop Short Cuts",slug:"desktop-short-cuts"},{level:3,title:"Start Menu",slug:"start-menu"},{level:2,title:"Mac OS X",slug:"mac-os-x"},{level:3,title:"Download",slug:"download-2"},{level:3,title:"Installation Steps",slug:"installation-steps-2"},{level:2,title:"Linux",slug:"linux"},{level:3,title:"Download",slug:"download-3"},{level:3,title:"Installation Steps",slug:"installation-steps-3"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/Installation.md"},{title:"AsTeRICS Overview",frontmatter:{},regularPath:"/get-started/Overview.html",relativePath:"get-started/Overview.md",key:"v-3822cb17",path:"/get-started/Overview.html",headers:[{level:2,title:"Terms",slug:"terms"},{level:3,title:"AsTeRICS",slug:"asterics"},{level:3,title:"Solutions",slug:"solutions"},{level:3,title:"Model",slug:"model"},{level:3,title:"Plugin",slug:"plugin"},{level:3,title:"Input Device",slug:"input-device"},{level:3,title:"Action",slug:"action"},{level:3,title:"AsTeRICS Grid",slug:"asterics-grid"},{level:3,title:"AT Solution",slug:"at-solution"},{level:2,title:"Programs",slug:"programs"},{level:3,title:"ACS",slug:"acs"},{level:3,title:"WebACS",slug:"webacs"},{level:3,title:"ARE",slug:"are"},{level:2,title:"User Interfaces",slug:"user-interfaces"},{level:3,title:"ARE GUI",slug:"are-gui"},{level:3,title:"AsTeRICS Grid",slug:"asterics-grid-2"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/get-started/Overview.md"},{title:"Website Developer Guide",frontmatter:{sidebar:"auto"},regularPath:"/guide/docs.html",relativePath:"guide/docs.md",key:"v-db6f5b92",path:"/guide/docs.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Get Started",slug:"get-started"},{level:2,title:"@asterics-docs/tool",slug:"asterics-docs-tool"},{level:3,title:"Commands",slug:"commands"},{level:3,title:"Configuration",slug:"configuration"}],editLink:"https://github.com/asterics/asterics-docs.js/edit/master/packages/@asterics-docs/tool/README.md"},{title:"Website Editor Guide",frontmatter:{sidebar:"auto"},regularPath:"/guide/editor.html",relativePath:"guide/editor.md",key:"v-14a1e3d3",path:"/guide/editor.html",headers:[{level:2,title:"Online",slug:"online"},{level:3,title:"Uploading Files",slug:"uploading-files"},{level:3,title:"Web-based editor",slug:"web-based-editor"},{level:2,title:"Offline",slug:"offline"},{level:2,title:"Publishing Updates",slug:"publishing-updates"}],editLink:"https://github.com/asterics/asterics-docs.js/edit/master/packages/@asterics-docs/vuepress-theme-docs/README.md"},{title:"Website Markdown Guide",frontmatter:{sidebar:"auto"},regularPath:"/guide/markdown.html",relativePath:"guide/markdown.md",key:"v-44873dcf",path:"/guide/markdown.html",headers:[{level:2,title:"Plugins (default)",slug:"plugins-default"},{level:2,title:"Plugins (custom)",slug:"plugins-custom"},{level:2,title:"VuePress Markdown Extensions",slug:"vuepress-markdown-extensions"},{level:3,title:"Input",slug:"input"},{level:3,title:"Output",slug:"output"},{level:2,title:"Model Links",slug:"model-links"},{level:2,title:"Frontmatter",slug:"frontmatter"},{level:3,title:"Predefined Variables",slug:"predefined-variables"},{level:3,title:"Predefined Variables Powered by Default Theme",slug:"predefined-variables-powered-by-default-theme"},{level:3,title:"Predefined Variables Powered by AsTeRICS Docs Theme",slug:"predefined-variables-powered-by-asterics-docs-theme"},{level:2,title:"Layouts",slug:"layouts"},{level:3,title:"Home",slug:"home"},{level:2,title:"Global Compontents",slug:"global-compontents"},{level:3,title:"Use Cases",slug:"use-cases"},{level:3,title:"Solutions",slug:"solutions"},{level:3,title:"Plugins Search",slug:"plugins-search"}],editLink:"https://github.com/asterics/asterics-docs.js/edit/master/packages/@asterics-docs/vuepress-theme-docs/MARKDOWN.md"},{title:"Colours Settings",frontmatter:{title:"Colours Settings"},regularPath:"/manuals/ACS/Colours_settings.html",relativePath:"manuals/ACS/Colours_settings.md",key:"v-0c72b81d",path:"/manuals/ACS/Colours_settings.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Colours_settings.md"},{title:"Actuators",frontmatter:{title:"Actuators"},regularPath:"/manuals/ACS/Actuators.html",relativePath:"manuals/ACS/Actuators.md",key:"v-b14aa6b2",path:"/manuals/ACS/Actuators.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Actuators.md"},{title:"Channels",frontmatter:{title:"Channels"},regularPath:"/manuals/ACS/Channels.html",relativePath:"manuals/ACS/Channels.md",key:"v-3b633733",path:"/manuals/ACS/Channels.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Channels.md"},{title:"Component Collection Manager",frontmatter:{title:"Component Collection Manager"},regularPath:"/manuals/ACS/Component_Collection_Manager.html",relativePath:"manuals/ACS/Component_Collection_Manager.md",key:"v-860d4992",path:"/manuals/ACS/Component_Collection_Manager.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Component_Collection_Manager.md"},{title:"Connected",frontmatter:{title:"Connected"},regularPath:"/manuals/ACS/Connected.html",relativePath:"manuals/ACS/Connected.md",key:"v-29b66472",path:"/manuals/ACS/Connected.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Connected.md"},{title:"Component Context Menu",frontmatter:{title:"Component Context Menu"},regularPath:"/manuals/ACS/Component_Context_Menu.html",relativePath:"manuals/ACS/Component_Context_Menu.md",key:"v-53fb73f1",path:"/manuals/ACS/Component_Context_Menu.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Component_Context_Menu.md"},{title:"Control the ARE",frontmatter:{title:"Control the ARE"},regularPath:"/manuals/ACS/Control_the_ARE.html",relativePath:"manuals/ACS/Control_the_ARE.md",key:"v-7185b8e7",path:"/manuals/ACS/Control_the_ARE.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Control_the_ARE.md"},{title:"Create and Edit a Model",frontmatter:{title:"Create and Edit a Model"},regularPath:"/manuals/ACS/Create_and_Edit_a_Model.html",relativePath:"manuals/ACS/Create_and_Edit_a_Model.md",key:"v-10853d87",path:"/manuals/ACS/Create_and_Edit_a_Model.html",headers:[{level:2,title:"Model Manipulation via Mouse",slug:"model-manipulation-via-mouse"},{level:2,title:"Model Manipulation via Keyboard",slug:"model-manipulation-via-keyboard"},{level:2,title:"Selection",slug:"selection"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Create_and_Edit_a_Model.md"},{title:"Dialogs Settings",frontmatter:{title:"Dialogs Settings"},regularPath:"/manuals/ACS/Dialogs_settings.html",relativePath:"manuals/ACS/Dialogs_settings.md",key:"v-373a5a25",path:"/manuals/ACS/Dialogs_settings.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Dialogs_settings.md"},{title:"Disconnected",frontmatter:{title:"Disconnected"},regularPath:"/manuals/ACS/Disconnected.html",relativePath:"manuals/ACS/Disconnected.md",key:"v-89ebe0c6",path:"/manuals/ACS/Disconnected.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Disconnected.md"},{title:"External Tools Options",frontmatter:{title:"External Tools Options"},regularPath:"/manuals/ACS/External_Tools_Options.html",relativePath:"manuals/ACS/External_Tools_Options.md",key:"v-7c5fd547",path:"/manuals/ACS/External_Tools_Options.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/External_Tools_Options.md"},{title:"Events",frontmatter:{title:"Events"},regularPath:"/manuals/ACS/Events.html",relativePath:"manuals/ACS/Events.md",key:"v-5d863821",path:"/manuals/ACS/Events.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Events.md"},{title:"GUI Designer",frontmatter:{title:"GUI Designer"},regularPath:"/manuals/ACS/GUI_Designer.html",relativePath:"manuals/ACS/GUI_Designer.md",key:"v-9cea1016",path:"/manuals/ACS/GUI_Designer.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/GUI_Designer.md"},{title:"External Tools",frontmatter:{title:"External Tools"},regularPath:"/manuals/ACS/External_Tools.html",relativePath:"manuals/ACS/External_Tools.md",key:"v-4233ca76",path:"/manuals/ACS/External_Tools.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/External_Tools.md"},{title:"Keyboard Control",frontmatter:{title:"Keyboard Control"},regularPath:"/manuals/ACS/Keyboard_control.html",relativePath:"manuals/ACS/Keyboard_control.md",key:"v-34eb0509",path:"/manuals/ACS/Keyboard_control.html",headers:[{level:2,title:"Menus",slug:"menus"},{level:2,title:"The Drawing Area",slug:"the-drawing-area"},{level:3,title:"The Context Menu",slug:"the-context-menu"},{level:2,title:"The GUI Editor",slug:"the-gui-editor"},{level:2,title:"Property and Port Editor",slug:"property-and-port-editor"},{level:2,title:"Event Editor",slug:"event-editor"},{level:2,title:"Keyboard Shortcuts",slug:"keyboard-shortcuts"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Keyboard_control.md"},{title:"General Settings",frontmatter:{title:"General Settings"},regularPath:"/manuals/ACS/General_settings.html",relativePath:"manuals/ACS/General_settings.md",key:"v-33fac21f",path:"/manuals/ACS/General_settings.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/General_settings.md"},{title:"Load and Save Models",frontmatter:{title:"Load and Save Models"},regularPath:"/manuals/ACS/Load_and_Save_Models.html",relativePath:"manuals/ACS/Load_and_Save_Models.md",key:"v-e8c20486",path:"/manuals/ACS/Load_and_Save_Models.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Load_and_Save_Models.md"},{title:"Miscellaneous",frontmatter:{title:"Miscellaneous"},regularPath:"/manuals/ACS/Miscellaneous.html",relativePath:"manuals/ACS/Miscellaneous.md",key:"v-1b0ea627",path:"/manuals/ACS/Miscellaneous.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Miscellaneous.md"},{title:"Modes",frontmatter:{title:"Modes"},regularPath:"/manuals/ACS/Modes.html",relativePath:"manuals/ACS/Modes.md",key:"v-d79ede32",path:"/manuals/ACS/Modes.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Modes.md"},{title:"Options",frontmatter:{title:"Options"},regularPath:"/manuals/ACS/Options.html",relativePath:"manuals/ACS/Options.md",key:"v-af9b77b2",path:"/manuals/ACS/Options.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Options.md"},{title:"Pause",frontmatter:{title:"Pause"},regularPath:"/manuals/ACS/Pause.html",relativePath:"manuals/ACS/Pause.md",key:"v-048cd127",path:"/manuals/ACS/Pause.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Pause.md"},{title:"ACS Manual",frontmatter:{},regularPath:"/manuals/ACS/",relativePath:"manuals/ACS/README.md",key:"v-70395034",path:"/manuals/ACS/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/README.md"},{title:"Processors",frontmatter:{title:"Processors"},regularPath:"/manuals/ACS/Processors.html",relativePath:"manuals/ACS/Processors.md",key:"v-f5f710de",path:"/manuals/ACS/Processors.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Processors.md"},{title:"Print",frontmatter:{title:"Print"},regularPath:"/manuals/ACS/Print.html",relativePath:"manuals/ACS/Print.md",key:"v-59f1b672",path:"/manuals/ACS/Print.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Print.md"},{title:"Running",frontmatter:{title:"Running"},regularPath:"/manuals/ACS/Running.html",relativePath:"manuals/ACS/Running.md",key:"v-0318f572",path:"/manuals/ACS/Running.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Running.md"},{title:"Sensors",frontmatter:{title:"Sensors"},regularPath:"/manuals/ACS/Sensors.html",relativePath:"manuals/ACS/Sensors.md",key:"v-bb83c2f2",path:"/manuals/ACS/Sensors.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Sensors.md"},{title:"Status Reporting and Error Logging",frontmatter:{title:"Status Reporting and Error Logging"},regularPath:"/manuals/ACS/Status_Reporting_and_Error_Logging.html",relativePath:"manuals/ACS/Status_Reporting_and_Error_Logging.md",key:"v-ec9a5262",path:"/manuals/ACS/Status_Reporting_and_Error_Logging.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Status_Reporting_and_Error_Logging.md"},{title:"Setting the Properties",frontmatter:{title:"Setting the Properties"},regularPath:"/manuals/ACS/Setting_the_Properties.html",relativePath:"manuals/ACS/Setting_the_Properties.md",key:"v-4736d21a",path:"/manuals/ACS/Setting_the_Properties.html",headers:[{level:2,title:"Dynamic Properties",slug:"dynamic-properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Setting_the_Properties.md"},{title:"The Edit Tab",frontmatter:{title:"The Edit Tab"},regularPath:"/manuals/ACS/The_Edit_Tab.html",relativePath:"manuals/ACS/The_Edit_Tab.md",key:"v-2e0cc312",path:"/manuals/ACS/The_Edit_Tab.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/The_Edit_Tab.md"},{title:"Synchronized",frontmatter:{title:"Synchronized"},regularPath:"/manuals/ACS/Synchronized.html",relativePath:"manuals/ACS/Synchronized.md",key:"v-26b3c0ab",path:"/manuals/ACS/Synchronized.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Synchronized.md"},{title:"Manuals",frontmatter:{},regularPath:"/manuals/",relativePath:"manuals/README.md",key:"v-d204bc10",path:"/manuals/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/README.md"},{title:"ARE Status",frontmatter:{title:"ARE Status"},regularPath:"/manuals/WebACS/AREStatus.html",relativePath:"manuals/WebACS/AREStatus.md",key:"v-4ac08567",path:"/manuals/WebACS/AREStatus.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/AREStatus.md"},{title:"ARE Manual",frontmatter:{},regularPath:"/manuals/ARE/",relativePath:"manuals/ARE/README.md",key:"v-66f839ae",path:"/manuals/ARE/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ARE/README.md"},{title:"Channels",frontmatter:{title:"Channels"},regularPath:"/manuals/WebACS/Channels.html",relativePath:"manuals/WebACS/Channels.md",key:"v-411ff967",path:"/manuals/WebACS/Channels.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Channels.md"},{title:"Tooltips",frontmatter:{title:"Tooltips"},regularPath:"/manuals/ACS/Tooltips.html",relativePath:"manuals/ACS/Tooltips.md",key:"v-79865d33",path:"/manuals/ACS/Tooltips.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/manuals/ACS/Tooltips.md"},{title:"Control the ARE",frontmatter:{title:"Control the ARE"},regularPath:"/manuals/WebACS/Control_the_ARE.html",relativePath:"manuals/WebACS/Control_the_ARE.md",key:"v-404dcbaa",path:"/manuals/WebACS/Control_the_ARE.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Control_the_ARE.md"},{title:"Keyboard Control",frontmatter:{title:"Keyboard Control"},regularPath:"/manuals/WebACS/Keyboard_control.html",relativePath:"manuals/WebACS/Keyboard_control.md",key:"v-567470f2",path:"/manuals/WebACS/Keyboard_control.html",headers:[{level:2,title:"Shortcuts",slug:"shortcuts"},{level:2,title:"Menu",slug:"menu"},{level:2,title:"Model Panel",slug:"model-panel"},{level:2,title:"Model Designer",slug:"model-designer"},{level:2,title:"GUI Designer",slug:"gui-designer"},{level:2,title:"List View",slug:"list-view"},{level:2,title:"Property Editor",slug:"property-editor"}],editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Keyboard_control.md"},{title:"Create and Edit a Model",frontmatter:{title:"Create and Edit a Model"},regularPath:"/manuals/WebACS/Create_and_Edit_a_Model.html",relativePath:"manuals/WebACS/Create_and_Edit_a_Model.md",key:"v-30f7abf1",path:"/manuals/WebACS/Create_and_Edit_a_Model.html",headers:[{level:2,title:"Model Manipulation via Mouse",slug:"model-manipulation-via-mouse"},{level:2,title:"Model Manipulation via Keyboard",slug:"model-manipulation-via-keyboard"},{level:2,title:"Selection",slug:"selection"}],editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Create_and_Edit_a_Model.md"},{title:"Events",frontmatter:{title:"Events"},regularPath:"/manuals/WebACS/Events.html",relativePath:"manuals/WebACS/Events.md",key:"v-38306472",path:"/manuals/WebACS/Events.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Events.md"},{title:"GUI Designer",frontmatter:{title:"GUI Designer"},regularPath:"/manuals/WebACS/GUI_Designer.html",relativePath:"manuals/WebACS/GUI_Designer.md",key:"v-b3f08772",path:"/manuals/WebACS/GUI_Designer.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/GUI_Designer.md"},{title:"Open and Save Models",frontmatter:{title:"Open and Save Models"},regularPath:"/manuals/WebACS/Open_and_Save_Models.html",relativePath:"manuals/WebACS/Open_and_Save_Models.md",key:"v-03d92972",path:"/manuals/WebACS/Open_and_Save_Models.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Open_and_Save_Models.md"},{title:"Miscellaneous",frontmatter:{title:"Miscellaneous"},regularPath:"/manuals/WebACS/Miscellaneous.html",relativePath:"manuals/WebACS/Miscellaneous.md",key:"v-b20fab52",path:"/manuals/WebACS/Miscellaneous.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Miscellaneous.md"},{title:"List View",frontmatter:{title:"List View"},regularPath:"/manuals/WebACS/List_View.html",relativePath:"manuals/WebACS/List_View.md",key:"v-11bd40a7",path:"/manuals/WebACS/List_View.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/List_View.md"},{title:"ACS Basic Functions",frontmatter:{title:"ACS Basic Functions"},regularPath:"/manuals/WebACS/",relativePath:"manuals/WebACS/README.md",key:"v-6deb6d78",path:"/manuals/WebACS/",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/README.md"},{title:"Setting the Properties",frontmatter:{title:"Setting the Properties"},regularPath:"/manuals/WebACS/Setting_the_Properties.html",relativePath:"manuals/WebACS/Setting_the_Properties.md",key:"v-27668de7",path:"/manuals/WebACS/Setting_the_Properties.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/Setting_the_Properties.md"},{title:"The Edit Tab",frontmatter:{title:"The Edit Tab"},regularPath:"/manuals/WebACS/The_Edit_Tab.html",relativePath:"manuals/WebACS/The_Edit_Tab.md",key:"v-73d3dc27",path:"/manuals/WebACS/The_Edit_Tab.html",editLink:"https://github.com/asterics/WebACS/edit/master/docs/manuals/WebACS/The_Edit_Tab.md"},{title:"Settings",frontmatter:{},regularPath:"/manuals/asterics-grid/010_settings.html",relativePath:"manuals/asterics-grid/010_settings.md",key:"v-401e7446",path:"/manuals/asterics-grid/010_settings.html",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/010_settings.md"},{title:"Terms",frontmatter:{},regularPath:"/manuals/asterics-grid/01_terms.html",relativePath:"manuals/asterics-grid/01_terms.md",key:"v-c701961e",path:"/manuals/asterics-grid/01_terms.html",headers:[{level:2,title:"AsTeRICS Grid",slug:"asterics-grid"},{level:2,title:"AsTeRICS Framework",slug:"asterics-framework"},{level:2,title:"AsTeRICS model",slug:"asterics-model"},{level:2,title:"Grid",slug:"grid"},{level:2,title:"Grid element",slug:"grid-element"},{level:2,title:"Action",slug:"action"},{level:2,title:"Input",slug:"input"},{level:2,title:"Dictionary",slug:"dictionary"},{level:2,title:"User",slug:"user"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/01_terms.md"},{title:"Navigation and basic functionality",frontmatter:{},regularPath:"/manuals/asterics-grid/02_navigation.html",relativePath:"manuals/asterics-grid/02_navigation.md",key:"v-5cc12287",path:"/manuals/asterics-grid/02_navigation.html",headers:[{level:2,title:"Welcome view",slug:"welcome-view"},{level:2,title:'"Main" - view',slug:"main-view"},{level:2,title:'Edit view - "Editing on"',slug:"edit-view-editing-on"},{level:2,title:'"Manage grids" - view',slug:"manage-grids-view"},{level:3,title:'"more" button - Additional options',slug:"more-button-additional-options"},{level:3,title:"Global grid",slug:"global-grid"},{level:3,title:"Home grid",slug:"home-grid"},{level:2,title:'"Manage Dictionaries" - view',slug:"manage-dictionaries-view"},{level:2,title:'"Change User" - view',slug:"change-user-view"},{level:2,title:"Search function",slug:"search-function"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/02_navigation.md"},{title:"Grid appearance and layout",frontmatter:{},regularPath:"/manuals/asterics-grid/03_appearance_layout.html",relativePath:"manuals/asterics-grid/03_appearance_layout.md",key:"v-432b669e",path:"/manuals/asterics-grid/03_appearance_layout.html",headers:[{level:2,title:"Adding elements and layout options",slug:"adding-elements-and-layout-options"},{level:2,title:"Editing grid elements",slug:"editing-grid-elements"},{level:2,title:'"Edit grid item" modal',slug:"edit-grid-item-modal"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/03_appearance_layout.md"},{title:"Input Options",frontmatter:{},regularPath:"/manuals/asterics-grid/04_input_options.html",relativePath:"manuals/asterics-grid/04_input_options.md",key:"v-3bc61fa7",path:"/manuals/asterics-grid/04_input_options.html",headers:[{level:2,title:"Introduction to input events",slug:"introduction-to-input-events"},{level:3,title:'"Keypress, Mouseclick, Tap" input events',slug:"keypress-mouseclick-tap-input-events"},{level:3,title:"Microphone input events",slug:"microphone-input-events"},{level:3,title:"AsTeRICS ARE input events",slug:"asterics-are-input-events"},{level:2,title:"Input options modals",slug:"input-options-modals"},{level:3,title:"Mouse/Touch input",slug:"mouse-touch-input"},{level:3,title:"Scanning",slug:"scanning"},{level:3,title:"Direction Input",slug:"direction-input"},{level:3,title:"Huffman Input",slug:"huffman-input"},{level:3,title:"Sequential Input",slug:"sequential-input"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/04_input_options.md"},{title:"Grid element actions",frontmatter:{},regularPath:"/manuals/asterics-grid/05_actions.html",relativePath:"manuals/asterics-grid/05_actions.md",key:"v-0776413d",path:"/manuals/asterics-grid/05_actions.html",headers:[{level:2,title:"Edit actions modal",slug:"edit-actions-modal"},{level:2,title:"Action types",slug:"action-types"},{level:3,title:"Speak label",slug:"speak-label"},{level:3,title:"Navigate to other grid",slug:"navigate-to-other-grid"},{level:3,title:"Speak custom text",slug:"speak-custom-text"},{level:3,title:"Play recorded audio",slug:"play-recorded-audio"},{level:3,title:"Fill prediction elements",slug:"fill-prediction-elements"},{level:3,title:"Collect element action",slug:"collect-element-action"},{level:3,title:"AsTeRICS Action",slug:"asterics-action"},{level:3,title:"Web radio action",slug:"web-radio-action"},{level:3,title:"YouTube Action",slug:"youtube-action"},{level:3,title:"Change Content Language",slug:"change-content-language"},{level:3,title:"Open webpage in new tab",slug:"open-webpage-in-new-tab"},{level:3,title:"openHAB Action",slug:"openhab-action"},{level:3,title:"HTTP action",slug:"http-action"},{level:3,title:"UART action",slug:"uart-action"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/05_actions.md"},{title:"Users",frontmatter:{},regularPath:"/manuals/asterics-grid/06_users.html",relativePath:"manuals/asterics-grid/06_users.md",key:"v-403b9736",path:"/manuals/asterics-grid/06_users.html",headers:[{level:3,title:"Internet connection requirements",slug:"internet-connection-requirements"},{level:2,title:"Online users",slug:"online-users"},{level:3,title:"Synchronization states",slug:"synchronization-states"},{level:2,title:"Offline users",slug:"offline-users"},{level:2,title:"Backup",slug:"backup"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/06_users.md"},{title:"Dictionaries",frontmatter:{},regularPath:"/manuals/asterics-grid/07_dictionaries.html",relativePath:"manuals/asterics-grid/07_dictionaries.md",key:"v-67cb4567",path:"/manuals/asterics-grid/07_dictionaries.html",headers:[{level:2,title:"Edit dictionaries",slug:"edit-dictionaries"},{level:2,title:"Add words",slug:"add-words"},{level:3,title:"Example: import a big word list",slug:"example-import-a-big-word-list"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/07_dictionaries.md"},{title:"Keyboard Shortcuts",frontmatter:{},regularPath:"/manuals/asterics-grid/08_keyboard_shortcuts.html",relativePath:"manuals/asterics-grid/08_keyboard_shortcuts.md",key:"v-5a470632",path:"/manuals/asterics-grid/08_keyboard_shortcuts.html",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/08_keyboard_shortcuts.md"},{title:"Frequently asked questions",frontmatter:{},regularPath:"/manuals/asterics-grid/10_faq.html",relativePath:"manuals/asterics-grid/10_faq.md",key:"v-74240617",path:"/manuals/asterics-grid/10_faq.html",headers:[{level:2,title:"Issues with online text-to-speech voices (lags, not working)",slug:"issues-with-online-text-to-speech-voices-lags-not-working"},{level:3,title:"Installing additional voices",slug:"installing-additional-voices"},{level:2,title:"Is there a recommended Tablet which works well with AsTeRICS Grid?",slug:"is-there-a-recommended-tablet-which-works-well-with-asterics-grid"},{level:2,title:"Can I recover the password of my online user?",slug:"can-i-recover-the-password-of-my-online-user"},{level:3,title:"Transfer data to new user",slug:"transfer-data-to-new-user"},{level:2,title:'The global grid disappeared or the "Home" button doesn\'t work',slug:"the-global-grid-disappeared-or-the-home-button-doesn-t-work"},{level:2,title:"Allow mixed content (http/https)",slug:"allow-mixed-content-http-https"},{level:3,title:"Allow mixed content Firefox",slug:"allow-mixed-content-firefox"},{level:3,title:"Allow mixed content Chrome",slug:"allow-mixed-content-chrome"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/10_faq.md"},{title:"HTTP action tutorials",frontmatter:{},regularPath:"/manuals/asterics-grid/513_http-action-tutorials.html",relativePath:"manuals/asterics-grid/513_http-action-tutorials.md",key:"v-4d499b72",path:"/manuals/asterics-grid/513_http-action-tutorials.html",headers:[{level:2,title:"Turn on/off shelly plug",slug:"turn-on-off-shelly-plug"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/513_http-action-tutorials.md"},{title:"Translation of AsTeRICS Grid",frontmatter:{},regularPath:"/manuals/asterics-grid/09_translation.html",relativePath:"manuals/asterics-grid/09_translation.md",key:"v-124d7766",path:"/manuals/asterics-grid/09_translation.html",headers:[{level:2,title:"Translation of the application",slug:"translation-of-the-application"},{level:2,title:"Translation of the content",slug:"translation-of-the-content"},{level:3,title:"Translation of a multilingual default gridset",slug:"translation-of-a-multilingual-default-gridset"},{level:3,title:"Creation of a new monolingual default gridset",slug:"creation-of-a-new-monolingual-default-gridset"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/09_translation.md"},{title:"UART action tutorials",frontmatter:{},regularPath:"/manuals/asterics-grid/514_uart-action-tutorials.html",relativePath:"manuals/asterics-grid/514_uart-action-tutorials.md",key:"v-6fb78227",path:"/manuals/asterics-grid/514_uart-action-tutorials.html",headers:[{level:2,title:"Remote control (Infrared)",slug:"remote-control-infrared"},{level:2,title:"Accessible toy",slug:"accessible-toy"},{level:2,title:"FABI / FLipMouse",slug:"fabi-flipmouse"},{level:3,title:"Move mouse cursor to the right",slug:"move-mouse-cursor-to-the-right"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/514_uart-action-tutorials.md"},{title:"Word forms in AsTeRICS Grid",frontmatter:{},regularPath:"/manuals/asterics-grid/10_word_forms.html",relativePath:"manuals/asterics-grid/10_word_forms.md",key:"v-6214c2a7",path:"/manuals/asterics-grid/10_word_forms.html",headers:[{level:2,title:"General",slug:"general"},{level:2,title:"Word form actions",slug:"word-form-actions"},{level:3,title:"General function",slug:"general-function"},{level:3,title:"Action types",slug:"action-types"},{level:2,title:"Example configuration",slug:"example-configuration"}],editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/10_word_forms.md"},{title:"AsTeRICS Grid user documentation",frontmatter:{},regularPath:"/manuals/asterics-grid/",relativePath:"manuals/asterics-grid/README.md",key:"v-7b526a78",path:"/manuals/asterics-grid/",editLink:"https://github.com/asterics/AsTeRICS-Grid/edit/master/docs/documentation_user/README.md"},{frontmatter:{},regularPath:"/manuals/fabi/",relativePath:"manuals/fabi/README.md",key:"v-d65cc238",path:"/manuals/fabi/",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Using the configuration manager",slug:"using-the-configuration-manager"},{level:2,title:"ACTIONS Tab: Assigning Button Functions",slug:"actions-tab-assigning-button-functions"},{level:3,title:"Action category: Mouse",slug:"action-category-mouse"},{level:3,title:"Action category: Keyboard",slug:"action-category-keyboard"},{level:3,title:"Action category: Device",slug:"action-category-device"},{level:3,title:"Action category: Macro",slug:"action-category-macro"},{level:2,title:"SLOTS Tab: Using Configuration Slots",slug:"slots-tab-using-configuration-slots"},{level:3,title:"Loading, saving and transferring configurations",slug:"loading-saving-and-transferring-configurations"},{level:3,title:"Predefined settings",slug:"predefined-settings"},{level:2,title:"TIMINGS Tab: Antitremor and Special Functions",slug:"timings-tab-antitremor-and-special-functions"},{level:3,title:"Antitremor settings",slug:"antitremor-settings"},{level:3,title:"Thresholds for special functions",slug:"thresholds-for-special-functions"},{level:2,title:"SIP AND PUFF Tab: Using a Pressure Sensor",slug:"sip-and-puff-tab-using-a-pressure-sensor"},{level:2,title:"GENERAL Tab: Bluetooth and Firmware Options",slug:"general-tab-bluetooth-and-firmware-options"},{level:3,title:"USB Mode / Bluetooth Mode",slug:"usb-mode-bluetooth-mode"},{level:3,title:"Overwrite / update firmware",slug:"overwrite-update-firmware"},{level:3,title:"Overwrite / update Bluetooth firmware",slug:"overwrite-update-bluetooth-firmware"},{level:3,title:"Reset to default configuration, key combinations",slug:"reset-to-default-configuration-key-combinations"},{level:2,title:"Using the Bluetooth module",slug:"using-the-bluetooth-module"},{level:3,title:"Installation of the Bluetooth module",slug:"installation-of-the-bluetooth-module"},{level:3,title:"Connecting to a Bluetooth device (pairing)",slug:"connecting-to-a-bluetooth-device-pairing"},{level:2,title:"Appendix",slug:"appendix"},{level:3,title:"Supported Macro commands:",slug:"supported-macro-commands"},{level:3,title:"Supported Key Identifiers:",slug:"supported-key-identifiers"},{level:3,title:"Further links and software recommendations",slug:"further-links-and-software-recommendations"},{level:2,title:"Contact Information",slug:"contact-information"},{level:2,title:"Disclaimer",slug:"disclaimer"},{level:2,title:"Acknowledgements",slug:"acknowledgements"}],editLink:"https://github.com/asterics/FABI/edit/master/Documentation/UserManual/Markdown/Fabi User Manual.md"},{title:"AREWindow",frontmatter:{title:"AREWindow",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/AREWindow.html",relativePath:"plugins/actuators/AREWindow.md",key:"v-3ad8af32",path:"/plugins/actuators/AREWindow.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AREWindow.md",id:"plugins"},{title:"FLipMouse - Finger & Lip Mouse",frontmatter:{},regularPath:"/manuals/flipmouse/",relativePath:"manuals/flipmouse/README.md",key:"v-08b9c8b4",path:"/manuals/flipmouse/",headers:[{level:2,title:"Establishing connection with the FLipMouse",slug:"establishing-connection-with-the-flipmouse"},{level:2,title:"Changing Settings and Features",slug:"changing-settings-and-features"},{level:3,title:"Memory Slots",slug:"memory-slots"},{level:2,title:"Tab STICK-CONFIG",slug:"tab-stick-config"},{level:3,title:'Operational Mode ("Use stick for ...")',slug:"operational-mode-use-stick-for"},{level:3,title:"Setting the motion parameters",slug:"setting-the-motion-parameters"},{level:3,title:"Applying the settings to all slots",slug:"applying-the-settings-to-all-slots"},{level:2,title:"Tab SIP AND PUFF",slug:"tab-sip-and-puff"},{level:2,title:"Tab ACTIONS",slug:"tab-actions"},{level:3,title:"Action category “Mouse”",slug:"action-category-mouse"},{level:3,title:"Action category: Joystick",slug:"action-category-joystick"},{level:3,title:"Action category: Keyboard",slug:"action-category-keyboard"},{level:3,title:"Action category: Device",slug:"action-category-device"},{level:3,title:"Action category: Infrared",slug:"action-category-infrared"},{level:3,title:"Action category: Macro",slug:"action-category-macro"},{level:2,title:"Tab SLOTS",slug:"tab-slots"},{level:3,title:"Slot List / Slot selection",slug:"slot-list-slot-selection"},{level:3,title:"Create a new Slot / Copy existing Slot",slug:"create-a-new-slot-copy-existing-slot"},{level:3,title:"Upload Slots to device",slug:"upload-slots-to-device"},{level:3,title:"Create Backup",slug:"create-backup"},{level:2,title:"Tab GENERAL",slug:"tab-general"},{level:3,title:"Slot Test Mode",slug:"slot-test-mode"},{level:3,title:"Firmware Version",slug:"firmware-version"},{level:2,title:"Tab VISUALIZATION",slug:"tab-visualization"},{level:2,title:"Hygienic considerations and risks",slug:"hygienic-considerations-and-risks"},{level:3,title:"Exchanging the saliva filter",slug:"exchanging-the-saliva-filter"},{level:3,title:"Disinfection of the mouthpiece",slug:"disinfection-of-the-mouthpiece"},{level:3,title:"Replacement sticks and filters",slug:"replacement-sticks-and-filters"},{level:2,title:"Modification of the Mouthpiece / Stick",slug:"modification-of-the-mouthpiece-stick"},{level:2,title:"Supported Macro commands:",slug:"supported-macro-commands"},{level:2,title:"Supported Key Identifiers:",slug:"supported-key-identifiers"},{level:2,title:"Disclaimer",slug:"disclaimer"},{level:2,title:"Acknowledgement",slug:"acknowledgement"}],editLink:"https://github.com/asterics/FLipMouse/edit/master/Documentation/UserManual/Markdown/FLipMouseUserManual.md"},{title:"AsTeRICS Plugins",frontmatter:{title:"AsTeRICS Plugins",previous:!1,next:!1,layout:"Layout",subdirlevel:2,indexed:["/plugins/actuators/AREWindow.html","/plugins/actuators/AnalogOut.html","/plugins/actuators/Android_connection.html","/plugins/actuators/ApplicationLauncher.html","/plugins/actuators/AndroidPhoneControl.html","/plugins/actuators/BarDisplay.html","/plugins/actuators/AngularCursorControl.html","/plugins/actuators/DigitalOut.html","/plugins/actuators/CrosshairCursorControl.html","/plugins/actuators/DialogBox.html","/plugins/actuators/DotMeter.html","/plugins/actuators/EnobioDisplay.html","/plugins/actuators/Enocean.html","/plugins/actuators/EmulateFaultyPlugin.html","/plugins/actuators/EasyHomeControl.html","/plugins/actuators/FS20Sender.html","/plugins/actuators/FileWriter.html","/plugins/actuators/EventVisualizer.html","/plugins/actuators/GMailShortcuts.html","/plugins/actuators/GSMModem.html","/plugins/actuators/FlickeringLightStimulator.html","/plugins/actuators/ImageBox.html","/plugins/actuators/IRTrans.html","/plugins/actuators/Knx.html","/plugins/actuators/LineWriter.html","/plugins/actuators/Keyboard.html","/plugins/actuators/LegacyDigitalOut.html","/plugins/actuators/MediaPlayer.html","/plugins/actuators/ModelSwitcher.html","/plugins/actuators/MidiPlayer.html","/plugins/actuators/Mouse.html","/plugins/actuators/NetConnection.html","/plugins/actuators/MousecursorIcon.html","/plugins/actuators/OscOutClient.html","/plugins/actuators/Oscilloscope.html","/plugins/actuators/PicoTTS.html","/plugins/actuators/PhoneControl.html","/plugins/actuators/PhilipsHue.html","/plugins/actuators/PlatformDigitalOut.html","/plugins/actuators/PlatformLCD.html","/plugins/actuators/RemoteJoystick.html","/plugins/actuators/RemoteKeyboard.html","/plugins/actuators/RemoteMouse.html","/plugins/actuators/RemoteWindow.html","/plugins/actuators/PongGame.html","/plugins/actuators/SSVEPFileWriter.html","/plugins/actuators/RemoteTablet.html","/plugins/actuators/SSVEPStimulator.html","/plugins/actuators/SerialSender.html","/plugins/actuators/SyntheticVoice.html","/plugins/actuators/SkyWatcherMount.html","/plugins/actuators/TeensyRCPrototype.html","/plugins/actuators/TextDisplay.html","/plugins/actuators/ToneGenerator.html","/plugins/actuators/Tooltip.html","/plugins/actuators/TextArea.html","/plugins/actuators/WriteCSV.html","/plugins/actuators/WavefilePlayer.html","/plugins/actuators/WriteEDF.html","/plugins/processors/AcousticScanning.html","/plugins/processors/AdjustmentCurve.html","/plugins/processors/AmazonEchoControl.html","/plugins/processors/Arduino.html","/plugins/processors/Amplifier.html","/plugins/processors/AudioSelector.html","/plugins/processors/Averager.html","/plugins/processors/BasicTRalgorithms.html","/plugins/processors/Benchmark.html","/plugins/processors/BlinkDetection.html","/plugins/processors/BlinkDetectorTrainer.html","/plugins/processors/BlinkDetector.html","/plugins/processors/BlinkChangeDetector.html","/plugins/processors/ComPort.html","/plugins/processors/Comparator.html","/plugins/processors/ComputeBandpower.html","/plugins/processors/ConstantDispatcher.html","/plugins/processors/Deadzone.html","/plugins/processors/DataType.html","/plugins/processors/DateToDouble.html","/plugins/processors/Delay.html","/plugins/processors/Dissimilarity.html","/plugins/processors/DoubleToString.html","/plugins/processors/Derivative.html","/plugins/processors/Differentiate.html","/plugins/processors/ECMAScriptInterpreter.html","/plugins/processors/Decimation.html","/plugins/processors/EventBlock.html","/plugins/processors/EventCounter.html","/plugins/processors/EventCascade.html","/plugins/processors/EventDelay.html","/plugins/processors/EventFlipFlop.html","/plugins/processors/EventRouter.html","/plugins/processors/EventDispatcher.html","/plugins/processors/EventStateMachine.html","/plugins/processors/Filter.html","/plugins/processors/FABI.html","/plugins/processors/FabiCronusMax.html","/plugins/processors/HRVRmssdFromRR.html","/plugins/processors/HRVAnalysis.html","/plugins/processors/IIRFilter.html","/plugins/processors/IntToString.html","/plugins/processors/IrMicro.html","/plugins/processors/JsonParser.html","/plugins/processors/Integrate.html","/plugins/processors/MathEvaluator.html","/plugins/processors/MinMax.html","/plugins/processors/MotionAnalysis.html","/plugins/processors/MultiSourceString.html","/plugins/processors/MultiSource.html","/plugins/processors/NeuralNetworkLoader.html","/plugins/processors/OpenHAB.html","/plugins/processors/NexusConnector.html","/plugins/processors/OneEventManyActions.html","/plugins/processors/OskaExternalScanning1D.html","/plugins/processors/OscGestureFollower.html","/plugins/processors/PathMultiplexer.html","/plugins/processors/OskaExternalScanning2D.html","/plugins/processors/OskaInternalScanning.html","/plugins/processors/Pathselector.html","/plugins/processors/ProtocolSSVEPTrain.html","/plugins/processors/PeakDetector.html","/plugins/processors/RegularExpression.html","/plugins/processors/SSVEPDetect.html","/plugins/processors/Quantizer.html","/plugins/processors/FS20CommandInterpreter.html","/plugins/processors/SampleAndHold.html","/plugins/processors/SerialPort.html","/plugins/processors/Sampler.html","/plugins/processors/SerialSender.html","/plugins/processors/SpeechProcessor.html","/plugins/processors/SignalTranslation.html","/plugins/processors/StringAppend.html","/plugins/processors/StringDelay.html","/plugins/processors/StringExpander.html","/plugins/processors/StringFilter.html","/plugins/processors/StringDispatcher.html","/plugins/processors/StringExtractor.html","/plugins/processors/StringPathMultiplexer.html","/plugins/processors/StringFormatter.html","/plugins/processors/StringPathSelector.html","/plugins/processors/StringSplitter.html","/plugins/processors/StringToInt.html","/plugins/processors/TextSender.html","/plugins/processors/StringToDouble.html","/plugins/processors/RelativeMoveSampler.html","/plugins/processors/UniversalRemoteControl.html","/plugins/processors/WebSocket.html","/plugins/processors/eg_example.html","/plugins/processors/Yaak.html","/plugins/sensors/Acceleration.html","/plugins/processors/TimestampWriter.html","/plugins/sensors/AnalogIn.html","/plugins/sensors/AutostartEvent.html","/plugins/sensors/ButtonGrid.html","/plugins/sensors/CellBoard.html","/plugins/sensors/EOG.html","/plugins/sensors/DigitalIn.html","/plugins/sensors/EShoe.html","/plugins/sensors/EditBox.html","/plugins/sensors/EventGenerator.html","/plugins/sensors/Enobio.html","/plugins/sensors/Eyetracker.html","/plugins/sensors/EyeX.html","/plugins/sensors/EyeTribe.html","/plugins/sensors/FS20Receiver.html","/plugins/sensors/FacetrackerCLM.html","/plugins/sensors/FacetrackerLK.html","/plugins/sensors/HeadPositionHC.html","/plugins/sensors/JoystickCapture.html","/plugins/sensors/FolderBrowser.html","/plugins/sensors/HoverPanel.html","/plugins/sensors/KeyCapture.html","/plugins/sensors/IntelRealSense.html","/plugins/sensors/Kinect.html","/plugins/sensors/KeyboardCapture.html","/plugins/sensors/KinectJ4K.html","/plugins/sensors/LegacyAnalogIn.html","/plugins/sensors/LegacyDigitalIn.html","/plugins/sensors/Lightscore.html","/plugins/sensors/LineReader.html","/plugins/sensors/Lipmouse.html","/plugins/sensors/MicGPI.html","/plugins/sensors/OpenVibe.html","/plugins/sensors/OpenBCI.html","/plugins/sensors/LipmouseIR.html","/plugins/sensors/P2_Parser.html","/plugins/sensors/PhilipsHueSensor.html","/plugins/sensors/OscServer.html","/plugins/sensors/MouseCapture.html","/plugins/sensors/PlatformAnalogIn.html","/plugins/sensors/PlatformDigitalIn.html","/plugins/sensors/Proximity.html","/plugins/sensors/RFIDReader.html","/plugins/sensors/RazorIMU.html","/plugins/sensors/RandomNumber.html","/plugins/sensors/ReadCSV.html","/plugins/sensors/ReadEDF.html","/plugins/sensors/SignalGenerator.html","/plugins/sensors/Sensorboard.html","/plugins/sensors/Slider.html","/plugins/sensors/SignalShaper.html","/plugins/sensors/SpaceNavigator3DMouse.html","/plugins/sensors/Timer.html","/plugins/sensors/TextfieldReader.html","/plugins/sensors/TobiTic.html","/plugins/sensors/Tobii4CHeadTracker.html","/plugins/sensors/TrackIR.html","/plugins/sensors/WiiMote.html","/plugins/sensors/XFacetrackerLK.html","/plugins/sensors/TuioReactivision.html","/plugins/processors/Threshold.html"]},regularPath:"/plugins/",relativePath:"plugins/README.md",key:"v-13ecdddc",path:"/plugins/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/README.md"},{title:"AnalogOut",frontmatter:{title:"AnalogOut",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/AnalogOut.html",relativePath:"plugins/actuators/AnalogOut.md",key:"v-403588b2",path:"/plugins/actuators/AnalogOut.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AnalogOut.md",id:"plugins"},{title:"AndroidConnection",frontmatter:{title:"AndroidConnection",subcategory:"Phone Interface",layout:"Page"},regularPath:"/plugins/actuators/Android_connection.html",relativePath:"plugins/actuators/Android_connection.md",key:"v-dd8b41a2",path:"/plugins/actuators/Android_connection.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Android_connection.md",id:"plugins"},{title:"ApplicationLauncher",frontmatter:{title:"ApplicationLauncher",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/ApplicationLauncher.html",relativePath:"plugins/actuators/ApplicationLauncher.md",key:"v-7a3eb067",path:"/plugins/actuators/ApplicationLauncher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ApplicationLauncher.md",id:"plugins"},{title:"AndroidPhoneControl",frontmatter:{title:"AndroidPhoneControl",subcategory:"Phone Interface",image:"/plugins/actuators/android.svg",layout:"Page"},regularPath:"/plugins/actuators/AndroidPhoneControl.html",relativePath:"plugins/actuators/AndroidPhoneControl.md",key:"v-516240a7",path:"/plugins/actuators/AndroidPhoneControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AndroidPhoneControl.md",id:"plugins"},{title:"BarDisplay",frontmatter:{title:"BarDisplay",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/BarDisplay.html",relativePath:"plugins/actuators/BarDisplay.md",key:"v-18096926",path:"/plugins/actuators/BarDisplay.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/BarDisplay.md",id:"plugins"},{title:"AngularCursorControl",frontmatter:{title:"AngularCursorControl",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/AngularCursorControl.html",relativePath:"plugins/actuators/AngularCursorControl.md",key:"v-9c892f7e",path:"/plugins/actuators/AngularCursorControl.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/AngularCursorControl.md",id:"plugins"},{title:"DigitalOut",frontmatter:{title:"DigitalOut",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/DigitalOut.html",relativePath:"plugins/actuators/DigitalOut.md",key:"v-1f6d465f",path:"/plugins/actuators/DigitalOut.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/DigitalOut.md",id:"plugins"},{title:"CrosshairCursorControl",frontmatter:{title:"CrosshairCursorControl",subcategory:"Input Device Emulation","fas-icon":"crosshairs",featured:!0,layout:"Page"},regularPath:"/plugins/actuators/CrosshairCursorControl.html",relativePath:"plugins/actuators/CrosshairCursorControl.md",key:"v-ef1e54fe",path:"/plugins/actuators/CrosshairCursorControl.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/CrosshairCursorControl.md",id:"plugins"},{title:"DialogBox",frontmatter:{title:"DialogBox",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/DialogBox.html",relativePath:"plugins/actuators/DialogBox.md",key:"v-32d57c47",path:"/plugins/actuators/DialogBox.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/DialogBox.md",id:"plugins"},{title:"DotMeter",frontmatter:{title:"DotMeter",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/DotMeter.html",relativePath:"plugins/actuators/DotMeter.md",key:"v-1988f40b",path:"/plugins/actuators/DotMeter.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description:",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/DotMeter.md",id:"plugins"},{title:"EnobioDisplay",frontmatter:{title:"EnobioDisplay",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/EnobioDisplay.html",relativePath:"plugins/actuators/EnobioDisplay.md",key:"v-ca981632",path:"/plugins/actuators/EnobioDisplay.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EnobioDisplay.md",id:"plugins"},{title:"EnOcean",frontmatter:{title:"EnOcean",subcategory:"Home Control",featured:!0,image:"/plugins/actuators/enocean.svg",layout:"Page"},regularPath:"/plugins/actuators/Enocean.html",relativePath:"plugins/actuators/Enocean.md",key:"v-27a39b47",path:"/plugins/actuators/Enocean.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Description",slug:"functional-description"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener",slug:"event-listener"},{level:2,title:"Event Trigger",slug:"event-trigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Enocean.md",id:"plugins"},{title:"EmulateFaultyPlugin",frontmatter:{title:"EmulateFaultyPlugin",subcategory:"Test",layout:"Page"},regularPath:"/plugins/actuators/EmulateFaultyPlugin.html",relativePath:"plugins/actuators/EmulateFaultyPlugin.md",key:"v-cc3c0472",path:"/plugins/actuators/EmulateFaultyPlugin.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EmulateFaultyPlugin.md",id:"plugins"},{title:"EasyHomeControl",frontmatter:{title:"EasyHomeControl",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/actuators/EasyHomeControl.html",relativePath:"plugins/actuators/EasyHomeControl.md",key:"v-716ac7e7",path:"/plugins/actuators/EasyHomeControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Supported OSes",slug:"supported-oses"},{level:2,title:"Troubleshooting problems under Win8/Win8.1",slug:"troubleshooting-problems-under-win8-win8-1"},{level:2,title:"Udev rules Linux",slug:"udev-rules-linux"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EasyHomeControl.md",id:"plugins"},{title:"FS20Sender",frontmatter:{title:"FS20Sender",subcategory:"Home Control",featured:!0,layout:"Page"},regularPath:"/plugins/actuators/FS20Sender.html",relativePath:"plugins/actuators/FS20Sender.md",key:"v-5b2ddb8b",path:"/plugins/actuators/FS20Sender.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Supported OSes",slug:"supported-oses"},{level:2,title:"Notes on Linux platform",slug:"notes-on-linux-platform"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/FS20Sender.md",id:"plugins"},{title:"FileWriter",frontmatter:{title:"FileWriter",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/FileWriter.html",relativePath:"plugins/actuators/FileWriter.md",key:"v-956c78a6",path:"/plugins/actuators/FileWriter.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: File System)",slug:"component-type-actuator-subcategory-file-system"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/FileWriter.md",id:"plugins"},{title:"EventVisualizer",frontmatter:{title:"EventVisualizer",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/EventVisualizer.html",relativePath:"plugins/actuators/EventVisualizer.md",key:"v-09250a67",path:"/plugins/actuators/EventVisualizer.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Port Description",slug:"port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/EventVisualizer.md",id:"plugins"},{title:"GMailShortcuts",frontmatter:{title:"GMailShortcuts",subcategory:"Others",image:"/plugins/actuators/gmail.svg",layout:"Page"},regularPath:"/plugins/actuators/GMailShortcuts.html",relativePath:"plugins/actuators/GMailShortcuts.md",key:"v-b436f6a6",path:"/plugins/actuators/GMailShortcuts.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Others)",slug:"component-type-actuator-subcategory-others"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/GMailShortcuts.md",id:"plugins"},{title:"GSMModem",frontmatter:{title:"GSMModem",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/actuators/GSMModem.html",relativePath:"plugins/actuators/GSMModem.md",key:"v-d264918e",path:"/plugins/actuators/GSMModem.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Communication)",slug:"component-type-actuator-subcategory-communication"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/GSMModem.md",id:"plugins"},{title:"FlickeringLightStimulator",frontmatter:{title:"FlickeringLightStimulator",subcategory:"Brain Computer Interface",layout:"Page"},regularPath:"/plugins/actuators/FlickeringLightStimulator.html",relativePath:"plugins/actuators/FlickeringLightStimulator.md",key:"v-e81af0b2",path:"/plugins/actuators/FlickeringLightStimulator.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Brain Computer Interface)",slug:"component-type-actuator-subcategory-brain-computer-interface"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/FlickeringLightStimulator.md",id:"plugins"},{title:"ImageBox",frontmatter:{title:"ImageBox",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/ImageBox.html",relativePath:"plugins/actuators/ImageBox.md",key:"v-d206b2aa",path:"/plugins/actuators/ImageBox.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Graphical User Interface)",slug:"component-type-actuator-subcategory-graphical-user-interface"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ImageBox.md",id:"plugins"},{title:"IRTrans",frontmatter:{title:"IRTrans",subcategory:"Home Control",featured:!0,image:"/plugins/actuators/infrared.svg",layout:"Page"},regularPath:"/plugins/actuators/IRTrans.html",relativePath:"plugins/actuators/IRTrans.md",key:"v-6daf09f2",path:"/plugins/actuators/IRTrans.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:3,title:"IR command by action string",slug:"ir-command-by-action-string"},{level:3,title:"IR command by event",slug:"ir-command-by-event"},{level:3,title:"Example",slug:"example"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/IRTrans.md",id:"plugins"},{title:"KNX",frontmatter:{title:"KNX",subcategory:"Home Control",featured:!0,image:"/plugins/actuators/knx.svg",layout:"Page"},regularPath:"/plugins/actuators/Knx.html",relativePath:"plugins/actuators/Knx.md",key:"v-c41a3672",path:"/plugins/actuators/Knx.html",headers:[{level:2,title:"Component Type: actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Description",slug:"functional-description"},{level:2,title:"KNX datapoint types",slug:"knx-datapoint-types"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener",slug:"event-listener"},{level:2,title:"Event Trigger",slug:"event-trigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Knx.md",id:"plugins"},{title:"LineWriter",frontmatter:{title:"LineWriter",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/LineWriter.html",relativePath:"plugins/actuators/LineWriter.md",key:"v-b8da8e86",path:"/plugins/actuators/LineWriter.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/LineWriter.md",id:"plugins"},{title:"Keyboard",frontmatter:{title:"Keyboard",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/Keyboard.html",relativePath:"plugins/actuators/Keyboard.md",key:"v-15d2dabd",path:"/plugins/actuators/Keyboard.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Input Device Emulation)",slug:"component-type-actuator-subcategory-input-device-emulation"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"List of supported special key code identifiers",slug:"list-of-supported-special-key-code-identifiers"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Keyboard.md",id:"plugins"},{title:"Legacy Digital Out",frontmatter:{title:"Legacy Digital Out",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/LegacyDigitalOut.html",relativePath:"plugins/actuators/LegacyDigitalOut.md",key:"v-92953be6",path:"/plugins/actuators/LegacyDigitalOut.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Generic Control Output)",slug:"component-type-actuator-subcategory-generic-control-output"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/LegacyDigitalOut.md",id:"plugins"},{title:"MediaPlayer",frontmatter:{title:"MediaPlayer",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/MediaPlayer.html",relativePath:"plugins/actuators/MediaPlayer.md",key:"v-4cb9a3c7",path:"/plugins/actuators/MediaPlayer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/MediaPlayer.md",id:"plugins"},{title:"ModelSwitcher",frontmatter:{title:"ModelSwitcher",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/ModelSwitcher.html",relativePath:"plugins/actuators/ModelSwitcher.md",key:"v-171c2d27",path:"/plugins/actuators/ModelSwitcher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ModelSwitcher.md",id:"plugins"},{title:"MidiPlayer",frontmatter:{title:"MidiPlayer",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/MidiPlayer.html",relativePath:"plugins/actuators/MidiPlayer.md",key:"v-8ea2c272",path:"/plugins/actuators/MidiPlayer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/MidiPlayer.md",id:"plugins"},{title:"Mouse",frontmatter:{title:"Mouse",subcategory:"Input Device Emulation","fas-icon":"mouse",layout:"Page"},regularPath:"/plugins/actuators/Mouse.html",relativePath:"plugins/actuators/Mouse.md",key:"v-38d36e07",path:"/plugins/actuators/Mouse.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Mouse.md",id:"plugins"},{title:"Net Connection",frontmatter:{title:"Net Connection",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/actuators/NetConnection.html",relativePath:"plugins/actuators/NetConnection.md",key:"v-7c5d8272",path:"/plugins/actuators/NetConnection.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/NetConnection.md",id:"plugins"},{title:"MousecursorIcon",frontmatter:{title:"MousecursorIcon",subcategory:"Input Device Emulation","fas-icon":"mouse-pointer",layout:"Page"},regularPath:"/plugins/actuators/MousecursorIcon.html",relativePath:"plugins/actuators/MousecursorIcon.md",key:"v-3e837632",path:"/plugins/actuators/MousecursorIcon.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description:",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/MousecursorIcon.md",id:"plugins"},{title:"Osc Out Client",frontmatter:{title:"Osc Out Client",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/actuators/OscOutClient.html",relativePath:"plugins/actuators/OscOutClient.md",key:"v-1d867097",path:"/plugins/actuators/OscOutClient.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Description",slug:"functional-description"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Referred Plugins",slug:"referred-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/OscOutClient.md",id:"plugins"},{title:"Oscilloscope",frontmatter:{title:"Oscilloscope",subcategory:"Graphical User Interface",image:"/plugins/actuators/osci.svg",layout:"Page"},regularPath:"/plugins/actuators/Oscilloscope.html",relativePath:"plugins/actuators/Oscilloscope.md",key:"v-5b29f0ed",path:"/plugins/actuators/Oscilloscope.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Oscilloscope.md",id:"plugins"},{title:"PicoTTS",frontmatter:{title:"PicoTTS",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/PicoTTS.html",relativePath:"plugins/actuators/PicoTTS.md",key:"v-8679e6b2",path:"/plugins/actuators/PicoTTS.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PicoTTS.md",id:"plugins"},{title:"PhoneControl",frontmatter:{title:"PhoneControl",subcategory:"Phone Interface",layout:"Page"},regularPath:"/plugins/actuators/PhoneControl.html",relativePath:"plugins/actuators/PhoneControl.md",key:"v-6337e0ed",path:"/plugins/actuators/PhoneControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PhoneControl.md",id:"plugins"},{title:"PhilipsHue",frontmatter:{title:"PhilipsHue",subcategory:"Home Control",image:"/plugins/actuators/philips-hue.png",featured:!0,layout:"Page"},regularPath:"/plugins/actuators/PhilipsHue.html",relativePath:"plugins/actuators/PhilipsHue.md",key:"v-0dab47bd",path:"/plugins/actuators/PhilipsHue.html",headers:[{level:2,title:"Component Type: Actuator (Subcategory: Home Control)",slug:"component-type-actuator-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Initial Setup",slug:"initial-setup"},{level:3,title:"Hardware",slug:"hardware"},{level:3,title:"Bridge IP address and API key",slug:"bridge-ip-address-and-api-key"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Notes",slug:"notes"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PhilipsHue.md",id:"plugins"},{title:"PlatformDigitalOut",frontmatter:{title:"PlatformDigitalOut",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/actuators/PlatformDigitalOut.html",relativePath:"plugins/actuators/PlatformDigitalOut.md",key:"v-779d0f79",path:"/plugins/actuators/PlatformDigitalOut.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PlatformDigitalOut.md",id:"plugins"},{title:"PlatformLCD",frontmatter:{title:"PlatformLCD",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/actuators/PlatformLCD.html",relativePath:"plugins/actuators/PlatformLCD.md",key:"v-5e80a527",path:"/plugins/actuators/PlatformLCD.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PlatformLCD.md",id:"plugins"},{title:"RemoteJoystick",frontmatter:{title:"RemoteJoystick",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/RemoteJoystick.html",relativePath:"plugins/actuators/RemoteJoystick.md",key:"v-7c85c247",path:"/plugins/actuators/RemoteJoystick.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteJoystick.md",id:"plugins"},{title:"RemoteKeyboard",frontmatter:{title:"RemoteKeyboard",subcategory:"Input Device Emulation","fas-icon":"keyboard",layout:"Page"},regularPath:"/plugins/actuators/RemoteKeyboard.html",relativePath:"plugins/actuators/RemoteKeyboard.md",key:"v-599c9c31",path:"/plugins/actuators/RemoteKeyboard.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"List of supported special key code identifiers:",slug:"list-of-supported-special-key-code-identifiers"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteKeyboard.md",id:"plugins"},{title:"RemoteMouse",frontmatter:{title:"RemoteMouse",subcategory:"Input Device Emulation","fas-icon":"mouse",layout:"Page"},regularPath:"/plugins/actuators/RemoteMouse.html",relativePath:"plugins/actuators/RemoteMouse.md",key:"v-aa237ef2",path:"/plugins/actuators/RemoteMouse.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteMouse.md",id:"plugins"},{title:"RemoteWindow",frontmatter:{title:"RemoteWindow",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/RemoteWindow.html",relativePath:"plugins/actuators/RemoteWindow.md",key:"v-50c42842",path:"/plugins/actuators/RemoteWindow.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteWindow.md",id:"plugins"},{title:"Pong",frontmatter:{title:"Pong",subcategory:"Others",image:"/plugins/actuators/pong.svg",layout:"Page"},regularPath:"/plugins/actuators/PongGame.html",relativePath:"plugins/actuators/PongGame.md",key:"v-5032dd77",path:"/plugins/actuators/PongGame.html",headers:[{level:2,title:"Application",slug:"application"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/PongGame.md",id:"plugins"},{title:"SSVEP File Writer",frontmatter:{title:"SSVEP File Writer",subcategory:"Brain Computer Interface",layout:"Page"},regularPath:"/plugins/actuators/SSVEPFileWriter.html",relativePath:"plugins/actuators/SSVEPFileWriter.md",key:"v-2304fb67",path:"/plugins/actuators/SSVEPFileWriter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SSVEPFileWriter.md",id:"plugins"},{title:"RemoteTablet",frontmatter:{title:"RemoteTablet",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/RemoteTablet.html",relativePath:"plugins/actuators/RemoteTablet.md",key:"v-84d9f01a",path:"/plugins/actuators/RemoteTablet.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/RemoteTablet.md",id:"plugins"},{title:"SSVEP Stimulator",frontmatter:{title:"SSVEP Stimulator",subcategory:"Brain Computer Interface",layout:"Page"},regularPath:"/plugins/actuators/SSVEPStimulator.html",relativePath:"plugins/actuators/SSVEPStimulator.md",key:"v-3a500587",path:"/plugins/actuators/SSVEPStimulator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SSVEPStimulator.md",id:"plugins"},{title:"SerialSender",frontmatter:{title:"SerialSender",subcategory:"Generic Control Output",layout:"Page"},regularPath:"/plugins/actuators/SerialSender.html",relativePath:"plugins/actuators/SerialSender.md",key:"v-7ae45d79",path:"/plugins/actuators/SerialSender.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SerialSender.md",id:"plugins"},{title:"SyntheticVoice",frontmatter:{title:"SyntheticVoice",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/SyntheticVoice.html",relativePath:"plugins/actuators/SyntheticVoice.md",key:"v-74496ef1",path:"/plugins/actuators/SyntheticVoice.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SyntheticVoice.md",id:"plugins"},{title:"SkyWatcher Mount",frontmatter:{title:"SkyWatcher Mount",subcategory:"Others",layout:"Page"},regularPath:"/plugins/actuators/SkyWatcherMount.html",relativePath:"plugins/actuators/SkyWatcherMount.md",key:"v-6ca50ab2",path:"/plugins/actuators/SkyWatcherMount.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/SkyWatcherMount.md",id:"plugins"},{title:"TeensyRC",frontmatter:{title:"TeensyRC",subcategory:"Others",layout:"Page"},regularPath:"/plugins/actuators/TeensyRCPrototype.html",relativePath:"plugins/actuators/TeensyRCPrototype.md",key:"v-bc5321f2",path:"/plugins/actuators/TeensyRCPrototype.html",headers:[{level:2,title:"Application",slug:"application"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/TeensyRCPrototype.md",id:"plugins"},{title:"TextDisplay",frontmatter:{title:"TextDisplay",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/TextDisplay.html",relativePath:"plugins/actuators/TextDisplay.md",key:"v-9d737472",path:"/plugins/actuators/TextDisplay.html",headers:[{level:3,title:"Component Type: Actuator (Subcategory: Graphical User Interface)",slug:"component-type-actuator-subcategory-graphical-user-interface"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/TextDisplay.md",id:"plugins"},{title:"ToneGenerator",frontmatter:{title:"ToneGenerator",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/ToneGenerator.html",relativePath:"plugins/actuators/ToneGenerator.md",key:"v-d68a2ef2",path:"/plugins/actuators/ToneGenerator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Eventlistener Description",slug:"eventlistener-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/ToneGenerator.md",id:"plugins"},{title:"Tooltip",frontmatter:{title:"Tooltip",subcategory:"Input Device Emulation",layout:"Page"},regularPath:"/plugins/actuators/Tooltip.html",relativePath:"plugins/actuators/Tooltip.md",key:"v-83e29ef2",path:"/plugins/actuators/Tooltip.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/Tooltip.md",id:"plugins"},{title:"TextArea",frontmatter:{title:"TextArea",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/actuators/TextArea.html",relativePath:"plugins/actuators/TextArea.md",key:"v-3c600ed7",path:"/plugins/actuators/TextArea.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/TextArea.md",id:"plugins"},{title:"WriteCSV",frontmatter:{title:"WriteCSV",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/WriteCSV.html",relativePath:"plugins/actuators/WriteCSV.md",key:"v-f257b186",path:"/plugins/actuators/WriteCSV.html",headers:[{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/WriteCSV.md",id:"plugins"},{title:"WavefilePlayer",frontmatter:{title:"WavefilePlayer",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/actuators/WavefilePlayer.html",relativePath:"plugins/actuators/WavefilePlayer.md",key:"v-0563b61f",path:"/plugins/actuators/WavefilePlayer.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/WavefilePlayer.md",id:"plugins"},{title:"WriteEDF",frontmatter:{title:"WriteEDF",subcategory:"File System",layout:"Page"},regularPath:"/plugins/actuators/WriteEDF.html",relativePath:"plugins/actuators/WriteEDF.md",key:"v-79a7ccfb",path:"/plugins/actuators/WriteEDF.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/actuators/WriteEDF.md",id:"plugins"},{title:"AcousticScanning",frontmatter:{title:"AcousticScanning",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/processors/AcousticScanning.html",relativePath:"plugins/processors/AcousticScanning.md",key:"v-6cf61c72",path:"/plugins/processors/AcousticScanning.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AcousticScanning.md",id:"plugins"},{title:"AdjustmentCurve",frontmatter:{title:"AdjustmentCurve",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/AdjustmentCurve.html",relativePath:"plugins/processors/AdjustmentCurve.md",key:"v-646dcee6",path:"/plugins/processors/AdjustmentCurve.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AdjustmentCurve.md",id:"plugins"},{title:"AmazonEchoControl",frontmatter:{title:"AmazonEchoControl",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/processors/AmazonEchoControl.html",relativePath:"plugins/processors/AmazonEchoControl.md",key:"v-52053829",path:"/plugins/processors/AmazonEchoControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Installation",slug:"installation"},{level:3,title:"Connect Amazon Account",slug:"connect-amazon-account"},{level:2,title:"AmazonEchoControl Plugin",slug:"amazonechocontrol-plugin"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Additional hints",slug:"additional-hints"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AmazonEchoControl.md",id:"plugins"},{title:"Arduino",frontmatter:{title:"Arduino",subcategory:"Microcontroller Interface",featured:!0,image:"/plugins/processors/arduino.svg",layout:"Page"},regularPath:"/plugins/processors/Arduino.html",relativePath:"plugins/processors/Arduino.md",key:"v-ec67f37e",path:"/plugins/processors/Arduino.html",headers:[{level:2,title:"Online Demo and Tutorial",slug:"online-demo-and-tutorial"},{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Install CIM on Arduino Uno",slug:"install-cim-on-arduino-uno"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Arduino.md",id:"plugins"},{title:"Amplifier",frontmatter:{title:"Amplifier",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Amplifier.html",relativePath:"plugins/processors/Amplifier.md",key:"v-45b5002f",path:"/plugins/processors/Amplifier.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Amplifier.md",id:"plugins"},{title:"Audio Selector",frontmatter:{title:"Audio Selector",subcategory:"Audio and Voice",layout:"Page"},regularPath:"/plugins/processors/AudioSelector.html",relativePath:"plugins/processors/AudioSelector.md",key:"v-09085367",path:"/plugins/processors/AudioSelector.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/AudioSelector.md",id:"plugins"},{title:"Averager",frontmatter:{title:"Averager",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Averager.html",relativePath:"plugins/processors/Averager.md",key:"v-4e288232",path:"/plugins/processors/Averager.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Averager.md",id:"plugins"},{title:"Basic Tremor Reduction algorithms",frontmatter:{title:"Basic Tremor Reduction algorithms",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/BasicTRalgorithms.html",relativePath:"plugins/processors/BasicTRalgorithms.md",key:"v-7cf4c0b1",path:"/plugins/processors/BasicTRalgorithms.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BasicTRalgorithms.md",id:"plugins"},{title:"Benchmark",frontmatter:{title:"Benchmark",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Benchmark.html",relativePath:"plugins/processors/Benchmark.md",key:"v-4d0a7bd2",path:"/plugins/processors/Benchmark.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Benchmark.md",id:"plugins"},{title:"Blink Detection",frontmatter:{title:"Blink Detection",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/BlinkDetection.html",relativePath:"plugins/processors/BlinkDetection.md",key:"v-2788c5e7",path:"/plugins/processors/BlinkDetection.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkDetection.md",id:"plugins"},{title:"Blink Detector Trainer",frontmatter:{title:"Blink Detector Trainer",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/BlinkDetectorTrainer.html",relativePath:"plugins/processors/BlinkDetectorTrainer.md",key:"v-43a714a7",path:"/plugins/processors/BlinkDetectorTrainer.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkDetectorTrainer.md",id:"plugins"},{title:"Blink Detector",frontmatter:{title:"Blink Detector",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/BlinkDetector.html",relativePath:"plugins/processors/BlinkDetector.md",key:"v-e6456966",path:"/plugins/processors/BlinkDetector.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkDetector.md",id:"plugins"},{title:"BlinkChangeDetector",frontmatter:{title:"BlinkChangeDetector",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/BlinkChangeDetector.html",relativePath:"plugins/processors/BlinkChangeDetector.md",key:"v-b8389226",path:"/plugins/processors/BlinkChangeDetector.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Basic Trend Detection Algorithm",slug:"basic-trend-detection-algorithm"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/BlinkChangeDetector.md",id:"plugins"},{title:"ComPort",frontmatter:{title:"ComPort",subcategory:"Communication",featured:!0,layout:"Page"},regularPath:"/plugins/processors/ComPort.html",relativePath:"plugins/processors/ComPort.md",key:"v-d38dd566",path:"/plugins/processors/ComPort.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ComPort.md",id:"plugins"},{title:"Comparator",frontmatter:{title:"Comparator",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Comparator.html",relativePath:"plugins/processors/Comparator.md",key:"v-04510947",path:"/plugins/processors/Comparator.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Comparator.md",id:"plugins"},{title:"Compute Bandpower",frontmatter:{title:"Compute Bandpower",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/ComputeBandpower.html",relativePath:"plugins/processors/ComputeBandpower.md",key:"v-5009f567",path:"/plugins/processors/ComputeBandpower.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ComputeBandpower.md",id:"plugins"},{title:"ConstantDispatcher",frontmatter:{title:"ConstantDispatcher",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/ConstantDispatcher.html",relativePath:"plugins/processors/ConstantDispatcher.md",key:"v-1ba2eab2",path:"/plugins/processors/ConstantDispatcher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ConstantDispatcher.md",id:"plugins"},{title:"Deadzone",frontmatter:{title:"Deadzone",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/Deadzone.html",relativePath:"plugins/processors/Deadzone.md",key:"v-691ee647",path:"/plugins/processors/Deadzone.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Deadzone.md",id:"plugins"},{title:"DataType",frontmatter:{title:"DataType",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/DataType.html",relativePath:"plugins/processors/DataType.md",key:"v-1e825672",path:"/plugins/processors/DataType.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/DataType.md",id:"plugins"},{title:"DateToDouble",frontmatter:{title:"DateToDouble",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/DateToDouble.html",relativePath:"plugins/processors/DateToDouble.md",key:"v-5e6cfe07",path:"/plugins/processors/DateToDouble.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Ports",slug:"input-ports"},{level:2,title:"Output Ports",slug:"output-ports"},{level:2,title:"Event Listeners",slug:"event-listeners"},{level:2,title:"Event Triggers",slug:"event-triggers"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/DateToDouble.md",id:"plugins"},{title:"Delay",frontmatter:{title:"Delay",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Delay.html",relativePath:"plugins/processors/Delay.md",key:"v-6631ec8b",path:"/plugins/processors/Delay.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Delay.md",id:"plugins"},{title:"Dissimilarity",frontmatter:{title:"Dissimilarity",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/Dissimilarity.html",relativePath:"plugins/processors/Dissimilarity.md",key:"v-7db60c2f",path:"/plugins/processors/Dissimilarity.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Dissimilarity.md",id:"plugins"},{title:"DoubleToString",frontmatter:{title:"DoubleToString",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/DoubleToString.html",relativePath:"plugins/processors/DoubleToString.md",key:"v-4b632167",path:"/plugins/processors/DoubleToString.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/DoubleToString.md",id:"plugins"},{title:"Derivative",frontmatter:{title:"Derivative",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Derivative.html",relativePath:"plugins/processors/Derivative.md",key:"v-5d044327",path:"/plugins/processors/Derivative.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Derivative.md",id:"plugins"},{title:"Differentiate",frontmatter:{title:"Differentiate",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Differentiate.html",relativePath:"plugins/processors/Differentiate.md",key:"v-50d5674d",path:"/plugins/processors/Differentiate.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Differentiate.md",id:"plugins"},{title:"ECMAScriptInterpreter",frontmatter:{title:"ECMAScriptInterpreter",subcategory:"Scripting",image:"/plugins/processors/javascript.svg",layout:"Page"},regularPath:"/plugins/processors/ECMAScriptInterpreter.html",relativePath:"plugins/processors/ECMAScriptInterpreter.md",key:"v-69219697",path:"/plugins/processors/ECMAScriptInterpreter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ECMAScriptInterpreter.md",id:"plugins"},{title:"Decimation",frontmatter:{title:"Decimation",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Decimation.html",relativePath:"plugins/processors/Decimation.md",key:"v-897a9bb2",path:"/plugins/processors/Decimation.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Decimation.md",id:"plugins"},{title:"EventBlock",frontmatter:{title:"EventBlock",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventBlock.html",relativePath:"plugins/processors/EventBlock.md",key:"v-d8c21cb2",path:"/plugins/processors/EventBlock.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventBlock.md",id:"plugins"},{title:"EventCounter",frontmatter:{title:"EventCounter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventCounter.html",relativePath:"plugins/processors/EventCounter.md",key:"v-0faadb07",path:"/plugins/processors/EventCounter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventCounter.md",id:"plugins"},{title:"EventCascade",frontmatter:{title:"EventCascade",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventCascade.html",relativePath:"plugins/processors/EventCascade.md",key:"v-8cf913f2",path:"/plugins/processors/EventCascade.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventCascade.md",id:"plugins"},{title:"EventDelay",frontmatter:{title:"EventDelay",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventDelay.html",relativePath:"plugins/processors/EventDelay.md",key:"v-257632e7",path:"/plugins/processors/EventDelay.html",headers:[{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventDelay.md",id:"plugins"},{title:"Event Flip Flop",frontmatter:{title:"Event Flip Flop",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventFlipFlop.html",relativePath:"plugins/processors/EventFlipFlop.md",key:"v-0de90216",path:"/plugins/processors/EventFlipFlop.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Ports",slug:"event-listener-ports"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventFlipFlop.md",id:"plugins"},{title:"EventRouter",frontmatter:{title:"EventRouter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventRouter.html",relativePath:"plugins/processors/EventRouter.md",key:"v-4f6abeea",path:"/plugins/processors/EventRouter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventRouter.md",id:"plugins"},{title:"Event Dispatcher",frontmatter:{title:"Event Dispatcher",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventDispatcher.html",relativePath:"plugins/processors/EventDispatcher.md",key:"v-b68a9862",path:"/plugins/processors/EventDispatcher.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventDispatcher.md",id:"plugins"},{title:"Event State Machine",frontmatter:{title:"Event State Machine",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/EventStateMachine.html",relativePath:"plugins/processors/EventStateMachine.md",key:"v-92543f1e",path:"/plugins/processors/EventStateMachine.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"EventStateMachine Description",slug:"eventstatemachine-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/EventStateMachine.md",id:"plugins"},{title:"Filter",frontmatter:{title:"Filter",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/Filter.html",relativePath:"plugins/processors/Filter.md",key:"v-170dfcf2",path:"/plugins/processors/Filter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Filter.md",id:"plugins"},{title:"FABI",frontmatter:{title:"FABI",subcategory:"Microcontroller Interface",featured:!0,image:"/plugins/processors/fabi-switches.jpg",layout:"Page"},regularPath:"/plugins/processors/FABI.html",relativePath:"plugins/processors/FABI.md",key:"v-f5401bf2",path:"/plugins/processors/FABI.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/FABI.md",id:"plugins"},{title:"FabiCronusMax",frontmatter:{title:"FabiCronusMax",subcategory:"Microcontroller Interface",layout:"Page"},regularPath:"/plugins/processors/FabiCronusMax.html",relativePath:"plugins/processors/FabiCronusMax.md",key:"v-1715ece5",path:"/plugins/processors/FabiCronusMax.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Configuration file",slug:"configuration-file"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/FabiCronusMax.md",id:"plugins"},{title:"HRVRmssdFromRR",frontmatter:{title:"HRVRmssdFromRR",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/HRVRmssdFromRR.html",relativePath:"plugins/processors/HRVRmssdFromRR.md",key:"v-38d069b2",path:"/plugins/processors/HRVRmssdFromRR.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/HRVRmssdFromRR.md",id:"plugins"},{title:"HRVAnalysis",frontmatter:{title:"HRVAnalysis",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/HRVAnalysis.html",relativePath:"plugins/processors/HRVAnalysis.md",key:"v-7f5ffdc1",path:"/plugins/processors/HRVAnalysis.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/HRVAnalysis.md",id:"plugins"},{title:"IIRFilter",frontmatter:{title:"IIRFilter",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/IIRFilter.html",relativePath:"plugins/processors/IIRFilter.md",key:"v-1d0ab506",path:"/plugins/processors/IIRFilter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Input Port Description",slug:"input-port-description-2"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/IIRFilter.md",id:"plugins"},{title:"IntToString",frontmatter:{title:"IntToString",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/IntToString.html",relativePath:"plugins/processors/IntToString.md",key:"v-d1dfaaca",path:"/plugins/processors/IntToString.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/IntToString.md",id:"plugins"},{title:"IrMicro",frontmatter:{title:"IrMicro",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/processors/IrMicro.html",relativePath:"plugins/processors/IrMicro.md",key:"v-47f9c35b",path:"/plugins/processors/IrMicro.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Home Control)",slug:"component-type-processor-subcategory-home-control"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/IrMicro.md",id:"plugins"},{title:"JsonParser",frontmatter:{title:"JsonParser",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/JsonParser.html",relativePath:"plugins/processors/JsonParser.md",key:"v-19088f27",path:"/plugins/processors/JsonParser.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/JsonParser.md",id:"plugins"},{title:"Integrate",frontmatter:{title:"Integrate",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Integrate.html",relativePath:"plugins/processors/Integrate.md",key:"v-1d065aa2",path:"/plugins/processors/Integrate.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Integrate.md",id:"plugins"},{title:"Math Evaluator",frontmatter:{title:"Math Evaluator",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/MathEvaluator.html",relativePath:"plugins/processors/MathEvaluator.md",key:"v-6736aafa",path:"/plugins/processors/MathEvaluator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MathEvaluator.md",id:"plugins"},{title:"MinMax",frontmatter:{title:"MinMax",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/MinMax.html",relativePath:"plugins/processors/MinMax.md",key:"v-50964747",path:"/plugins/processors/MinMax.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MinMax.md",id:"plugins"},{title:"MotionAnalysis",frontmatter:{title:"MotionAnalysis",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/MotionAnalysis.html",relativePath:"plugins/processors/MotionAnalysis.md",key:"v-bf091772",path:"/plugins/processors/MotionAnalysis.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:3,title:"Save",slug:"save"},{level:3,title:"Load",slug:"load"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"EventListener",slug:"eventlistener"},{level:2,title:"EventTrigger",slug:"eventtrigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MotionAnalysis.md",id:"plugins"},{title:"MultiSourceString",frontmatter:{title:"MultiSourceString",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/MultiSourceString.html",relativePath:"plugins/processors/MultiSourceString.md",key:"v-e3fa9f72",path:"/plugins/processors/MultiSourceString.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MultiSourceString.md",id:"plugins"},{title:"MultiSource",frontmatter:{title:"MultiSource",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/MultiSource.html",relativePath:"plugins/processors/MultiSource.md",key:"v-30be31a9",path:"/plugins/processors/MultiSource.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/MultiSource.md",id:"plugins"},{title:"Neural Network Loader",frontmatter:{title:"Neural Network Loader",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/NeuralNetworkLoader.html",relativePath:"plugins/processors/NeuralNetworkLoader.md",key:"v-d29b3b66",path:"/plugins/processors/NeuralNetworkLoader.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/NeuralNetworkLoader.md",id:"plugins"},{title:"openHAB",frontmatter:{title:"openHAB",subcategory:"Home Control",featured:!0,image:"/plugins/processors/openhab.svg",layout:"Page"},regularPath:"/plugins/processors/OpenHAB.html",relativePath:"plugins/processors/OpenHAB.md",key:"v-6bf745d3",path:"/plugins/processors/OpenHAB.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Start OpenHAB",slug:"start-openhab"},{level:2,title:"Example",slug:"example"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Additional hints",slug:"additional-hints"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OpenHAB.md",id:"plugins"},{title:"NexusConnector",frontmatter:{title:"NexusConnector",subcategory:"Web",layout:"Page"},regularPath:"/plugins/processors/NexusConnector.html",relativePath:"plugins/processors/NexusConnector.md",key:"v-13b74a72",path:"/plugins/processors/NexusConnector.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/NexusConnector.md",id:"plugins"},{title:"OneEventManyActions",frontmatter:{title:"OneEventManyActions",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/OneEventManyActions.html",relativePath:"plugins/processors/OneEventManyActions.md",key:"v-4c4414bd",path:"/plugins/processors/OneEventManyActions.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OneEventManyActions.md",id:"plugins"},{title:"OskaExternalScanning1D",frontmatter:{title:"OskaExternalScanning1D",subcategory:"OSKA",layout:"Page"},regularPath:"/plugins/processors/OskaExternalScanning1D.html",relativePath:"plugins/processors/OskaExternalScanning1D.md",key:"v-2921d7e7",path:"/plugins/processors/OskaExternalScanning1D.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OskaExternalScanning1D.md",id:"plugins"},{title:"Osc Gesture Follower",frontmatter:{title:"Osc Gesture Follower",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/OscGestureFollower.html",relativePath:"plugins/processors/OscGestureFollower.md",key:"v-5a24aa07",path:"/plugins/processors/OscGestureFollower.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Principle",slug:"functional-principle"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener Ports",slug:"event-listener-ports"},{level:2,title:"Referred Plugins",slug:"referred-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OscGestureFollower.md",id:"plugins"},{title:"PathMultiplexer",frontmatter:{title:"PathMultiplexer",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/PathMultiplexer.html",relativePath:"plugins/processors/PathMultiplexer.md",key:"v-4be94031",path:"/plugins/processors/PathMultiplexer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/PathMultiplexer.md",id:"plugins"},{title:"OskaExternalScanning2D",frontmatter:{title:"OskaExternalScanning2D",subcategory:"OSKA",layout:"Page"},regularPath:"/plugins/processors/OskaExternalScanning2D.html",relativePath:"plugins/processors/OskaExternalScanning2D.md",key:"v-e83ea4f2",path:"/plugins/processors/OskaExternalScanning2D.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OskaExternalScanning2D.md",id:"plugins"},{title:"OskaInternalScanning",frontmatter:{title:"OskaInternalScanning",subcategory:"OSKA",layout:"Page"},regularPath:"/plugins/processors/OskaInternalScanning.html",relativePath:"plugins/processors/OskaInternalScanning.md",key:"v-637b13c7",path:"/plugins/processors/OskaInternalScanning.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/OskaInternalScanning.md",id:"plugins"},{title:"Pathselector",frontmatter:{title:"Pathselector",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/Pathselector.html",relativePath:"plugins/processors/Pathselector.md",key:"v-5c2cfb72",path:"/plugins/processors/Pathselector.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Pathselector.md",id:"plugins"},{title:"Protocol SSVEP Train",frontmatter:{title:"Protocol SSVEP Train",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/ProtocolSSVEPTrain.html",relativePath:"plugins/processors/ProtocolSSVEPTrain.md",key:"v-5b5e6427",path:"/plugins/processors/ProtocolSSVEPTrain.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feauture extraction)",slug:"component-type-processor-subcategory-dsp-and-feauture-extraction"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/ProtocolSSVEPTrain.md",id:"plugins"},{title:"PeakDetector",frontmatter:{title:"PeakDetector",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/PeakDetector.html",relativePath:"plugins/processors/PeakDetector.md",key:"v-7c537de7",path:"/plugins/processors/PeakDetector.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/PeakDetector.md",id:"plugins"},{title:"RegularExpression",frontmatter:{title:"RegularExpression",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/RegularExpression.html",relativePath:"plugins/processors/RegularExpression.md",key:"v-21b721ae",path:"/plugins/processors/RegularExpression.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/RegularExpression.md",id:"plugins"},{title:"SSVEP Detect",frontmatter:{title:"SSVEP Detect",subcategory:"DSP and Feature Detection",layout:"Page"},regularPath:"/plugins/processors/SSVEPDetect.html",relativePath:"plugins/processors/SSVEPDetect.md",key:"v-61da4eee",path:"/plugins/processors/SSVEPDetect.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: DSP and Feature Detection)",slug:"component-type-processor-subcategory-dsp-and-feature-detection"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SSVEPDetect.md",id:"plugins"},{title:"Quantizer",frontmatter:{title:"Quantizer",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Quantizer.html",relativePath:"plugins/processors/Quantizer.md",key:"v-3b520e4f",path:"/plugins/processors/Quantizer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Quantizer.md",id:"plugins"},{title:"FS20CommandInterpreter",frontmatter:{title:"FS20CommandInterpreter",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/processors/FS20CommandInterpreter.html",relativePath:"plugins/processors/FS20CommandInterpreter.md",key:"v-77363772",path:"/plugins/processors/FS20CommandInterpreter.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/FS20CommandInterpreter.md",id:"plugins"},{title:"SampleAndHold",frontmatter:{title:"SampleAndHold",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/SampleAndHold.html",relativePath:"plugins/processors/SampleAndHold.md",key:"v-11a59ef9",path:"/plugins/processors/SampleAndHold.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SampleAndHold.md",id:"plugins"},{title:"SerialPort",frontmatter:{title:"SerialPort",subcategory:"Communication",featured:!0,layout:"Page"},regularPath:"/plugins/processors/SerialPort.html",relativePath:"plugins/processors/SerialPort.md",key:"v-9f5a7d32",path:"/plugins/processors/SerialPort.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SerialPort.md",id:"plugins"},{title:"Sampler",frontmatter:{title:"Sampler",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Sampler.html",relativePath:"plugins/processors/Sampler.md",key:"v-64552681",path:"/plugins/processors/Sampler.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Sampler.md",id:"plugins"},{title:"SerialSender",frontmatter:{title:"SerialSender",subcategory:"Serial Communication",layout:"Page"},regularPath:"/plugins/processors/SerialSender.html",relativePath:"plugins/processors/SerialSender.md",key:"v-a40c8732",path:"/plugins/processors/SerialSender.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SerialSender.md",id:"plugins"},{title:"SpeechProcessor",frontmatter:{title:"SpeechProcessor",subcategory:"Audio and Voice",featured:!0,layout:"Page"},regularPath:"/plugins/processors/SpeechProcessor.html",relativePath:"plugins/processors/SpeechProcessor.md",key:"v-9198a01e",path:"/plugins/processors/SpeechProcessor.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description:",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description:",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SpeechProcessor.md",id:"plugins"},{title:"Signal Translation",frontmatter:{title:"Signal Translation",subcategory:"Signal Shaping",layout:"Page"},regularPath:"/plugins/processors/SignalTranslation.html",relativePath:"plugins/processors/SignalTranslation.md",key:"v-1013433f",path:"/plugins/processors/SignalTranslation.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/SignalTranslation.md",id:"plugins"},{title:"StringAppend",frontmatter:{title:"StringAppend",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringAppend.html",relativePath:"plugins/processors/StringAppend.md",key:"v-67dbcba7",path:"/plugins/processors/StringAppend.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Ports",slug:"event-listener-ports"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringAppend.md",id:"plugins"},{title:"StringDelay",frontmatter:{title:"StringDelay",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringDelay.html",relativePath:"plugins/processors/StringDelay.md",key:"v-14661c2d",path:"/plugins/processors/StringDelay.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringDelay.md",id:"plugins"},{title:"StringExpander",frontmatter:{title:"StringExpander",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringExpander.html",relativePath:"plugins/processors/StringExpander.md",key:"v-59dccef2",path:"/plugins/processors/StringExpander.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringExpander.md",id:"plugins"},{title:"StringFilter",frontmatter:{title:"StringFilter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringFilter.html",relativePath:"plugins/processors/StringFilter.md",key:"v-4cf6bf32",path:"/plugins/processors/StringFilter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringFilter.md",id:"plugins"},{title:"String Dispatcher",frontmatter:{title:"String Dispatcher",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringDispatcher.html",relativePath:"plugins/processors/StringDispatcher.md",key:"v-100a3e47",path:"/plugins/processors/StringDispatcher.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringDispatcher.md",id:"plugins"},{title:"StringExtractor",frontmatter:{title:"StringExtractor",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/StringExtractor.html",relativePath:"plugins/processors/StringExtractor.md",key:"v-3e8a576b",path:"/plugins/processors/StringExtractor.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringExtractor.md",id:"plugins"},{title:"StringPathMultiplexer",frontmatter:{title:"StringPathMultiplexer",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/StringPathMultiplexer.html",relativePath:"plugins/processors/StringPathMultiplexer.md",key:"v-1709c1d3",path:"/plugins/processors/StringPathMultiplexer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringPathMultiplexer.md",id:"plugins"},{title:"StringFormatter",frontmatter:{title:"StringFormatter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringFormatter.html",relativePath:"plugins/processors/StringFormatter.md",key:"v-3d455e1f",path:"/plugins/processors/StringFormatter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringFormatter.md",id:"plugins"},{title:"StringPathSelector",frontmatter:{title:"StringPathSelector",subcategory:"Signal Pathways",layout:"Page"},regularPath:"/plugins/processors/StringPathSelector.html",relativePath:"plugins/processors/StringPathSelector.md",key:"v-690e9367",path:"/plugins/processors/StringPathSelector.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringPathSelector.md",id:"plugins"},{title:"StringSplitter",frontmatter:{title:"StringSplitter",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/StringSplitter.html",relativePath:"plugins/processors/StringSplitter.md",key:"v-2ce14ef2",path:"/plugins/processors/StringSplitter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringSplitter.md",id:"plugins"},{title:"StringToInt",frontmatter:{title:"StringToInt",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/StringToInt.html",relativePath:"plugins/processors/StringToInt.md",key:"v-281449cb",path:"/plugins/processors/StringToInt.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringToInt.md",id:"plugins"},{title:"TextSender",frontmatter:{title:"TextSender",subcategory:"Event and String Processing",layout:"Page"},regularPath:"/plugins/processors/TextSender.html",relativePath:"plugins/processors/TextSender.md",key:"v-77d7abc7",path:"/plugins/processors/TextSender.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Event and String Processing)",slug:"component-type-processor-subcategory-event-and-string-processing"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/TextSender.md",id:"plugins"},{title:"StringToDouble",frontmatter:{title:"StringToDouble",subcategory:"Data Converters",layout:"Page"},regularPath:"/plugins/processors/StringToDouble.html",relativePath:"plugins/processors/StringToDouble.md",key:"v-1e8b2167",path:"/plugins/processors/StringToDouble.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/StringToDouble.md",id:"plugins"},{title:"Relative Move Sampler",frontmatter:{title:"Relative Move Sampler",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/RelativeMoveSampler.html",relativePath:"plugins/processors/RelativeMoveSampler.md",key:"v-3eb0087b",path:"/plugins/processors/RelativeMoveSampler.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/RelativeMoveSampler.md",id:"plugins"},{title:"Universal Remote Control",frontmatter:{title:"Universal Remote Control",subcategory:"Microcontroller Interface",layout:"Page"},regularPath:"/plugins/processors/UniversalRemoteControl.html",relativePath:"plugins/processors/UniversalRemoteControl.md",key:"v-01319b07",path:"/plugins/processors/UniversalRemoteControl.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"IR Code Database",slug:"ir-code-database"},{level:2,title:"Configuration File",slug:"configuration-file"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/UniversalRemoteControl.md",id:"plugins"},{title:"WebSocket",frontmatter:{title:"WebSocket",subcategory:"Web",layout:"Page"},regularPath:"/plugins/processors/WebSocket.html",relativePath:"plugins/processors/WebSocket.md",key:"v-1b0560c3",path:"/plugins/processors/WebSocket.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/WebSocket.md",id:"plugins"},{title:"Create EG file",frontmatter:{title:"Create EG file",subcategory:"Others",layout:"Page"},regularPath:"/plugins/processors/eg_example.html",relativePath:"plugins/processors/eg_example.md",key:"v-8ed10332",path:"/plugins/processors/eg_example.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/eg_example.md",id:"plugins"},{title:"Yaak",frontmatter:{title:"Yaak",subcategory:"Phone Interface",layout:"Page"},regularPath:"/plugins/processors/Yaak.html",relativePath:"plugins/processors/Yaak.md",key:"v-846ec7f2",path:"/plugins/processors/Yaak.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Phone Interface)",slug:"component-type-processor-subcategory-phone-interface"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Yaak.md",id:"plugins"},{title:"Acceleration",frontmatter:{title:"Acceleration",subcategory:"Inertial Measurement",layout:"Page"},regularPath:"/plugins/sensors/Acceleration.html",relativePath:"plugins/sensors/Acceleration.md",key:"v-2e4c9dc9",path:"/plugins/sensors/Acceleration.html",headers:[{level:2,title:"Tilt calculation",slug:"tilt-calculation"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Acceleration.md",id:"plugins"},{title:"TimestampWriter",frontmatter:{title:"TimestampWriter",subcategory:"Easy Reading",layout:"Page"},regularPath:"/plugins/processors/TimestampWriter.html",relativePath:"plugins/processors/TimestampWriter.md",key:"v-53da033f",path:"/plugins/processors/TimestampWriter.html",headers:[{level:2,title:"Component Type: Processor (Subcategory: Easy Reading)",slug:"component-type-processor-subcategory-easy-reading"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/TimestampWriter.md",id:"plugins"},{title:"AnalogIn",frontmatter:{title:"AnalogIn",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/AnalogIn.html",relativePath:"plugins/sensors/AnalogIn.md",key:"v-1b90e4c2",path:"/plugins/sensors/AnalogIn.html",headers:[{level:3,title:"Component Type: Sensor (Subcategory: Generic Control Input)",slug:"component-type-sensor-subcategory-generic-control-input"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/AnalogIn.md",id:"plugins"},{title:"AutostartEvent",frontmatter:{title:"AutostartEvent",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/AutostartEvent.html",relativePath:"plugins/sensors/AutostartEvent.md",key:"v-7841dcfb",path:"/plugins/sensors/AutostartEvent.html",headers:[{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/AutostartEvent.md",id:"plugins"},{title:"ButtonGrid",frontmatter:{title:"ButtonGrid",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/ButtonGrid.html",relativePath:"plugins/sensors/ButtonGrid.md",key:"v-5889cb59",path:"/plugins/sensors/ButtonGrid.html",headers:[{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/ButtonGrid.md",id:"plugins"},{title:"CellBoard",frontmatter:{title:"CellBoard",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/CellBoard.html",relativePath:"plugins/sensors/CellBoard.md",key:"v-1eb18087",path:"/plugins/sensors/CellBoard.html",headers:[{level:2,title:"Using the cell editor",slug:"using-the-cell-editor"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/CellBoard.md",id:"plugins"},{title:"EOG",frontmatter:{title:"EOG",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/EOG.html",relativePath:"plugins/sensors/EOG.md",key:"v-48688967",path:"/plugins/sensors/EOG.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EOG.md",id:"plugins"},{title:"DigitalIn",frontmatter:{title:"DigitalIn",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/DigitalIn.html",relativePath:"plugins/sensors/DigitalIn.md",key:"v-28fc4432",path:"/plugins/sensors/DigitalIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/DigitalIn.md",id:"plugins"},{title:"EShoe",frontmatter:{title:"EShoe",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/EShoe.html",relativePath:"plugins/sensors/EShoe.md",key:"v-3098c387",path:"/plugins/sensors/EShoe.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EShoe.md",id:"plugins"},{title:"EditBox",frontmatter:{title:"EditBox",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/EditBox.html",relativePath:"plugins/sensors/EditBox.md",key:"v-1134a2e7",path:"/plugins/sensors/EditBox.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EditBox.md",id:"plugins"},{title:"Event Generator",frontmatter:{title:"Event Generator",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/EventGenerator.html",relativePath:"plugins/sensors/EventGenerator.md",key:"v-64af51d7",path:"/plugins/sensors/EventGenerator.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Port Description",slug:"port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EventGenerator.md",id:"plugins"},{title:"Enobio",frontmatter:{title:"Enobio",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/Enobio.html",relativePath:"plugins/sensors/Enobio.md",key:"v-9ccbeb76",path:"/plugins/sensors/Enobio.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Enobio.md",id:"plugins"},{title:"Eyetracker",frontmatter:{title:"Eyetracker",subcategory:"Computer Vision",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/Eyetracker.html",relativePath:"plugins/sensors/Eyetracker.md",key:"v-157f848a",path:"/plugins/sensors/Eyetracker.html",headers:[{level:3,title:"Plugin modes",slug:"plugin-modes"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Eyetracker.md",id:"plugins"},{title:"EyeX",frontmatter:{title:"EyeX",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/EyeX.html",relativePath:"plugins/sensors/EyeX.md",key:"v-001ddafb",path:"/plugins/sensors/EyeX.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:3,title:"Calibration and Offset Correction",slug:"calibration-and-offset-correction"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EyeX.md",id:"plugins"},{title:"Eyetribe",frontmatter:{title:"Eyetribe",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/EyeTribe.html",relativePath:"plugins/sensors/EyeTribe.md",key:"v-12d7b90f",path:"/plugins/sensors/EyeTribe.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"},{level:3,title:"Calibration and Offset Correction",slug:"calibration-and-offset-correction"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/EyeTribe.md",id:"plugins"},{title:"FS20Receiver",frontmatter:{title:"FS20Receiver",subcategory:"Home Control",layout:"Page"},regularPath:"/plugins/sensors/FS20Receiver.html",relativePath:"plugins/sensors/FS20Receiver.md",key:"v-16e38c56",path:"/plugins/sensors/FS20Receiver.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Supported OSes",slug:"supported-oses"},{level:2,title:"Notes on Linux platform",slug:"notes-on-linux-platform"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FS20Receiver.md",id:"plugins"},{title:"FacetrackerCLM",frontmatter:{title:"FacetrackerCLM",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/FacetrackerCLM.html",relativePath:"plugins/sensors/FacetrackerCLM.md",key:"v-58df42b7",path:"/plugins/sensors/FacetrackerCLM.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FacetrackerCLM.md",id:"plugins"},{title:"FacetrackerLK",frontmatter:{title:"FacetrackerLK",subcategory:"Computer Vision",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/FacetrackerLK.html",relativePath:"plugins/sensors/FacetrackerLK.md",key:"v-7381d572",path:"/plugins/sensors/FacetrackerLK.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FacetrackerLK.md",id:"plugins"},{title:"HeadPositionHC",frontmatter:{title:"HeadPositionHC",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/HeadPositionHC.html",relativePath:"plugins/sensors/HeadPositionHC.md",key:"v-568f6d7e",path:"/plugins/sensors/HeadPositionHC.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/HeadPositionHC.md",id:"plugins"},{title:"JoystickCapture",frontmatter:{title:"JoystickCapture",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/JoystickCapture.html",relativePath:"plugins/sensors/JoystickCapture.md",key:"v-668f1587",path:"/plugins/sensors/JoystickCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/JoystickCapture.md",id:"plugins"},{title:"FolderBrowser",frontmatter:{title:"FolderBrowser",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/FolderBrowser.html",relativePath:"plugins/sensors/FolderBrowser.md",key:"v-12144d72",path:"/plugins/sensors/FolderBrowser.html",headers:[{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/FolderBrowser.md",id:"plugins"},{title:"HoverPanel",frontmatter:{title:"HoverPanel",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/HoverPanel.html",relativePath:"plugins/sensors/HoverPanel.md",key:"v-6bfe6a39",path:"/plugins/sensors/HoverPanel.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/HoverPanel.md",id:"plugins"},{title:"KeyCapture",frontmatter:{title:"KeyCapture",subcategory:"Standard Input Device",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/KeyCapture.html",relativePath:"plugins/sensors/KeyCapture.md",key:"v-690635bb",path:"/plugins/sensors/KeyCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Mapping of keyCodes to actual keys",slug:"mapping-of-keycodes-to-actual-keys"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/KeyCapture.md",id:"plugins"},{title:"IntelRealSense",frontmatter:{title:"IntelRealSense",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/IntelRealSense.html",relativePath:"plugins/sensors/IntelRealSense.md",key:"v-0031f5d6",path:"/plugins/sensors/IntelRealSense.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/IntelRealSense.md",id:"plugins"},{title:"Kinect",frontmatter:{title:"Kinect",subcategory:"Computer Vision",image:"/plugins/sensors/kinect.png",layout:"Page"},regularPath:"/plugins/sensors/Kinect.html",relativePath:"plugins/sensors/Kinect.md",key:"v-0f25337d",path:"/plugins/sensors/Kinect.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Kinect.md",id:"plugins"},{title:"KeyboardCapture",frontmatter:{title:"KeyboardCapture",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/KeyboardCapture.html",relativePath:"plugins/sensors/KeyboardCapture.md",key:"v-08564da7",path:"/plugins/sensors/KeyboardCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/KeyboardCapture.md",id:"plugins"},{title:"KinectJ4K",frontmatter:{title:"KinectJ4K",subcategory:"Computer Vision",image:"/plugins/sensors/kinectj4k.png",layout:"Page"},regularPath:"/plugins/sensors/KinectJ4K.html",relativePath:"plugins/sensors/KinectJ4K.md",key:"v-5f99c5b2",path:"/plugins/sensors/KinectJ4K.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/KinectJ4K.md",id:"plugins"},{title:"Legacy Analog In",frontmatter:{title:"Legacy Analog In",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/LegacyAnalogIn.html",relativePath:"plugins/sensors/LegacyAnalogIn.md",key:"v-760221cd",path:"/plugins/sensors/LegacyAnalogIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LegacyAnalogIn.md",id:"plugins"},{title:"Legacy Digital In",frontmatter:{title:"Legacy Digital In",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/LegacyDigitalIn.html",relativePath:"plugins/sensors/LegacyDigitalIn.md",key:"v-258c6472",path:"/plugins/sensors/LegacyDigitalIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LegacyDigitalIn.md",id:"plugins"},{title:"Lightscore",frontmatter:{title:"Lightscore",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/Lightscore.html",relativePath:"plugins/sensors/Lightscore.md",key:"v-9d2ec7de",path:"/plugins/sensors/Lightscore.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Lightscore.md",id:"plugins"},{title:"LineReader",frontmatter:{title:"LineReader",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/LineReader.html",relativePath:"plugins/sensors/LineReader.md",key:"v-acbfcc4a",path:"/plugins/sensors/LineReader.html",headers:[{level:2,title:"Input port Description",slug:"input-port-description"},{level:2,title:"Output port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LineReader.md",id:"plugins"},{title:"Lipmouse",frontmatter:{title:"Lipmouse",subcategory:"Sensor Modules",image:"/plugins/sensors/lipmouse.png",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/Lipmouse.html",relativePath:"plugins/sensors/Lipmouse.md",key:"v-cb421036",path:"/plugins/sensors/Lipmouse.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Lipmouse.md",id:"plugins"},{title:"MicGPI",frontmatter:{title:"MicGPI",subcategory:"Generic Control Input",layout:"Page"},regularPath:"/plugins/sensors/MicGPI.html",relativePath:"plugins/sensors/MicGPI.md",key:"v-5b66ee52",path:"/plugins/sensors/MicGPI.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/MicGPI.md",id:"plugins"},{title:"OpenVibe",frontmatter:{title:"OpenVibe",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/OpenVibe.html",relativePath:"plugins/sensors/OpenVibe.md",key:"v-3e2501ee",path:"/plugins/sensors/OpenVibe.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/OpenVibe.md",id:"plugins"},{title:"OpenBCI",frontmatter:{title:"OpenBCI",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/OpenBCI.html",relativePath:"plugins/sensors/OpenBCI.md",key:"v-6c144d07",path:"/plugins/sensors/OpenBCI.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/OpenBCI.md",id:"plugins"},{title:"LipmouseIR",frontmatter:{title:"LipmouseIR",subcategory:"Sensor Modules",image:"/plugins/sensors/lipmouse-ir.svg",layout:"Page"},regularPath:"/plugins/sensors/LipmouseIR.html",relativePath:"plugins/sensors/LipmouseIR.md",key:"v-1327575a",path:"/plugins/sensors/LipmouseIR.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Triggerer Description",slug:"event-triggerer-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"IR Code Database",slug:"ir-code-database"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/LipmouseIR.md",id:"plugins"},{title:"P2 Parser",frontmatter:{title:"P2 Parser",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/P2_Parser.html",relativePath:"plugins/sensors/P2_Parser.md",key:"v-fa5974f2",path:"/plugins/sensors/P2_Parser.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/P2_Parser.md",id:"plugins"},{title:"PhilipsHueSensor",frontmatter:{title:"PhilipsHueSensor",subcategory:"Home Control",image:"/plugins/sensors/philips-hue.png",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/PhilipsHueSensor.html",relativePath:"plugins/sensors/PhilipsHueSensor.md",key:"v-16942872",path:"/plugins/sensors/PhilipsHueSensor.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Initial Setup",slug:"initial-setup"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/PhilipsHueSensor.md",id:"plugins"},{title:"Osc Server",frontmatter:{title:"Osc Server",subcategory:"Communication",layout:"Page"},regularPath:"/plugins/sensors/OscServer.html",relativePath:"plugins/sensors/OscServer.md",key:"v-ae820072",path:"/plugins/sensors/OscServer.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Functional Principle",slug:"functional-principle"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Referred Plugins",slug:"referred-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/OscServer.md",id:"plugins"},{title:"MouseCapture",frontmatter:{title:"MouseCapture",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/MouseCapture.html",relativePath:"plugins/sensors/MouseCapture.md",key:"v-9043d372",path:"/plugins/sensors/MouseCapture.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/MouseCapture.md",id:"plugins"},{title:"Platform Analog In",frontmatter:{title:"Platform Analog In",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/sensors/PlatformAnalogIn.html",relativePath:"plugins/sensors/PlatformAnalogIn.md",key:"v-e648748e",path:"/plugins/sensors/PlatformAnalogIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/PlatformAnalogIn.md",id:"plugins"},{title:"PlatformDigitalIn",frontmatter:{title:"PlatformDigitalIn",subcategory:"Personal Platform",layout:"Page"},regularPath:"/plugins/sensors/PlatformDigitalIn.html",relativePath:"plugins/sensors/PlatformDigitalIn.md",key:"v-34a03bc7",path:"/plugins/sensors/PlatformDigitalIn.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/PlatformDigitalIn.md",id:"plugins"},{title:"Proximity",frontmatter:{title:"Proximity",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/Proximity.html",relativePath:"plugins/sensors/Proximity.md",key:"v-327fbaa7",path:"/plugins/sensors/Proximity.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Proximity.md",id:"plugins"},{title:"RFID Reader",frontmatter:{title:"RFID Reader",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/RFIDReader.html",relativePath:"plugins/sensors/RFIDReader.md",key:"v-4f8d10e5",path:"/plugins/sensors/RFIDReader.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/RFIDReader.md",id:"plugins"},{title:"RazorIMU",frontmatter:{title:"RazorIMU",subcategory:"Inertial Measurement",layout:"Page"},regularPath:"/plugins/sensors/RazorIMU.html",relativePath:"plugins/sensors/RazorIMU.md",key:"v-1912fd7a",path:"/plugins/sensors/RazorIMU.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/RazorIMU.md",id:"plugins"},{title:"RandomNumber",frontmatter:{title:"RandomNumber",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/RandomNumber.html",relativePath:"plugins/sensors/RandomNumber.md",key:"v-f2533c1e",path:"/plugins/sensors/RandomNumber.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/RandomNumber.md",id:"plugins"},{title:"ReadCSV",frontmatter:{title:"ReadCSV",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/ReadCSV.html",relativePath:"plugins/sensors/ReadCSV.md",key:"v-3e1f8c47",path:"/plugins/sensors/ReadCSV.html",headers:[{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Output port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/ReadCSV.md",id:"plugins"},{title:"ReadEDF",frontmatter:{title:"ReadEDF",subcategory:"File System",layout:"Page"},regularPath:"/plugins/sensors/ReadEDF.html",relativePath:"plugins/sensors/ReadEDF.md",key:"v-347024e7",path:"/plugins/sensors/ReadEDF.html",headers:[{level:2,title:"Output port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/ReadEDF.md",id:"plugins"},{title:"SignalGenerator",frontmatter:{title:"SignalGenerator",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/SignalGenerator.html",relativePath:"plugins/sensors/SignalGenerator.md",key:"v-058dc5b2",path:"/plugins/sensors/SignalGenerator.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/SignalGenerator.md",id:"plugins"},{title:"Sensorboard",frontmatter:{title:"Sensorboard",subcategory:"Sensor Modules",layout:"Page"},regularPath:"/plugins/sensors/Sensorboard.html",relativePath:"plugins/sensors/Sensorboard.md",key:"v-5ffb0147",path:"/plugins/sensors/Sensorboard.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Sensorboard.md",id:"plugins"},{title:"Slider",frontmatter:{title:"Slider",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/Slider.html",relativePath:"plugins/sensors/Slider.md",key:"v-524244c7",path:"/plugins/sensors/Slider.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Slider.md",id:"plugins"},{title:"SignalShaper",frontmatter:{title:"SignalShaper",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/SignalShaper.html",relativePath:"plugins/sensors/SignalShaper.md",key:"v-4f75de97",path:"/plugins/sensors/SignalShaper.html",headers:[{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/SignalShaper.md",id:"plugins"},{title:"SpaceNavigtor3DMouse",frontmatter:{title:"SpaceNavigtor3DMouse",subcategory:"Standard Input Device",layout:"Page"},regularPath:"/plugins/sensors/SpaceNavigator3DMouse.html",relativePath:"plugins/sensors/SpaceNavigator3DMouse.md",key:"v-4f2ebfb2",path:"/plugins/sensors/SpaceNavigator3DMouse.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/SpaceNavigator3DMouse.md",id:"plugins"},{title:"Timer",frontmatter:{title:"Timer",subcategory:"Simulation",layout:"Page"},regularPath:"/plugins/sensors/Timer.html",relativePath:"plugins/sensors/Timer.md",key:"v-741a2432",path:"/plugins/sensors/Timer.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Timer.md",id:"plugins"},{title:"TextfieldReader",frontmatter:{title:"TextfieldReader",subcategory:"Graphical User Interface",layout:"Page"},regularPath:"/plugins/sensors/TextfieldReader.html",relativePath:"plugins/sensors/TextfieldReader.md",key:"v-0c6bef47",path:"/plugins/sensors/TextfieldReader.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TextfieldReader.md",id:"plugins"},{title:"TobiTic",frontmatter:{title:"TobiTic",subcategory:"Bioelectric Measurement",layout:"Page"},regularPath:"/plugins/sensors/TobiTic.html",relativePath:"plugins/sensors/TobiTic.md",key:"v-9d9cc472",path:"/plugins/sensors/TobiTic.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Example iC message:",slug:"example-ic-message"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TobiTic.md",id:"plugins"},{title:"Tobii4CHeadTracker",frontmatter:{title:"Tobii4CHeadTracker",subcategory:"Computer Vision",image:"/plugins/sensors/tobi4c.png",layout:"Page"},regularPath:"/plugins/sensors/Tobii4CHeadTracker.html",relativePath:"plugins/sensors/Tobii4CHeadTracker.md",key:"v-dc917076",path:"/plugins/sensors/Tobii4CHeadTracker.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/Tobii4CHeadTracker.md",id:"plugins"},{title:"TrackIR",frontmatter:{title:"TrackIR",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/TrackIR.html",relativePath:"plugins/sensors/TrackIR.md",key:"v-326ed2c7",path:"/plugins/sensors/TrackIR.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TrackIR.md",id:"plugins"},{title:"WiiMote",frontmatter:{title:"WiiMote",subcategory:"Standard Input Device",image:"/plugins/sensors/wiimote.png",layout:"Page"},regularPath:"/plugins/sensors/WiiMote.html",relativePath:"plugins/sensors/WiiMote.md",key:"v-5a274087",path:"/plugins/sensors/WiiMote.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Trigger Description",slug:"event-trigger-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/WiiMote.md",id:"plugins"},{title:"XFacetrackerLK",frontmatter:{title:"XFacetrackerLK",subcategory:"Computer Vision",featured:!0,layout:"Page"},regularPath:"/plugins/sensors/XFacetrackerLK.html",relativePath:"plugins/sensors/XFacetrackerLK.md",key:"v-4f597976",path:"/plugins/sensors/XFacetrackerLK.html",headers:[{level:3,title:"Component Type: Sensor (Subcategory: Computer Vision)",slug:"component-type-sensor-subcategory-computer-vision"},{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Note for Raspberry Pi",slug:"note-for-raspberry-pi"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Listener Description",slug:"event-listener-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Example Configuraitons",slug:"example-configuraitons"},{level:3,title:"Default",slug:"default"},{level:3,title:"OpenCV",slug:"opencv"},{level:3,title:"VideoInput (Windows only)",slug:"videoinput-windows-only"},{level:3,title:"FFmpeg (Linux only)",slug:"ffmpeg-linux-only"},{level:3,title:"MJPEG stream of SmartPhone camera",slug:"mjpeg-stream-of-smartphone-camera"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/XFacetrackerLK.md",id:"plugins"},{title:"TuioReactivision",frontmatter:{title:"TuioReactivision",subcategory:"Computer Vision",layout:"Page"},regularPath:"/plugins/sensors/TuioReactivision.html",relativePath:"plugins/sensors/TuioReactivision.md",key:"v-254d4e97",path:"/plugins/sensors/TuioReactivision.html",headers:[{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Properties",slug:"properties"},{level:2,title:"Event Trigger",slug:"event-trigger"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/sensors/TuioReactivision.md",id:"plugins"},{title:"Basic AAC Grid Solution",frontmatter:{},regularPath:"/solutions/AAC-Basic.html",relativePath:"solutions/AAC-Basic.md",key:"v-3fac8f47",path:"/solutions/AAC-Basic.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:3,title:"Optional Requirements",slug:"optional-requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/AAC-Basic.md"},{title:"Camera Mouse Solution",frontmatter:{},regularPath:"/solutions/Camera-Mouse.html",relativePath:"solutions/Camera-Mouse.md",key:"v-3a4e136f",path:"/solutions/Camera-Mouse.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Related Videos",slug:"related-videos"},{level:2,title:"Major Plugins",slug:"major-plugins"},{level:2,title:"Related Tutorials",slug:"related-tutorials"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Camera-Mouse.md"},{title:"Head Sound Solution",frontmatter:{},regularPath:"/solutions/Head-Sound.html",relativePath:"solutions/Head-Sound.md",key:"v-f2e2c936",path:"/solutions/Head-Sound.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Head-Sound.md"},{title:"Eye Tracking Mouse Solution",frontmatter:{},regularPath:"/solutions/Eye-Tracking-Mouse.html",relativePath:"solutions/Eye-Tracking-Mouse.md",key:"v-3696ee5a",path:"/solutions/Eye-Tracking-Mouse.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Description",slug:"description"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Eye-Tracking-Mouse.md"},{title:"Discover Solutions",frontmatter:{},regularPath:"/solutions/",relativePath:"solutions/README.md",key:"v-bcda9044",path:"/solutions/",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/README.md"},{title:"AT Solution Tutorial",frontmatter:{},regularPath:"/develop/at-solution/AT-solution-tutorial.html",relativePath:"develop/at-solution/AT-solution-tutorial.md",key:"v-3d668687",path:"/develop/at-solution/AT-solution-tutorial.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Download / Clone template repository",slug:"download-clone-template-repository"},{level:2,title:"Example 1 - Run project",slug:"example-1-run-project"},{level:2,title:"Example 2 - Edit and test model",slug:"example-2-edit-and-test-model"},{level:2,title:"AsTeRICS model + web application",slug:"asterics-model-web-application"},{level:2,title:"Example 3 - Model parametrization through web page",slug:"example-3-model-parametrization-through-web-page"},{level:2,title:"Example 4 - Rename web application folder and title",slug:"example-4-rename-web-application-folder-and-title"},{level:2,title:"Eclipse installation and setup",slug:"eclipse-installation-and-setup"},{level:3,title:"Eclipse project setup",slug:"eclipse-project-setup"},{level:3,title:"Using ant within eclipse",slug:"using-ant-within-eclipse"},{level:2,title:"References",slug:"references"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/develop/at-solution/AT-solution-tutorial.md"},{title:"Switch Mouse Solution",frontmatter:{},regularPath:"/solutions/Switch-Mouse.html",relativePath:"solutions/Switch-Mouse.md",key:"v-79720951",path:"/solutions/Switch-Mouse.html",headers:[{level:2,title:"Objective",slug:"objective"},{level:2,title:"Mouse movement",slug:"mouse-movement"},{level:2,title:"Tooltips",slug:"tooltips"},{level:2,title:"Requirements",slug:"requirements"},{level:2,title:"Major Plugins",slug:"major-plugins"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/solutions/Switch-Mouse.md"},{title:"Create new AT solution",frontmatter:{},regularPath:"/webapps/AT-solution-IDE.html",relativePath:"webapps/AT-solution-IDE.md",key:"v-81ac5472",path:"/webapps/AT-solution-IDE.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/webapps/AT-solution-IDE.md"},{title:"Create new plugin",frontmatter:{},regularPath:"/webapps/Plugin-IDE.html",relativePath:"webapps/Plugin-IDE.md",key:"v-25491f21",path:"/webapps/Plugin-IDE.html",editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/webapps/Plugin-IDE.md"},{title:"Threshold",frontmatter:{title:"Threshold",subcategory:"Basic Math",layout:"Page"},regularPath:"/plugins/processors/Threshold.html",relativePath:"plugins/processors/Threshold.md",key:"v-75091cbb",path:"/plugins/processors/Threshold.html",headers:[{level:2,title:"Input Port Description",slug:"input-port-description"},{level:2,title:"Output Port Description",slug:"output-port-description"},{level:2,title:"Event Port Description",slug:"event-port-description"},{level:2,title:"Properties",slug:"properties"}],editLink:"https://github.com/asterics/AsTeRICS/edit/master/Documentation/docs/plugins/processors/Threshold.md",id:"plugins"}],themeConfig:{versions:["4.1"],host:"https://www.asterics.eu/",translate:{favorites:["de","en","fr","it","es","pt","zh-CN","ar"],codes:[["de","DE","Deutsch","German"],["en","EN","English","English"],["fr","FR","Français","French"],["it","IT","Italiano","Italian"],["es","ES","Español","Spanish, Castilian"],["pt","PT","Português","Portuguese"],["zh-CN","ZH","中文","Chinese"],["ar","AR","العربية","Arabic"],["af","AF","Afrikaans","Afrikaans"],["sq","SQ","Shqip","Albanian"],["am","AM","አማርኛ","Amharic"],["hy","HY","Հայերեն","Armenian"],["eu","EU","euskara, euskera","Basque"],["be","BE","беларуская мова","Belarusian"],["bn","BN","বাংলা","Bengali"],["bs","BS","bosanski jezik","Bosnian"],["bg","BG","български език","Bulgarian"],["my","MY","ဗမာစာ","Burmese"],["ca","CA","català, valencià","Catalan, Valencian"],["ceb","CEB","Sinugbuanong Binisayâ","Cebuano"],["ny","NY","chiCheŵa, chinyanja","Chichewa, Chewa, Nyanja"],["zh-TW","ZH","漢語","Classical Chinese"],["co","CO","corsu, lingua corsa","Corsican"],["hr","HR","hrvatski jezik","Croatian"],["cs","CS","čeština, český jazyk","Czech"],["da","DA","dansk","Danish"],["nl","NL","Nederlands, Vlaams","Dutch, Flemish"],["eo","EO","Esperanto","Esperanto"],["et","ET","eesti, eesti keel","Estonian"],["fi","FI","suomi, suomen kieli","Finnish"],["gl","GL","Galego","Galician"],["ka","KA","ქართული","Georgian"],["el","EL","ελληνικά","Greek, Modern (1453–)"],["gu","GU","ગુજરાતી","Gujarati"],["ht","HT","Kreyòl ayisyen","Haitian, Haitian Creole"],["ha","HA","(Hausa) هَوُسَ","Hausa"],["haw","HAW","ʻŌlelo Hawaiʻi","Hawaiian"],["he","HE","עברית","Hebrew"],["hi","HI","हिन्दी, हिंदी","Hindi"],["hmn","HMN","lus Hmoob","Hmong"],["hu","HU","magyar","Hungarian"],["id","ID","Bahasa Indonesia","Indonesian"],["ga","GA","Gaeilge","Irish"],["ig","IG","Asụsụ Igbo","Igbo"],["is","IS","Íslenska","Icelandic"],["ja","JA","日本語 (にほんご)","Japanese"],["jv","JV","ꦧꦱꦗꦮ, Basa Jawa","Javanese"],["kn","KN","ಕನ್ನಡ","Kannada"],["kk","KK","қазақ тілі","Kazakh"],["km","KM","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ","Central Khmer"],["rw","RW","Ikinyarwanda","Kinyarwanda"],["ky","KY","Кыргызча, Кыргыз тили","Kirghiz, Kyrgyz"],["ko","KO","한국어","Korean"],["ku","KU","Kurdî, کوردی‎","Kurdish"],["la","LA","latine, lingua latina","Latin"],["lb","LB","Lëtzebuergesch","Luxembourgish, Letzeburgesch"],["lo","LO","ພາສາລາວ","Lao"],["lt","LT","lietuvių kalba","Lithuanian"],["lv","LV","latviešu valoda","Latvian"],["mk","MK","македонски јазик","Macedonian"],["mg","MG","fiteny malagasy","Malagasy"],["ms","MS","Bahasa Melayu, بهاس ملايو‎","Malay"],["ml","ML","മലയാളം","Malayalam"],["mt","MT","Malti","Maltese"],["mi","MI","te reo Māori","Maori"],["mr","MR","मराठी","Marathi"],["mn","MN","Монгол хэл","Mongolian"],["ne","NE","नेपाली","Nepali"],["no","NO","Norsk","Norwegian"],["or","OR","ଓଡ଼ିଆ","Oriya"],["pa","PA","ਪੰਜਾਬੀ, پنجابی‎","Punjabi, Panjabi"],["fa","FA","فارسی","Persian"],["pl","PL","język polski, polszczyzna","Polish"],["ps","PS","پښتو","Pashto, Pushto"],["ro","RO","Română","Romanian, Moldavian, Moldovan"],["ru","RU","русский","Russian"],["sd","SD","सिन्धी, سنڌي، سندھی‎","Sindhi"],["sm","SM","gagana fa'a Samoa","Samoan"],["sr","SR","српски језик","Serbian"],["gd","GD","Gàidhlig","Gaelic, Scottish Gaelic"],["sn","SN","chiShona","Shona"],["si","SI","සිංහල","Sinhala, Sinhalese"],["sk","SK","Slovenčina, Slovenský Jazyk","Slovak"],["sl","SL","Slovenski Jezik, Slovenščina","Slovenian"],["so","SO","Soomaaliga, af Soomaali","Somali"],["st","ST","Sesotho","Southern Sotho"],["su","SU","Basa Sunda","Sundanese"],["sw","SW","Kiswahili","Swahili"],["sv","SV","Svenska","Swedish"],["ta","TA","தமிழ்","Tamil"],["te","TE","తెలుగు","Telugu"],["tg","TG","тоҷикӣ, toçikī, تاجیکی‎","Tajik"],["th","TH","ไทย","Thai"],["tk","TK","Türkmen, Түркмен","Turkmen"],["tl","TL","Wikang Tagalog","Tagalog"],["tr","TR","Türkçe","Turkish"],["tt","TT","татар теле, tatar tele","Tatar"],["ug","UG","ئۇيغۇرچە‎, Uyghurche","Uighur, Uyghur"],["uk","UK","Українська","Ukrainian"],["ur","UR","اردو","Urdu"],["uz","UZ","Oʻzbek, Ўзбек, أۇزبېك‎","Uzbek"],["vi","VI","Tiếng Việt","Vietnamese"],["cy","CY","Cymraeg","Welsh"],["fy","FY","Frysk","Western Frisian"],["xh","XH","isiXhosa","Xhosa"],["yi","YI","ייִדיש","Yiddish"],["yo","YO","Yorùbá","Yoruba"],["zu","ZU","isiZulu","Zulu"]]},editLinks:!0,editPreambleText:"Caught a mistake or want to contribute to the documentation?",editLinkText:"Edit this page on GitHub",smoothScroll:!0,logo:"/assets/img/asterics-logo.svg",nav:[{text:"Get Started",link:"/get-started/"},{text:"Solutions",link:"/solutions/"},{text:"Tutorials",link:"/customize/"},{text:"Plugins",link:"/plugins/"},{text:"More",items:[{text:"Web Applications",items:[{text:"AsTeRICS Grid",link:"https://grid.asterics.eu"},{text:"WebACS",link:"http://webacs.asterics.eu/?areBaseURI=http://127.0.0.1:8081"},{text:"FABI WebUI",link:"https://fabi.asterics.eu"},{text:"FLipMouse WebUI",link:"https://flipmouse.asterics.eu"}]},{text:"Documentation",items:[{text:"ACS User Manual",link:"/manuals/ACS/"},{text:"WebACS User Manual",link:"/manuals/WebACS/"},{text:"FABI User Manual",link:"/manuals/fabi/"},{text:"FLipMouse User Manual",link:"/manuals/flipmouse/"},{text:"AsTeRICS Grid User Manual",link:"/manuals/asterics-grid/"},{text:"Website Editors Guide",link:"/guide/editor.html"},{text:"Developer Guide",link:"/develop/"}]},{text:"Get Involved",items:[{text:"About us",link:"/get-involved/About-us"},{text:"Contact",link:"/get-involved/Contact"},{text:"Contribute",link:"/get-involved/Contribute"},{text:"Legal Notice",link:"/get-involved/Legal-Notice"}]}]},{text:"Download",link:"https://github.com/asterics/AsTeRICS/releases/latest"}],sidebar:{"/get-started/":[["Overview.md","Overview"],["Installation.md","Installation"]],"/develop/":[{title:"Get Started",path:"/develop/get-started/",collapsable:!1,children:[["get-started/Development-Environment","Development Environment"],["get-started/Coding-Guidelines","Coding Guidelines"]]},{title:"Plugin",path:"/develop/plugin/",collapsable:!1,children:[["plugin/Plugin-Averager","Averager Example"],["plugin/Plugin-Advanced","Advanced"],["plugin/Resource-Handling","Resource Handling"],["plugin/Computer-Vision","Computer Vision"]]},{title:"ARE",path:"/develop/ARE/",collapsable:!1,children:[["ARE/ARE-Development-Manual.md","Development Manual"]]},{title:"ARE Remote APIs",path:"/develop/are-remote-apis/",collapsable:!1,children:[["are-remote-apis/Webserver","Webserver"],["are-remote-apis/REST-API","REST"],["are-remote-apis/Websocket","Websocket"]]},{title:"AsTeRICS Grid",path:"/develop/asterics-grid/",collapsable:!1,children:[["asterics-grid/01_structure.md","01 Structure"],["asterics-grid/02_tools.md","02 Tools"],["asterics-grid/03_grid.md","03 Grid"],["asterics-grid/04_vuejs.md","04 Vuejs"],["asterics-grid/05_datamodel.md","05 Datamodel"],["asterics-grid/06_data_storage.md","06 Data storage"],["asterics-grid/07_i18n.md","07 I18n"]]},{title:"AT Solution",path:"/develop/at-solution/",collapsable:!1,children:[["at-solution/AT-solution-tutorial.md","Tutorial"],["at-solution/APE","APE"]]}],"/plugins/":[["/plugins/","Plugins"],{title:"Actuators",collapsable:!0,children:[["actuators/AREWindow","AREWindow"],["actuators/AnalogOut","AnalogOut"],["actuators/AndroidPhoneControl","AndroidPhoneControl"],["actuators/Android_connection","Android Connection"],["actuators/AngularCursorControl","AngularCursorControl"],["actuators/ApplicationLauncher","ApplicationLauncher"],["actuators/BarDisplay","BarDisplay"],["actuators/CrosshairCursorControl","CrosshairCursorControl"],["actuators/DialogBox","DialogBox"],["actuators/DigitalOut","DigitalOut"],["actuators/DotMeter","DotMeter"],["actuators/EasyHomeControl","EasyHomeControl"],["actuators/EmulateFaultyPlugin","EmulateFaultyPlugin"],["actuators/EnobioDisplay","EnobioDisplay"],["actuators/Enocean","Enocean"],["actuators/EventVisualizer","EventVisualizer"],["actuators/FS20Sender","FS20Sender"],["actuators/FileWriter","FileWriter"],["actuators/FlickeringLightStimulator","FlickeringLightStimulator"],["actuators/GMailShortcuts","GMailShortcuts"],["actuators/GSMModem","GSMModem"],["actuators/IRTrans","IRTrans"],["actuators/ImageBox","ImageBox"],["actuators/Keyboard","Keyboard"],["actuators/Knx","Knx"],["actuators/LegacyDigitalOut","LegacyDigitalOut"],["actuators/LineWriter","LineWriter"],["actuators/MediaPlayer","MediaPlayer"],["actuators/MidiPlayer","MidiPlayer"],["actuators/ModelSwitcher","ModelSwitcher"],["actuators/Mouse","Mouse"],["actuators/MousecursorIcon","MousecursorIcon"],["actuators/NetConnection","NetConnection"],["actuators/OscOutClient","OscOutClient"],["actuators/Oscilloscope","Oscilloscope"],["actuators/PhilipsHue","PhilipsHue"],["actuators/PhoneControl","PhoneControl"],["actuators/PicoTTS","PicoTTS"],["actuators/PlatformDigitalOut","PlatformDigitalOut"],["actuators/PlatformLCD","PlatformLCD"],["actuators/PongGame","PongGame"],["actuators/RemoteJoystick","RemoteJoystick"],["actuators/RemoteKeyboard","RemoteKeyboard"],["actuators/RemoteMouse","RemoteMouse"],["actuators/RemoteTablet","RemoteTablet"],["actuators/RemoteWindow","RemoteWindow"],["actuators/SSVEPFileWriter","SSVEPFileWriter"],["actuators/SSVEPStimulator","SSVEPStimulator"],["actuators/SerialSender","SerialSender"],["actuators/SkyWatcherMount","SkyWatcherMount"],["actuators/SyntheticVoice","SyntheticVoice"],["actuators/TeensyRCPrototype","TeensyRCPrototype"],["actuators/TextArea","TextArea"],["actuators/TextDisplay","TextDisplay"],["actuators/ToneGenerator","ToneGenerator"],["actuators/Tooltip","Tooltip"],["actuators/WavefilePlayer","WavefilePlayer"],["actuators/WriteCSV","WriteCSV"],["actuators/WriteEDF","WriteEDF"]]},{title:"Processors",collapsable:!0,children:[["processors/AcousticScanning","AcousticScanning"],["processors/AdjustmentCurve","AdjustmentCurve"],["processors/AmazonEchoControl","AmazonEchoControl"],["processors/Amplifier","Amplifier"],["processors/Arduino","Arduino"],["processors/AudioSelector","AudioSelector"],["processors/Averager","Averager"],["processors/BasicTRalgorithms","BasicTRalgorithms"],["processors/Benchmark","Benchmark"],["processors/BlinkChangeDetector","BlinkChangeDetector"],["processors/BlinkDetection","BlinkDetection"],["processors/BlinkDetector","BlinkDetector"],["processors/BlinkDetectorTrainer","BlinkDetectorTrainer"],["processors/ComPort","ComPort"],["processors/Comparator","Comparator"],["processors/ComputeBandpower","ComputeBandpower"],["processors/ConstantDispatcher","ConstantDispatcher"],["processors/DataType","DataType"],["processors/DateToDouble","DateToDouble"],["processors/Deadzone","Deadzone"],["processors/Decimation","Decimation"],["processors/Delay","Delay"],["processors/Derivative","Derivative"],["processors/Differentiate","Differentiate"],["processors/Dissimilarity","Dissimilarity"],["processors/DoubleToString","DoubleToString"],["processors/ECMAScriptInterpreter","ECMAScriptInterpreter"],["processors/EventBlock","EventBlock"],["processors/EventCascade","EventCascade"],["processors/EventCounter","EventCounter"],["processors/EventDelay","EventDelay"],["processors/EventDispatcher","EventDispatcher"],["processors/EventFlipFlop","EventFlipFlop"],["processors/EventRouter","EventRouter"],["processors/EventStateMachine","EventStateMachine"],["processors/FABI","FABI"],["processors/FS20CommandInterpreter","FS20CommandInterpreter"],["processors/FabiCronusMax","FabiCronusMax"],["processors/Filter","Filter"],["processors/HRVAnalysis","HRVAnalysis"],["processors/HRVRmssdFromRR","HRVRmssdFromRR"],["processors/IIRFilter","IIRFilter"],["processors/IntToString","IntToString"],["processors/Integrate","Integrate"],["processors/IrMicro","IrMicro"],["processors/JsonParser","JsonParser"],["processors/MathEvaluator","MathEvaluator"],["processors/MinMax","MinMax"],["processors/MotionAnalysis","MotionAnalysis"],["processors/MultiSource","MultiSource"],["processors/MultiSourceString","MultiSourceString"],["processors/NeuralNetworkLoader","NeuralNetworkLoader"],["processors/NexusConnector","NexusConnector"],["processors/OneEventManyActions","OneEventManyActions"],["processors/OpenHAB","OpenHAB"],["processors/OscGestureFollower","OscGestureFollower"],["processors/OskaExternalScanning1D","OskaExternalScanning1D"],["processors/OskaExternalScanning2D","OskaExternalScanning2D"],["processors/OskaInternalScanning","OskaInternalScanning"],["processors/PathMultiplexer","PathMultiplexer"],["processors/Pathselector","Pathselector"],["processors/PeakDetector","PeakDetector"],["processors/ProtocolSSVEPTrain","ProtocolSSVEPTrain"],["processors/Quantizer","Quantizer"],["processors/RegularExpression","RegularExpression"],["processors/RelativeMoveSampler","RelativeMoveSampler"],["processors/SSVEPDetect","SSVEPDetect"],["processors/SampleAndHold","SampleAndHold"],["processors/Sampler","Sampler"],["processors/SerialPort","SerialPort"],["processors/SerialSender","SerialSender"],["processors/SignalTranslation","SignalTranslation"],["processors/SpeechProcessor","SpeechProcessor"],["processors/StringAppend","StringAppend"],["processors/StringDelay","StringDelay"],["processors/StringDispatcher","StringDispatcher"],["processors/StringExpander","StringExpander"],["processors/StringExtractor","StringExtractor"],["processors/StringFilter","StringFilter"],["processors/StringFormatter","StringFormatter"],["processors/StringPathMultiplexer","StringPathMultiplexer"],["processors/StringPathSelector","StringPathSelector"],["processors/StringSplitter","StringSplitter"],["processors/StringToDouble","StringToDouble"],["processors/StringToInt","StringToInt"],["processors/TextSender","TextSender"],["processors/Threshold","Threshold"],["processors/TimestampWriter","TimestampWriter"],["processors/UniversalRemoteControl","UniversalRemoteControl"],["processors/WebSocket","WebSocket"],["processors/Yaak","Yaak"],["processors/eg_example","Eg Example"]]},{title:"Sensors",collapsable:!0,children:[["sensors/Acceleration","Acceleration"],["sensors/AnalogIn","AnalogIn"],["sensors/AutostartEvent","AutostartEvent"],["sensors/ButtonGrid","ButtonGrid"],["sensors/CellBoard","CellBoard"],["sensors/DigitalIn","DigitalIn"],["sensors/EOG","EOG"],["sensors/EShoe","EShoe"],["sensors/EditBox","EditBox"],["sensors/Enobio","Enobio"],["sensors/EventGenerator","EventGenerator"],["sensors/EyeTribe","EyeTribe"],["sensors/EyeX","EyeX"],["sensors/Eyetracker","Eyetracker"],["sensors/FS20Receiver","FS20Receiver"],["sensors/FacetrackerCLM","FacetrackerCLM"],["sensors/FacetrackerLK","FacetrackerLK"],["sensors/FolderBrowser","FolderBrowser"],["sensors/HeadPositionHC","HeadPositionHC"],["sensors/HoverPanel","HoverPanel"],["sensors/IntelRealSense","IntelRealSense"],["sensors/JoystickCapture","JoystickCapture"],["sensors/KeyCapture","KeyCapture"],["sensors/KeyboardCapture","KeyboardCapture"],["sensors/Kinect","Kinect"],["sensors/KinectJ4K","KinectJ4K"],["sensors/LegacyAnalogIn","LegacyAnalogIn"],["sensors/LegacyDigitalIn","LegacyDigitalIn"],["sensors/Lightscore","Lightscore"],["sensors/LineReader","LineReader"],["sensors/Lipmouse","Lipmouse"],["sensors/LipmouseIR","LipmouseIR"],["sensors/MicGPI","MicGPI"],["sensors/MouseCapture","MouseCapture"],["sensors/OpenBCI","OpenBCI"],["sensors/OpenVibe","OpenVibe"],["sensors/OscServer","OscServer"],["sensors/P2_Parser","P2 Parser"],["sensors/PhilipsHueSensor","PhilipsHueSensor"],["sensors/PlatformAnalogIn","PlatformAnalogIn"],["sensors/PlatformDigitalIn","PlatformDigitalIn"],["sensors/Proximity","Proximity"],["sensors/RFIDReader","RFIDReader"],["sensors/RandomNumber","RandomNumber"],["sensors/RazorIMU","RazorIMU"],["sensors/ReadCSV","ReadCSV"],["sensors/ReadEDF","ReadEDF"],["sensors/Sensorboard","Sensorboard"],["sensors/SignalGenerator","SignalGenerator"],["sensors/SignalShaper","SignalShaper"],["sensors/Slider","Slider"],["sensors/SpaceNavigator3DMouse","SpaceNavigator3DMouse"],["sensors/TextfieldReader","TextfieldReader"],["sensors/Timer","Timer"],["sensors/TobiTic","TobiTic"],["sensors/Tobii4CHeadTracker","Tobii4CHeadTracker"],["sensors/TrackIR","TrackIR"],["sensors/TuioReactivision","TuioReactivision"],["sensors/WiiMote","WiiMote"],["sensors/XFacetrackerLK","XFacetrackerLK"]]}],"/manuals/ACS/":[{title:"ACS",path:"/manuals/ACS/",collapsable:!1,sidebarDepth:1,children:[["/manuals/ACS/Actuators","Actuators"],["/manuals/ACS/Channels","Channels"],["/manuals/ACS/Colours_settings","Colours Settings"],["/manuals/ACS/Component_Collection_Manager","Component Collection Manager"],["/manuals/ACS/Component_Context_Menu","Component Context Menu"],["/manuals/ACS/Connected","Connected"],["/manuals/ACS/Control_the_ARE","Control The ARE"],["/manuals/ACS/Create_and_Edit_a_Model","Create And Edit A Model"],["/manuals/ACS/Dialogs_settings","Dialogs Settings"],["/manuals/ACS/Disconnected","Disconnected"],["/manuals/ACS/Events","Events"],["/manuals/ACS/External_Tools","External Tools"],["/manuals/ACS/External_Tools_Options","External Tools Options"],["/manuals/ACS/GUI_Designer","GUI Designer"],["/manuals/ACS/General_settings","General Settings"],["/manuals/ACS/Keyboard_control","Keyboard Control"],["/manuals/ACS/Load_and_Save_Models","Load And Save Models"],["/manuals/ACS/Miscellaneous","Miscellaneous"],["/manuals/ACS/Modes","Modes"],["/manuals/ACS/Options","Options"],["/manuals/ACS/Pause","Pause"],["/manuals/ACS/Print","Print"],["/manuals/ACS/Processors","Processors"],["/manuals/ACS/Running","Running"],["/manuals/ACS/Sensors","Sensors"],["/manuals/ACS/Setting_the_Properties","Setting The Properties"],["/manuals/ACS/Status_Reporting_and_Error_Logging","Status Reporting And Error Logging"],["/manuals/ACS/Synchronized","Synchronized"],["/manuals/ACS/The_Edit_Tab","The Edit Tab"],["/manuals/ACS/Tooltips","Tooltips"]]}],"/manuals/asterics-grid/":[{title:"AsTeRICS Grid",path:"/manuals/asterics-grid/",collapsable:!1,sidebarDepth:1,children:[["/manuals/asterics-grid/010_settings","010 Settings"],["/manuals/asterics-grid/01_terms","01 Terms"],["/manuals/asterics-grid/02_navigation","02 Navigation"],["/manuals/asterics-grid/03_appearance_layout","03 Appearance Layout"],["/manuals/asterics-grid/04_input_options","04 Input Options"],["/manuals/asterics-grid/05_actions","05 Actions"],["/manuals/asterics-grid/06_users","06 Users"],["/manuals/asterics-grid/07_dictionaries","07 Dictionaries"],["/manuals/asterics-grid/08_keyboard_shortcuts","08 Keyboard Shortcuts"],["/manuals/asterics-grid/09_translation","09 Translation"],["/manuals/asterics-grid/10_faq","10 Faq"],["/manuals/asterics-grid/10_word_forms","10 Word Forms"],["/manuals/asterics-grid/513_http-action-tutorials","513 Http-action-tutorials"],["/manuals/asterics-grid/514_uart-action-tutorials","514 Uart-action-tutorials"]]}],"/manuals/WebACS/":[{title:"WebACS",path:"/manuals/WebACS/",collapsable:!1,sidebarDepth:1,children:[["/manuals/WebACS/AREStatus","AREStatus"],["/manuals/WebACS/Channels","Channels"],["/manuals/WebACS/Control_the_ARE","Control The ARE"],["/manuals/WebACS/Create_and_Edit_a_Model","Create And Edit A Model"],["/manuals/WebACS/Events","Events"],["/manuals/WebACS/GUI_Designer","GUI Designer"],["/manuals/WebACS/Keyboard_control","Keyboard Control"],["/manuals/WebACS/List_View","List View"],["/manuals/WebACS/Miscellaneous","Miscellaneous"],["/manuals/WebACS/Open_and_Save_Models","Open And Save Models"],["/manuals/WebACS/Setting_the_Properties","Setting The Properties"],["/manuals/WebACS/The_Edit_Tab","The Edit Tab"]]}],"/manuals/":[["/manuals/ACS/","ACS"],["/manuals/WebACS/","WebACS"],["/manuals/fabi/","FABI"],["/manuals/flipmouse/","FLipMouse"],["/manuals/asterics-grid/","AsTeRICS Grid"]],"/customize/":[{title:"Model",path:"/customize/model/",collapsable:!1,children:[["model/Model-Customization","Customization"],["model/Model-Creation","Creation"]]},{title:"AsTeRICS Grid",path:"/customize/grid/",collapsable:!1,children:[["grid/Grid-Customization","Customization"],["grid/Grid-Creation","Creation"]]},{title:"Environmental Control",path:"/customize/environmental-control/",collapsable:!1},{title:"Gaming, Toys & Music",path:"/customize/gaming-toys-music/",collapsable:!1},{title:"Other",path:"/customize/other/",collapsable:!1}]},sidebarDepth:3,lastUpdated:"Last Updated",docsRepo:"asterics/asterics-docs",docsDir:"docs",docsBranch:"master"}};c(255);function xt(e,t){var c=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),c.push.apply(c,a)}return c}function Pt(e){for(var t=1;te.length)&&(t=e.length);for(var c=0,a=new Array(t);c0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function Pc(e){for(var t=[],c=(e||[]).length>>>0;c--;)t[c]=e[c];return t}function wc(e){return e.classList?Pc(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function kc(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Ac(e){return Object.keys(e||{}).reduce((function(t,c){return t+"".concat(c,": ").concat(e[c].trim(),";")}),"")}function Ec(e){return e.size!==Sc.size||e.x!==Sc.x||e.y!==Sc.y||e.rotate!==Sc.rotate||e.flipX||e.flipY}function Nc(){var e="svg-inline--fa",t=Vc.cssPrefix,c=Vc.replacementClass,a=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if("fa"!==t||c!==e){var i=new RegExp("\\.".concat("fa","\\-"),"g"),n=new RegExp("\\--".concat("fa","\\-"),"g"),s=new RegExp("\\.".concat(e),"g");a=a.replace(i,".".concat(t,"-")).replace(n,"--".concat(t,"-")).replace(s,".".concat(c))}return a}var Tc=!1;function Dc(){Vc.autoAddCss&&!Tc&&(!function(e){if(e&&Jt){var t=Zt.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var c=Zt.head.childNodes,a=null,i=c.length-1;i>-1;i--){var n=c[i],s=(n.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(s)>-1&&(a=n)}Zt.head.insertBefore(t,a)}}(Nc()),Tc=!0)}var Rc={mixout:function(){return{dom:{css:Nc,insertCss:Dc}}},hooks:function(){return{beforeDOMElementCreation:function(){Dc()},beforeI2svg:function(){Dc()}}}},_c=Kt||{};_c.___FONT_AWESOME___||(_c.___FONT_AWESOME___={}),_c.___FONT_AWESOME___.styles||(_c.___FONT_AWESOME___.styles={}),_c.___FONT_AWESOME___.hooks||(_c.___FONT_AWESOME___.hooks={}),_c.___FONT_AWESOME___.shims||(_c.___FONT_AWESOME___.shims=[]);var Oc=_c.___FONT_AWESOME___,Ic=[],jc=!1;function Fc(e){Jt&&(jc?setTimeout(e,0):Ic.push(e))}function Bc(e){var t=e.tag,c=e.attributes,a=void 0===c?{}:c,i=e.children,n=void 0===i?[]:i;return"string"==typeof e?kc(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,c){return t+"".concat(c,'="').concat(kc(e[c]),'" ')}),"").trim()}(a),">").concat(n.map(Bc).join(""),"")}function $c(e,t,c){if(e&&e[t]&&e[t][c])return{prefix:t,iconName:c,icon:e[t][c]}}Jt&&((jc=(Zt.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Zt.readyState))||Zt.addEventListener("DOMContentLoaded",(function e(){Zt.removeEventListener("DOMContentLoaded",e),jc=1,Ic.map((function(e){return e()}))})));var qc=function(e,t,c,a){var i,n,s,r=Object.keys(e),o=r.length,l=void 0!==a?function(e,t){return function(c,a,i,n){return e.call(t,c,a,i,n)}}(t,a):t;for(void 0===c?(i=1,s=e[r[0]]):(i=0,s=c);i=55296&&i<=56319&&c2&&void 0!==arguments[2]?arguments[2]:{},a=c.skipHooks,i=void 0!==a&&a,n=Wc(t);"function"!=typeof Oc.hooks.addPack||i?Oc.styles[e]=Pt(Pt({},Oc.styles[e]||{}),n):Oc.hooks.addPack(e,Wc(t)),"fas"===e&&Uc("fa",t)}var Kc,Zc,Yc,Xc=Oc.styles,Jc=Oc.shims,Qc=(At(Kc={},"classic",Object.values(sc.classic)),At(Kc,"sharp",Object.values(sc.sharp)),Kc),ea=null,ta={},ca={},aa={},ia={},na={},sa=(At(Zc={},"classic",Object.keys(ic.classic)),At(Zc,"sharp",Object.keys(ic.sharp)),Zc);function ra(e,t){var c,a=t.split("-"),i=a[0],n=a.slice(1).join("-");return i!==e||""===n||(c=n,~bc.indexOf(c))?null:n}var oa,la=function(){var e=function(e){return qc(Xc,(function(t,c,a){return t[a]=qc(c,e,{}),t}),{})};ta=e((function(e,t,c){(t[3]&&(e[t[3]]=c),t[2])&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=c}));return e})),ca=e((function(e,t,c){(e[c]=c,t[2])&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=c}));return e})),na=e((function(e,t,c){var a=t[2];return e[c]=c,a.forEach((function(t){e[t]=c})),e}));var t="far"in Xc||Vc.autoFetchSvg,c=qc(Jc,(function(e,c){var a=c[0],i=c[1],n=c[2];return"far"!==i||t||(i="fas"),"string"==typeof a&&(e.names[a]={prefix:i,iconName:n}),"number"==typeof a&&(e.unicodes[a.toString(16)]={prefix:i,iconName:n}),e}),{names:{},unicodes:{}});aa=c.names,ia=c.unicodes,ea=da(Vc.styleDefault,{family:Vc.familyDefault})};function ua(e,t){return(ta[e]||{})[t]}function pa(e,t){return(na[e]||{})[t]}function fa(e){return aa[e]||{prefix:null,iconName:null}}function ma(){return ea}oa=function(e){ea=da(e.styleDefault,{family:Vc.familyDefault})},yc.push(oa),la();function da(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.family,a=void 0===c?"classic":c,i=ic[a][e],n=nc[a][e]||nc[a][i],s=e in Oc.styles?e:null;return n||s||null}var ha=(At(Yc={},"classic",Object.keys(sc.classic)),At(Yc,"sharp",Object.keys(sc.sharp)),Yc);function va(e){var t,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=c.skipLookups,i=void 0!==a&&a,n=(At(t={},"classic","".concat(Vc.cssPrefix,"-").concat("classic")),At(t,"sharp","".concat(Vc.cssPrefix,"-").concat("sharp")),t),s=null,r="classic";(e.includes(n.classic)||e.some((function(e){return ha.classic.includes(e)})))&&(r="classic"),(e.includes(n.sharp)||e.some((function(e){return ha.sharp.includes(e)})))&&(r="sharp");var o=e.reduce((function(e,t){var c=ra(Vc.cssPrefix,t);if(Xc[t]?(t=Qc[r].includes(t)?rc[r][t]:t,s=t,e.prefix=t):sa[r].indexOf(t)>-1?(s=t,e.prefix=da(t,{family:r})):c?e.iconName=c:t!==Vc.replacementClass&&t!==n.classic&&t!==n.sharp&&e.rest.push(t),!i&&e.prefix&&e.iconName){var a="fa"===s?fa(e.iconName):{},o=pa(e.prefix,e.iconName);a.prefix&&(s=null),e.iconName=a.iconName||o||e.iconName,e.prefix=a.prefix||e.prefix,"far"!==e.prefix||Xc.far||!Xc.fas||Vc.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return(e.includes("fa-brands")||e.includes("fab"))&&(o.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(o.prefix="fad"),o.prefix||"sharp"!==r||!Xc.fass&&!Vc.autoFetchSvg||(o.prefix="fass",o.iconName=pa(o.prefix,o.iconName)||o.iconName),"fa"!==o.prefix&&"fa"!==s||(o.prefix=ma()||"fas"),o}var za=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,c,a;return t=e,(c=[{key:"add",value:function(){for(var e=this,t=arguments.length,c=new Array(t),a=0;a0&&r.forEach((function(t){"string"==typeof t&&(e[i][t]=s)})),e[i][n]=s})),e}}])&&kt(t.prototype,c),a&&kt(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}(),ba=[],Ca={},Ma={},Ha=Object.keys(Ma);function Va(e,t){for(var c=arguments.length,a=new Array(c>2?c-2:0),i=2;i1?t-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{};return Jt?(ya("beforeI2svg",e),La("pseudoElements2svg",e),La("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===Vc.autoReplaceSvg&&(Vc.autoReplaceSvg=!0),Vc.observeMutations=!0,Fc((function(){ka({autoReplaceSvgRoot:t}),ya("watch",e)}))}},wa={noAuto:function(){Vc.autoReplaceSvg=!1,Vc.observeMutations=!1,ya("noAuto")},config:Vc,dom:Pa,parse:{icon:function(e){if(null===e)return null;if("object"===wt(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:pa(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],c=da(e[0]);return{prefix:c,iconName:pa(c,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(Vc.cssPrefix,"-"))>-1||e.match(oc))){var a=va(e.split(" "),{skipLookups:!0});return{prefix:a.prefix||ma(),iconName:pa(a.prefix,a.iconName)||a.iconName}}if("string"==typeof e){var i=ma();return{prefix:i,iconName:pa(i,e)||e}}}},library:xa,findIconDefinition:Sa,toHtml:Bc},ka=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,c=void 0===t?Zt:t;(Object.keys(Oc.styles).length>0||Vc.autoFetchSvg)&&Jt&&Vc.autoReplaceSvg&&wa.dom.i2svg({node:c})};function Aa(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Bc(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(Jt){var t=Zt.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function Ea(e){var t=e.icons,c=t.main,a=t.mask,i=e.prefix,n=e.iconName,s=e.transform,r=e.symbol,o=e.title,l=e.maskId,u=e.titleId,p=e.extra,f=e.watchable,m=void 0!==f&&f,d=a.found?a:c,h=d.width,v=d.height,g="fak"===i,z=[Vc.replacementClass,n?"".concat(Vc.cssPrefix,"-").concat(n):""].filter((function(e){return-1===p.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(p.classes).join(" "),b={children:[],attributes:Pt(Pt({},p.attributes),{},{"data-prefix":i,"data-icon":n,class:z,role:p.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(h," ").concat(v)})},C=g&&!~p.classes.indexOf("fa-fw")?{width:"".concat(h/v*16*.0625,"em")}:{};m&&(b.attributes["data-fa-i2svg"]=""),o&&(b.children.push({tag:"title",attributes:{id:b.attributes["aria-labelledby"]||"title-".concat(u||xc())},children:[o]}),delete b.attributes.title);var M=Pt(Pt({},b),{},{prefix:i,iconName:n,main:c,mask:a,maskId:l,transform:s,symbol:r,styles:Pt(Pt({},C),p.styles)}),H=a.found&&c.found?La("generateAbstractMask",M)||{children:[],attributes:{}}:La("generateAbstractIcon",M)||{children:[],attributes:{}},V=H.children,y=H.attributes;return M.children=V,M.attributes=y,r?function(e){var t=e.prefix,c=e.iconName,a=e.children,i=e.attributes,n=e.symbol,s=!0===n?"".concat(t,"-").concat(Vc.cssPrefix,"-").concat(c):n;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Pt(Pt({},i),{},{id:s}),children:a}]}]}(M):function(e){var t=e.children,c=e.main,a=e.mask,i=e.attributes,n=e.styles,s=e.transform;if(Ec(s)&&c.found&&!a.found){var r={x:c.width/c.height/2,y:.5};i.style=Ac(Pt(Pt({},n),{},{"transform-origin":"".concat(r.x+s.x/16,"em ").concat(r.y+s.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}(M)}function Na(e){var t=e.content,c=e.width,a=e.height,i=e.transform,n=e.title,s=e.extra,r=e.watchable,o=void 0!==r&&r,l=Pt(Pt(Pt({},s.attributes),n?{title:n}:{}),{},{class:s.classes.join(" ")});o&&(l["data-fa-i2svg"]="");var u=Pt({},s.styles);Ec(i)&&(u.transform=function(e){var t=e.transform,c=e.width,a=void 0===c?16:c,i=e.height,n=void 0===i?16:i,s=e.startCentered,r=void 0!==s&&s,o="";return o+=r&&Qt?"translate(".concat(t.x/Lc-a/2,"em, ").concat(t.y/Lc-n/2,"em) "):r?"translate(calc(-50% + ".concat(t.x/Lc,"em), calc(-50% + ").concat(t.y/Lc,"em)) "):"translate(".concat(t.x/Lc,"em, ").concat(t.y/Lc,"em) "),o+="scale(".concat(t.size/Lc*(t.flipX?-1:1),", ").concat(t.size/Lc*(t.flipY?-1:1),") "),o+="rotate(".concat(t.rotate,"deg) ")}({transform:i,startCentered:!0,width:c,height:a}),u["-webkit-transform"]=u.transform);var p=Ac(u);p.length>0&&(l.style=p);var f=[];return f.push({tag:"span",attributes:l,children:[t]}),n&&f.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),f}function Ta(e){var t=e.content,c=e.title,a=e.extra,i=Pt(Pt(Pt({},a.attributes),c?{title:c}:{}),{},{class:a.classes.join(" ")}),n=Ac(a.styles);n.length>0&&(i.style=n);var s=[];return s.push({tag:"span",attributes:i,children:[t]}),c&&s.push({tag:"span",attributes:{class:"sr-only"},children:[c]}),s}var Da=Oc.styles;function Ra(e){var t=e[0],c=e[1],a=Et(e.slice(4),1)[0];return{found:!0,width:t,height:c,icon:Array.isArray(a)?{tag:"g",attributes:{class:"".concat(Vc.cssPrefix,"-").concat(dc)},children:[{tag:"path",attributes:{class:"".concat(Vc.cssPrefix,"-").concat(gc),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(Vc.cssPrefix,"-").concat(vc),fill:"currentColor",d:a[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:a}}}}var _a={found:!1,width:512,height:512};function Oa(e,t){var c=t;return"fa"===t&&null!==Vc.styleDefault&&(t=ma()),new Promise((function(a,i){La("missingIconAbstract");if("fa"===c){var n=fa(e)||{};e=n.iconName||e,t=n.prefix||t}if(e&&t&&Da[t]&&Da[t][e])return a(Ra(Da[t][e]));!function(e,t){tc||Vc.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),a(Pt(Pt({},_a),{},{icon:Vc.showMissingIcons&&e&&La("missingIconAbstract")||{}}))}))}var Ia=function(){},ja=Vc.measurePerformance&&Xt&&Xt.mark&&Xt.measure?Xt:{mark:Ia,measure:Ia},Fa=function(e){ja.mark("".concat('FA "6.4.0"'," ").concat(e," ends")),ja.measure("".concat('FA "6.4.0"'," ").concat(e),"".concat('FA "6.4.0"'," ").concat(e," begins"),"".concat('FA "6.4.0"'," ").concat(e," ends"))},Ba=function(e){return ja.mark("".concat('FA "6.4.0"'," ").concat(e," begins")),function(){return Fa(e)}},$a=function(){};function qa(e){return"string"==typeof(e.getAttribute?e.getAttribute("data-fa-i2svg"):null)}function Ga(e){return Zt.createElementNS("http://www.w3.org/2000/svg",e)}function Wa(e){return Zt.createElement(e)}var Ua={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(function e(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=c.ceFn,i=void 0===a?"svg"===t.tag?Ga:Wa:a;if("string"==typeof t)return Zt.createTextNode(t);var n=i(t.tag);Object.keys(t.attributes||[]).forEach((function(e){n.setAttribute(e,t.attributes[e])}));var s=t.children||[];return s.forEach((function(t){n.appendChild(e(t,{ceFn:i}))})),n}(e),t)})),null===t.getAttribute("data-fa-i2svg")&&Vc.keepOriginalSource){var c=Zt.createComment(function(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(c,t)}else t.remove()},nest:function(e){var t=e[0],c=e[1];if(~wc(t).indexOf(Vc.replacementClass))return Ua.replace(e);var a=new RegExp("".concat(Vc.cssPrefix,"-.*"));if(delete c[0].attributes.id,c[0].attributes.class){var i=c[0].attributes.class.split(" ").reduce((function(e,t){return t===Vc.replacementClass||t.match(a)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});c[0].attributes.class=i.toSvg.join(" "),0===i.toNode.length?t.removeAttribute("class"):t.setAttribute("class",i.toNode.join(" "))}var n=c.map((function(e){return Bc(e)})).join("\n");t.setAttribute("data-fa-i2svg",""),t.innerHTML=n}};function Ka(e){e()}function Za(e,t){var c="function"==typeof t?t:$a;if(0===e.length)c();else{var a=Ka;"async"===Vc.mutateApproach&&(a=Kt.requestAnimationFrame||Ka),a((function(){var t=!0===Vc.autoReplaceSvg?Ua.replace:Ua[Vc.autoReplaceSvg]||Ua.replace,a=Ba("mutate");e.map(t),a(),c()}))}}var Ya=!1;function Xa(){Ya=!0}function Ja(){Ya=!1}var Qa=null;function ei(e){if(Yt&&Vc.observeMutations){var t=e.treeCallback,c=void 0===t?$a:t,a=e.nodeCallback,i=void 0===a?$a:a,n=e.pseudoElementsCallback,s=void 0===n?$a:n,r=e.observeMutationsRoot,o=void 0===r?Zt:r;Qa=new Yt((function(e){if(!Ya){var t=ma();Pc(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!qa(e.addedNodes[0])&&(Vc.searchPseudoElements&&s(e.target),c(e.target)),"attributes"===e.type&&e.target.parentNode&&Vc.searchPseudoElements&&s(e.target.parentNode),"attributes"===e.type&&qa(e.target)&&~mc.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute("data-prefix"):null,c=e.getAttribute?e.getAttribute("data-icon"):null;return t&&c}(e.target)){var a=va(wc(e.target)),n=a.prefix,r=a.iconName;e.target.setAttribute("data-prefix",n||t),r&&e.target.setAttribute("data-icon",r)}else(o=e.target)&&o.classList&&o.classList.contains&&o.classList.contains(Vc.replacementClass)&&i(e.target);var o}))}})),Jt&&Qa.observe(o,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function ti(e){var t=e.getAttribute("style"),c=[];return t&&(c=t.split(";").reduce((function(e,t){var c=t.split(":"),a=c[0],i=c.slice(1);return a&&i.length>0&&(e[a]=i.join(":").trim()),e}),{})),c}function ci(e){var t=e.getAttribute("data-prefix"),c=e.getAttribute("data-icon"),a=void 0!==e.innerText?e.innerText.trim():"",i=va(wc(e));return i.prefix||(i.prefix=ma()),t&&c&&(i.prefix=t,i.iconName=c),i.iconName&&i.prefix||(i.prefix&&a.length>0&&(i.iconName=function(e,t){return(ca[e]||{})[t]}(i.prefix,e.innerText)||ua(i.prefix,Gc(e.innerText))),!i.iconName&&Vc.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function ai(e){var t=Pc(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),c=e.getAttribute("title"),a=e.getAttribute("data-fa-title-id");return Vc.autoA11y&&(c?t["aria-labelledby"]="".concat(Vc.replacementClass,"-title-").concat(a||xc()):(t["aria-hidden"]="true",t.focusable="false")),t}function ii(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},c=ci(e),a=c.iconName,i=c.prefix,n=c.rest,s=ai(e),r=Va("parseNodeAttributes",{},e),o=t.styleParser?ti(e):[];return Pt({iconName:a,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:i,transform:Sc,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:n,styles:o,attributes:s}},r)}var ni=Oc.styles;function si(e){var t="nest"===Vc.autoReplaceSvg?ii(e,{styleParser:!1}):ii(e);return~t.extra.classes.indexOf("fa-layers-text")?La("generateLayersText",e,t):La("generateSvgReplacementMutation",e,t)}var ri=new Set;function oi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!Jt)return Promise.resolve();var c=Zt.documentElement.classList,a=function(e){return c.add("".concat("fontawesome-i2svg","-").concat(e))},i=function(e){return c.remove("".concat("fontawesome-i2svg","-").concat(e))},n=Vc.autoFetchSvg?ri:cc.map((function(e){return"fa-".concat(e)})).concat(Object.keys(ni));n.includes("fa")||n.push("fa");var s=[".".concat("fa-layers-text",":not([").concat("data-fa-i2svg","])")].concat(n.map((function(e){return".".concat(e,":not([").concat("data-fa-i2svg","])")}))).join(", ");if(0===s.length)return Promise.resolve();var r=[];try{r=Pc(e.querySelectorAll(s))}catch(e){}if(!(r.length>0))return Promise.resolve();a("pending"),i("complete");var o=Ba("onTree"),l=r.reduce((function(e,t){try{var c=si(t);c&&e.push(c)}catch(e){tc||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,c){Promise.all(l).then((function(c){Za(c,(function(){a("active"),a("complete"),i("pending"),"function"==typeof t&&t(),o(),e()}))})).catch((function(e){o(),c(e)}))}))}function li(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;si(e).then((function(e){e&&Za([e],t)}))}cc.map((function(e){ri.add("fa-".concat(e))})),Object.keys(ic.classic).map(ri.add.bind(ri)),Object.keys(ic.sharp).map(ri.add.bind(ri)),ri=Nt(ri);var ui=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.transform,a=void 0===c?Sc:c,i=t.symbol,n=void 0!==i&&i,s=t.mask,r=void 0===s?null:s,o=t.maskId,l=void 0===o?null:o,u=t.title,p=void 0===u?null:u,f=t.titleId,m=void 0===f?null:f,d=t.classes,h=void 0===d?[]:d,v=t.attributes,g=void 0===v?{}:v,z=t.styles,b=void 0===z?{}:z;if(e){var C=e.prefix,M=e.iconName,H=e.icon;return Aa(Pt({type:"icon"},e),(function(){return ya("beforeDOMElementCreation",{iconDefinition:e,params:t}),Vc.autoA11y&&(p?g["aria-labelledby"]="".concat(Vc.replacementClass,"-title-").concat(m||xc()):(g["aria-hidden"]="true",g.focusable="false")),Ea({icons:{main:Ra(H),mask:r?Ra(r.icon):{found:!1,width:null,height:null,icon:{}}},prefix:C,iconName:M,transform:Pt(Pt({},Sc),a),symbol:n,title:p,maskId:l,titleId:m,extra:{attributes:g,styles:b,classes:h}})}))}},pi={mixout:function(){return{icon:(e=ui,function(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(t||{}).icon?t:Sa(t||{}),i=c.mask;return i&&(i=(i||{}).icon?i:Sa(i||{})),e(a,Pt(Pt({},c),{},{mask:i}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=oi,e.nodeCallback=li,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,c=void 0===t?Zt:t,a=e.callback;return oi(c,void 0===a?function(){}:a)},e.generateSvgReplacementMutation=function(e,t){var c=t.iconName,a=t.title,i=t.titleId,n=t.prefix,s=t.transform,r=t.symbol,o=t.mask,l=t.maskId,u=t.extra;return new Promise((function(t,p){Promise.all([Oa(c,n),o.iconName?Oa(o.iconName,o.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(o){var p=Et(o,2),f=p[0],m=p[1];t([e,Ea({icons:{main:f,mask:m},prefix:n,iconName:c,transform:s,symbol:r,maskId:l,title:a,titleId:i,extra:u,watchable:!0})])})).catch(p)}))},e.generateAbstractIcon=function(e){var t,c=e.children,a=e.attributes,i=e.main,n=e.transform,s=Ac(e.styles);return s.length>0&&(a.style=s),Ec(n)&&(t=La("generateAbstractTransformGrouping",{main:i,transform:n,containerWidth:i.width,iconWidth:i.width})),c.push(t||i.icon),{children:c,attributes:a}}}},fi={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.classes,a=void 0===c?[]:c;return Aa({type:"layer"},(function(){ya("beforeDOMElementCreation",{assembler:e,params:t});var c=[];return e((function(e){Array.isArray(e)?e.map((function(e){c=c.concat(e.abstract)})):c=c.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(Vc.cssPrefix,"-layers")].concat(Nt(a)).join(" ")},children:c}]}))}}}},mi={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.title,a=void 0===c?null:c,i=t.classes,n=void 0===i?[]:i,s=t.attributes,r=void 0===s?{}:s,o=t.styles,l=void 0===o?{}:o;return Aa({type:"counter",content:e},(function(){return ya("beforeDOMElementCreation",{content:e,params:t}),Ta({content:e.toString(),title:a,extra:{attributes:r,styles:l,classes:["".concat(Vc.cssPrefix,"-layers-counter")].concat(Nt(n))}})}))}}}},di={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.transform,a=void 0===c?Sc:c,i=t.title,n=void 0===i?null:i,s=t.classes,r=void 0===s?[]:s,o=t.attributes,l=void 0===o?{}:o,u=t.styles,p=void 0===u?{}:u;return Aa({type:"text",content:e},(function(){return ya("beforeDOMElementCreation",{content:e,params:t}),Na({content:e,transform:Pt(Pt({},Sc),a),title:n,extra:{attributes:l,styles:p,classes:["".concat(Vc.cssPrefix,"-layers-text")].concat(Nt(r))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var c=t.title,a=t.transform,i=t.extra,n=null,s=null;if(Qt){var r=parseInt(getComputedStyle(e).fontSize,10),o=e.getBoundingClientRect();n=o.width/r,s=o.height/r}return Vc.autoA11y&&!c&&(i.attributes["aria-hidden"]="true"),Promise.resolve([e,Na({content:e.innerHTML,width:n,height:s,transform:a,title:c,extra:i,watchable:!0})])}}},hi=new RegExp('"',"ug"),vi=[1105920,1112319];function gi(e,t){var c="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(a,i){if(null!==e.getAttribute(c))return a();var n,s,r,o=Pc(e.children).filter((function(e){return e.getAttribute("data-fa-pseudo-element")===t}))[0],l=Kt.getComputedStyle(e,t),u=l.getPropertyValue("font-family").match(lc),p=l.getPropertyValue("font-weight"),f=l.getPropertyValue("content");if(o&&!u)return e.removeChild(o),a();if(u&&"none"!==f&&""!==f){var m=l.getPropertyValue("content"),d=~["Sharp"].indexOf(u[2])?"sharp":"classic",h=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(u[2])?nc[d][u[2].toLowerCase()]:uc[d][p],v=function(e){var t,c,a,i,n,s=e.replace(hi,""),r=(c=0,i=(t=s).length,(n=t.charCodeAt(c))>=55296&&n<=56319&&i>c+1&&(a=t.charCodeAt(c+1))>=56320&&a<=57343?1024*(n-55296)+a-56320+65536:n),o=r>=vi[0]&&r<=vi[1],l=2===s.length&&s[0]===s[1];return{value:Gc(l?s[0]:s),isSecondary:o||l}}(m),g=v.value,z=v.isSecondary,b=u[0].startsWith("FontAwesome"),C=ua(h,g),M=C;if(b){var H=(s=ia[n=g],r=ua("fas",n),s||(r?{prefix:"fas",iconName:r}:null)||{prefix:null,iconName:null});H.iconName&&H.prefix&&(C=H.iconName,h=H.prefix)}if(!C||z||o&&o.getAttribute("data-prefix")===h&&o.getAttribute("data-icon")===M)a();else{e.setAttribute(c,M),o&&e.removeChild(o);var V={iconName:null,title:null,titleId:null,prefix:null,transform:Sc,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},y=V.extra;y.attributes["data-fa-pseudo-element"]=t,Oa(C,h).then((function(i){var n=Ea(Pt(Pt({},V),{},{icons:{main:i,mask:{prefix:null,iconName:null,rest:[]}},prefix:h,iconName:M,extra:y,watchable:!0})),s=Zt.createElement("svg");"::before"===t?e.insertBefore(s,e.firstChild):e.appendChild(s),s.outerHTML=n.map((function(e){return Bc(e)})).join("\n"),e.removeAttribute(c),a()})).catch(i)}}else a()}))}function zi(e){return Promise.all([gi(e,"::before"),gi(e,"::after")])}function bi(e){return!(e.parentNode===document.head||~ec.indexOf(e.tagName.toUpperCase())||e.getAttribute("data-fa-pseudo-element")||e.parentNode&&"svg"===e.parentNode.tagName)}function Ci(e){if(Jt)return new Promise((function(t,c){var a=Pc(e.querySelectorAll("*")).filter(bi).map(zi),i=Ba("searchPseudoElements");Xa(),Promise.all(a).then((function(){i(),Ja(),t()})).catch((function(){i(),Ja(),c()}))}))}var Mi=!1,Hi=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var c=t.toLowerCase().split("-"),a=c[0],i=c.slice(1).join("-");if(a&&"h"===i)return e.flipX=!0,e;if(a&&"v"===i)return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(a){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},Vi={x:0,y:0,width:"100%",height:"100%"};function yi(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}!function(e,t){var c=t.mixoutsTo;ba=e,Ca={},Object.keys(Ma).forEach((function(e){-1===Ha.indexOf(e)&&delete Ma[e]})),ba.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(c[e]=t[e]),"object"===wt(t[e])&&Object.keys(t[e]).forEach((function(a){c[e]||(c[e]={}),c[e][a]=t[e][a]}))})),e.hooks){var a=e.hooks();Object.keys(a).forEach((function(e){Ca[e]||(Ca[e]=[]),Ca[e].push(a[e])}))}e.provides&&e.provides(Ma)}))}([Rc,pi,fi,mi,di,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=Ci,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,c=void 0===t?Zt:t;Vc.searchPseudoElements&&Ci(c)}}},{mixout:function(){return{dom:{unwatch:function(){Xa(),Mi=!0}}}},hooks:function(){return{bootstrap:function(){ei(Va("mutationObserverCallbacks",{}))},noAuto:function(){Qa&&Qa.disconnect()},watch:function(e){var t=e.observeMutationsRoot;Mi?Ja():ei(Va("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},{mixout:function(){return{parse:{transform:function(e){return Hi(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var c=t.getAttribute("data-fa-transform");return c&&(e.transform=Hi(c)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,c=e.transform,a=e.containerWidth,i=e.iconWidth,n={transform:"translate(".concat(a/2," 256)")},s="translate(".concat(32*c.x,", ").concat(32*c.y,") "),r="scale(".concat(c.size/16*(c.flipX?-1:1),", ").concat(c.size/16*(c.flipY?-1:1),") "),o="rotate(".concat(c.rotate," 0 0)"),l={outer:n,inner:{transform:"".concat(s," ").concat(r," ").concat(o)},path:{transform:"translate(".concat(i/2*-1," -256)")}};return{tag:"g",attributes:Pt({},l.outer),children:[{tag:"g",attributes:Pt({},l.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Pt(Pt({},t.icon.attributes),l.path)}]}]}}}},{hooks:function(){return{parseNodeAttributes:function(e,t){var c=t.getAttribute("data-fa-mask"),a=c?va(c.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return a.prefix||(a.prefix=ma()),e.mask=a,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,c=e.children,a=e.attributes,i=e.main,n=e.mask,s=e.maskId,r=e.transform,o=i.width,l=i.icon,u=n.width,p=n.icon,f=function(e){var t=e.transform,c=e.containerWidth,a=e.iconWidth,i={transform:"translate(".concat(c/2," 256)")},n="translate(".concat(32*t.x,", ").concat(32*t.y,") "),s="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),r="rotate(".concat(t.rotate," 0 0)");return{outer:i,inner:{transform:"".concat(n," ").concat(s," ").concat(r)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}({transform:r,containerWidth:u,iconWidth:o}),m={tag:"rect",attributes:Pt(Pt({},Vi),{},{fill:"white"})},d=l.children?{children:l.children.map(yi)}:{},h={tag:"g",attributes:Pt({},f.inner),children:[yi(Pt({tag:l.tag,attributes:Pt(Pt({},l.attributes),f.path)},d))]},v={tag:"g",attributes:Pt({},f.outer),children:[h]},g="mask-".concat(s||xc()),z="clip-".concat(s||xc()),b={tag:"mask",attributes:Pt(Pt({},Vi),{},{id:g,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,v]},C={tag:"defs",children:[{tag:"clipPath",attributes:{id:z},children:(t=p,"g"===t.tag?t.children:[t])},b]};return c.push(C,{tag:"rect",attributes:Pt({fill:"currentColor","clip-path":"url(#".concat(z,")"),mask:"url(#".concat(g,")")},Vi)}),{children:c,attributes:a}}}},{provides:function(e){var t=!1;Kt.matchMedia&&(t=Kt.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],c={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Pt(Pt({},c),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var i=Pt(Pt({},a),{},{attributeName:"opacity"}),n={tag:"circle",attributes:Pt(Pt({},c),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||n.children.push({tag:"animate",attributes:Pt(Pt({},a),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Pt(Pt({},i),{},{values:"1;0;1;1;0;1;"})}),e.push(n),e.push({tag:"path",attributes:Pt(Pt({},c),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Pt(Pt({},i),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Pt(Pt({},c),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Pt(Pt({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}},{hooks:function(){return{parseNodeAttributes:function(e,t){var c=t.getAttribute("data-fa-symbol"),a=null!==c&&(""===c||c);return e.symbol=a,e}}}}],{mixoutsTo:wa});var Li=wa.config,Si=wa.library,xi=wa.parse,Pi=wa.icon,wi=wa.text,ki={prefix:"far",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M170.5 51.6L151.5 80h145l-19-28.4c-1.5-2.2-4-3.6-6.7-3.6H177.1c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80H368h48 8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8V432c0 44.2-35.8 80-80 80H112c-44.2 0-80-35.8-80-80V128H24c-13.3 0-24-10.7-24-24S10.7 80 24 80h8H80 93.8l36.7-55.1C140.9 9.4 158.4 0 177.1 0h93.7c18.7 0 36.2 9.4 46.6 24.9zM80 128V432c0 17.7 14.3 32 32 32H336c17.7 0 32-14.3 32-32V128H80zm80 64V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Ai=ki,Ei={prefix:"far",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M160 368c26.5 0 48 21.5 48 48v16l72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16V352c0 8.8 7.2 16 16 16h96zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3V474.7v-6.4V468v-4V416H112 64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H448c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H309.3L208 492z"]},Ni=Ei,Ti={prefix:"far",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24H264c13.3 0 24-10.7 24-24s-10.7-24-24-24H120zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H264c13.3 0 24-10.7 24-24s-10.7-24-24-24H120z"]},Di=Ti,Ri=Ti,_i={prefix:"far",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192h80v56H48V192zm0 104h80v64H48V296zm128 0h96v64H176V296zm144 0h80v64H320V296zm80-48H320V192h80v56zm0 160v40c0 8.8-7.2 16-16 16H320V408h80zm-128 0v56H176V408h96zm-144 0v56H64c-8.8 0-16-7.2-16-16V408h80zM272 248H176V192h96v56z"]},Oi=_i,Ii={prefix:"far",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},ji=Ii,Fi={prefix:"far",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z"]},Bi=Fi,$i={prefix:"far",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M384 48c8.8 0 16 7.2 16 16V448c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H384zM96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H208zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z"]},qi=$i,Gi={prefix:"far",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M104.6 48H64C28.7 48 0 76.7 0 112V384c0 35.3 28.7 64 64 64h96V400H64c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H80c0 17.7 14.3 32 32 32h72.4C202 108.4 227.6 96 256 96h62c-7.1-27.6-32.2-48-62-48H215.4C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464H256c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16l140.1 0L464 243.9V448c0 8.8-7.2 16-16 16zM256 512H448c35.3 0 64-28.7 64-64V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64z"]},Wi=Gi,Ui={prefix:"far",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4V392.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V416c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416V378.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V416c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Ki=Ui,Zi={prefix:"far",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24H320c13.3 0 24-10.7 24-24s-10.7-24-24-24H192zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z"]},Yi=Zi,Xi={prefix:"far",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},Ji=Xi,Qi={prefix:"far",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM152 232H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},en=Qi,tn={prefix:"far",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},cn=tn,an={prefix:"far",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},nn=an,sn={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},rn=sn,on={prefix:"far",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},ln=on,un={prefix:"far",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z"]},pn=un,fn={prefix:"far",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M435.4 361.3l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.1zM256 48l.9 0h-1.8l.9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.7 2-4 2.9l4-2.9zm75.2-226.6l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},mn=fn,dn=fn,hn={prefix:"far",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z"]},vn=hn,gn={prefix:"far",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M0 24C0 10.7 10.7 0 24 0H360c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8V67c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445v19h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V445c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67V48H24C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5H284.2c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67V48H80V67c0 22.1 7 43.4 19.8 61H284.2z"]},zn=gn,bn={prefix:"far",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64V261.5l-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75H296h8c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5V160c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2V96c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1c0 0 0-.1 0-.1V64c0-8.8 7.2-16 16-16s16 7.2 16 16V95.9c0 0 0 .1 0 .1V232c0 13.3 10.7 24 24 24s24-10.7 24-24V96c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16v55.9c0 0 0 .1 0 .1v80c0 13.3 10.7 24 24 24s24-10.7 24-24V160.1c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16V332.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2H296h-8.5c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9V232c0 13.3 10.7 24 24 24s24-10.7 24-24V96.1z"]},Cn=bn,Mn={prefix:"far",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Hn=Mn,Vn={prefix:"far",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4V363.6c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27V416c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416V378.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V416c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},yn=Vn,Ln={prefix:"far",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},Sn=Ln,xn={prefix:"far",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},Pn=xn,wn={prefix:"far",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},kn=wn,An={prefix:"far",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M0 96C0 60.7 28.7 32 64 32H196.1c19.1 0 37.4 7.6 50.9 21.1L289.9 96H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16H286.6c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7H64z"]},En=An,Nn={prefix:"far",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},Tn=Nn,Dn={prefix:"far",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Rn=Dn,_n={prefix:"far",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},On=_n,In={prefix:"far",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16V264c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6V488c0 13.3 10.7 24 24 24s24-10.7 24-24V370.2c38-20.1 64-60.1 64-106.2V160c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64v64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6v12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3V488c0 13.3 10.7 24 24 24s24-10.7 24-24V359.9c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4V224.6c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6V208c0 8.8 7.2 16 16 16s16-7.2 16-16V142.3 128 64z"]},jn=In,Fn={prefix:"far",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},Bn=Fn,$n={prefix:"far",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M24 32c13.3 0 24 10.7 24 24V408c0 13.3 10.7 24 24 24H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-39.8 0-72-32.2-72-72V56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},qn=$n,Gn={prefix:"far",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Wn=Gn,Un={prefix:"far",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"]},Kn=Un,Zn={prefix:"far",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"]},Yn=Zn,Xn={prefix:"far",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z"]},Jn=Xn,Qn={prefix:"far",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},es=Qn,ts={prefix:"far",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M512 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H512zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H176zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376z"]},cs=ts,as=ts,is={prefix:"far",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},ns=is,ss={prefix:"far",iconName:"font-awesome",icon:[448,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56V456c0 13.3 10.7 24 24 24s24-10.7 24-24V124.2l12.5-2.4c16.7-3.2 31.5-8.5 44.2-13.1l0 0 0 0c3.7-1.3 7.1-2.6 10.4-3.7c15.2-5.2 30.4-9.1 51.2-9.1c25.6 0 43 6 63.5 13.3l.5 .2c20.9 7.4 44.8 15.9 79.1 15.9c32.4 0 53.7-6.8 90.5-19.6V342.9l-9.5 3.3c-41.5 14.4-55.2 19.2-81 19.2c-25.7 0-43.1-6-63.6-13.3l-.6-.2c-20.8-7.4-44.8-15.8-79-15.8c-16.8 0-31 2-43.9 5c-12.9 3-20.9 16-17.9 28.9s16 20.9 28.9 17.9c9.6-2.2 20.1-3.7 32.9-3.7c25.6 0 43 6 63.5 13.3l.5 .2c20.9 7.4 44.8 15.9 79.1 15.9c34.4 0 56.4-7.7 97.8-22.2c7.5-2.6 15.5-5.4 24.4-8.5l16.2-5.5V360 72 38.4L416.2 49.3c-9.7 3.3-18.2 6.3-25.7 8.9c-41.5 14.4-55.2 19.2-81 19.2c-25.7 0-43.1-6-63.6-13.3l-.6-.2c-20.8-7.4-44.8-15.8-79-15.8c-27.8 0-48.5 5.5-66.6 11.6c-4.9 1.7-9.3 3.3-13.6 4.8c-11.9 4.3-22 7.9-34.7 10.3L48 75.4V56z"]},rs=ss,os=ss,ls={prefix:"far",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},us=ls,ps={prefix:"far",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16h48v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm48 112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8H136.6c-14.5 0-27.2 9.7-30.9 23.8zM128 336h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H128c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},fs=ps,ms={prefix:"far",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9l0 0 0 0 0 0 .2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1 0 0 0 0 0 0 0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7l0 0 0 0 0 0 .2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1 0 0 0 0 0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},ds=ms,hs={prefix:"far",iconName:"star-half-stroke",icon:[640,512,["star-half-alt"],"f5c0","M341.5 13.5C337.5 5.2 329.1 0 319.9 0s-17.6 5.2-21.6 13.5L229.7 154.8 76.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L174.2 328.4 148 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L465.6 328.4 576.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L410.1 154.8 341.5 13.5zM320 384.7V79.1l52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L423 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L331.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z"]},vs=hs,gs={prefix:"far",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},zs=gs,bs={prefix:"far",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1c-4.2-4.5-10.1-7.1-16.3-7.1C266 128 256 138 256 150.3V208H160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96v57.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.3-7.1l99.9-107.1c3.5-3.8 5.5-8.7 5.5-13.8s-2-10.1-5.5-13.8L294.6 135.1z"]},Cs=bs,Ms={prefix:"far",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24H320c13.3 0 24-10.7 24-24s-10.7-24-24-24H192c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},Hs=Ms,Vs={prefix:"far",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},ys=Vs,Ls={prefix:"far",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72V328c0 13.3-10.7 24-24 24s-24-10.7-24-24V184c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0V328c0 13.3-10.7 24-24 24s-24-10.7-24-24V184c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Ss=Ls,xs={prefix:"far",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4c-4.5 4.2-7.1 10.1-7.1 16.3c0 12.3 10 22.3 22.3 22.3H208v96c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256h57.7c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.1-16.3L269.8 117.5c-3.8-3.5-8.7-5.5-13.8-5.5s-10.1 2-13.8 5.5L135.1 217.4z"]},Ps=xs,ws={prefix:"far",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},ks=ws,As={prefix:"far",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Es=As,Ns={prefix:"far",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M400 406.1V288c0-13.3-10.7-24-24-24s-24 10.7-24 24V440.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4V288c0-13.3-10.7-24-24-24s-24 10.7-24 24V406.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320v32c0 26.5 21.5 48 48 48s48-21.5 48-48V320c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},Ts=Ns,Ds={prefix:"far",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rs=Ds,_s={prefix:"far",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M48 96V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H309.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16zm80-16v80H272V80H128zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},Os=_s,Is={prefix:"far",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},js=Is,Fs={prefix:"far",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Bs=Fs,$s={prefix:"far",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0zm160 0l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0z"]},qs=$s,Gs={prefix:"far",iconName:"calendar-xmark",icon:[512,512,["calendar-times"],"f273","M160 0c13.3 0 24 10.7 24 24V64H328V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V192 144 128c0-35.3 28.7-64 64-64h40V24c0-13.3 10.7-24 24-24zM432 192H80V448c0 8.8 7.2 16 16 16H416c8.8 0 16-7.2 16-16V192zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Ws=Gs,Us={prefix:"far",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V67c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445v19H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V445c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM192 289.9l81.5 81.5C293 391 304 417.4 304 445v19H80V445c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67V48H304V67c0 27.6-11 54-30.5 73.5L192 222.1z"]},Ks=Us,Zs={prefix:"far",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M64 80c-8.8 0-16 7.2-16 16V258c5.1-1.3 10.5-2 16-2H448c5.5 0 10.9 .7 16 2V96c0-8.8-7.2-16-16-16H64zM48 320v96c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V320c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM0 320V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V320v96c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Ys=Zs,Xs={prefix:"far",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z"]},Js=Xs,Qs={prefix:"far",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H512c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},er=Qs,tr={prefix:"far",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3V304h96c17.7 0 32-14.3 32-32V240c0-17.7-14.3-32-32-32H256V150.3c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z"]},cr=tr,ar={prefix:"far",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M112 112c0 35.3-28.7 64-64 64V336c35.3 0 64 28.7 64 64H464c0-35.3 28.7-64 64-64V176c-35.3 0-64-28.7-64-64H112zM0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16v64h-8c-8.8 0-16 7.2-16 16s7.2 16 16 16h24 24c8.8 0 16-7.2 16-16s-7.2-16-16-16h-8V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16z"]},ir=ar,nr={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},sr=nr,rr={prefix:"far",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},or=rr,lr={prefix:"far",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z"]},ur=lr,pr={prefix:"far",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M528 160V416c0 8.8-7.2 16-16 16H320c0-44.2-35.8-80-80-80H176c-44.2 0-80 35.8-80 80H64c-8.8 0-16-7.2-16-16V160H528zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376z"]},fr=pr,mr={prefix:"far",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},dr=mr,hr={prefix:"far",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3H304V160c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32v96H150.3C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z"]},vr=hr,gr={prefix:"far",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M512 80c8.8 0 16 7.2 16 16v32H48V96c0-8.8 7.2-16 16-16H512zm16 144V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V224H528zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H120zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24H248z"]},zr=gr,br={prefix:"far",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M232 0c-39.8 0-72 32.2-72 72v8H72C32.2 80 0 112.2 0 152V440c0 39.8 32.2 72 72 72h.2 .2 .2 .2 .2H73h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H75h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H77h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H79h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H82h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H85h.2 .2 .2 .2H86h.2 .2 .2 .2H87h.2 .2 .2 .2H88h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H98h.2 .2 .2 .2H99h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2v0H456h8v0H568c39.8 0 72-32.2 72-72V152c0-39.8-32.2-72-72-72H480V72c0-39.8-32.2-72-72-72H232zM480 128h88c13.3 0 24 10.7 24 24v40H536c-13.3 0-24 10.7-24 24s10.7 24 24 24h56v48H536c-13.3 0-24 10.7-24 24s10.7 24 24 24h56V440c0 13.3-10.7 24-24 24H480V336 128zM72 128h88V464h-.1-.2-.2-.2H159h-.2-.2-.2H158h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H154h-.2-.2-.2H153h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H150h-.2-.2-.2H149h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H146h-.2-.2-.2H145h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H142h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H139h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H136h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H133h-.2-.2-.2-.2-.2-.2-.2-.2H131h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H128h-.2-.2-.2-.2-.2-.2-.2-.2H126h-.2-.2-.2-.2-.2-.2-.2-.2H124h-.2-.2-.2-.2-.2-.2-.2-.2H122h-.2-.2-.2-.2-.2-.2-.2-.2H120h-.2-.2-.2-.2-.2-.2-.2-.2H118h-.2-.2-.2-.2-.2-.2-.2-.2H116h-.2-.2-.2-.2-.2-.2-.2-.2H114h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H111h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H108h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H105h-.2-.2-.2-.2H104h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H100h-.2-.2-.2-.2H99h-.2-.2-.2-.2H98h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H88h-.2-.2-.2-.2H87h-.2-.2-.2-.2H86h-.2-.2-.2-.2H85h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H82h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H79h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H77h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H75h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H73h-.2-.2-.2-.2-.2H72c-13.2 0-24-10.7-24-24V336h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H48V240h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H48V152c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24H408c13.3 0 24 10.7 24 24V336 464H368V400c0-26.5-21.5-48-48-48s-48 21.5-48 48v64H208V72zm88 24v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V168h24c8.8 0 16-7.2 16-16V136c0-8.8-7.2-16-16-16H344V96c0-8.8-7.2-16-16-16H312c-8.8 0-16 7.2-16 16z"]},Cr=br,Mr=br,Hr={prefix:"far",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M406.5 399.6C387.4 352.9 341.5 320 288 320H224c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3h64c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z"]},Vr=Hr,yr={prefix:"far",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z"]},Lr=yr,Sr={prefix:"far",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},xr=Sr,Pr={prefix:"far",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},wr=Pr,kr={prefix:"far",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z"]},Ar=kr,Er={prefix:"far",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4V363.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1V416c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64V378.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6V416z"]},Nr=Er,Tr={prefix:"far",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},Dr=Tr,Rr={prefix:"far",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},_r=Rr,Or=Rr,Ir=Rr,jr={prefix:"far",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h8V320h-8zm40 48h32V320H208v48zm96 0V320H272v48h32zm32 0h8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v48zM168 288H344c30.9 0 56 25.1 56 56s-25.1 56-56 56H168c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Fr=jr,Br={prefix:"far",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"]},$r=Br,qr=Br,Gr={prefix:"far",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H288V352c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16H64zM288 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V320v5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7H288z"]},Wr=Gr,Ur={prefix:"far",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Kr=Ur,Zr={faTrashCan:ki,faTrashAlt:Ai,faMessage:Ei,faCommentAlt:Ni,faFileLines:Ti,faFileAlt:Di,faFileText:Ri,faCalendarDays:_i,faCalendarAlt:Oi,faHandPointRight:{prefix:"far",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z"]},faFaceSmileBeam:Ii,faSmileBeam:ji,faFaceGrinStars:Fi,faGrinStars:Bi,faAddressBook:$i,faContactBook:qi,faComments:{prefix:"far",iconName:"comments",icon:[640,512,[128490,61670],"f086","M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.7 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"]},faPaste:Gi,faFileClipboard:Wi,faFaceGrinTongueSquint:Ui,faGrinTongueSquint:Ki,faFaceFlushed:Zi,faFlushed:Yi,faSquareCaretRight:Xi,faCaretSquareRight:Ji,faSquareMinus:Qi,faMinusSquare:en,faCompass:{prefix:"far",iconName:"compass",icon:[512,512,[129517],"f14e","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faSquareCaretDown:tn,faCaretSquareDown:cn,faFaceKissBeam:an,faKissBeam:nn,faLightbulb:{prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7l0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5H109c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8l0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4l0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5H226.4c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8l0 0 0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80V416H272v16c0 44.2-35.8 80-80 80z"]},faFlag:{prefix:"far",iconName:"flag",icon:[448,512,[127988,61725],"f024","M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24V64 350.5 400v88c0 13.3 10.7 24 24 24s24-10.7 24-24V388l80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52V24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8V334.7l-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5v-237z"]},faSquareCheck:sn,faCheckSquare:rn,faCircleDot:on,faDotCircle:ln,faFaceDizzy:un,faDizzy:pn,faFutbol:fn,faFutbolBall:mn,faSoccerBall:dn,faPenToSquare:hn,faEdit:vn,faHourglassHalf:gn,faHourglass2:zn,faEyeSlash:{prefix:"far",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"]},faHand:bn,faHandPaper:Cn,faHandSpock:{prefix:"far",iconName:"hand-spock",icon:[576,512,[128406],"f259","M221.7 25.3L215.6 2.1l6.2 23.2zm48.9 28.4l23.2-6.2v0l-23.2 6.2zM193.3 74.3l-23.2 6.2 0 0 23.2-6.2zm46.5 175.3l-22.1 9.3c4.9 11.6 17.9 17.5 29.9 13.4s18.7-16.7 15.4-28.9l-23.2 6.2zm-51-121.1l-22.1 9.3v0l22.1-9.3zm-52.4-21.3l9.3 22.1h0l-9.3-22.1zm-21.3 52.4L93 168.8h0l22.1-9.3zm5.4 144.9l14.7-18.9h0l-14.7 18.9zm-56.1 7l18.9 14.7 0 0L64.4 311.4zm7 56.1L56.7 386.5h0l14.7-18.9zm92 71.6l-14.7 18.9 14.7-18.9zm300.1-48.5l23.3 5.8-23.3-5.8zm55.2-220.9l23.3 5.8-23.3-5.8zm-29.1-48.5l5.8-23.3-5.8 23.3zm-48.5 29.1l23.3 5.8v0l-23.3-5.8zM415 255l23.3 5.8 0 0L415 255zm-2.6-.5l23.6 4.2 0 0-23.6-4.2zM439.4 103l23.6 4.2v0L439.4 103zM407 56.6l-4.2 23.6L407 56.6zM360.6 89L337 84.8 360.6 89zM331.5 252.6l-23.6-4.2 0 0 23.6 4.2zm-8 .3l23.2-6.2 0 0-23.2 6.2zM336 488l.5-24-.5 24zm-157-138L193.8 331l-14.7 18.9zM227.9 48.5c8.5-2.3 17.3 2.8 19.6 11.4l46.4-12.3c-9.1-34.2-44.1-54.5-78.3-45.4l12.3 46.4zM216.5 68.1c-2.3-8.5 2.8-17.3 11.4-19.6L215.6 2.1c-34.2 9.1-54.5 44.1-45.4 78.3l46.4-12.3zM263 243.4L216.5 68.1 170.1 80.4l46.5 175.3L263 243.4zM166.7 137.8l51 121.1L262 240.2 211 119.2l-44.2 18.6zm-21-8.5c8.1-3.4 17.5 .4 21 8.5L211 119.2C197.3 86.6 159.7 71.3 127.2 85l18.6 44.2zm-8.5 21c-3.4-8.1 .4-17.5 8.5-21L127.2 85C94.6 98.7 79.3 136.3 93 168.8l44.2-18.6zm76.2 181l-76.2-181L93 168.8l76.2 181 44.2-18.6zm-107.6-7.8l58.5 45.5L193.8 331l-58.5-45.5-29.5 37.9zm-22.5 2.8c5.4-7 15.5-8.2 22.5-2.8l29.5-37.9c-27.9-21.7-68.1-16.7-89.8 11.2l37.9 29.5zm2.8 22.5c-7-5.4-8.2-15.5-2.8-22.5L45.5 296.7c-21.7 27.9-16.7 68.1 11.2 89.8l29.5-37.9zm92 71.6l-92-71.6L56.7 386.5l92 71.6 29.5-37.9zM305.9 464c-46.3 0-91.2-15.4-127.7-43.8l-29.5 37.9C193.6 493 248.9 512 305.9 512V464zm30.1 0H305.9v48H336V464zm2.8 0c-.8 0-1.5 0-2.3 0l-1 48c1.1 0 2.2 0 3.3 0V464zm101.5-79.2C428.7 431.3 386.8 464 338.8 464v48c70 0 131.1-47.7 148-115.6l-46.6-11.6zm55.2-220.9L440.3 384.8l46.6 11.6 55.2-220.9-46.6-11.6zm-11.6-19.4c8.6 2.1 13.8 10.8 11.6 19.4l46.6 11.6c8.6-34.3-12.3-69-46.6-77.6l-11.6 46.6zm-19.4 11.6c2.1-8.6 10.8-13.8 19.4-11.6l11.6-46.6c-34.3-8.6-69 12.3-77.6 46.6l46.6 11.6zM438.3 260.8l26.2-104.7-46.6-11.6L391.7 249.2l46.6 11.6zM413.7 280c11.6 0 21.7-7.9 24.6-19.2l-46.6-11.6c2.5-10.1 11.6-17.2 22-17.2v48zm-24.9-29.7c-2.8 15.5 9.2 29.7 24.9 29.7V232c14.1 0 24.8 12.8 22.3 26.7l-47.3-8.4zM415.8 98.8L388.8 250.3l47.3 8.4L463 107.2l-47.3-8.4zm-13-18.6c8.7 1.5 14.5 9.9 13 18.6l47.3 8.4c6.2-34.8-17-68-51.8-74.2l-8.4 47.3zm-18.6 13c1.5-8.7 9.9-14.5 18.6-13L411.2 33c-34.8-6.2-68 17-74.2 51.8l47.3 8.4zM355.2 256.8L384.2 93.2 337 84.8 307.9 248.4l47.3 8.4zM327.5 280c13.6 0 25.3-9.8 27.7-23.2l-47.3-8.4c1.7-9.5 9.9-16.4 19.6-16.4v48zm-27.2-20.9c3.3 12.3 14.4 20.9 27.2 20.9V232c9 0 16.9 6.1 19.2 14.8l-46.4 12.3zM247.5 59.9l52.8 199.2 46.4-12.3L293.9 47.6 247.5 59.9zM360 488c0 13.5-11.1 24.3-24.5 24l1-48c-13.5-.3-24.5 10.5-24.5 24h48zm-24 24c13.3 0 24-10.8 24-24H312c0-13.2 10.7-24 24-24v48zM169.2 349.8c-6.4-15.2 11.6-29 24.6-18.8l-29.5 37.9c26 20.2 61.9-7.3 49.1-37.7l-44.2 18.6z"]},faFaceKiss:Mn,faKiss:Hn,faFaceGrinTongue:Vn,faGrinTongue:yn,faChessBishop:{prefix:"far",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8V352H96V325c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3v27h48V338.7c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24H160 104zM52.7 464l16.6-32H250.8l16.6 32H52.7zm207.9-80H59.5c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512H279.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z"]},faFaceGrinWink:Ln,faGrinWink:Sn,faFaceGrinWide:xn,faGrinAlt:Pn,faFaceFrownOpen:wn,faFrownOpen:kn,faHandPointUp:{prefix:"far",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M64 64V241.6c5.2-1 10.5-1.6 16-1.6H96V208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0v24c0 66.3 53.7 120 120 120h48c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H120 80zM0 320s0 0 0 0c0-18 6-34.6 16-48V64C16 28.7 44.7 0 80 0s64 28.7 64 64v82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64v64 24c0 92.8-75.2 168-168 168H168C75.2 512 0 436.8 0 344V320zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16v48 16c0 8.8 7.2 16 16 16s16-7.2 16-16V256zM160 240c5.5 0 10.9 .7 16 2v-2V208c0-8.8-7.2-16-16-16s-16 7.2-16 16v32h16zm64 24v40c0 8.8 7.2 16 16 16s16-7.2 16-16V256 240c0-8.8-7.2-16-16-16s-16 7.2-16 16v24z"]},faBookmark:{prefix:"far",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48C0 21.5 21.5 0 48 0l0 48V441.4l130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4V48H48V0H336c26.5 0 48 21.5 48 48V488c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488V48z"]},faHandPointDown:{prefix:"far",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z"]},faFolder:An,faFolderBlank:En,faUser:{prefix:"far",iconName:"user",icon:[448,512,[128100,62144],"f007","M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464H398.7c-8.9-63.3-63.3-112-129-112H178.3c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z"]},faSquareCaretLeft:Nn,faCaretSquareLeft:Tn,faStar:{prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.6 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},faChessKnight:{prefix:"far",iconName:"chess-knight",icon:[448,512,[9822],"f441","M226.6 48H117.3l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1H66.8c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0H226.6C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352H341.3l24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464H379.3l-16.6-32H85.2zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H56.8C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384h297c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z"]},faFaceLaughSquint:Dn,faLaughSquint:Rn,faFaceLaugh:_n,faLaugh:On,faFolderOpen:{prefix:"far",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z"]},faClipboard:{prefix:"far",iconName:"clipboard",icon:[384,512,[128203],"f328","M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faChessQueen:{prefix:"far",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352H153l-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352h55.4l93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432H378.8l16.6 32H116.7l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3h-265c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8H407.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"]},faHandBackFist:In,faHandRock:jn,faSquareCaretUp:Fn,faCaretSquareUp:Bn,faChartBar:$n,faBarChart:qn,faWindowRestore:{prefix:"far",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 48H208c-17.7 0-32 14.3-32 32V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V336h16c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V256H48V448zM64 128H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64z"]},faSquarePlus:Gn,faPlusSquare:Wn,faImage:{prefix:"far",iconName:"image",icon:[512,512,[],"f03e","M448 80c8.8 0 16 7.2 16 16V415.8l-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3V96c0-8.8 7.2-16 16-16H448zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faFolderClosed:{prefix:"far",iconName:"folder-closed",icon:[512,512,[],"e185","M251.7 127.6l0 0c10.5 10.5 24.7 16.4 39.6 16.4H448c8.8 0 16 7.2 16 16v32H48V96c0-8.8 7.2-16 16-16H197.5c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240H464V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V240zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H291.3c-2.1 0-4.2-.8-5.7-2.3z"]},faLemon:{prefix:"far",iconName:"lemon",icon:[448,512,[127819],"f094","M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z"]},faHandshake:{prefix:"far",iconName:"handshake",icon:[640,512,[],"f2b5","M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176H96V304c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128H544h40 40c8.8 0 16 7.2 16 16V352c0 17.7-14.3 32-32 32H576c-11.8 0-22.2-6.4-27.7-16H463.4c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384H32c-17.7 0-32-14.3-32-32V144c0-8.8 7.2-16 16-16H56 96h19.8c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64H259c4.4 0 8.9 .2 13.2 .6zM544 320V176H496c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1H544zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faGem:{prefix:"far",iconName:"gem",icon:[512,512,[128142],"f3a5","M168.5 72L256 165l87.5-93h-175zM383.9 99.1L311.5 176h129L383.9 99.1zm50 124.9H256 78.1L256 420.3 433.9 224zM71.5 176h129L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z"]},faCirclePlay:Un,faPlayCircle:Kn,faCircleCheck:Zn,faCheckCircle:Yn,faCircleStop:Xn,faStopCircle:Jn,faIdBadge:{prefix:"far",iconName:"id-badge",icon:[384,512,[],"f2c1","M256 48V64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H256zM0 64C0 28.7 28.7 0 64 0H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},faFaceLaughBeam:Qn,faLaughBeam:es,faRegistered:{prefix:"far",iconName:"registered",icon:[512,512,[174],"f25d","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152V264v96c0 13.3 10.7 24 24 24s24-10.7 24-24V288h60.9l37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80H184c-13.3 0-24 10.7-24 24zm48 88V176h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H208z"]},faAddressCard:ts,faContactCard:cs,faVcard:as,faFaceTired:is,faTired:ns,faFontAwesome:ss,faFontAwesomeFlag:rs,faFontAwesomeLogoFull:os,faFaceSmileWink:ls,faSmileWink:us,faFileWord:{prefix:"far",iconName:"file-word",icon:[384,512,[],"f1c2","M48 448V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z"]},faFilePowerpoint:{prefix:"far",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm72 208c-13.3 0-24 10.7-24 24V336v56c0 13.3 10.7 24 24 24s24-10.7 24-24V360h44c42 0 76-34 76-76s-34-76-76-76H136zm68 104H160V256h44c15.5 0 28 12.5 28 28s-12.5 28-28 28z"]},faEnvelopeOpen:{prefix:"far",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5v13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1V200.5c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2V456c0 4.4-3.6 8-8 8H56c-4.4 0-8-3.6-8-8V276.2zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5V456c0 30.9 25.1 56 56 56H456c30.9 0 56-25.1 56-56V200.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z"]},faFileZipper:ps,faFileArchive:fs,faSquare:{prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},faSnowflake:{prefix:"far",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c13.3 0 24 10.7 24 24V70.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57v76.5l66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6v76.5l57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V441.9l-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V297.6l-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4V137.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V24c0-13.3 10.7-24 24-24z"]},faNewspaper:{prefix:"far",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M168 80c-13.3 0-24 10.7-24 24V408c0 8.4-1.4 16.5-4.1 24H440c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H168zM72 480c-39.8 0-72-32.2-72-72V112C0 98.7 10.7 88 24 88s24 10.7 24 24V408c0 13.3 10.7 24 24 24s24-10.7 24-24V104c0-39.8 32.2-72 72-72H440c39.8 0 72 32.2 72 72V408c0 39.8-32.2 72-72 72H72zM176 136c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24v80c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V136zm200-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H376c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H376c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faFaceKissWinkHeart:ms,faKissWinkHeart:ds,faStarHalfStroke:hs,faStarHalfAlt:vs,faFileExcel:{prefix:"far",iconName:"file-excel",icon:[384,512,[],"f1c3","M48 448V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z"]},faFaceGrinBeam:gs,faGrinBeam:zs,faObjectUngroup:{prefix:"far",iconName:"object-ungroup",icon:[640,512,[],"f248","M48.2 66.8c-.1-.8-.2-1.7-.2-2.5c0-.1 0-.1 0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3V228.7C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40H324.7c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3V123.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40H123.3C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3V228.7c-16 6.5-28.9 19.3-35.3 35.3H123.3c-6.5-16-19.3-28.9-35.3-35.3V123.3c16-6.5 28.9-19.3 35.3-35.3H324.7zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40h45.4c6.5 16 19.3 28.9 35.3 35.3V388.7c-16 6.5-28.9 19.3-35.3 35.3H315.3c-6.5-16-19.3-28.9-35.3-35.3V352H232v36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40H516.7c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3V283.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40H448v16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8c0-8.8 7.2-16 16-16c7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7c0 8.8-7.2 16-16 16c-.9 0-1.9-.1-2.8-.2z"]},faCircleRight:bs,faArrowAltCircleRight:Cs,faFaceRollingEyes:Ms,faMehRollingEyes:Hs,faObjectGroup:{prefix:"far",iconName:"object-group",icon:[576,512,[],"f247","M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16H460.2c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8V396.2c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16H115.8c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8V115.8zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3V386.7c13.6 4.8 24.4 15.6 29.3 29.3H450.7c4.8-13.6 15.6-24.4 29.3-29.3V125.3c-13.6-4.8-24.4-15.6-29.3-29.3H125.3zm2.7 64c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z"]},faHeart:{prefix:"far",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8v-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5v3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20c0 0-.1-.1-.1-.1c0 0 0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5v3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2v-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"]},faFaceSurprise:Vs,faSurprise:ys,faCirclePause:Ls,faPauseCircle:Ss,faCircle:{prefix:"far",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},faCircleUp:xs,faArrowAltCircleUp:Ps,faFileAudio:{prefix:"far",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 464H320c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM192 272V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376H112c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h17.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z"]},faFileImage:{prefix:"far",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2h48 32 40 72c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z"]},faCircleQuestion:ws,faQuestionCircle:ks,faFaceMehBlank:As,faMehBlank:Es,faEye:{prefix:"far",iconName:"eye",icon:[576,512,[128065],"f06e","M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"]},faFaceSadCry:Ns,faSadCry:Ts,faFileCode:{prefix:"far",iconName:"file-code",icon:[384,512,[],"f1c9","M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"]},faWindowMaximize:{prefix:"far",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M.3 89.5C.1 91.6 0 93.8 0 96V224 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64V224 96c0-35.3-28.7-64-64-64H64c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224H464l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z"]},faFaceFrown:Ds,faFrown:Rs,faFloppyDisk:_s,faSave:Os,faCommentDots:Is,faCommenting:js,faFaceGrinSquint:Fs,faGrinSquint:Bs,faHandPointer:{prefix:"far",iconName:"hand-pointer",icon:[448,512,[],"f25a","M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16V200c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16V392c0 39.8-32.2 72-72 72H272 212.3h-.9c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23V320 64zM176 0c-35.3 0-64 28.7-64 64V261.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2h.9H272h56c66.3 0 120-53.7 120-120V288l0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5V64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z"]},faHandScissors:{prefix:"far",iconName:"hand-scissors",icon:[512,512,[],"f257","M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z"]},faFaceGrinTears:$s,faGrinTears:qs,faCalendarXmark:Gs,faCalendarTimes:Ws,faFileVideo:{prefix:"far",iconName:"file-video",icon:[384,512,[],"f1c8","M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM80 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v16l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V288z"]},faFilePdf:{prefix:"far",iconName:"file-pdf",icon:[512,512,[],"f1c1","M64 464H96v48H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V288H336V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"]},faComment:{prefix:"far",iconName:"comment",icon:[512,512,[128489,61669],"f075","M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9c.1-.2 .2-.3 .3-.5z"]},faEnvelope:{prefix:"far",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},faHourglass:Us,faHourglassEmpty:Ks,faCalendarCheck:{prefix:"far",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c13.3 0 24 10.7 24 24V64H296V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192 144 128C0 92.7 28.7 64 64 64h40V24c0-13.3 10.7-24 24-24zM400 192H48V448c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V192zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},faHardDrive:Zs,faHdd:Ys,faFaceGrinSquintTears:Xs,faGrinSquintTears:Js,faRectangleList:Qs,faListAlt:er,faCalendarPlus:{prefix:"far",iconName:"calendar-plus",icon:[512,512,[],"f271","M184 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H96c-35.3 0-64 28.7-64 64v16 48V448c0 35.3 28.7 64 64 64H416c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H376V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H184V24zM80 192H432V448c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V192zm176 40c-13.3 0-24 10.7-24 24v48H184c-13.3 0-24 10.7-24 24s10.7 24 24 24h48v48c0 13.3 10.7 24 24 24s24-10.7 24-24V352h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V256c0-13.3-10.7-24-24-24z"]},faCircleLeft:tr,faArrowAltCircleLeft:cr,faMoneyBill1:ar,faMoneyBillAlt:ir,faClock:nr,faClockFour:sr,faKeyboard:{prefix:"far",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 112c-8.8 0-16 7.2-16 16V384c0 8.8 7.2 16 16 16H512c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H64zM0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM176 320H400c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H280c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H280c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H360c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H360c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H440c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H440c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16z"]},faClosedCaptioning:{prefix:"far",iconName:"closed-captioning",icon:[576,512,[],"f20a","M512 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H512zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},faImages:{prefix:"far",iconName:"images",icon:[576,512,[],"f302","M160 80H512c8.8 0 16 7.2 16 16V320c0 8.8-7.2 16-16 16H490.8L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336H160c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16zM96 96V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faFaceGrin:rr,faGrin:or,faFaceMeh:lr,faMeh:ur,faIdCard:pr,faDriversLicense:fr,faSun:{prefix:"far",iconName:"sun",icon:[512,512,[9728],"f185","M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},faFaceLaughWink:mr,faLaughWink:dr,faCircleDown:hr,faArrowAltCircleDown:vr,faThumbsDown:{prefix:"far",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16H286.5c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8H384c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H32z"]},faChessPawn:{prefix:"far",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120H243.4l10.7 80H205.7L195 272H160 125l-10.7 80H65.9l10.7-80H64c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464H267.3l-16.6-32H69.2L52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H40.8C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384h201z"]},faCreditCard:gr,faCreditCardAlt:zr,faBell:{prefix:"far",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32V49.9C119.5 61.4 64 124.2 64 200v33.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416H424c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4V200c0-75.8-55.5-138.6-128-150.1V32c0-17.7-14.3-32-32-32zm0 96h8c57.4 0 104 46.6 104 104v33.4c0 47.9 13.9 94.6 39.7 134.6H72.3C98.1 328 112 281.3 112 233.4V200c0-57.4 46.6-104 104-104h8zm64 352H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},faFile:{prefix:"far",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64z"]},faHospital:br,faHospitalAlt:Cr,faHospitalWide:Mr,faChessRook:{prefix:"far",iconName:"chess-rook",icon:[448,512,[9820],"f447","M80 80V192c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352H85.2l9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192V72c0-22.1 17.9-40 40-40H376c22.1 0 40 17.9 40 40V192c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85H314.5l-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4V80H304v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V80H192v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V80H80zm4.7 384H363.3l-16.6-32H101.2L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H72.8C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384h265zM208 288c-8.8 0-16-7.2-16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 8.8-7.2 16-16 16H208z"]},faStarHalf:{prefix:"far",iconName:"star-half",icon:[576,512,[61731],"f089","M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4V408.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4V128.4z"]},faChessKing:{prefix:"far",iconName:"chess-king",icon:[448,512,[9818],"f43f","M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V56H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v40H59.6C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352h52.3L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6H224 388.4c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352h52.3l54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6H248V104h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H248V24zM101.2 432H346.8l16.6 32H84.7l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3H91.5c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512H375.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"]},faCircleUser:Hr,faUserCircle:Vr,faCopy:{prefix:"far",iconName:"copy",icon:[512,512,[],"f0c5","M448 384H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64H396.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V320c0 35.3-28.7 64-64 64zM64 128h96v48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H256c8.8 0 16-7.2 16-16V416h48v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64z"]},faShareFromSquare:yr,faShareSquare:Lr,faCopyright:{prefix:"far",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z"]},faMap:{prefix:"far",iconName:"map",icon:[576,512,[128506,62072],"f279","M565.6 36.2C572.1 40.7 576 48.1 576 56V392c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456V120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5V421.2l120-45.7V90.8L48 136.5zM360 422.7V137.3l-144-48V374.7l144 48zm48-1.5l120-45.7V90.8L408 136.5V421.2z"]},faBellSlash:{prefix:"far",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4V200c0-75.8-55.5-138.6-128-150.1V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V49.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96h8 8c57.4 0 104 46.6 104 104v33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48H168.3c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1v11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6H406.2zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},faHandLizard:{prefix:"far",iconName:"hand-lizard",icon:[512,512,[],"f258","M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24H240c35.3 0 64 28.7 64 64s-28.7 64-64 64H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H288c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V413.3L281.1 384H136c-39.8 0-72-32.2-72-72s32.2-72 72-72H240c8.8 0 16-7.2 16-16s-7.2-16-16-16H72c-39.8 0-72-32.2-72-72S32.2 64 72 64H281.6c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7V424c0 13.3-10.7 24-24 24s-24-10.7-24-24V316.1c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9H72z"]},faFaceSmile:Sr,faSmile:xr,faHandPeace:{prefix:"far",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320v0 24c0 92.8 75.2 168 168 168h48c92.8 0 168-75.2 168-168V272 256 224c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192v48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2h-7.4l-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240H144c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16v32 16c0 8.8-7.2 16-16 16s-16-7.2-16-16V192zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2v10c0 66.3-53.7 120-120 120H232c-66.3 0-120-53.7-120-120l0-24 0 0c0-17.7 14.3-32 32-32h80c8.8 0 16 7.2 16 16s-7.2 16-16 16H184c-13.3 0-24 10.7-24 24s10.7 24 24 24h40c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16V240 224c0-8.8 7.2-16 16-16s16 7.2 16 16v32 16z"]},faFaceGrinHearts:Pr,faGrinHearts:wr,faBuilding:{prefix:"far",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M64 48c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16h80V400c0-26.5 21.5-48 48-48s48 21.5 48 48v64h80c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64zM0 64C0 28.7 28.7 0 64 0H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm88 40c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H104c-8.8 0-16-7.2-16-16V104zM232 88h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H232c-8.8 0-16-7.2-16-16V104c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H104c-8.8 0-16-7.2-16-16V232zm144-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H232c-8.8 0-16-7.2-16-16V232c0-8.8 7.2-16 16-16z"]},faFaceGrinBeamSweat:kr,faGrinBeamSweat:Ar,faMoon:{prefix:"far",iconName:"moon",icon:[384,512,[127769,9214],"f186","M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0c-.1 0-.2 0-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z"]},faCalendar:{prefix:"far",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z"]},faFaceGrinTongueWink:Er,faGrinTongueWink:Nr,faClone:{prefix:"far",iconName:"clone",icon:[512,512,[],"f24d","M64 464H288c8.8 0 16-7.2 16-16V384h48v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h64v48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM224 352c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H224z"]},faFaceAngry:Tr,faAngry:Dr,faRectangleXmark:Rr,faRectangleTimes:_r,faTimesRectangle:Or,faWindowClose:Ir,faPaperPlane:{prefix:"far",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"]},faLifeRing:{prefix:"far",iconName:"life-ring",icon:[512,512,[],"f1cd","M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},faFaceGrimace:jr,faGrimace:Fr,faCalendarMinus:{prefix:"far",iconName:"calendar-minus",icon:[512,512,[],"f272","M160 0c13.3 0 24 10.7 24 24V64H328V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V192 144 128c0-35.3 28.7-64 64-64h40V24c0-13.3 10.7-24 24-24zM432 192H80V448c0 8.8 7.2 16 16 16H416c8.8 0 16-7.2 16-16V192zM328 352H184c-13.3 0-24-10.7-24-24s10.7-24 24-24H328c13.3 0 24 10.7 24 24s-10.7 24-24 24z"]},faCircleXmark:Br,faTimesCircle:$r,faXmarkCircle:qr,faThumbsUp:{prefix:"far",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.1s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16H286.5c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8H384c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H32z"]},faWindowMinimize:{prefix:"far",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z"]},faSquareFull:{prefix:"far",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M464 48V464H48V48H464zM48 0H0V48 464v48H48 464h48V464 48 0H464 48z"]},faNoteSticky:Gr,faStickyNote:Wr,faFaceSadTear:Ur,faSadTear:Kr,faHandPointLeft:{prefix:"far",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z"]}},Yr={prefix:"fas",iconName:"circle-chevron-right",icon:[512,512,["chevron-circle-right"],"f138","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z"]},Xr=Yr,Jr={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},Qr=Jr,eo={prefix:"fas",iconName:"user-xmark",icon:[640,512,["user-times"],"f235","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},to=eo,co={prefix:"fas",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z"]},ao=co,io={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H296c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272H216c13.3 0 24 10.7 24 24V440c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]},no=io,so={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},ro=so,oo=so,lo={prefix:"fas",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z"]},uo=lo,po={prefix:"fas",iconName:"volleyball",icon:[512,512,[127952,"volleyball-ball"],"f45f","M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z"]},fo=po,mo={prefix:"fas",iconName:"sort-down",icon:[320,512,["sort-desc"],"f0dd","M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z"]},ho=mo,vo={prefix:"fas",iconName:"circle-minus",icon:[512,512,["minus-circle"],"f056","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},go=vo,zo={prefix:"fas",iconName:"right-from-bracket",icon:[512,512,["sign-out-alt"],"f2f5","M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},bo=zo,Co={prefix:"fas",iconName:"icons",icon:[512,512,["heart-music-camera-bolt"],"f86d","M500.3 7.3C507.7 13.3 512 22.4 512 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L352 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L213.3 304H240c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48H74.7zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368H496c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400H336c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z"]},Mo=Co,Ho={prefix:"fas",iconName:"microphone-lines-slash",icon:[640,512,["microphone-alt-slash"],"f539","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z"]},Vo=Ho,yo={prefix:"fas",iconName:"magnifying-glass-location",icon:[512,512,["search-location"],"f689","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Lo=yo,So={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z"]},xo=So,Po={prefix:"fas",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},wo=Po,ko={prefix:"fas",iconName:"football",icon:[512,512,[127944,"football-ball"],"f44e","M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z"]},Ao=ko,Eo={prefix:"fas",iconName:"angles-down",icon:[448,512,["angle-double-down"],"f103","M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"]},No=Eo,To={prefix:"fas",iconName:"beer-mug-empty",icon:[512,512,["beer"],"f0fc","M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z"]},Do=To,Ro={prefix:"fas",iconName:"arrow-up-long",icon:[384,512,["long-arrow-up"],"f176","M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"]},_o=Ro,Oo={prefix:"fas",iconName:"fire-flame-simple",icon:[384,512,["burn"],"f46a","M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z"]},Io=Oo,jo={prefix:"fas",iconName:"person",icon:[320,512,[129485,"male"],"f183","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z"]},Fo=jo,Bo={prefix:"fas",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z"]},$o=Bo,qo={prefix:"fas",iconName:"spaghetti-monster-flying",icon:[640,512,["pastafarianism"],"f67b","M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Go=qo,Wo={prefix:"fas",iconName:"spoon",icon:[512,512,[129348,61873,"utensil-spoon"],"f2e5","M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z"]},Uo=Wo,Ko={prefix:"fas",iconName:"envelopes-bulk",icon:[640,512,["mail-bulk"],"f674","M128 0C110.3 0 96 14.3 96 32V224h96V192c0-35.3 28.7-64 64-64H480V32c0-17.7-14.3-32-32-32H128zM256 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H576c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H256zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32v13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301V288c0-17.7-14.3-32-32-32H64zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8V480c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V340.8z"]},Zo=Ko,Yo={prefix:"fas",iconName:"circle-h",icon:[512,512,[9405,"hospital-symbol"],"f47e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Xo=Yo,Jo={prefix:"fas",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z"]},Qo=Jo,el={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},tl=el,cl={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},al=cl,il={prefix:"fas",iconName:"truck-ramp-box",icon:[640,512,["truck-loading"],"f4de","M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z"]},nl=il,sl={prefix:"fas",iconName:"scroll-torah",icon:[640,512,["torah"],"f6a0","M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z"]},rl=sl,ol={prefix:"fas",iconName:"broom-ball",icon:[576,512,["quidditch","quidditch-broom-ball"],"f458","M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H364.3L256 211.7V182.6c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},ll=ol,ul=ol,pl={prefix:"fas",iconName:"box-archive",icon:[512,512,["archive"],"f187","M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"]},fl=pl,ml={prefix:"fas",iconName:"arrow-down-9-1",icon:[576,512,["sort-numeric-desc","sort-numeric-down-alt"],"f886","M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V416H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},dl=ml,hl=ml,vl={prefix:"fas",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},gl=vl,zl={prefix:"fas",iconName:"earth-africa",icon:[512,512,[127757,"globe-africa"],"f57c","M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},bl=zl,Cl={prefix:"fas",iconName:"tablet-screen-button",icon:[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64H64V384H384V64z"]},Ml=Cl,Hl={prefix:"fas",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Vl=Hl,yl={prefix:"fas",iconName:"gavel",icon:[512,512,["legal"],"f0e3","M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z"]},Ll=yl,Sl={prefix:"fas",iconName:"bell-concierge",icon:[512,512,[128718,"concierge-bell"],"f562","M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z"]},xl=Sl,Pl={prefix:"fas",iconName:"pen-ruler",icon:[512,512,["pencil-ruler"],"f5ae","M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z"]},wl=Pl,kl={prefix:"fas",iconName:"people-arrows",icon:[640,512,["people-arrows-left-right"],"e068","M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z"]},Al=kl,El={prefix:"fas",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},Nl=El,Tl={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Dl=Tl,Rl={prefix:"fas",iconName:"tachograph-digital",icon:[640,512,["digital-tachograph"],"f566","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},_l=Rl,Ol={prefix:"fas",iconName:"reply",icon:[512,512,[61714,"mail-reply"],"f3e5","M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"]},Il=Ol,jl={prefix:"fas",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Fl=jl,Bl={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},$l=Bl,ql={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},Gl=ql,Wl={prefix:"fas",iconName:"hourglass-end",icon:[384,512,[8987,"hourglass-3"],"f253","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z"]},Ul=Wl,Kl={prefix:"fas",iconName:"heart-crack",icon:[512,512,[128148,"heart-broken"],"f7a9","M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z"]},Zl=Kl,Yl={prefix:"fas",iconName:"square-up-right",icon:[448,512,[8599,"external-link-square-alt"],"f360","M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM320 313.4V176c0-8.8-7.2-16-16-16H166.6c-12.5 0-22.6 10.1-22.6 22.6c0 6 2.4 11.8 6.6 16L184 232l-66.3 66.3C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7L248 296l33.4 33.4c4.2 4.2 10 6.6 16 6.6c12.5 0 22.6-10.1 22.6-22.6z"]},Xl=Yl,Jl={prefix:"fas",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},Ql=Jl,eu={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},tu=eu,cu={prefix:"fas",iconName:"arrow-right-from-bracket",icon:[512,512,["sign-out"],"f08b","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"]},au=cu,iu={prefix:"fas",iconName:"circle-chevron-down",icon:[512,512,["chevron-circle-down"],"f13a","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z"]},nu=iu,su={prefix:"fas",iconName:"unlock-keyhole",icon:[448,512,["unlock-alt"],"f13e","M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z"]},ru=su,ou={prefix:"fas",iconName:"headphones-simple",icon:[512,512,["headphones-alt"],"f58f","M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z"]},lu=ou,uu={prefix:"fas",iconName:"circle-dollar-to-slot",icon:[512,512,["donate"],"f4b9","M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z"]},pu=uu,fu={prefix:"fas",iconName:"volume-low",icon:[448,512,[128264,"volume-down"],"f027","M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z"]},mu=fu,du={prefix:"fas",iconName:"wheat-awn",icon:[512,512,["wheat-alt"],"e2cd","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z"]},hu=du,vu={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},gu=vu,zu={prefix:"fas",iconName:"heading",icon:[448,512,["header"],"f1dc","M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z"]},bu=zu,Cu={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]},Mu=Cu,Hu={prefix:"fas",iconName:"square-phone-flip",icon:[448,512,["phone-square-alt"],"f87b","M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z"]},Vu=Hu,yu={prefix:"fas",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Lu=yu,Su={prefix:"fas",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z"]},xu=Su,Pu={prefix:"fas",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},wu=Pu,ku=Pu,Au={prefix:"fas",iconName:"paintbrush",icon:[576,512,[128396,"paint-brush"],"f1fc","M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H208c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"]},Eu=Au,Nu={prefix:"fas",iconName:"hot-tub-person",icon:[512,512,["hot-tub"],"f593","M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z"]},Tu=Nu,Du={prefix:"fas",iconName:"map-location",icon:[576,512,["map-marked"],"f59f","M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z"]},Ru=Du,_u={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z"]},Ou=_u,Iu={prefix:"fas",iconName:"share-nodes",icon:[448,512,["share-alt"],"f1e0","M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"]},ju=Iu,Fu={prefix:"fas",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9H112z"]},Bu=Fu,$u={prefix:"fas",iconName:"bag-shopping",icon:[448,512,["shopping-bag"],"f290","M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},qu=$u,Gu={prefix:"fas",iconName:"arrow-down-z-a",icon:[576,512,["sort-alpha-desc","sort-alpha-down-alt"],"f881","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z"]},Wu=Gu,Uu=Gu,Ku={prefix:"fas",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z"]},Zu=Ku,Yu={prefix:"fas",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Xu=Yu,Ju={prefix:"fas",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Qu=Ju,ep={prefix:"fas",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},tp=ep,cp={prefix:"fas",iconName:"ear-deaf",icon:[512,512,["deaf","deafness","hard-of-hearing"],"f2a4","M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"]},ap=cp,ip=cp,np=cp,sp={prefix:"fas",iconName:"square-rss",icon:[448,512,["rss-square"],"f143","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},rp=sp,op={prefix:"fas",iconName:"hryvnia-sign",icon:[384,512,[8372,"hryvnia"],"f6f2","M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z"]},lp=op,up={prefix:"fas",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},pp=up,fp={prefix:"fas",iconName:"staff-snake",icon:[384,512,["rod-asclepius","rod-snake","staff-aesculapius"],"e579","M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},mp=fp,dp=fp,hp=fp,vp={prefix:"fas",iconName:"truck-medical",icon:[640,512,[128657,"ambulance"],"f0f9","M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80v48l-48 0c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V192h48c8.8 0 16-7.2 16-16V144c0-8.8-7.2-16-16-16H240V80c0-8.8-7.2-16-16-16H192c-8.8 0-16 7.2-16 16z"]},gp=vp,zp={prefix:"fas",iconName:"temperature-half",icon:[320,512,[127777,"temperature-2","thermometer-2","thermometer-half"],"f2c9","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z"]},bp=zp,Cp=zp,Mp=zp,Hp={prefix:"fas",iconName:"poo-storm",icon:[448,512,["poo-bolt"],"f75a","M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17H128c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 41 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320H304c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9H360c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64h-1.4c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H233.9l52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z"]},Vp=Hp,yp={prefix:"fas",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z"]},Lp=yp,Sp={prefix:"fas",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z"]},xp=Sp,Pp={prefix:"fas",iconName:"file-waveform",icon:[448,512,["file-medical-alt"],"f478","M96 0C60.7 0 32 28.7 32 64V288H144c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320H32V448c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V160H288c-17.7 0-32-14.3-32-32V0H96zM288 0V128H416L288 0z"]},wp=Pp,kp={prefix:"fas",iconName:"gauge",icon:[512,512,["dashboard","gauge-med","tachometer-alt-average"],"f624","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Ap=kp,Ep=kp,Np=kp,Tp={prefix:"fas",iconName:"wand-magic-sparkles",icon:[576,512,["magic-wand-sparkles"],"e2ca","M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z"]},Dp=Tp,Rp={prefix:"fas",iconName:"pen-clip",icon:[512,512,["pen-alt"],"f305","M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"]},_p=Rp,Op={prefix:"fas",iconName:"van-shuttle",icon:[640,512,[128656,"shuttle-van"],"f5b6","M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},Ip=Op,jp={prefix:"fas",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},Fp=jp,Bp={prefix:"fas",iconName:"chart-area",icon:[512,512,["area-chart"],"f1fe","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z"]},$p=Bp,qp={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},Gp=qp,Wp={prefix:"fas",iconName:"spray-can-sparkles",icon:[512,512,["air-freshener"],"f5d0","M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z"]},Up=Wp,Kp={prefix:"fas",iconName:"arrow-pointer",icon:[320,512,["mouse-pointer"],"f245","M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"]},Zp=Kp,Yp={prefix:"fas",iconName:"maximize",icon:[512,512,["expand-arrows-alt"],"f31e","M200 32H56C42.7 32 32 42.7 32 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312V456c0 13.3 10.7 24 24 24H200c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H456c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z"]},Xp=Yp,Jp={prefix:"fas",iconName:"shapes",icon:[512,512,["triangle-circle-square"],"f61f","M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z"]},Qp=Jp,ef={prefix:"fas",iconName:"shuffle",icon:[512,512,[128256,"random"],"f074","M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"]},tf=ef,cf={prefix:"fas",iconName:"person-running",icon:[448,512,[127939,"running"],"f70c","M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H362.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z"]},af=cf,nf={prefix:"fas",iconName:"computer-mouse",icon:[384,512,[128433,"mouse"],"f8cc","M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z"]},sf=nf,rf={prefix:"fas",iconName:"arrow-right-to-bracket",icon:[512,512,["sign-in"],"f090","M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},of=rf,lf={prefix:"fas",iconName:"shop-slash",icon:[640,512,["store-alt-slash"],"e070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z"]},uf=lf,pf={prefix:"fas",iconName:"hourglass-start",icon:[384,512,["hourglass-1"],"f251","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z"]},ff=pf,mf={prefix:"fas",iconName:"right-to-bracket",icon:[512,512,["sign-in-alt"],"f2f6","M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},df=mf,hf={prefix:"fas",iconName:"heart-pulse",icon:[512,512,["heartbeat"],"f21e","M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z"]},vf=hf,gf={prefix:"fas",iconName:"people-carry-box",icon:[640,512,["people-carry"],"f4ce","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z"]},zf=gf,bf={prefix:"fas",iconName:"weight-scale",icon:[512,512,["weight"],"f496","M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z"]},Cf=bf,Mf={prefix:"fas",iconName:"user-group",icon:[640,512,[128101,"user-friends"],"f500","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z"]},Hf=Mf,Vf={prefix:"fas",iconName:"arrow-up-a-z",icon:[576,512,["sort-alpha-up"],"f15e","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z"]},yf=Vf,Lf={prefix:"fas",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Sf=Lf,xf={prefix:"fas",iconName:"circle-arrow-up",icon:[512,512,["arrow-circle-up"],"f0aa","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 231c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V193.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 119c9.4-9.4 24.6-9.4 33.9 0L385 231z"]},Pf=xf,wf={prefix:"fas",iconName:"person-walking",icon:[320,512,[128694,"walking"],"f554","M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z"]},kf=wf,Af={prefix:"fas",iconName:"bed-pulse",icon:[640,512,["procedures"],"f487","M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},Ef=Af,Nf={prefix:"fas",iconName:"shuttle-space",icon:[640,512,["space-shuttle"],"f197","M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z"]},Tf=Nf,Df={prefix:"fas",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rf=Df,_f={prefix:"fas",iconName:"microphone-lines",icon:[384,512,[127897,"microphone-alt"],"f3c9","M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z"]},Of=_f,If={prefix:"fas",iconName:"mars-stroke-up",icon:[320,512,[9896,"mars-stroke-v"],"f22a","M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z"]},jf=If,Ff={prefix:"fas",iconName:"champagne-glasses",icon:[640,512,[129346,"glass-cheers"],"f79f","M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z"]},Bf=Ff,$f={prefix:"fas",iconName:"file-arrow-up",icon:[384,512,["file-upload"],"f574","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z"]},qf=$f,Gf={prefix:"fas",iconName:"wifi",icon:[640,512,["wifi-3","wifi-strong"],"f1eb","M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},Wf=Gf,Uf=Gf,Kf={prefix:"fas",iconName:"bath",icon:[512,512,[128705,"bathtub"],"f2cd","M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z"]},Zf=Kf,Yf={prefix:"fas",iconName:"user-pen",icon:[640,512,["user-edit"],"f4ff","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"]},Xf=Yf,Jf={prefix:"fas",iconName:"border-top-left",icon:[448,512,["border-style"],"f853","M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Qf=Jf,em={prefix:"fas",iconName:"map-location-dot",icon:[576,512,["map-marked-alt"],"f5a0","M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},tm=em,cm={prefix:"fas",iconName:"square-poll-vertical",icon:[448,512,["poll"],"f681","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z"]},am=cm,im={prefix:"fas",iconName:"car-battery",icon:[512,512,["battery-car"],"f5df","M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z"]},nm=im,sm={prefix:"fas",iconName:"mars-stroke-right",icon:[640,512,[9897,"mars-stroke-h"],"f22b","M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z"]},rm=sm,om={prefix:"fas",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z"]},lm=om,um={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},pm=um,fm={prefix:"fas",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},mm=fm,dm={prefix:"fas",iconName:"hands-bubbles",icon:[576,512,["hands-wash"],"e05e","M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7v-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8 0 0 0 0-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.7 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4H352h13.3l0 0H397l23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352v8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H352l0 0 0 0H258.8L305 219.1c15-9.4 19.5-29.1 10.2-44.1z"]},hm=dm,vm={prefix:"fas",iconName:"eye-low-vision",icon:[640,512,["low-vision"],"f2a8","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z"]},gm=vm,zm={prefix:"fas",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},bm=zm,Cm={prefix:"fas",iconName:"martini-glass",icon:[512,512,[127864,"glass-martini-alt"],"f57b","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z"]},Mm=Cm,Hm={prefix:"fas",iconName:"rotate-left",icon:[512,512,["rotate-back","rotate-backward","undo-alt"],"f2ea","M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z"]},Vm=Hm,ym=Hm,Lm=Hm,Sm={prefix:"fas",iconName:"table-columns",icon:[512,512,["columns"],"f0db","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z"]},xm=Sm,Pm={prefix:"fas",iconName:"dolly",icon:[576,512,["dolly-box"],"f472","M0 32C0 14.3 14.3 0 32 0h72.9c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64H32C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z"]},wm=Pm,km={prefix:"fas",iconName:"minimize",icon:[512,512,["compress-arrows-alt"],"f78c","M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z"]},Am=km,Em={prefix:"fas",iconName:"angles-right",icon:[512,512,[187,"angle-double-right"],"f101","M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},Nm=Em,Tm={prefix:"fas",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]},Dm=Tm,Rm={prefix:"fas",iconName:"euro-sign",icon:[320,512,[8364,"eur","euro"],"f153","M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z"]},_m=Rm,Om=Rm,Im={prefix:"fas",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},jm=Im,Fm={prefix:"fas",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z"]},Bm=Fm,$m={prefix:"fas",iconName:"compass-drafting",icon:[512,512,["drafting-compass"],"f568","M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},qm=$m,Gm={prefix:"fas",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},Wm=Gm,Um={prefix:"fas",iconName:"circle-chevron-up",icon:[512,512,["chevron-circle-up"],"f139","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z"]},Km=Um,Zm={prefix:"fas",iconName:"sterling-sign",icon:[320,512,[163,"gbp","pound-sign"],"f154","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1C104.1 390 112 361.5 112 332.5V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z"]},Ym=Zm,Xm=Zm,Jm={prefix:"fas",iconName:"arrow-down-long",icon:[384,512,["long-arrow-down"],"f175","M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z"]},Qm=Jm,ed={prefix:"fas",iconName:"reply-all",icon:[576,512,["mail-reply-all"],"f122","M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z"]},td=ed,cd={prefix:"fas",iconName:"person-skating",icon:[448,512,["skating"],"f7c5","M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z"]},ad=cd,id={prefix:"fas",iconName:"filter-circle-dollar",icon:[576,512,["funnel-dollar"],"f662","M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z"]},nd=id,sd={prefix:"fas",iconName:"circle-arrow-down",icon:[512,512,["arrow-circle-down"],"f0ab","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 281c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 136c0-13.3 10.7-24 24-24s24 10.7 24 24l0 182.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 393c-9.4 9.4-24.6 9.4-33.9 0L127 281z"]},rd=sd,od={prefix:"fas",iconName:"file-import",icon:[512,512,["arrow-right-to-file"],"f56f","M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z"]},ld=od,ud={prefix:"fas",iconName:"square-arrow-up-right",icon:[448,512,["external-link-square"],"f14c","M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"]},pd=ud,fd={prefix:"fas",iconName:"temperature-empty",icon:[320,512,["temperature-0","thermometer-0","thermometer-empty"],"f2cb","M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},md=fd,dd=fd,hd=fd,vd={prefix:"fas",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},gd=vd,zd=vd,bd={prefix:"fas",iconName:"scale-unbalanced-flip",icon:[640,512,["balance-scale-right"],"f516","M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288H200.4zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416H583.3L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z"]},Cd=bd,Md={prefix:"fas",iconName:"diamond-turn-right",icon:[512,512,["directions"],"f5eb","M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z"]},Hd=Md,Vd={prefix:"fas",iconName:"house-laptop",icon:[640,512,["laptop-house"],"e066","M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z"]},yd=Vd,Ld={prefix:"fas",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Sd=Ld,xd={prefix:"fas",iconName:"font-awesome",icon:[448,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z"]},Pd=xd,wd=xd,kd={prefix:"fas",iconName:"cloud-arrow-up",icon:[640,512,[62338,"cloud-upload","cloud-upload-alt"],"f0ee","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z"]},Ad=kd,Ed=kd,Nd={prefix:"fas",iconName:"seedling",icon:[512,512,[127793,"sprout"],"f4d8","M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0h32c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64H64c123.7 0 224 100.3 224 224v32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320C100.3 320 0 219.7 0 96z"]},Td=Nd,Dd={prefix:"fas",iconName:"left-right",icon:[512,512,[8596,"arrows-alt-h"],"f337","M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z"]},Rd=Dd,_d={prefix:"fas",iconName:"circle-arrow-left",icon:[512,512,["arrow-circle-left"],"f0a8","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM231 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L376 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-182.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L119 273c-9.4-9.4-9.4-24.6 0-33.9L231 127z"]},Od=_d,Id={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z"]},jd=Id,Fd=Id,Bd={prefix:"fas",iconName:"cloud-bolt",icon:[512,512,[127785,"thunderstorm"],"f76c","M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z"]},$d=Bd,qd={prefix:"fas",iconName:"text-slash",icon:[640,512,["remove-format"],"f87d","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"]},Gd=qd,Wd={prefix:"fas",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},Ud=Wd,Kd={prefix:"fas",iconName:"arrows-left-right",icon:[512,512,["arrows-h"],"f07e","M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},Zd=Kd,Yd={prefix:"fas",iconName:"cloud-arrow-down",icon:[640,512,[62337,"cloud-download","cloud-download-alt"],"f0ed","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},Xd=Yd,Jd=Yd,Qd={prefix:"fas",iconName:"chalkboard",icon:[576,512,["blackboard"],"f51b","M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z"]},eh=Qd,th={prefix:"fas",iconName:"user-large-slash",icon:[640,512,["user-alt-slash"],"f4fa","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512H528L284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H545.3l.3 0z"]},ch=th,ah={prefix:"fas",iconName:"handshake-simple-slash",icon:[640,512,["handshake-alt-slash"],"e05f","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z"]},ih=ah,nh={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"]},sh=nh,rh=nh,oh={prefix:"fas",iconName:"shield-halved",icon:[512,512,["shield-alt"],"f3ed","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z"]},lh=oh,uh={prefix:"fas",iconName:"book-atlas",icon:[448,512,["atlas"],"f558","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z"]},ph=uh,fh={prefix:"fas",iconName:"house-chimney-crack",icon:[576,512,["house-damage"],"f6f1","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z"]},mh=fh,dh={prefix:"fas",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z"]},hh=dh,vh={prefix:"fas",iconName:"martini-glass-empty",icon:[512,512,["glass-martini"],"f000","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z"]},gh=vh,zh={prefix:"fas",iconName:"person-skiing",icon:[512,512,[9975,"skiing"],"f7c9","M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z"]},bh=zh,Ch={prefix:"fas",iconName:"temperature-arrow-down",icon:[576,512,["temperature-down"],"e03f","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H480V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H384c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z"]},Mh=Ch,Hh={prefix:"fas",iconName:"feather-pointed",icon:[512,512,["feather-alt"],"f56b","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},Vh=Hh,yh={prefix:"fas",iconName:"rectangle-ad",icon:[576,512,["ad"],"f641","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z"]},Lh=yh,Sh={prefix:"fas",iconName:"circle-arrow-right",icon:[512,512,["arrow-circle-right"],"f0a9","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM281 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L136 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l182.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L393 239c9.4 9.4 9.4 24.6 0 33.9L281 385z"]},xh=Sh,Ph={prefix:"fas",iconName:"sort",icon:[320,512,["unsorted"],"f0dc","M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z"]},wh=Ph,kh={prefix:"fas",iconName:"list-ol",icon:[512,512,["list-1-2","list-numeric"],"f0cb","M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Ah=kh,Eh=kh,Nh={prefix:"fas",iconName:"money-check-dollar",icon:[576,512,["money-check-alt"],"f53d","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164 152v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V360c0 11-9 20-20 20s-20-9-20-20V345.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V152c0-11 9-20 20-20s20 9 20 20z"]},Th=Nh,Dh={prefix:"fas",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},Rh=Dh,_h={prefix:"fas",iconName:"up-down-left-right",icon:[512,512,["arrows-alt"],"f0b2","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},Oh=_h,Ih={prefix:"fas",iconName:"star-half-stroke",icon:[640,512,["star-half-alt"],"f5c0","M320 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L320.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L320.1 439.8 191.8 508.3C181 514 167.9 513.1 158 506s-14.9-19.3-12.9-31.3L169.8 329 65.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L227 150.3 291.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L470.5 329l24.6 145.7z"]},jh=Ih,Fh={prefix:"fas",iconName:"whiskey-glass",icon:[512,512,[129347,"glass-whiskey"],"f7a0","M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z"]},Bh=Fh,$h={prefix:"fas",iconName:"arrow-up-right-from-square",icon:[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},qh=$h,Gh={prefix:"fas",iconName:"won-sign",icon:[512,512,[8361,"krw","won"],"f159","M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z"]},Wh=Gh,Uh=Gh,Kh={prefix:"fas",iconName:"taxi",icon:[512,512,[128662,"cab"],"f1ba","M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Zh=Kh,Yh={prefix:"fas",iconName:"chart-pie",icon:[576,512,["pie-chart"],"f200","M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z"]},Xh=Yh,Jh={prefix:"fas",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},Qh=Jh,ev={prefix:"fas",iconName:"location-pin",icon:[384,512,["map-marker"],"f041","M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"]},tv=ev,cv={prefix:"fas",iconName:"helmet-safety",icon:[576,512,["hard-hat","hat-hard"],"f807","M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z"]},av=cv,iv=cv,nv={prefix:"fas",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1l99.9 107.1c3.5 3.8 5.5 8.7 5.5 13.8s-2 10.1-5.5 13.8L294.6 376.9c-4.2 4.5-10.1 7.1-16.3 7.1C266 384 256 374 256 361.7l0-57.7-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-57.7c0-12.3 10-22.3 22.3-22.3c6.2 0 12.1 2.6 16.3 7.1z"]},sv=nv,rv={prefix:"fas",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z"]},ov=rv,lv={prefix:"fas",iconName:"chart-line",icon:[512,512,["line-chart"],"f201","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"]},uv=lv,pv={prefix:"fas",iconName:"signs-post",icon:[512,512,["map-signs"],"f277","M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},fv=pv,mv={prefix:"fas",iconName:"screwdriver-wrench",icon:[512,512,["tools"],"f7d9","M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},dv=mv,hv={prefix:"fas",iconName:"house-user",icon:[576,512,["home-user"],"e1b0","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z"]},vv=hv,gv={prefix:"fas",iconName:"martini-glass-citrus",icon:[576,512,["cocktail"],"f561","M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z"]},zv=gv,bv={prefix:"fas",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Cv=bv,Mv={prefix:"fas",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Hv=Mv,Vv={prefix:"fas",iconName:"apple-whole",icon:[448,512,[127822,127823,"apple-alt"],"f5d1","M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z"]},yv=Vv,Lv={prefix:"fas",iconName:"temperature-quarter",icon:[320,512,["temperature-1","thermometer-1","thermometer-quarter"],"f2ca","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z"]},Sv=Lv,xv=Lv,Pv=Lv,wv={prefix:"fas",iconName:"square-poll-horizontal",icon:[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"]},kv=wv,Av={prefix:"fas",iconName:"backward-fast",icon:[512,512,[9198,"fast-backward"],"f049","M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z"]},Ev=Av,Nv={prefix:"fas",iconName:"basketball",icon:[512,512,[127936,"basketball-ball"],"f434","M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z"]},Tv=Nv,Dv={prefix:"fas",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4l107.1-99.9c3.8-3.5 8.7-5.5 13.8-5.5s10.1 2 13.8 5.5l107.1 99.9c4.5 4.2 7.1 10.1 7.1 16.3c0 12.3-10 22.3-22.3 22.3H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H150.3C138 256 128 246 128 233.7c0-6.2 2.6-12.1 7.1-16.3z"]},Rv=Dv,_v={prefix:"fas",iconName:"mobile-screen-button",icon:[384,512,["mobile-alt"],"f3cd","M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64H80V384H304V64z"]},Ov=_v,Iv={prefix:"fas",iconName:"volume-high",icon:[640,512,[128266,"volume-up"],"f028","M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z"]},jv=Iv,Fv={prefix:"fas",iconName:"burger",icon:[512,512,["hamburger"],"f805","M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z"]},Bv=Fv,$v={prefix:"fas",iconName:"rupee-sign",icon:[448,512,[8360,"rupee"],"f156","M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z"]},qv=$v,Gv={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Wv=Gv,Uv={prefix:"fas",iconName:"phone-flip",icon:[512,512,[128381,"phone-alt"],"f879","M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z"]},Kv=Uv,Zv={prefix:"fas",iconName:"forward-fast",icon:[512,512,[9197,"fast-forward"],"f050","M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z"]},Yv=Zv,Xv={prefix:"fas",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Jv=Xv,Qv={prefix:"fas",iconName:"square-parking",icon:[448,512,[127359,"parking"],"f540","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z"]},eg=Qv,tg={prefix:"fas",iconName:"bars-progress",icon:[512,512,["tasks-alt"],"f828","M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z"]},cg=tg,ag={prefix:"fas",iconName:"cart-flatbed",icon:[640,512,["dolly-flatbed"],"f474","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z"]},ig=ag,ng={prefix:"fas",iconName:"ban-smoking",icon:[512,512,[128685,"smoking-ban"],"f54d","M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z"]},sg=ng,rg={prefix:"fas",iconName:"basket-shopping",icon:[576,512,["shopping-basket"],"f291","M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},og=rg,lg={prefix:"fas",iconName:"bus-simple",icon:[448,512,["bus-alt"],"f55e","M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},ug=lg,pg={prefix:"fas",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},fg=pg,mg={prefix:"fas",iconName:"signal",icon:[640,512,[128246,"signal-5","signal-perfect"],"f012","M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},dg=mg,hg=mg,vg={prefix:"fas",iconName:"house-chimney",icon:[576,512,[63499,"home-lg"],"e3af","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z"]},gg=vg,zg={prefix:"fas",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},bg=zg,Cg={prefix:"fas",iconName:"shop",icon:[640,512,["store-alt"],"f54f","M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z"]},Mg=Cg,Hg={prefix:"fas",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Vg=Hg,yg={prefix:"fas",iconName:"scale-unbalanced",icon:[640,512,["balance-scale-left"],"f515","M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288H439.6zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416H56.7l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z"]},Lg=yg,Sg={prefix:"fas",iconName:"sort-up",icon:[320,512,["sort-asc"],"f0de","M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},xg=Sg,Pg={prefix:"fas",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},wg=Pg,kg={prefix:"fas",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Ag=kg,Eg={prefix:"fas",iconName:"hand-holding-dollar",icon:[576,512,["hand-holding-usd"],"f4c0","M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]},Ng=Eg,Tg={prefix:"fas",iconName:"hands-praying",icon:[640,512,["praying-hands"],"f684","M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z"]},Dg=Tg,Rg={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]},_g=Rg,Og=Rg,Ig=Rg,jg={prefix:"fas",iconName:"location-crosshairs",icon:[512,512,["location"],"f601","M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},Fg=jg,Bg={prefix:"fas",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z"]},$g=Bg,qg={prefix:"fas",iconName:"calendar-xmark",icon:[512,512,["calendar-times"],"f273","M160 0c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H32V112c0-26.5 21.5-48 48-48h48V32c0-17.7 14.3-32 32-32zM32 192H480V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V192zM337 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"]},Gg=qg,Wg={prefix:"fas",iconName:"user-gear",icon:[640,512,["user-cog"],"f4fe","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z"]},Ug=Wg,Kg={prefix:"fas",iconName:"arrow-up-1-9",icon:[576,512,["sort-numeric-up"],"f163","M450.7 38c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V108.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},Zg=Kg,Yg={prefix:"fas",iconName:"person-digging",icon:[576,512,["digging"],"f85e","M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z"]},Xg=Yg,Jg={prefix:"fas",iconName:"gauge-simple",icon:[512,512,["gauge-simple-med","tachometer-average"],"f629","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Qg=Jg,ez=Jg,tz={prefix:"fas",iconName:"quote-right",icon:[448,512,[8221,"quote-right-alt"],"f10e","M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z"]},cz=tz,az={prefix:"fas",iconName:"shirt",icon:[640,512,[128085,"t-shirt","tshirt"],"f553","M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z"]},iz=az,nz=az,sz={prefix:"fas",iconName:"tenge-sign",icon:[384,512,[8376,"tenge"],"f7d7","M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z"]},rz=sz,oz={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},lz=oz,uz={prefix:"fas",iconName:"table-cells",icon:[512,512,["th"],"f00a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z"]},pz=uz,fz={prefix:"fas",iconName:"book-bible",icon:[448,512,["bible"],"f647","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z"]},mz=fz,dz={prefix:"fas",iconName:"suitcase-medical",icon:[512,512,["medkit"],"f0fa","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z"]},hz=dz,vz={prefix:"fas",iconName:"person-dress",icon:[320,512,["female"],"f182","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z"]},gz=vz,zz={prefix:"fas",iconName:"business-time",icon:[640,512,["briefcase-clock"],"f64a","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z"]},bz=zz,Cz={prefix:"fas",iconName:"table-cells-large",icon:[512,512,["th-large"],"f009","M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},Mz=Cz,Hz={prefix:"fas",iconName:"book-tanakh",icon:[448,512,["tanakh"],"f827","M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z"]},Vz=Hz,yz={prefix:"fas",iconName:"phone-volume",icon:[512,512,["volume-control-phone"],"f2a0","M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z"]},Lz=yz,Sz={prefix:"fas",iconName:"cake-candles",icon:[448,512,[127874,"birthday-cake","cake"],"f1fd","M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z"]},xz=Sz,Pz=Sz,wz={prefix:"fas",iconName:"angles-up",icon:[448,512,["angle-double-up"],"f102","M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},kz=wz,Az={prefix:"fas",iconName:"arrow-up-9-1",icon:[576,512,["sort-numeric-up-alt"],"f887","M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V364.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},Ez=Az,Nz={prefix:"fas",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z"]},Tz=Nz,Dz={prefix:"fas",iconName:"user-doctor",icon:[448,512,["user-md"],"f0f0","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},Rz=Dz,_z={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Oz=_z,Iz={prefix:"fas",iconName:"camera",icon:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},jz=Iz,Fz={prefix:"fas",iconName:"arrow-down-1-9",icon:[576,512,["sort-numeric-asc","sort-numeric-down"],"f162","M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V160H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},Bz=Fz,$z=Fz,qz={prefix:"fas",iconName:"hand-holding-droplet",icon:[576,512,["hand-holding-water"],"f4c1","M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]},Gz=qz,Wz={prefix:"fas",iconName:"prescription-bottle-medical",icon:[384,512,["prescription-bottle-alt"],"f486","M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"]},Uz=Wz,Kz={prefix:"fas",iconName:"arrow-down-a-z",icon:[576,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z"]},Zz=Kz,Yz=Kz,Xz={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]},Jz=Xz,Qz=Xz,eb=Xz,tb=Xz,cb={prefix:"fas",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},ab=cb,ib={prefix:"fas",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z"]},nb=ib,sb={prefix:"fas",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z"]},rb=sb,ob={prefix:"fas",iconName:"person-skiing-nordic",icon:[576,512,["skiing-nordic"],"f7ca","M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z"]},lb=ob,ub={prefix:"fas",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9L117.5 269.8c-3.5-3.8-5.5-8.7-5.5-13.8s2-10.1 5.5-13.8l99.9-107.1c4.2-4.5 10.1-7.1 16.3-7.1c12.3 0 22.3 10 22.3 22.3l0 57.7 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 57.7c0 12.3-10 22.3-22.3 22.3c-6.2 0-12.1-2.6-16.3-7.1z"]},pb=ub,fb={prefix:"fas",iconName:"train-subway",icon:[448,512,["subway"],"f239","M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},mb=fb,db={prefix:"fas",iconName:"indian-rupee-sign",icon:[320,512,["indian-rupee","inr"],"e1bc","M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z"]},hb=db,vb=db,gb={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z"]},zb=gb,bb={prefix:"fas",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z"]},Cb=bb,Mb={prefix:"fas",iconName:"left-long",icon:[512,512,["long-arrow-alt-left"],"f30a","M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z"]},Hb=Mb,Vb={prefix:"fas",iconName:"minus",icon:[448,512,[8211,8722,10134,"subtract"],"f068","M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"]},yb=Vb,Lb={prefix:"fas",iconName:"arrow-left-long",icon:[512,512,["long-arrow-left"],"f177","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"]},Sb=Lb,xb={prefix:"fas",iconName:"hands-asl-interpreting",icon:[640,512,["american-sign-language-interpreting","asl-interpreting","hands-american-sign-language-interpreting"],"f2a3","M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"]},Pb=xb,wb=xb,kb=xb,Ab={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},Eb=Ab,Nb={prefix:"fas",iconName:"droplet-slash",icon:[640,512,["tint-slash"],"f5c7","M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.1 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0h-1.8c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Tb=Nb,Db={prefix:"fas",iconName:"cart-shopping",icon:[576,512,[128722,"shopping-cart"],"f07a","M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Rb=Db,_b={prefix:"fas",iconName:"arrow-turn-up",icon:[384,512,["level-up"],"f148","M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"]},Ob=_b,Ib={prefix:"fas",iconName:"square-root-variable",icon:[576,512,["square-root-alt"],"f698","M282.6 78.1c8-27.3 33-46.1 61.4-46.1H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H344L238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H77.6c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},jb=Ib,Fb={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},Bb=Fb,$b={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z"]},qb=$b,Gb={prefix:"fas",iconName:"house-chimney-medical",icon:[576,512,["clinic-medical"],"f7f2","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z"]},Wb=Gb,Ub={prefix:"fas",iconName:"temperature-three-quarters",icon:[320,512,["temperature-3","thermometer-3","thermometer-three-quarters"],"f2c8","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V144c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z"]},Kb=Ub,Zb=Ub,Yb=Ub,Xb={prefix:"fas",iconName:"mobile-screen",icon:[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z"]},Jb=Xb,Qb={prefix:"fas",iconName:"battery-half",icon:[576,512,["battery-3"],"f242","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z"]},eC=Qb,tC={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"]},cC=tC,aC={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},iC=aC,nC={prefix:"fas",iconName:"right-long",icon:[512,512,["long-arrow-alt-right"],"f30b","M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z"]},sC=nC,rC={prefix:"fas",iconName:"tty",icon:[512,512,["teletype"],"f1e4","M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4V144c-49.6-18.1-104-18.1-153.6 0v54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V336zm0 96c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V432zM144 320h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V336zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V336zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V432c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V432z"]},oC=rC,lC={prefix:"fas",iconName:"person-hiking",icon:[384,512,["hiking"],"f6ec","M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z"]},uC=lC,pC={prefix:"fas",iconName:"cable-car",icon:[512,512,[128673,57551,"tram"],"f7da","M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z"]},fC=pC,mC={prefix:"fas",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},dC=mC,hC={prefix:"fas",iconName:"delete-left",icon:[576,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},vC=hC,gC={prefix:"fas",iconName:"eye-dropper",icon:[512,512,["eye-dropper-empty","eyedropper"],"f1fb","M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z"]},zC=gC,bC=gC,CC={prefix:"fas",iconName:"mobile",icon:[384,512,[128241,"mobile-android","mobile-phone"],"f3ce","M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},MC=CC,HC=CC,VC={prefix:"fas",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},yC=VC,LC={prefix:"fas",iconName:"book-skull",icon:[448,512,["book-dead"],"f6b7","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z"]},SC=LC,xC={prefix:"fas",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z"]},PC=xC,wC={prefix:"fas",iconName:"outdent",icon:[448,512,["dedent"],"f03b","M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"]},kC=wC,AC={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},EC=AC,NC=AC,TC=AC,DC={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]},RC=DC,_C={prefix:"fas",iconName:"rotate-right",icon:[512,512,["redo-alt","rotate-forward"],"f2f9","M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"]},OC=_C,IC=_C,jC={prefix:"fas",iconName:"utensils",icon:[448,512,[127860,61685,"cutlery"],"f2e7","M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z"]},FC=jC,BC={prefix:"fas",iconName:"arrow-up-wide-short",icon:[576,512,["sort-amount-up"],"f161","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},$C=BC,qC={prefix:"fas",iconName:"tower-broadcast",icon:[576,512,["broadcast-tower"],"f519","M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z"]},GC=qC,WC={prefix:"fas",iconName:"up-long",icon:[320,512,["long-arrow-alt-up"],"f30c","M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192H96l0 288c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32l0-288h72c9.6 0 18.2-5.7 22-14.5z"]},UC=WC,KC={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},ZC=KC,YC={prefix:"fas",iconName:"bolt",icon:[448,512,[9889,"zap"],"f0e7","M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z"]},XC=YC,JC={prefix:"fas",iconName:"yen-sign",icon:[320,512,[165,"cny","jpy","rmb","yen"],"f157","M58.6 46.2C48.8 31.5 29 27.6 14.3 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z"]},QC=JC,eM=JC,tM=JC,cM=JC,aM={prefix:"fas",iconName:"ruble-sign",icon:[384,512,[8381,"rouble","rub","ruble"],"f158","M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},iM=aM,nM=aM,sM=aM,rM={prefix:"fas",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},oM=rM,lM={prefix:"fas",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6L269.8 394.5c-3.8 3.5-8.7 5.5-13.8 5.5s-10.1-2-13.8-5.5L135.1 294.6c-4.5-4.2-7.1-10.1-7.1-16.3c0-12.3 10-22.3 22.3-22.3l57.7 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 57.7 0c12.3 0 22.3 10 22.3 22.3c0 6.2-2.6 12.1-7.1 16.3z"]},uM=lM,pM={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},fM=pM,mM=pM,dM={prefix:"fas",iconName:"arrow-right-long",icon:[512,512,["long-arrow-right"],"f178","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},hM=dM,vM={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},gM=vM,zM={prefix:"fas",iconName:"kit-medical",icon:[576,512,["first-aid"],"f479","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z"]},bM=zM,CM={prefix:"fas",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z"]},MM=CM,HM={prefix:"fas",iconName:"car",icon:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},VM=HM,yM={prefix:"fas",iconName:"book-open-reader",icon:[512,512,["book-reader"],"f5da","M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z"]},LM=yM,SM={prefix:"fas",iconName:"temperature-arrow-up",icon:[576,512,["temperature-up"],"e040","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z"]},xM=SM,PM={prefix:"fas",iconName:"square-h",icon:[448,512,["h-square"],"f0fd","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},wM=PM,kM={prefix:"fas",iconName:"temperature-full",icon:[320,512,["temperature-4","thermometer-4","thermometer-full"],"f2c7","M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z"]},AM=kM,EM=kM,NM=kM,TM={prefix:"fas",iconName:"handshake-angle",icon:[640,512,["hands-helping"],"f4c4","M544 248v3.3l69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5H296c-37.1 0-67.6 28-71.6 64H224V248c0 22.1 17.9 40 40 40s40-17.9 40-40V176c0 0 0-.1 0-.1V160l16 0 136 0c0 0 0 0 .1 0H464c44.2 0 80 35.8 80 80v8zM336 192v56c0 39.8-32.2 72-72 72s-72-32.2-72-72V129.4c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1H384c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16H432c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8v-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z"]},DM=TM,RM={prefix:"fas",iconName:"location-dot",icon:[384,512,["map-marker-alt"],"f3c5","M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},_M=RM,OM={prefix:"fas",iconName:"person-swimming",icon:[576,512,[127946,"swimmer"],"f5c4","M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},IM=OM,jM={prefix:"fas",iconName:"droplet",icon:[384,512,[128167,"tint"],"f043","M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"]},FM=jM,BM={prefix:"fas",iconName:"earth-americas",icon:[512,512,[127758,"earth","earth-america","globe-americas"],"f57d","M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},$M=BM,qM=BM,GM=BM,WM={prefix:"fas",iconName:"battery-empty",icon:[576,512,["battery-0"],"f244","M80 160c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zM0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176z"]},UM=WM,KM={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},ZM=KM,YM=KM,XM={prefix:"fas",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z"]},JM=XM,QM=XM,eH={prefix:"fas",iconName:"bars-staggered",icon:[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},tH=eH,cH=eH,aH={prefix:"fas",iconName:"person-walking-with-cane",icon:[512,512,["blind"],"f29d","M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z"]},iH=aH,nH={prefix:"fas",iconName:"check-to-slot",icon:[576,512,["vote-yea"],"f772","M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z"]},sH=nH,rH={prefix:"fas",iconName:"boxes-stacked",icon:[576,512,[62625,"boxes","boxes-alt"],"f468","M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z"]},oH=rH,lH=rH,uH={prefix:"fas",iconName:"link",icon:[640,512,[128279,"chain"],"f0c1","M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"]},pH=uH,fH={prefix:"fas",iconName:"ear-listen",icon:[512,512,["assistive-listening-systems"],"f2a2","M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},mH=fH,dH={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},hH=dH,vH={prefix:"fas",iconName:"table-tennis-paddle-ball",icon:[640,512,[127955,"ping-pong-paddle-ball","table-tennis"],"f45d","M480 288c-50.1 0-93.6 28.8-114.6 70.8L132.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C535.8 297.6 509 288 480 288zM113.3 151.9L354.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H357c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L152.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32c-6.3-6.3-9.7-14.9-9.4-23.8s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8c-24-24-37.5-56.6-37.5-90.5v-2.7c0-22.8 6.1-44.9 17.3-64.3zM480 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},gH=vH,zH=vH,bH={prefix:"fas",iconName:"person-dots-from-line",icon:[576,512,["diagnoses"],"f470","M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},CH=bH,MH={prefix:"fas",iconName:"trash-can-arrow-up",icon:[448,512,["trash-restore-alt"],"f82a","M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},HH=MH,VH={prefix:"fas",iconName:"file-pen",icon:[576,512,[128221,"file-edit"],"f31c","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},yH=VH,LH={prefix:"fas",iconName:"square-pen",icon:[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},SH=LH,xH=LH,PH={prefix:"fas",iconName:"battery-full",icon:[576,512,[128267,"battery","battery-5"],"f240","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm368 96H96V320H448V192z"]},wH=PH,kH=PH,AH={prefix:"fas",iconName:"list-ul",icon:[512,512,["list-dots"],"f0ca","M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},EH=AH,NH={prefix:"fas",iconName:"down-long",icon:[320,512,["long-arrow-alt-down"],"f309","M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z"]},TH=NH,DH={prefix:"fas",iconName:"landmark-dome",icon:[512,512,["landmark-alt"],"f752","M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z"]},RH=DH,_H={prefix:"fas",iconName:"tv",icon:[640,512,[63717,"television","tv-alt"],"f26c","M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},OH=_H,IH=_H,jH={prefix:"fas",iconName:"list-check",icon:[512,512,["tasks"],"f0ae","M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},FH=jH,BH={prefix:"fas",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z"]},$H=BH,qH={prefix:"fas",iconName:"car-burst",icon:[640,512,["car-crash"],"f5e1","M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z"]},GH=qH,WH={prefix:"fas",iconName:"person-snowboarding",icon:[512,512,[127938,"snowboarding"],"f7ce","M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H472c13.3 0 24 10.7 24 24s-10.7 24-24 24H443.8c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},UH=WH,KH={prefix:"fas",iconName:"truck-fast",icon:[640,512,["shipping-fast"],"f48b","M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},ZH=KH,YH={prefix:"fas",iconName:"circle-half-stroke",icon:[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},XH=YH,JH={prefix:"fas",iconName:"circle-radiation",icon:[512,512,[9762,"radiation-alt"],"f7ba","M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},QH=JH,eV={prefix:"fas",iconName:"baseball",icon:[512,512,[129358,9918,"baseball-ball"],"f433","M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z"]},tV=eV,cV={prefix:"fas",iconName:"diagram-project",icon:[576,512,["project-diagram"],"f542","M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z"]},aV=cV,iV={prefix:"fas",iconName:"volume-xmark",icon:[576,512,["volume-mute","volume-times"],"f6a9","M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},nV=iV,sV=iV,rV={prefix:"fas",iconName:"grip",icon:[448,512,["grip-horizontal"],"f58d","M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z"]},oV=rV,lV={prefix:"fas",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z"]},uV=lV,pV={prefix:"fas",iconName:"child-combatant",icon:[576,512,["child-rifle"],"e4e0","M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z"]},fV=pV,mV={prefix:"fas",iconName:"square-phone",icon:[448,512,["phone-square"],"f098","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z"]},dV=mV,hV={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"]},vV=hV,gV={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},zV=gV,bV=gV,CV=gV,MV=gV,HV={prefix:"fas",iconName:"arrows-up-down-left-right",icon:[512,512,["arrows"],"f047","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"]},VV=HV,yV={prefix:"fas",iconName:"chalkboard-user",icon:[640,512,["chalkboard-teacher"],"f51c","M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z"]},LV=yV,SV={prefix:"fas",iconName:"quote-left",icon:[448,512,[8220,"quote-left-alt"],"f10d","M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z"]},xV=SV,PV={prefix:"fas",iconName:"trash-arrow-up",icon:[448,512,["trash-restore"],"f829","M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},wV=PV,kV={prefix:"fas",iconName:"shekel-sign",icon:[448,512,[8362,"ils","shekel","sheqel","sheqel-sign"],"f20b","M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z"]},AV=kV,EV=kV,NV=kV,TV=kV,DV={prefix:"fas",iconName:"photo-film",icon:[640,512,["photo-video"],"f87c","M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z"]},RV=DV,_V={prefix:"fas",iconName:"sign-hanging",icon:[512,512,["sign"],"f4d9","M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z"]},OV=_V,IV={prefix:"fas",iconName:"tablet",icon:[448,512,["tablet-android"],"f3fb","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},jV=IV,FV={prefix:"fas",iconName:"car-rear",icon:[512,512,["car-alt"],"f5de","M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},BV=FV,$V={prefix:"fas",iconName:"battery-quarter",icon:[576,512,["battery-2"],"f243","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm112 96H96V320h96V192z"]},qV=$V,GV={prefix:"fas",iconName:"baby-carriage",icon:[512,512,["carriage-baby"],"f77d","M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},WV=GV,UV={prefix:"fas",iconName:"percent",icon:[384,512,[62101,62785,"percentage"],"25","M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},KV=UV,ZV={prefix:"fas",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},YV=ZV,XV={prefix:"fas",iconName:"thumbtack",icon:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z"]},JV=XV,QV={prefix:"fas",iconName:"person-praying",icon:[448,512,[128720,"pray"],"f683","M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z"]},ey=QV,ty={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z"]},cy=ty,ay={prefix:"fas",iconName:"gears",icon:[640,512,["cogs"],"f085","M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},iy=ay,ny={prefix:"fas",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},sy=ny,ry={prefix:"fas",iconName:"transgender",icon:[512,512,[9895,"transgender-alt"],"f225","M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},oy=ry,ly={prefix:"fas",iconName:"arrow-turn-down",icon:[384,512,["level-down"],"f149","M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"]},uy=ly,py={prefix:"fas",iconName:"ticket-simple",icon:[576,512,["ticket-alt"],"f3ff","M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192V128z"]},fy=py,my={prefix:"fas",iconName:"angles-left",icon:[512,512,[171,"angle-double-left"],"f100","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"]},dy=my,hy={prefix:"fas",iconName:"clock-rotate-left",icon:[512,512,["history"],"f1da","M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z"]},vy=hy,gy={prefix:"fas",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z"]},zy=gy,by={prefix:"fas",iconName:"file-export",icon:[576,512,["arrow-right-from-file"],"f56e","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V288H216c-13.3 0-24 10.7-24 24s10.7 24 24 24H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM384 336V288H494.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H384zm0-208H256V0L384 128z"]},Cy=by,My={prefix:"fas",iconName:"shield",icon:[512,512,[128737,"shield-blank"],"f132","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z"]},Hy=My,Vy={prefix:"fas",iconName:"arrow-up-short-wide",icon:[576,512,["sort-amount-up-alt"],"f885","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z"]},yy=Vy,Ly={prefix:"fas",iconName:"golf-ball-tee",icon:[384,512,["golf-ball"],"f450","M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z"]},Sy=Ly,xy={prefix:"fas",iconName:"circle-chevron-left",icon:[512,512,["chevron-circle-left"],"f137","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z"]},Py=xy,wy={prefix:"fas",iconName:"wand-magic",icon:[512,512,["magic"],"f0d0","M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z"]},ky=wy,Ay={prefix:"fas",iconName:"wine-glass-empty",icon:[320,512,["wine-glass-alt"],"f5ce","M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z"]},Ey=Ay,Ny={prefix:"fas",iconName:"person-biking",icon:[640,512,[128692,"biking"],"f84a","M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},Ty=Ny,Dy={prefix:"fas",iconName:"earth-oceania",icon:[512,512,["globe-oceania"],"e47b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},Ry=Dy,_y={prefix:"fas",iconName:"square-xmark",icon:[448,512,[10062,"times-square","xmark-square"],"f2d3","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Oy=_y,Iy=_y,jy={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512H24c-13.3 0-24-10.7-24-24V344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]},Fy=jy,By={prefix:"fas",iconName:"up-down",icon:[256,512,[8597,11021,"arrows-alt-v"],"f338","M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z"]},$y=By,qy={prefix:"fas",iconName:"bahai",icon:[576,512,["haykal"],"f666","M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z"]},Gy=qy,Wy={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Uy=Wy,Ky={prefix:"fas",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Zy=Ky,Yy={prefix:"fas",iconName:"link-slash",icon:[640,512,["chain-broken","chain-slash","unlink"],"f127","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z"]},Xy=Yy,Jy=Yy,Qy=Yy,eL={prefix:"fas",iconName:"arrow-up-z-a",icon:[576,512,["sort-alpha-up-alt"],"f882","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z"]},tL=eL,cL={prefix:"fas",iconName:"fire-flame-curved",icon:[384,512,["fire-alt"],"f7e4","M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z"]},aL=cL,iL={prefix:"fas",iconName:"book-quran",icon:[448,512,["quran"],"f687","M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z"]},nL=iL,sL={prefix:"fas",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},rL=sL,oL={prefix:"fas",iconName:"rss",icon:[448,512,["feed"],"f09e","M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},lL=oL,uL={prefix:"fas",iconName:"scale-balanced",icon:[640,512,[9878,"balance-scale"],"f24e","M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288H584.4L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320H199.3L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z"]},pL=uL,fL={prefix:"fas",iconName:"gauge-simple-high",icon:[512,512,[61668,"tachometer","tachometer-fast"],"f62a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"]},mL=fL,dL=fL,hL={prefix:"fas",iconName:"desktop",icon:[576,512,[128421,61704,"desktop-alt"],"f390","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z"]},vL=hL,gL={prefix:"fas",iconName:"table-list",icon:[512,512,["th-list"],"f00b","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z"]},zL=gL,bL={prefix:"fas",iconName:"comment-sms",icon:[512,512,["sms"],"f7cd","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.8 .9 4.1 1.4l0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z"]},CL=bL,ML={prefix:"fas",iconName:"battery-three-quarters",icon:[576,512,["battery-4"],"f241","M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm272 96H96V320H352V192z"]},HL=ML,VL={prefix:"fas",iconName:"hand-fist",icon:[448,512,[9994,"fist-raised"],"f6de","M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z"]},yL=VL,LL={prefix:"fas",iconName:"image-portrait",icon:[384,512,["portrait"],"f3e0","M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z"]},SL=LL,xL={prefix:"fas",iconName:"earth-europe",icon:[512,512,["globe-europe"],"f7a2","M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z"]},PL=xL,wL={prefix:"fas",iconName:"cart-flatbed-suitcase",icon:[640,512,["luggage-cart"],"f59d","M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z"]},kL=wL,AL={prefix:"fas",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},EL=AL,NL=AL,TL=AL,DL={prefix:"fas",iconName:"book-journal-whills",icon:[448,512,["journal-whills"],"f66a","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z"]},RL=DL,_L={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},OL=_L,IL=_L,jL={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z"]},FL=jL,BL=jL,$L={prefix:"fas",iconName:"right-left",icon:[512,512,["exchange-alt"],"f362","M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z"]},qL=$L,GL={prefix:"fas",iconName:"money-bill-1-wave",icon:[576,512,["money-bill-wave-alt"],"f53b","M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z"]},WL=GL,UL={prefix:"fas",iconName:"hands",icon:[576,512,["sign-language","signing"],"f2a7","M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7v-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8 0 0 0 0 43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4H224 210.7l0 0H179l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352v8c0 83.9-68.1 152-152 152H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h92c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H56c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H224l0 0 0 0h93.2L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z"]},KL=UL,ZL=UL,YL={prefix:"fas",iconName:"water-ladder",icon:[576,512,["ladder-water","swimming-pool"],"f5c5","M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},XL=YL,JL=YL,QL={prefix:"fas",iconName:"arrows-up-down",icon:[320,512,["arrows-v"],"f07d","M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"]},eS=QL,tS={prefix:"fas",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},cS=tS,aS={prefix:"fas",iconName:"wheelchair-move",icon:[448,512,["wheelchair-alt"],"e2ce","M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},iS=aS,nS={prefix:"fas",iconName:"turn-down",icon:[384,512,[10549,"level-down-alt"],"f3be","M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5h88l0-192c0-17.7-14.3-32-32-32H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192h88c9.6 0 18.2 5.7 22 14.5z"]},sS=nS,rS={prefix:"fas",iconName:"square-envelope",icon:[448,512,["envelope-square"],"f199","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z"]},oS=rS,lS={prefix:"fas",iconName:"bandage",icon:[640,512,[129657,"band-aid"],"f462","M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},uS=lS,pS={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},fS=pS,mS=pS,dS={prefix:"fas",iconName:"earth-asia",icon:[512,512,[127759,"globe-asia"],"f57e","M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z"]},hS=dS,vS={prefix:"fas",iconName:"id-card-clip",icon:[576,512,["id-card-alt"],"f47f","M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},gS=vS,zS={prefix:"fas",iconName:"magnifying-glass-plus",icon:[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z"]},bS=zS,CS={prefix:"fas",iconName:"hand-dots",icon:[512,512,["allergies"],"f461","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},MS=CS,HS={prefix:"fas",iconName:"mug-saucer",icon:[640,512,["coffee"],"f0f4","M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},VS=HS,yS={prefix:"fas",iconName:"magnifying-glass-minus",icon:[512,512,["search-minus"],"f010","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z"]},LS=yS,SS={prefix:"fas",iconName:"user-large",icon:[512,512,["user-alt"],"f406","M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z"]},xS=SS,PS={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z"]},wS=PS,kS={prefix:"fas",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},AS=kS,ES={prefix:"fas",iconName:"turkish-lira-sign",icon:[384,512,["try","turkish-lira"],"e2bb","M96 32c17.7 0 32 14.3 32 32V99.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480H96c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6V64c0-17.7 14.3-32 32-32z"]},NS=ES,TS=ES,DS={prefix:"fas",iconName:"dollar-sign",icon:[320,512,[128178,61781,"dollar","usd"],"24","M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z"]},RS=DS,_S=DS,OS={prefix:"fas",iconName:"magnifying-glass-dollar",icon:[512,512,["search-dollar"],"f688","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z"]},IS=OS,jS={prefix:"fas",iconName:"users-gear",icon:[640,512,["users-cog"],"f509","M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"]},FS=jS,BS={prefix:"fas",iconName:"building-columns",icon:[512,512,["bank","institution","museum","university"],"f19c","M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},$S=BS,qS=BS,GS=BS,WS=BS,US={prefix:"fas",iconName:"masks-theater",icon:[640,512,[127917,"theater-masks"],"f630","M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z"]},KS=US,ZS={prefix:"fas",iconName:"handshake-simple",icon:[640,512,[129309,"handshake-alt"],"f4c6","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z"]},YS=ZS,XS={prefix:"fas",iconName:"jet-fighter",icon:[640,512,["fighter-jet"],"f0fb","M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z"]},JS=XS,QS={prefix:"fas",iconName:"square-share-nodes",icon:[448,512,["share-alt-square"],"f1e1","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z"]},ex=QS,tx={prefix:"fas",iconName:"video",icon:[576,512,["video-camera"],"f03d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]},cx=tx,ax={prefix:"fas",iconName:"graduation-cap",icon:[640,512,[127891,"mortar-board"],"f19d","M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z"]},ix=ax,nx={prefix:"fas",iconName:"turn-up",icon:[384,512,[10548,"level-up-alt"],"f3bf","M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5h88l0 192c0 17.7-14.3 32-32 32H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192h88c9.6 0 18.2-5.7 22-14.5z"]},sx=nx,rx={fa0:{prefix:"fas",iconName:"0",icon:[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z"]},fa1:{prefix:"fas",iconName:"1",icon:[256,512,[],"31","M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z"]},fa2:{prefix:"fas",iconName:"2",icon:[320,512,[],"32","M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"]},fa3:{prefix:"fas",iconName:"3",icon:[320,512,[],"33","M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z"]},fa4:{prefix:"fas",iconName:"4",icon:[384,512,[],"34","M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z"]},fa5:{prefix:"fas",iconName:"5",icon:[320,512,[],"35","M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"]},fa6:{prefix:"fas",iconName:"6",icon:[320,512,[],"36","M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"]},fa7:{prefix:"fas",iconName:"7",icon:[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z"]},fa8:{prefix:"fas",iconName:"8",icon:[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"]},fa9:{prefix:"fas",iconName:"9",icon:[320,512,[],"39","M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"]},faFillDrip:{prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"]},faArrowsToCircle:{prefix:"fas",iconName:"arrows-to-circle",icon:[640,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z"]},faCircleChevronRight:Yr,faChevronCircleRight:Xr,faAt:{prefix:"fas",iconName:"at",icon:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faTrashCan:Jr,faTrashAlt:Qr,faTextHeight:{prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M64 128V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H160 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},faUserXmark:eo,faUserTimes:to,faStethoscope:{prefix:"fas",iconName:"stethoscope",icon:[576,512,[129658],"f0f1","M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faMessage:co,faCommentAlt:ao,faInfo:{prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z"]},faDownLeftAndUpRightToCenter:io,faCompressAlt:no,faExplosion:{prefix:"fas",iconName:"explosion",icon:[576,512,[],"e4e9","M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z"]},faFileLines:so,faFileAlt:ro,faFileText:oo,faWaveSquare:{prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z"]},faRing:{prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z"]},faBuildingUn:{prefix:"fas",iconName:"building-un",icon:[384,512,[],"e4d9","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faDiceThree:{prefix:"fas",iconName:"dice-three",icon:[448,512,[9858],"f527","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faCalendarDays:lo,faCalendarAlt:uo,faAnchorCircleCheck:{prefix:"fas",iconName:"anchor-circle-check",icon:[640,512,[],"e4aa","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faBuildingCircleArrowRight:{prefix:"fas",iconName:"building-circle-arrow-right",icon:[640,512,[],"e4d1","M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z"]},faVolleyball:po,faVolleyballBall:fo,faArrowsUpToLine:{prefix:"fas",iconName:"arrows-up-to-line",icon:[576,512,[],"e4c2","M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z"]},faSortDown:mo,faSortDesc:ho,faCircleMinus:vo,faMinusCircle:go,faDoorOpen:{prefix:"fas",iconName:"door-open",icon:[576,512,[],"f52b","M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z"]},faRightFromBracket:zo,faSignOutAlt:bo,faAtom:{prefix:"fas",iconName:"atom",icon:[512,512,[9883],"f5d2","M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faSoap:{prefix:"fas",iconName:"soap",icon:[512,512,[129532],"e06e","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z"]},faIcons:Co,faHeartMusicCameraBolt:Mo,faMicrophoneLinesSlash:Ho,faMicrophoneAltSlash:Vo,faBridgeCircleCheck:{prefix:"fas",iconName:"bridge-circle-check",icon:[640,512,[],"e4c9","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faPumpMedical:{prefix:"fas",iconName:"pump-medical",icon:[448,512,[],"e06a","M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},faFingerprint:{prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128v24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7V256c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256v24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8V256c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96v24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7V256c0-28.7 23.3-52 52-52s52 23.3 52 52v24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1V256c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24v24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9V256z"]},faHandPointRight:{prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z"]},faMagnifyingGlassLocation:yo,faSearchLocation:Lo,faForwardStep:So,faStepForward:xo,faFaceSmileBeam:Po,faSmileBeam:wo,faFlagCheckered:{prefix:"fas",iconName:"flag-checkered",icon:[448,512,[127937],"f11e","M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1V345.8c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V400 334 64 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9v65.5L64 252.6V318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3V238.7l38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9v66.7l-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8v71.4c21.8 1.9 43.3 6.7 64 14.4V244.2l22.7 6.7c13.5 4 27.3 6.4 41.3 7.4V194c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12v-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8v72.4c-13-.4-26 .8-38.7 3.6L128 173.2V98L64 114v73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2V251.9l-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5v77.4zm64-149.4V115.4c-20.9 6.1-42.4 9.1-64 9.1V194c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z"]},faFootball:ko,faFootballBall:Ao,faSchoolCircleExclamation:{prefix:"fas",iconName:"school-circle-exclamation",icon:[640,512,[],"e56c","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faCrop:{prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z"]},faAnglesDown:Eo,faAngleDoubleDown:No,faUsersRectangle:{prefix:"fas",iconName:"users-rectangle",icon:[640,512,[],"e594","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},faPeopleRoof:{prefix:"fas",iconName:"people-roof",icon:[640,512,[],"e537","M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z"]},faPeopleLine:{prefix:"fas",iconName:"people-line",icon:[640,512,[],"e534","M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z"]},faBeerMugEmpty:To,faBeer:Do,faDiagramPredecessor:{prefix:"fas",iconName:"diagram-predecessor",icon:[512,512,[],"e477","M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z"]},faArrowUpLong:Ro,faLongArrowUp:_o,faFireFlameSimple:Oo,faBurn:Io,faPerson:jo,faMale:Fo,faLaptop:{prefix:"fas",iconName:"laptop",icon:[640,512,[128187],"f109","M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z"]},faFileCsv:{prefix:"fas",iconName:"file-csv",icon:[512,512,[],"f6dd","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V304H176c-35.3 0-64 28.7-64 64V512H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM200 352h16c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H200c-22.1 0-40-17.9-40-40V392c0-22.1 17.9-40 40-40zm133.1 0H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H333.1c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1H304c-8.8 0-16-7.2-16-16s7.2-16 16-16h42.9c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V368c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V368c0-8.8 7.2-16 16-16z"]},faMenorah:{prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z"]},faTruckPlane:{prefix:"fas",iconName:"truck-plane",icon:[640,512,[],"e58f","M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faRecordVinyl:{prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faFaceGrinStars:Bo,faGrinStars:$o,faBong:{prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H302.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H160V208.5zM288 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H76.1c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64C78.3 64 64 49.7 64 32S78.3 0 96 0h16H272h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},faSpaghettiMonsterFlying:qo,faPastafarianism:Go,faArrowDownUpAcrossLine:{prefix:"fas",iconName:"arrow-down-up-across-line",icon:[576,512,[],"e4af","M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z"]},faSpoon:Wo,faUtensilSpoon:Uo,faJarWheat:{prefix:"fas",iconName:"jar-wheat",icon:[320,512,[],"e517","M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z"]},faEnvelopesBulk:Ko,faMailBulk:Zo,faFileCircleExclamation:{prefix:"fas",iconName:"file-circle-exclamation",icon:[576,512,[],"e4eb","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faCircleH:Yo,faHospitalSymbol:Xo,faPager:{prefix:"fas",iconName:"pager",icon:[512,512,[128223],"f815","M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z"]},faAddressBook:Jo,faContactBook:Qo,faStrikethrough:{prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z"]},faK:{prefix:"fas",iconName:"k",icon:[320,512,[107],"4b","M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z"]},faLandmarkFlag:{prefix:"fas",iconName:"landmark-flag",icon:[512,512,[],"e51c","M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z"]},faPencil:el,faPencilAlt:tl,faBackward:{prefix:"fas",iconName:"backward",icon:[512,512,[9194],"f04a","M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z"]},faCaretRight:{prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]},faComments:{prefix:"fas",iconName:"comments",icon:[640,512,[128490,61670],"f086","M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"]},faPaste:cl,faFileClipboard:al,faCodePullRequest:{prefix:"fas",iconName:"code-pull-request",icon:[512,512,[],"e13c","M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faClipboardList:{prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16z"]},faTruckRampBox:il,faTruckLoading:nl,faUserCheck:{prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},faVialVirus:{prefix:"fas",iconName:"vial-virus",icon:[512,512,[],"e597","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faSheetPlastic:{prefix:"fas",iconName:"sheet-plastic",icon:[384,512,[],"e571","M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z"]},faBlog:{prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z"]},faUserNinja:{prefix:"fas",iconName:"user-ninja",icon:[448,512,[129399],"f504","M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z"]},faPersonArrowUpFromLine:{prefix:"fas",iconName:"person-arrow-up-from-line",icon:[640,512,[],"e539","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},faScrollTorah:sl,faTorah:rl,faBroomBall:ol,faQuidditch:ll,faQuidditchBroomBall:ul,faToggleOff:{prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},faBoxArchive:pl,faArchive:fl,faPersonDrowning:{prefix:"fas",iconName:"person-drowning",icon:[576,512,[],"e545","M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z"]},faArrowDown91:ml,faSortNumericDesc:dl,faSortNumericDownAlt:hl,faFaceGrinTongueSquint:vl,faGrinTongueSquint:gl,faSprayCan:{prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faTruckMonster:{prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faW:{prefix:"fas",iconName:"w",icon:[576,512,[119],"57","M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z"]},faEarthAfrica:zl,faGlobeAfrica:bl,faRainbow:{prefix:"fas",iconName:"rainbow",icon:[640,512,[127752],"f75b","M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z"]},faCircleNotch:{prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},faTabletScreenButton:Cl,faTabletAlt:Ml,faPaw:{prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"]},faCloud:{prefix:"fas",iconName:"cloud",icon:[640,512,[9729],"f0c2","M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"]},faTrowelBricks:{prefix:"fas",iconName:"trowel-bricks",icon:[512,512,[],"e58a","M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z"]},faFaceFlushed:Hl,faFlushed:Vl,faHospitalUser:{prefix:"fas",iconName:"hospital-user",icon:[576,512,[],"f80d","M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z"]},faTentArrowLeftRight:{prefix:"fas",iconName:"tent-arrow-left-right",icon:[576,512,[],"e57f","M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faGavel:yl,faLegal:Ll,faBinoculars:{prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z"]},faMicrophoneSlash:{prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z"]},faBoxTissue:{prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z"]},faMotorcycle:{prefix:"fas",iconName:"motorcycle",icon:[640,512,[127949],"f21c","M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faBellConcierge:Sl,faConciergeBell:xl,faPenRuler:Pl,faPencilRuler:wl,faPeopleArrows:kl,faPeopleArrowsLeftRight:Al,faMarsAndVenusBurst:{prefix:"fas",iconName:"mars-and-venus-burst",icon:[640,512,[],"e523","M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z"]},faSquareCaretRight:El,faCaretSquareRight:Nl,faScissors:Tl,faCut:Dl,faSunPlantWilt:{prefix:"fas",iconName:"sun-plant-wilt",icon:[640,512,[],"e57a","M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z"]},faToiletsPortable:{prefix:"fas",iconName:"toilets-portable",icon:[576,512,[],"e584","M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z"]},faHockeyPuck:{prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z"]},faTable:{prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},faMagnifyingGlassArrowRight:{prefix:"fas",iconName:"magnifying-glass-arrow-right",icon:[512,512,[],"e521","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z"]},faTachographDigital:Rl,faDigitalTachograph:_l,faUsersSlash:{prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z"]},faClover:{prefix:"fas",iconName:"clover",icon:[448,512,[],"e139","M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z"]},faReply:Ol,faMailReply:Il,faStarAndCrescent:{prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[9770],"f699","M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z"]},faHouseFire:{prefix:"fas",iconName:"house-fire",icon:[640,512,[],"e50c","M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C640 440 568.7 512 480 512c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z"]},faSquareMinus:jl,faMinusSquare:Fl,faHelicopter:{prefix:"fas",iconName:"helicopter",icon:[640,512,[128641],"f533","M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 320c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z"]},faCompass:{prefix:"fas",iconName:"compass",icon:[512,512,[129517],"f14e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faSquareCaretDown:Bl,faCaretSquareDown:$l,faFileCircleQuestion:{prefix:"fas",iconName:"file-circle-question",icon:[576,512,[],"e4ef","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z"]},faLaptopCode:{prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},faSwatchbook:{prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faPrescriptionBottle:{prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z"]},faBars:ql,faNavicon:Gl,faPeopleGroup:{prefix:"fas",iconName:"people-group",icon:[640,512,[],"e533","M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z"]},faHourglassEnd:Wl,faHourglass3:Ul,faHeartCrack:Kl,faHeartBroken:Zl,faSquareUpRight:Yl,faExternalLinkSquareAlt:Xl,faFaceKissBeam:Jl,faKissBeam:Ql,faFilm:{prefix:"fas",iconName:"film",icon:[512,512,[127902],"f008","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z"]},faRulerHorizontal:{prefix:"fas",iconName:"ruler-horizontal",icon:[640,512,[],"f547","M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z"]},faPeopleRobbery:{prefix:"fas",iconName:"people-robbery",icon:[576,512,[],"e536","M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z"]},faLightbulb:{prefix:"fas",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"]},faCaretLeft:{prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]},faCircleExclamation:eu,faExclamationCircle:tu,faSchoolCircleXmark:{prefix:"fas",iconName:"school-circle-xmark",icon:[640,512,[],"e56d","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z"]},faArrowRightFromBracket:cu,faSignOut:au,faCircleChevronDown:iu,faChevronCircleDown:nu,faUnlockKeyhole:su,faUnlockAlt:ru,faCloudShowersHeavy:{prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z"]},faHeadphonesSimple:ou,faHeadphonesAlt:lu,faSitemap:{prefix:"fas",iconName:"sitemap",icon:[576,512,[],"f0e8","M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z"]},faCircleDollarToSlot:uu,faDonate:pu,faMemory:{prefix:"fas",iconName:"memory",icon:[576,512,[],"f538","M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faRoadSpikes:{prefix:"fas",iconName:"road-spikes",icon:[640,512,[],"e568","M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faFireBurner:{prefix:"fas",iconName:"fire-burner",icon:[640,512,[],"e4f1","M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faFlag:{prefix:"fas",iconName:"flag",icon:[448,512,[127988,61725],"f024","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z"]},faHanukiah:{prefix:"fas",iconName:"hanukiah",icon:[640,512,[128334],"f6e6","M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z"]},faFeather:{prefix:"fas",iconName:"feather",icon:[512,512,[129718],"f52d","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},faVolumeLow:fu,faVolumeDown:mu,faCommentSlash:{prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z"]},faCloudSunRain:{prefix:"fas",iconName:"cloud-sun-rain",icon:[640,512,[127782],"f743","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.1-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},faCompress:{prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z"]},faWheatAwn:du,faWheatAlt:hu,faAnkh:{prefix:"fas",iconName:"ankh",icon:[320,512,[9765],"f644","M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z"]},faHandsHoldingChild:{prefix:"fas",iconName:"hands-holding-child",icon:[640,512,[],"e4fa","M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z"]},faAsterisk:{prefix:"fas",iconName:"asterisk",icon:[384,512,[10033,61545],"2a","M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z"]},faSquareCheck:vu,faCheckSquare:gu,faPesetaSign:{prefix:"fas",iconName:"peseta-sign",icon:[384,512,[],"e221","M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z"]},faHeading:zu,faHeader:bu,faGhost:{prefix:"fas",iconName:"ghost",icon:[384,512,[128123],"f6e2","M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2V192C0 86 86 0 192 0S384 86 384 192V462.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faList:Cu,faListSquares:Mu,faSquarePhoneFlip:Hu,faPhoneSquareAlt:Vu,faCartPlus:{prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z"]},faGamepad:{prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z"]},faCircleDot:yu,faDotCircle:Lu,faFaceDizzy:Su,faDizzy:xu,faEgg:{prefix:"fas",iconName:"egg",icon:[384,512,[129370],"f7fb","M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z"]},faHouseMedicalCircleXmark:{prefix:"fas",iconName:"house-medical-circle-xmark",icon:[640,512,[],"e513","M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},faCampground:{prefix:"fas",iconName:"campground",icon:[576,512,[9978],"f6bb","M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z"]},faFolderPlus:{prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z"]},faFutbol:Pu,faFutbolBall:wu,faSoccerBall:ku,faPaintbrush:Au,faPaintBrush:Eu,faLock:{prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"]},faGasPump:{prefix:"fas",iconName:"gas-pump",icon:[512,512,[9981],"f52f","M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z"]},faHotTubPerson:Nu,faHotTub:Tu,faMapLocation:Du,faMapMarked:Ru,faHouseFloodWater:{prefix:"fas",iconName:"house-flood-water",icon:[576,512,[],"e50e","M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z"]},faTree:{prefix:"fas",iconName:"tree",icon:[448,512,[127794],"f1bb","M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z"]},faBridgeLock:{prefix:"fas",iconName:"bridge-lock",icon:[640,512,[],"e4cc","M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faSackDollar:{prefix:"fas",iconName:"sack-dollar",icon:[512,512,[128176],"f81d","M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V424c0 11 9 20 20 20s20-9 20-20V410.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l0 0-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V216z"]},faPenToSquare:_u,faEdit:Ou,faCarSide:{prefix:"fas",iconName:"car-side",icon:[640,512,[128663],"f5e4","M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faShareNodes:Iu,faShareAlt:ju,faHeartCircleMinus:{prefix:"fas",iconName:"heart-circle-minus",icon:[576,512,[],"e4ff","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z"]},faHourglassHalf:Fu,faHourglass2:Bu,faMicroscope:{prefix:"fas",iconName:"microscope",icon:[512,512,[128300],"f610","M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faSink:{prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z"]},faBagShopping:$u,faShoppingBag:qu,faArrowDownZA:Gu,faSortAlphaDesc:Wu,faSortAlphaDownAlt:Uu,faMitten:{prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z"]},faPersonRays:{prefix:"fas",iconName:"person-rays",icon:[512,512,[],"e54d","M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},faUsers:{prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"]},faEyeSlash:{prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"]},faFlaskVial:{prefix:"fas",iconName:"flask-vial",icon:[640,512,[],"e4f3","M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z"]},faHand:Ku,faHandPaper:Zu,faOm:{prefix:"fas",iconName:"om",icon:[512,512,[128329],"f679","M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z"]},faWorm:{prefix:"fas",iconName:"worm",icon:[512,512,[],"e599","M256 96c0-53 43-96 96-96h38.4C439.9 0 480 40.1 480 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H352c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faHouseCircleXmark:{prefix:"fas",iconName:"house-circle-xmark",icon:[640,512,[],"e50b","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faPlug:{prefix:"fas",iconName:"plug",icon:[384,512,[128268],"f1e6","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faChevronUp:{prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},faHandSpock:{prefix:"fas",iconName:"hand-spock",icon:[576,512,[128406],"f259","M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z"]},faStopwatch:{prefix:"fas",iconName:"stopwatch",icon:[448,512,[9201],"f2f2","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},faFaceKiss:Yu,faKiss:Xu,faBridgeCircleXmark:{prefix:"fas",iconName:"bridge-circle-xmark",icon:[640,512,[],"e4cb","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faFaceGrinTongue:Ju,faGrinTongue:Qu,faChessBishop:{prefix:"fas",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V400H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512H297.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432H48z"]},faFaceGrinWink:ep,faGrinWink:tp,faEarDeaf:cp,faDeaf:ap,faDeafness:ip,faHardOfHearing:np,faRoadCircleCheck:{prefix:"fas",iconName:"road-circle-check",icon:[640,512,[],"e564","M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faDiceFive:{prefix:"fas",iconName:"dice-five",icon:[448,512,[9860],"f523","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faSquareRss:sp,faRssSquare:rp,faLandMineOn:{prefix:"fas",iconName:"land-mine-on",icon:[640,512,[],"e51b","M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z"]},faICursor:{prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"]},faStamp:{prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z"]},faStairs:{prefix:"fas",iconName:"stairs",icon:[576,512,[],"e289","M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z"]},faI:{prefix:"fas",iconName:"i",icon:[320,512,[105],"49","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z"]},faHryvniaSign:op,faHryvnia:lp,faPills:{prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z"]},faFaceGrinWide:up,faGrinAlt:pp,faTooth:{prefix:"fas",iconName:"tooth",icon:[448,512,[129463],"f5c9","M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z"]},faV:{prefix:"fas",iconName:"v",icon:[384,512,[118],"56","M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z"]},faBangladeshiTakaSign:{prefix:"fas",iconName:"bangladeshi-taka-sign",icon:[384,512,[],"e2e6","M36 32.2C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8V160H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V384c0 53 43 96 96 96h32c106 0 192-86 192-192V256c0-53-43-96-96-96H272c-17.7 0-32 14.3-32 32s14.3 32 32 32h16c17.7 0 32 14.3 32 32v32c0 70.7-57.3 128-128 128H160c-17.7 0-32-14.3-32-32V224h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V128.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z"]},faBicycle:{prefix:"fas",iconName:"bicycle",icon:[640,512,[128690],"f206","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z"]},faStaffSnake:fp,faRodAsclepius:mp,faRodSnake:dp,faStaffAesculapius:hp,faHeadSideCoughSlash:{prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8h-3.9c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faTruckMedical:vp,faAmbulance:gp,faWheatAwnCircleExclamation:{prefix:"fas",iconName:"wheat-awn-circle-exclamation",icon:[640,512,[],"e598","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faSnowman:{prefix:"fas",iconName:"snowman",icon:[512,512,[9731,9924],"f7d0","M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H181.3c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},faMortarPestle:{prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faRoadBarrier:{prefix:"fas",iconName:"road-barrier",icon:[640,512,[],"e562","M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z"]},faSchool:{prefix:"fas",iconName:"school",icon:[640,512,[127979],"f549","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z"]},faIgloo:{prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z"]},faJoint:{prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z"]},faAngleRight:{prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]},faHorse:{prefix:"fas",iconName:"horse",icon:[576,512,[128014],"f6f0","M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faQ:{prefix:"fas",iconName:"q",icon:[448,512,[113],"51","M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z"]},faG:{prefix:"fas",iconName:"g",icon:[448,512,[103],"47","M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H400c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z"]},faNotesMedical:{prefix:"fas",iconName:"notes-medical",icon:[512,512,[],"f481","M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z"]},faTemperatureHalf:zp,faTemperature2:bp,faThermometer2:Cp,faThermometerHalf:Mp,faDongSign:{prefix:"fas",iconName:"dong-sign",icon:[384,512,[],"e169","M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faCapsules:{prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z"]},faPooStorm:Hp,faPooBolt:Vp,faFaceFrownOpen:yp,faFrownOpen:Lp,faHandPointUp:{prefix:"fas",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z"]},faMoneyBill:{prefix:"fas",iconName:"money-bill",icon:[576,512,[],"f0d6","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},faBookmark:{prefix:"fas",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"]},faAlignJustify:{prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z"]},faUmbrellaBeach:{prefix:"fas",iconName:"umbrella-beach",icon:[576,512,[127958],"f5ca","M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z"]},faHelmetUn:{prefix:"fas",iconName:"helmet-un",icon:[512,512,[],"e503","M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faBullseye:{prefix:"fas",iconName:"bullseye",icon:[512,512,[],"f140","M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faBacon:{prefix:"fas",iconName:"bacon",icon:[576,512,[129363],"f7e5","M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z"]},faHandPointDown:{prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z"]},faArrowUpFromBracket:{prefix:"fas",iconName:"arrow-up-from-bracket",icon:[448,512,[],"e09a","M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z"]},faFolder:Sp,faFolderBlank:xp,faFileWaveform:Pp,faFileMedicalAlt:wp,faRadiation:{prefix:"fas",iconName:"radiation",icon:[512,512,[],"f7b9","M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faChartSimple:{prefix:"fas",iconName:"chart-simple",icon:[448,512,[],"e473","M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z"]},faMarsStroke:{prefix:"fas",iconName:"mars-stroke",icon:[512,512,[9894],"f229","M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z"]},faVial:{prefix:"fas",iconName:"vial",icon:[512,512,[129514],"f492","M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z"]},faGauge:kp,faDashboard:Ap,faGaugeMed:Ep,faTachometerAltAverage:Np,faWandMagicSparkles:Tp,faMagicWandSparkles:Dp,faE:{prefix:"fas",iconName:"e",icon:[320,512,[101],"45","M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z"]},faPenClip:Rp,faPenAlt:_p,faBridgeCircleExclamation:{prefix:"fas",iconName:"bridge-circle-exclamation",icon:[640,512,[],"e4ca","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faUser:{prefix:"fas",iconName:"user",icon:[448,512,[128100,62144],"f007","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"]},faSchoolCircleCheck:{prefix:"fas",iconName:"school-circle-check",icon:[640,512,[],"e56b","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z"]},faDumpster:{prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z"]},faVanShuttle:Op,faShuttleVan:Ip,faBuildingUser:{prefix:"fas",iconName:"building-user",icon:[640,512,[],"e4da","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z"]},faSquareCaretLeft:jp,faCaretSquareLeft:Fp,faHighlighter:{prefix:"fas",iconName:"highlighter",icon:[576,512,[],"f591","M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H224l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H24c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"]},faKey:{prefix:"fas",iconName:"key",icon:[512,512,[128273],"f084","M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"]},faBullhorn:{prefix:"fas",iconName:"bullhorn",icon:[512,512,[128226,128363],"f0a1","M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z"]},faGlobe:{prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z"]},faSynagogue:{prefix:"fas",iconName:"synagogue",icon:[640,512,[128333],"f69b","M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z"]},faPersonHalfDress:{prefix:"fas",iconName:"person-half-dress",icon:[320,512,[],"e548","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z"]},faRoadBridge:{prefix:"fas",iconName:"road-bridge",icon:[640,512,[],"e563","M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z"]},faLocationArrow:{prefix:"fas",iconName:"location-arrow",icon:[448,512,[],"f124","M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z"]},faC:{prefix:"fas",iconName:"c",icon:[384,512,[99],"43","M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"]},faTabletButton:{prefix:"fas",iconName:"tablet-button",icon:[448,512,[],"f10a","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBuildingLock:{prefix:"fas",iconName:"building-lock",icon:[576,512,[],"e4d6","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faPizzaSlice:{prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faMoneyBillWave:{prefix:"fas",iconName:"money-bill-wave",icon:[576,512,[],"f53a","M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z"]},faChartArea:Bp,faAreaChart:$p,faHouseFlag:{prefix:"fas",iconName:"house-flag",icon:[640,512,[],"e50d","M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z"]},faPersonCircleMinus:{prefix:"fas",iconName:"person-circle-minus",icon:[576,512,[],"e540","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z"]},faBan:qp,faCancel:Gp,faCameraRotate:{prefix:"fas",iconName:"camera-rotate",icon:[640,512,[],"e0d8","M213.1 64.8L202.7 96H128c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H437.3L426.9 64.8C420.4 45.2 402.1 32 381.4 32H258.6c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16H355.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM192 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z"]},faSprayCanSparkles:Wp,faAirFreshener:Up,faStar:{prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},faRepeat:{prefix:"fas",iconName:"repeat",icon:[512,512,[128257],"f363","M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z"]},faCross:{prefix:"fas",iconName:"cross",icon:[384,512,[128327,10013],"f654","M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z"]},faBox:{prefix:"fas",iconName:"box",icon:[448,512,[128230],"f466","M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z"]},faVenusMars:{prefix:"fas",iconName:"venus-mars",icon:[640,512,[9892],"f228","M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z"]},faArrowPointer:Kp,faMousePointer:Zp,faMaximize:Yp,faExpandArrowsAlt:Xp,faChargingStation:{prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"]},faShapes:Jp,faTriangleCircleSquare:Qp,faShuffle:ef,faRandom:tf,faPersonRunning:cf,faRunning:af,faMobileRetro:{prefix:"fas",iconName:"mobile-retro",icon:[320,512,[],"e527","M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z"]},faGripLinesVertical:{prefix:"fas",iconName:"grip-lines-vertical",icon:[192,512,[],"f7a5","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z"]},faSpider:{prefix:"fas",iconName:"spider",icon:[512,512,[128375],"f717","M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z"]},faHandsBound:{prefix:"fas",iconName:"hands-bound",icon:[640,512,[],"e4f9","M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352H128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H288h64H480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1V320v32H288V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8V96 32zm64 448v32H288V480h64v32H480V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H480 352 288 160 128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z"]},faFileInvoiceDollar:{prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z"]},faPlaneCircleExclamation:{prefix:"fas",iconName:"plane-circle-exclamation",icon:[640,512,[],"e556","M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faXRay:{prefix:"fas",iconName:"x-ray",icon:[512,512,[],"f497","M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v32H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48H128c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v70.6L189.1 307c-5.2-2-10.6-3-16.2-3h-2.1c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6H316.4c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8H339c-5.5 0-11 1-16.2 3L272 326.6V256H384c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V176h80c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faSpellCheck:{prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160H93.3L112 115.2 130.7 160zM256 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H288c-17.7 0-32 14.3-32 32zm96 64H320V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320V160zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z"]},faSlash:{prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"]},faComputerMouse:nf,faMouse:sf,faArrowRightToBracket:rf,faSignIn:of,faShopSlash:lf,faStoreAltSlash:uf,faServer:{prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faVirusCovidSlash:{prefix:"fas",iconName:"virus-covid-slash",icon:[640,512,[],"e4a9","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z"]},faShopLock:{prefix:"fas",iconName:"shop-lock",icon:[640,512,[],"e4a5","M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faHourglassStart:pf,faHourglass1:ff,faBlenderPhone:{prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H224zm-16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z"]},faBuildingWheat:{prefix:"fas",iconName:"building-wheat",icon:[640,512,[],"e4db","M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z"]},faPersonBreastfeeding:{prefix:"fas",iconName:"person-breastfeeding",icon:[448,512,[],"e53a","M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z"]},faRightToBracket:mf,faSignInAlt:df,faVenus:{prefix:"fas",iconName:"venus",icon:[384,512,[9792],"f221","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z"]},faPassport:{prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z"]},faHeartPulse:hf,faHeartbeat:vf,faPeopleCarryBox:gf,faPeopleCarry:zf,faTemperatureHigh:{prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z"]},faMicrochip:{prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z"]},faCrown:{prefix:"fas",iconName:"crown",icon:[576,512,[128081],"f521","M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"]},faWeightHanging:{prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z"]},faXmarksLines:{prefix:"fas",iconName:"xmarks-lines",icon:[640,512,[],"e59a","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"]},faFilePrescription:{prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z"]},faWeightScale:bf,faWeight:Cf,faUserGroup:Mf,faUserFriends:Hf,faArrowUpAZ:Vf,faSortAlphaUp:yf,faChessKnight:{prefix:"fas",iconName:"chess-knight",icon:[448,512,[9822],"f441","M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5V238.9c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400H384l28.9-159c2.1-11.3 3.1-22.8 3.1-34.3V192C416 86 330 0 224 0H83.8C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H409.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432H64L22.6 473.4z"]},faFaceLaughSquint:Lf,faLaughSquint:Sf,faWheelchair:{prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H282.2l-9.6-48H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H259.8z"]},faCircleArrowUp:xf,faArrowCircleUp:Pf,faToggleOn:{prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},faPersonWalking:wf,faWalking:kf,faL:{prefix:"fas",iconName:"l",icon:[320,512,[108],"4c","M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z"]},faFire:{prefix:"fas",iconName:"fire",icon:[448,512,[128293],"f06d","M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z"]},faBedPulse:Af,faProcedures:Ef,faShuttleSpace:Nf,faSpaceShuttle:Tf,faFaceLaugh:Df,faLaugh:Rf,faFolderOpen:{prefix:"fas",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z"]},faHeartCirclePlus:{prefix:"fas",iconName:"heart-circle-plus",icon:[576,512,[],"e500","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faCodeFork:{prefix:"fas",iconName:"code-fork",icon:[448,512,[],"e13b","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faCity:{prefix:"fas",iconName:"city",icon:[640,512,[127961],"f64f","M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"]},faMicrophoneLines:_f,faMicrophoneAlt:Of,faPepperHot:{prefix:"fas",iconName:"pepper-hot",icon:[512,512,[127798],"f816","M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z"]},faUnlock:{prefix:"fas",iconName:"unlock",icon:[448,512,[128275],"f09c","M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z"]},faColonSign:{prefix:"fas",iconName:"colon-sign",icon:[384,512,[],"e140","M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z"]},faHeadset:{prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z"]},faStoreSlash:{prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z"]},faRoadCircleXmark:{prefix:"fas",iconName:"road-circle-xmark",icon:[640,512,[],"e566","M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},faUserMinus:{prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faMarsStrokeUp:If,faMarsStrokeV:jf,faChampagneGlasses:Ff,faGlassCheers:Bf,faClipboard:{prefix:"fas",iconName:"clipboard",icon:[384,512,[128203],"f328","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faHouseCircleExclamation:{prefix:"fas",iconName:"house-circle-exclamation",icon:[640,512,[],"e50a","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faFileArrowUp:$f,faFileUpload:qf,faWifi:Gf,faWifi3:Wf,faWifiStrong:Uf,faBath:Kf,faBathtub:Zf,faUnderline:{prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"]},faUserPen:Yf,faUserEdit:Xf,faSignature:{prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z"]},faStroopwafel:{prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z"]},faBold:{prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"]},faAnchorLock:{prefix:"fas",iconName:"anchor-lock",icon:[640,512,[],"e4ad","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faBuildingNgo:{prefix:"fas",iconName:"building-ngo",icon:[384,512,[],"e4d7","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z"]},faManatSign:{prefix:"fas",iconName:"manat-sign",icon:[384,512,[],"e1d5","M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z"]},faNotEqual:{prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z"]},faBorderTopLeft:Jf,faBorderStyle:Qf,faMapLocationDot:em,faMapMarkedAlt:tm,faJedi:{prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z"]},faSquarePollVertical:cm,faPoll:am,faMugHot:{prefix:"fas",iconName:"mug-hot",icon:[512,512,[9749],"f7b6","M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z"]},faCarBattery:im,faBatteryCar:nm,faGift:{prefix:"fas",iconName:"gift",icon:[512,512,[127873],"f06b","M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z"]},faDiceTwo:{prefix:"fas",iconName:"dice-two",icon:[448,512,[9857],"f528","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faChessQueen:{prefix:"fas",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400H384 343.6 168.4 128 112.3L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224l0 0 0 0h0zM112 432H400l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H86.6C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z"]},faGlasses:{prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z"]},faChessBoard:{prefix:"fas",iconName:"chess-board",icon:[448,512,[],"f43c","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z"]},faBuildingCircleCheck:{prefix:"fas",iconName:"building-circle-check",icon:[640,512,[],"e4d2","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faPersonChalkboard:{prefix:"fas",iconName:"person-chalkboard",icon:[640,512,[],"e53d","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},faMarsStrokeRight:sm,faMarsStrokeH:rm,faHandBackFist:om,faHandRock:lm,faSquareCaretUp:um,faCaretSquareUp:pm,faCloudShowersWater:{prefix:"fas",iconName:"cloud-showers-water",icon:[576,512,[],"e4e4","M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faChartBar:fm,faBarChart:mm,faHandsBubbles:dm,faHandsWash:hm,faLessThanEqual:{prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faTrain:{prefix:"fas",iconName:"train",icon:[448,512,[128646],"f238","M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faEyeLowVision:vm,faLowVision:gm,faCrow:{prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faSailboat:{prefix:"fas",iconName:"sailboat",icon:[576,512,[],"e445","M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z"]},faWindowRestore:{prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z"]},faSquarePlus:zm,faPlusSquare:bm,faToriiGate:{prefix:"fas",iconName:"torii-gate",icon:[512,512,[9961],"f6a1","M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V13.4C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32H126.8c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z"]},faFrog:{prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faBucket:{prefix:"fas",iconName:"bucket",icon:[448,512,[],"e4cf","M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z"]},faImage:{prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faMicrophone:{prefix:"fas",iconName:"microphone",icon:[384,512,[],"f130","M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z"]},faCow:{prefix:"fas",iconName:"cow",icon:[640,512,[128004],"f6c8","M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z"]},faCaretUp:{prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},faScrewdriver:{prefix:"fas",iconName:"screwdriver",icon:[512,512,[129691],"f54a","M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z"]},faFolderClosed:{prefix:"fas",iconName:"folder-closed",icon:[512,512,[],"e185","M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64z"]},faHouseTsunami:{prefix:"fas",iconName:"house-tsunami",icon:[576,512,[],"e515","M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z"]},faSquareNfi:{prefix:"fas",iconName:"square-nfi",icon:[448,512,[],"e576","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z"]},faArrowUpFromGroundWater:{prefix:"fas",iconName:"arrow-up-from-ground-water",icon:[576,512,[],"e4b5","M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z"]},faMartiniGlass:Cm,faGlassMartiniAlt:Mm,faRotateLeft:Hm,faRotateBack:Vm,faRotateBackward:ym,faUndoAlt:Lm,faTableColumns:Sm,faColumns:xm,faLemon:{prefix:"fas",iconName:"lemon",icon:[448,512,[127819],"f094","M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z"]},faHeadSideMask:{prefix:"fas",iconName:"head-side-mask",icon:[576,512,[],"e063","M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31V512H128c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2H336c-21.7 0-41.3 8.6-55.7 22.6zM336 304H534l0 0h10l-19.7 64H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H514.5l-9.8 32H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H494.8l-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2H288V352c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faHandshake:{prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128H16zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V144c0-8.8-7.2-16-16-16H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faGem:{prefix:"fas",iconName:"gem",icon:[512,512,[128142],"f3a5","M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"]},faDolly:Pm,faDollyBox:wm,faSmoking:{prefix:"fas",iconName:"smoking",icon:[640,512,[128684],"f48d","M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z"]},faMinimize:km,faCompressArrowsAlt:Am,faMonument:{prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faSnowplow:{prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faAnglesRight:Em,faAngleDoubleRight:Nm,faCannabis:{prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z"]},faCirclePlay:Tm,faPlayCircle:Dm,faTablets:{prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z"]},faEthernet:{prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z"]},faEuroSign:Rm,faEur:_m,faEuro:Om,faChair:{prefix:"fas",iconName:"chair",icon:[448,512,[129681],"f6c0","M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z"]},faCircleCheck:Im,faCheckCircle:jm,faCircleStop:Fm,faStopCircle:Bm,faCompassDrafting:$m,faDraftingCompass:qm,faPlateWheat:{prefix:"fas",iconName:"plate-wheat",icon:[512,512,[],"e55a","M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z"]},faIcicles:{prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z"]},faPersonShelter:{prefix:"fas",iconName:"person-shelter",icon:[512,512,[],"e54f","M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},faNeuter:{prefix:"fas",iconName:"neuter",icon:[384,512,[9906],"f22c","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z"]},faIdBadge:{prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faMarker:{prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z"]},faFaceLaughBeam:Gm,faLaughBeam:Wm,faHelicopterSymbol:{prefix:"fas",iconName:"helicopter-symbol",icon:[512,512,[],"e502","M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z"]},faUniversalAccess:{prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faCircleChevronUp:Um,faChevronCircleUp:Km,faLariSign:{prefix:"fas",iconName:"lari-sign",icon:[384,512,[],"e1c8","M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z"]},faVolcano:{prefix:"fas",iconName:"volcano",icon:[512,512,[127755],"f770","M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z"]},faPersonWalkingDashedLineArrowRight:{prefix:"fas",iconName:"person-walking-dashed-line-arrow-right",icon:[640,512,[],"e553","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z"]},faSterlingSign:Zm,faGbp:Ym,faPoundSign:Xm,faViruses:{prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faSquarePersonConfined:{prefix:"fas",iconName:"square-person-confined",icon:[448,512,[],"e577","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z"]},faUserTie:{prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M224 256A128 128 0 1 1 224 0a128 128 0 1 1 0 256zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 36-146.9c2-8.1 9.8-13.4 17.9-11.3c70.1 17.6 121.9 81 121.9 156.4c0 17-13.8 30.7-30.7 30.7H285.5c-2.1 0-4-.4-5.8-1.1l.3 1.1H168l.3-1.1c-1.8 .7-3.8 1.1-5.8 1.1H30.7C13.8 512 0 498.2 0 481.3c0-75.5 51.9-138.9 121.9-156.4c8.1-2 15.9 3.3 17.9 11.3l36 146.9 33.4-123.9z"]},faArrowDownLong:Jm,faLongArrowDown:Qm,faTentArrowDownToLine:{prefix:"fas",iconName:"tent-arrow-down-to-line",icon:[640,512,[],"e57e","M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z"]},faCertificate:{prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z"]},faReplyAll:ed,faMailReplyAll:td,faSuitcase:{prefix:"fas",iconName:"suitcase",icon:[512,512,[129523],"f0f2","M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z"]},faPersonSkating:cd,faSkating:ad,faFilterCircleDollar:id,faFunnelDollar:nd,faCameraRetro:{prefix:"fas",iconName:"camera-retro",icon:[512,512,[128247],"f083","M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z"]},faCircleArrowDown:sd,faArrowCircleDown:rd,faFileImport:od,faArrowRightToFile:ld,faSquareArrowUpRight:ud,faExternalLinkSquare:pd,faBoxOpen:{prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z"]},faScroll:{prefix:"fas",iconName:"scroll",icon:[576,512,[128220],"f70e","M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z"]},faSpa:{prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z"]},faLocationPinLock:{prefix:"fas",iconName:"location-pin-lock",icon:[512,512,[],"e51f","M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faPause:{prefix:"fas",iconName:"pause",icon:[320,512,[9208],"f04c","M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z"]},faHillAvalanche:{prefix:"fas",iconName:"hill-avalanche",icon:[576,512,[],"e507","M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87z"]},faTemperatureEmpty:fd,faTemperature0:md,faThermometer0:dd,faThermometerEmpty:hd,faBomb:{prefix:"fas",iconName:"bomb",icon:[512,512,[128163],"f1e2","M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z"]},faRegistered:{prefix:"fas",iconName:"registered",icon:[512,512,[174],"f25d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z"]},faAddressCard:vd,faContactCard:gd,faVcard:zd,faScaleUnbalancedFlip:bd,faBalanceScaleRight:Cd,faSubscript:{prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z"]},faDiamondTurnRight:Md,faDirections:Hd,faBurst:{prefix:"fas",iconName:"burst",icon:[512,512,[],"e4dc","M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z"]},faHouseLaptop:Vd,faLaptopHouse:yd,faFaceTired:Ld,faTired:Sd,faMoneyBills:{prefix:"fas",iconName:"money-bills",icon:[640,512,[],"e1f3","M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z"]},faSmog:{prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z"]},faCrutch:{prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z"]},faFontAwesome:xd,faFontAwesomeFlag:Pd,faFontAwesomeLogoFull:wd,faCloudArrowUp:kd,faCloudUpload:Ad,faCloudUploadAlt:Ed,faPalette:{prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faArrowsTurnRight:{prefix:"fas",iconName:"arrows-turn-right",icon:[448,512,[],"e4c0","M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160H128c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C0 153.3 57.3 96 128 96H338.7L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416H96c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H242.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},faVest:{prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z"]},faFerry:{prefix:"fas",iconName:"ferry",icon:[576,512,[],"e4ea","M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faArrowsDownToPeople:{prefix:"fas",iconName:"arrows-down-to-people",icon:[640,512,[],"e4b9","M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},faSeedling:Nd,faSprout:Td,faLeftRight:Dd,faArrowsAltH:Rd,faBoxesPacking:{prefix:"fas",iconName:"boxes-packing",icon:[640,512,[],"e4c7","M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z"]},faCircleArrowLeft:_d,faArrowCircleLeft:Od,faGroupArrowsRotate:{prefix:"fas",iconName:"group-arrows-rotate",icon:[512,512,[],"e4f6","M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z"]},faBowlFood:{prefix:"fas",iconName:"bowl-food",icon:[512,512,[],"e4c6","M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z"]},faCandyCane:{prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z"]},faArrowDownWideShort:Id,faSortAmountAsc:jd,faSortAmountDown:Fd,faCloudBolt:Bd,faThunderstorm:$d,faTextSlash:qd,faRemoveFormat:Gd,faFaceSmileWink:Wd,faSmileWink:Ud,faFileWord:{prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z"]},faFilePowerpoint:{prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z"]},faArrowsLeftRight:Kd,faArrowsH:Zd,faHouseLock:{prefix:"fas",iconName:"house-lock",icon:[640,512,[],"e510","M384 480c0 11.7 3.1 22.6 8.6 32H392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faCloudArrowDown:Yd,faCloudDownload:Xd,faCloudDownloadAlt:Jd,faChildren:{prefix:"fas",iconName:"children",icon:[640,512,[],"e4e1","M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z"]},faChalkboard:Qd,faBlackboard:eh,faUserLargeSlash:th,faUserAltSlash:ch,faEnvelopeOpen:{prefix:"fas",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z"]},faHandshakeSimpleSlash:ah,faHandshakeAltSlash:ih,faMattressPillow:{prefix:"fas",iconName:"mattress-pillow",icon:[640,512,[],"e525","M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z"]},faGuaraniSign:{prefix:"fas",iconName:"guarani-sign",icon:[384,512,[],"e19a","M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z"]},faArrowsRotate:nh,faRefresh:sh,faSync:rh,faFireExtinguisher:{prefix:"fas",iconName:"fire-extinguisher",icon:[512,512,[129519],"f134","M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faCruzeiroSign:{prefix:"fas",iconName:"cruzeiro-sign",icon:[448,512,[],"e152","M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z"]},faGreaterThanEqual:{prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z"]},faShieldHalved:oh,faShieldAlt:lh,faBookAtlas:uh,faAtlas:ph,faVirus:{prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faEnvelopeCircleCheck:{prefix:"fas",iconName:"envelope-circle-check",icon:[640,512,[],"e4e8","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faLayerGroup:{prefix:"fas",iconName:"layer-group",icon:[576,512,[],"f5fd","M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"]},faArrowsToDot:{prefix:"fas",iconName:"arrows-to-dot",icon:[512,512,[],"e4be","M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faArchway:{prefix:"fas",iconName:"archway",icon:[512,512,[],"f557","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z"]},faHeartCircleCheck:{prefix:"fas",iconName:"heart-circle-check",icon:[576,512,[],"e4fd","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faHouseChimneyCrack:fh,faHouseDamage:mh,faFileZipper:dh,faFileArchive:hh,faSquare:{prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]},faMartiniGlassEmpty:vh,faGlassMartini:gh,faCouch:{prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z"]},faCediSign:{prefix:"fas",iconName:"cedi-sign",icon:[384,512,[],"e0df","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z"]},faItalic:{prefix:"fas",iconName:"italic",icon:[384,512,[],"f033","M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"]},faChurch:{prefix:"fas",iconName:"church",icon:[640,512,[9962],"f51d","M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z"]},faCommentsDollar:{prefix:"fas",iconName:"comments-dollar",icon:[640,512,[],"f653","M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z"]},faDemocrat:{prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z"]},faZ:{prefix:"fas",iconName:"z",icon:[384,512,[122],"5a","M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z"]},faPersonSkiing:zh,faSkiing:bh,faRoadLock:{prefix:"fas",iconName:"road-lock",icon:[640,512,[],"e567","M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faA:{prefix:"fas",iconName:"a",icon:[384,512,[97],"41","M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384H290.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320H120l72-172.8L264 320z"]},faTemperatureArrowDown:Ch,faTemperatureDown:Mh,faFeatherPointed:Hh,faFeatherAlt:Vh,faP:{prefix:"fas",iconName:"p",icon:[320,512,[112],"50","M0 96C0 60.7 28.7 32 64 32h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V320 96zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z"]},faSnowflake:{prefix:"fas",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z"]},faNewspaper:{prefix:"fas",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H296c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"]},faRectangleAd:yh,faAd:Lh,faCircleArrowRight:Sh,faArrowCircleRight:xh,faFilterCircleXmark:{prefix:"fas",iconName:"filter-circle-xmark",icon:[576,512,[],"e17b","M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},faLocust:{prefix:"fas",iconName:"locust",icon:[576,512,[],"e520","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H431.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400H496c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C576 143 465 32 328 32H312zm50.5 168l17.1 40H333l29.5-40zm-87.7 38.1l-1.4 1.9H225.1l32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240H88.8zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faSort:Ph,faUnsorted:wh,faListOl:kh,faList12:Ah,faListNumeric:Eh,faPersonDressBurst:{prefix:"fas",iconName:"person-dress-burst",icon:[640,512,[],"e544","M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},faMoneyCheckDollar:Nh,faMoneyCheckAlt:Th,faVectorSquare:{prefix:"fas",iconName:"vector-square",icon:[448,512,[],"f5cb","M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z"]},faBreadSlice:{prefix:"fas",iconName:"bread-slice",icon:[512,512,[],"f7ec","M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z"]},faLanguage:{prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"]},faFaceKissWinkHeart:Dh,faKissWinkHeart:Rh,faFilter:{prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]},faQuestion:{prefix:"fas",iconName:"question",icon:[320,512,[10067,10068,61736],"3f","M80 160c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64v3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74V320c0 17.7 14.3 32 32 32s32-14.3 32-32v-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7V160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faFileSignature:{prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z"]},faUpDownLeftRight:_h,faArrowsAlt:Oh,faHouseChimneyUser:{prefix:"fas",iconName:"house-chimney-user",icon:[576,512,[],"e065","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z"]},faHandHoldingHeart:{prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]},faPuzzlePiece:{prefix:"fas",iconName:"puzzle-piece",icon:[512,512,[129513],"f12e","M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8v0c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2v0c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2v0c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2v0c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8v0c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320v0c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256v0C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2v0z"]},faMoneyCheck:{prefix:"fas",iconName:"money-check",icon:[576,512,[],"f53c","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z"]},faStarHalfStroke:Ih,faStarHalfAlt:jh,faCode:{prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},faWhiskeyGlass:Fh,faGlassWhiskey:Bh,faBuildingCircleExclamation:{prefix:"fas",iconName:"building-circle-exclamation",icon:[640,512,[],"e4d3","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faMagnifyingGlassChart:{prefix:"fas",iconName:"magnifying-glass-chart",icon:[512,512,[],"e522","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},faArrowUpRightFromSquare:$h,faExternalLink:qh,faCubesStacked:{prefix:"fas",iconName:"cubes-stacked",icon:[448,512,[],"e4e6","M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z"]},faWonSign:Gh,faKrw:Wh,faWon:Uh,faVirusCovid:{prefix:"fas",iconName:"virus-covid",icon:[512,512,[],"e4a8","M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faAustralSign:{prefix:"fas",iconName:"austral-sign",icon:[448,512,[],"e0a9","M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z"]},faF:{prefix:"fas",iconName:"f",icon:[320,512,[102],"46","M64 32C28.7 32 0 60.7 0 96V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z"]},faLeaf:{prefix:"fas",iconName:"leaf",icon:[512,512,[],"f06c","M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.2 5.4c-25.9 5.9-50 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z"]},faRoad:{prefix:"fas",iconName:"road",icon:[576,512,[128739],"f018","M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faTaxi:Kh,faCab:Zh,faPersonCirclePlus:{prefix:"fas",iconName:"person-circle-plus",icon:[576,512,[],"e541","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z"]},faChartPie:Yh,faPieChart:Xh,faBoltLightning:{prefix:"fas",iconName:"bolt-lightning",icon:[384,512,[],"e0b7","M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z"]},faSackXmark:{prefix:"fas",iconName:"sack-xmark",icon:[512,512,[],"e56a","M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z"]},faFileExcel:{prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z"]},faFileContract:{prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"]},faFishFins:{prefix:"fas",iconName:"fish-fins",icon:[576,512,[],"e4f2","M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faBuildingFlag:{prefix:"fas",iconName:"building-flag",icon:[640,512,[],"e4d5","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z"]},faFaceGrinBeam:Jh,faGrinBeam:Qh,faObjectUngroup:{prefix:"fas",iconName:"object-ungroup",icon:[640,512,[],"f248","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z"]},faPoop:{prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z"]},faLocationPin:ev,faMapMarker:tv,faKaaba:{prefix:"fas",iconName:"kaaba",icon:[576,512,[128331],"f66b","M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z"]},faToiletPaper:{prefix:"fas",iconName:"toilet-paper",icon:[640,512,[129531],"f71e","M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faHelmetSafety:cv,faHardHat:av,faHatHard:iv,faEject:{prefix:"fas",iconName:"eject",icon:[448,512,[9167],"f052","M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z"]},faCircleRight:nv,faArrowAltCircleRight:sv,faPlaneCircleCheck:{prefix:"fas",iconName:"plane-circle-check",icon:[640,512,[],"e555","M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faFaceRollingEyes:rv,faMehRollingEyes:ov,faObjectGroup:{prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z"]},faChartLine:lv,faLineChart:uv,faMaskVentilator:{prefix:"fas",iconName:"mask-ventilator",icon:[640,512,[],"e524","M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faArrowRight:{prefix:"fas",iconName:"arrow-right",icon:[448,512,[8594],"f061","M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"]},faSignsPost:pv,faMapSigns:fv,faCashRegister:{prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"]},faPersonCircleQuestion:{prefix:"fas",iconName:"person-circle-question",icon:[576,512,[],"e542","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z"]},faH:{prefix:"fas",iconName:"h",icon:[384,512,[104],"48","M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z"]},faTarp:{prefix:"fas",iconName:"tarp",icon:[576,512,[],"e57b","M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faScrewdriverWrench:mv,faTools:dv,faArrowsToEye:{prefix:"fas",iconName:"arrows-to-eye",icon:[640,512,[],"e4bf","M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},faPlugCircleBolt:{prefix:"fas",iconName:"plug-circle-bolt",icon:[576,512,[],"e55b","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},faHeart:{prefix:"fas",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"]},faMarsAndVenus:{prefix:"fas",iconName:"mars-and-venus",icon:[512,512,[9893],"f224","M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},faHouseUser:hv,faHomeUser:vv,faDumpsterFire:{prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z"]},faHouseCrack:{prefix:"fas",iconName:"house-crack",icon:[576,512,[],"e3b1","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z"]},faMartiniGlassCitrus:gv,faCocktail:zv,faFaceSurprise:bv,faSurprise:Cv,faBottleWater:{prefix:"fas",iconName:"bottle-water",icon:[320,512,[],"e4c5","M120 0h80c13.3 0 24 10.7 24 24V64H96V24c0-13.3 10.7-24 24-24zM32 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.1 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C40.5 415.4 32 400.7 32 384s8.5-31.4 21.5-40C40.5 335.4 32 320.7 32 304s8.5-31.4 21.5-40C40.5 255.4 32 240.7 32 224c0-15.6 7.4-29.4 18.9-38.2C39.5 178.7 32 166.1 32 151.7zM96 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z"]},faCirclePause:Mv,faPauseCircle:Hv,faToiletPaperSlash:{prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z"]},faAppleWhole:Vv,faAppleAlt:yv,faKitchenSet:{prefix:"fas",iconName:"kitchen-set",icon:[576,512,[],"e51a","M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faR:{prefix:"fas",iconName:"r",icon:[320,512,[114],"52","M64 32C28.7 32 0 60.7 0 96V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H64zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},faTemperatureQuarter:Lv,faTemperature1:Sv,faThermometer1:xv,faThermometerQuarter:Pv,faCube:{prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z"]},faBitcoinSign:{prefix:"fas",iconName:"bitcoin-sign",icon:[320,512,[],"e0b4","M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z"]},faShieldDog:{prefix:"fas",iconName:"shield-dog",icon:[512,512,[],"e573","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faSolarPanel:{prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H569c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0H122.2zM260.9 64H379.1l10.4 104h-139L260.9 64zM202.3 168H101.4L122.2 64h90.4L202.3 168zM91.8 216H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104-169.4 0 10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l31.4-6.3L517.8 64l20.8 104z"]},faLockOpen:{prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"]},faElevator:{prefix:"fas",iconName:"elevator",icon:[512,512,[],"e16d","M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z"]},faMoneyBillTransfer:{prefix:"fas",iconName:"money-bill-transfer",icon:[640,512,[],"e528","M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},faMoneyBillTrendUp:{prefix:"fas",iconName:"money-bill-trend-up",icon:[512,512,[],"e529","M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faHouseFloodWaterCircleArrowRight:{prefix:"fas",iconName:"house-flood-water-circle-arrow-right",icon:[640,512,[],"e50f","M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z"]},faSquarePollHorizontal:wv,faPollH:kv,faCircle:{prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"]},faBackwardFast:Av,faFastBackward:Ev,faRecycle:{prefix:"fas",iconName:"recycle",icon:[512,512,[9842,9850,9851],"f1b8","M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z"]},faUserAstronaut:{prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faPlaneSlash:{prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64H440.6L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0h56.2c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6H144l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4H46c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z"]},faTrademark:{prefix:"fas",iconName:"trademark",icon:[640,512,[8482],"f25c","M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z"]},faBasketball:Nv,faBasketballBall:Tv,faSatelliteDish:{prefix:"fas",iconName:"satellite-dish",icon:[512,512,[128225],"f7c0","M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faCircleUp:Dv,faArrowAltCircleUp:Rv,faMobileScreenButton:_v,faMobileAlt:Ov,faVolumeHigh:Iv,faVolumeUp:jv,faUsersRays:{prefix:"fas",iconName:"users-rays",icon:[640,512,[],"e593","M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faWallet:{prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faClipboardCheck:{prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},faFileAudio:{prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z"]},faBurger:Fv,faHamburger:Bv,faWrench:{prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faBugs:{prefix:"fas",iconName:"bugs",icon:[576,512,[],"e4d0","M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184H64v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z"]},faRupeeSign:$v,faRupee:qv,faFileImage:{prefix:"fas",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z"]},faCircleQuestion:Gv,faQuestionCircle:Wv,faPlaneDeparture:{prefix:"fas",iconName:"plane-departure",icon:[640,512,[128747],"f5b0","M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z"]},faHandshakeSlash:{prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faBookBookmark:{prefix:"fas",iconName:"book-bookmark",icon:[448,512,[],"e0bb","M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z"]},faCodeBranch:{prefix:"fas",iconName:"code-branch",icon:[448,512,[],"f126","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faHatCowboy:{prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z"]},faBridge:{prefix:"fas",iconName:"bridge",icon:[576,512,[],"e4c8","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z"]},faPhoneFlip:Uv,faPhoneAlt:Kv,faTruckFront:{prefix:"fas",iconName:"truck-front",icon:[512,512,[],"e2b7","M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faCat:{prefix:"fas",iconName:"cat",icon:[576,512,[128008],"f6be","M320 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L280 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128v0V32 12 10.7C352 4.8 356.7 .1 362.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L384 21.3l27.2 36.3L416 64h64l4.8-6.4L512 21.3 524.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C539.3 .1 544 4.8 544 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faAnchorCircleExclamation:{prefix:"fas",iconName:"anchor-circle-exclamation",icon:[640,512,[],"e4ab","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faTruckField:{prefix:"fas",iconName:"truck-field",icon:[640,512,[],"e58d","M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faRoute:{prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c53 0 96 43 96 96s-43 96-96 96H139.6c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-53 0-96-43-96-96s43-96 96-96h39.8c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faClipboardQuestion:{prefix:"fas",iconName:"clipboard-question",icon:[384,512,[],"e4e3","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faPanorama:{prefix:"fas",iconName:"panorama",icon:[640,512,[],"e209","M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z"]},faCommentMedical:{prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z"]},faTeethOpen:{prefix:"fas",iconName:"teeth-open",icon:[576,512,[],"f62f","M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z"]},faFileCircleMinus:{prefix:"fas",iconName:"file-circle-minus",icon:[576,512,[],"e4ed","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z"]},faTags:{prefix:"fas",iconName:"tags",icon:[512,512,[],"f02c","M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faWineGlass:{prefix:"fas",iconName:"wine-glass",icon:[320,512,[127863],"f4e3","M32.1 29.3C33.5 12.8 47.4 0 64 0H256c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6V448h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H160 80c-17.7 0-32-14.3-32-32s14.3-32 32-32h48V348.4C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7H231.9l-5.3-64H93.4l-5.3 64z"]},faForwardFast:Zv,faFastForward:Yv,faFaceMehBlank:Xv,faMehBlank:Jv,faSquareParking:Qv,faParking:eg,faHouseSignal:{prefix:"fas",iconName:"house-signal",icon:[576,512,[],"e012","M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6H464c26.5 0 48-21.5 48-48V256h32c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V208zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z"]},faBarsProgress:tg,faTasksAlt:cg,faFaucetDrip:{prefix:"fas",iconName:"faucet-drip",icon:[512,512,[128688],"e006","M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z"]},faCartFlatbed:ag,faDollyFlatbed:ig,faBanSmoking:ng,faSmokingBan:sg,faTerminal:{prefix:"fas",iconName:"terminal",icon:[576,512,[],"f120","M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faMobileButton:{prefix:"fas",iconName:"mobile-button",icon:[384,512,[],"f10b","M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faHouseMedicalFlag:{prefix:"fas",iconName:"house-medical-flag",icon:[640,512,[],"e514","M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z"]},faBasketShopping:rg,faShoppingBasket:og,faTape:{prefix:"fas",iconName:"tape",icon:[576,512,[],"f4db","M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faBusSimple:lg,faBusAlt:ug,faEye:{prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]},faFaceSadCry:pg,faSadCry:fg,faAudioDescription:{prefix:"fas",iconName:"audio-description",icon:[576,512,[],"f29e","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z"]},faPersonMilitaryToPerson:{prefix:"fas",iconName:"person-military-to-person",icon:[512,512,[],"e54c","M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z"]},faFileShield:{prefix:"fas",iconName:"file-shield",icon:[576,512,[],"e4f0","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z"]},faUserSlash:{prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z"]},faPen:{prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]},faTowerObservation:{prefix:"fas",iconName:"tower-observation",icon:[512,512,[],"e586","M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z"]},faFileCode:{prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},faSignal:mg,faSignal5:dg,faSignalPerfect:hg,faBus:{prefix:"fas",iconName:"bus",icon:[576,512,[128653],"f207","M288 0C422.4 0 512 35.2 512 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H192v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C64 35.2 153.6 0 288 0zM128 160v96c0 17.7 14.3 32 32 32H272V128H160c-17.7 0-32 14.3-32 32zM304 288H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H304V288zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16s7.2 16 16 16H368c8.8 0 16-7.2 16-16z"]},faHeartCircleXmark:{prefix:"fas",iconName:"heart-circle-xmark",icon:[576,512,[],"e501","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faHouseChimney:vg,faHomeLg:gg,faWindowMaximize:{prefix:"fas",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faFaceFrown:zg,faFrown:bg,faPrescription:{prefix:"fas",iconName:"prescription",icon:[448,512,[],"f5b1","M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},faShop:Cg,faStoreAlt:Mg,faFloppyDisk:Hg,faSave:Vg,faVihara:{prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z"]},faScaleUnbalanced:yg,faBalanceScaleLeft:Lg,faSortUp:Sg,faSortAsc:xg,faCommentDots:Pg,faCommenting:wg,faPlantWilt:{prefix:"fas",iconName:"plant-wilt",icon:[512,512,[],"e5aa","M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z"]},faDiamond:{prefix:"fas",iconName:"diamond",icon:[512,512,[9830],"f219","M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z"]},faFaceGrinSquint:kg,faGrinSquint:Ag,faHandHoldingDollar:Eg,faHandHoldingUsd:Ng,faBacterium:{prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3l0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faHandPointer:{prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v48 16 48c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z"]},faDrumSteelpan:{prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z"]},faHandScissors:{prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"]},faHandsPraying:Tg,faPrayingHands:Dg,faArrowRotateRight:Rg,faArrowRightRotate:_g,faArrowRotateForward:Og,faRedo:Ig,faBiohazard:{prefix:"fas",iconName:"biohazard",icon:[576,512,[9763],"f780","M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z"]},faLocationCrosshairs:jg,faLocation:Fg,faMarsDouble:{prefix:"fas",iconName:"mars-double",icon:[640,512,[9891],"f227","M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z"]},faChildDress:{prefix:"fas",iconName:"child-dress",icon:[320,512,[],"e59c","M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z"]},faUsersBetweenLines:{prefix:"fas",iconName:"users-between-lines",icon:[640,512,[],"e591","M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},faLungsVirus:{prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faFaceGrinTears:Bg,faGrinTears:$g,faPhone:{prefix:"fas",iconName:"phone",icon:[512,512,[128222,128379],"f095","M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"]},faCalendarXmark:qg,faCalendarTimes:Gg,faChildReaching:{prefix:"fas",iconName:"child-reaching",icon:[384,512,[],"e59d","M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"]},faHeadSideVirus:{prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faUserGear:Wg,faUserCog:Ug,faArrowUp19:Kg,faSortNumericUp:Zg,faDoorClosed:{prefix:"fas",iconName:"door-closed",icon:[576,512,[128682],"f52a","M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faShieldVirus:{prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faDiceSix:{prefix:"fas",iconName:"dice-six",icon:[448,512,[9861],"f526","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faMosquitoNet:{prefix:"fas",iconName:"mosquito-net",icon:[640,512,[],"e52c","M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z"]},faBridgeWater:{prefix:"fas",iconName:"bridge-water",icon:[576,512,[],"e4ce","M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faPersonBooth:{prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z"]},faTextWidth:{prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M64 128V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H224 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z"]},faHatWizard:{prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faPenFancy:{prefix:"fas",iconName:"pen-fancy",icon:[512,512,[128395,10002],"f5ac","M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z"]},faPersonDigging:Yg,faDigging:Xg,faTrash:{prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"]},faGaugeSimple:Jg,faGaugeSimpleMed:Qg,faTachometerAverage:ez,faBookMedical:{prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z"]},faPoo:{prefix:"fas",iconName:"poo",icon:[512,512,[128169],"f2fe","M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z"]},faQuoteRight:tz,faQuoteRightAlt:cz,faShirt:az,faTShirt:iz,faTshirt:nz,faCubes:{prefix:"fas",iconName:"cubes",icon:[576,512,[],"f1b3","M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z"]},faDivide:{prefix:"fas",iconName:"divide",icon:[448,512,[10135,247],"f529","M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z"]},faTengeSign:sz,faTenge:rz,faHeadphones:{prefix:"fas",iconName:"headphones",icon:[512,512,[127911],"f025","M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z"]},faHandsHolding:{prefix:"fas",iconName:"hands-holding",icon:[640,512,[],"f4c2","M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z"]},faHandsClapping:{prefix:"fas",iconName:"hands-clapping",icon:[512,512,[],"e1a8","M336 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z"]},faRepublican:{prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z"]},faArrowLeft:{prefix:"fas",iconName:"arrow-left",icon:[448,512,[8592],"f060","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},faPersonCircleXmark:{prefix:"fas",iconName:"person-circle-xmark",icon:[576,512,[],"e543","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},faRuler:{prefix:"fas",iconName:"ruler",icon:[512,512,[128207],"f545","M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"]},faAlignLeft:{prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},faDiceD6:{prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V381c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z"]},faRestroom:{prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},faJ:{prefix:"fas",iconName:"j",icon:[320,512,[106],"4a","M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z"]},faUsersViewfinder:{prefix:"fas",iconName:"users-viewfinder",icon:[640,512,[],"e595","M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z"]},faFileVideo:{prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z"]},faUpRightFromSquare:oz,faExternalLinkAlt:lz,faTableCells:uz,faTh:pz,faFilePdf:{prefix:"fas",iconName:"file-pdf",icon:[512,512,[],"f1c1","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V304H176c-35.3 0-64 28.7-64 64V512H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"]},faBookBible:fz,faBible:mz,faO:{prefix:"fas",iconName:"o",icon:[448,512,[111],"4f","M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z"]},faSuitcaseMedical:dz,faMedkit:hz,faUserSecret:{prefix:"fas",iconName:"user-secret",icon:[448,512,[128373],"f21b","M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z"]},faOtter:{prefix:"fas",iconName:"otter",icon:[640,512,[129446],"f700","M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},faPersonDress:vz,faFemale:gz,faCommentDollar:{prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z"]},faBusinessTime:zz,faBriefcaseClock:bz,faTableCellsLarge:Cz,faThLarge:Mz,faBookTanakh:Hz,faTanakh:Vz,faPhoneVolume:yz,faVolumeControlPhone:Lz,faHatCowboySide:{prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1h10.7c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32h-2.7c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64H544L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9H162.9c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2V384z"]},faClipboardUser:{prefix:"fas",iconName:"clipboard-user",icon:[384,512,[],"f7f3","M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z"]},faChild:{prefix:"fas",iconName:"child",icon:[320,512,[],"f1ae","M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z"]},faLiraSign:{prefix:"fas",iconName:"lira-sign",icon:[320,512,[8356],"f195","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H46c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z"]},faSatellite:{prefix:"fas",iconName:"satellite",icon:[512,512,[128752],"f7bf","M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z"]},faPlaneLock:{prefix:"fas",iconName:"plane-lock",icon:[640,512,[],"e558","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faTag:{prefix:"fas",iconName:"tag",icon:[448,512,[127991],"f02b","M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faComment:{prefix:"fas",iconName:"comment",icon:[512,512,[128489,61669],"f075","M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"]},faCakeCandles:Sz,faBirthdayCake:xz,faCake:Pz,faEnvelope:{prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"]},faAnglesUp:wz,faAngleDoubleUp:kz,faPaperclip:{prefix:"fas",iconName:"paperclip",icon:[448,512,[128206],"f0c6","M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z"]},faArrowRightToCity:{prefix:"fas",iconName:"arrow-right-to-city",icon:[640,512,[],"e4b3","M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z"]},faRibbon:{prefix:"fas",iconName:"ribbon",icon:[448,512,[127895],"f4d6","M333.2 322.8l0 0-133.9-146 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65V149.1c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0h-76c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8V164c0 23.2 8.4 45.6 23.6 63.1l56 64.2 0 0 83.3 95.6 0 0 91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z"]},faLungs:{prefix:"fas",iconName:"lungs",icon:[640,512,[129729],"f604","M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z"]},faArrowUp91:Az,faSortNumericUpAlt:Ez,faLitecoinSign:{prefix:"fas",iconName:"litecoin-sign",icon:[384,512,[],"e1d3","M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64V213.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1V448c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3V64z"]},faBorderNone:{prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},faCircleNodes:{prefix:"fas",iconName:"circle-nodes",icon:[512,512,[],"e4e2","M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"]},faParachuteBox:{prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z"]},faIndent:{prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"]},faTruckFieldUn:{prefix:"fas",iconName:"truck-field-un",icon:[640,512,[],"e58e","M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faHourglass:Nz,faHourglassEmpty:Tz,faMountain:{prefix:"fas",iconName:"mountain",icon:[512,512,[127956],"f6fc","M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8h49z"]},faUserDoctor:Dz,faUserMd:Rz,faCircleInfo:_z,faInfoCircle:Oz,faCloudMeatball:{prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faCamera:Iz,faCameraAlt:jz,faSquareVirus:{prefix:"fas",iconName:"square-virus",icon:[448,512,[],"e578","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faMeteor:{prefix:"fas",iconName:"meteor",icon:[512,512,[9732],"f753","M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faCarOn:{prefix:"fas",iconName:"car-on",icon:[512,512,[],"e4dd","M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z"]},faSleigh:{prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z"]},faArrowDown19:Fz,faSortNumericAsc:Bz,faSortNumericDown:$z,faHandHoldingDroplet:qz,faHandHoldingWater:Gz,faWater:{prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faCalendarCheck:{prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"]},faBraille:{prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},faPrescriptionBottleMedical:Wz,faPrescriptionBottleAlt:Uz,faLandmark:{prefix:"fas",iconName:"landmark",icon:[512,512,[127963],"f66f","M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z"]},faTruck:{prefix:"fas",iconName:"truck",icon:[640,512,[128666,9951],"f0d1","M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faCrosshairs:{prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faPersonCane:{prefix:"fas",iconName:"person-cane",icon:[448,512,[],"e53c","M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z"]},faTent:{prefix:"fas",iconName:"tent",icon:[576,512,[],"e57d","M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z"]},faVestPatches:{prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},faCheckDouble:{prefix:"fas",iconName:"check-double",icon:[448,512,[],"f560","M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z"]},faArrowDownAZ:Kz,faSortAlphaAsc:Zz,faSortAlphaDown:Yz,faMoneyBillWheat:{prefix:"fas",iconName:"money-bill-wheat",icon:[512,512,[],"e52a","M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},faCookie:{prefix:"fas",iconName:"cookie",icon:[512,512,[127850],"f563","M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faArrowRotateLeft:Xz,faArrowLeftRotate:Jz,faArrowRotateBack:Qz,faArrowRotateBackward:eb,faUndo:tb,faHardDrive:cb,faHdd:ab,faFaceGrinSquintTears:ib,faGrinSquintTears:nb,faDumbbell:{prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M96 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V224v64V448c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H96V64zm448 0v64h32c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H544v64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z"]},faRectangleList:sb,faListAlt:rb,faTarpDroplet:{prefix:"fas",iconName:"tarp-droplet",icon:[576,512,[],"e57c","M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faHouseMedicalCircleCheck:{prefix:"fas",iconName:"house-medical-circle-check",icon:[640,512,[],"e511","M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faPersonSkiingNordic:ob,faSkiingNordic:lb,faCalendarPlus:{prefix:"fas",iconName:"calendar-plus",icon:[512,512,[],"f271","M128 32V64H80c-26.5 0-48 21.5-48 48v48H480V112c0-26.5-21.5-48-48-48H384V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H192V32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 192H32V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V192zM256 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H176c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z"]},faPlaneArrival:{prefix:"fas",iconName:"plane-arrival",icon:[640,512,[128748],"f5af","M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faCircleLeft:ub,faArrowAltCircleLeft:pb,faTrainSubway:fb,faSubway:mb,faChartGantt:{prefix:"fas",iconName:"chart-gantt",icon:[512,512,[],"e0e4","M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},faIndianRupeeSign:db,faIndianRupee:hb,faInr:vb,faCropSimple:gb,faCropAlt:zb,faMoneyBill1:bb,faMoneyBillAlt:Cb,faLeftLong:Mb,faLongArrowAltLeft:Hb,faDna:{prefix:"fas",iconName:"dna",icon:[448,512,[129516],"f471","M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z"]},faVirusSlash:{prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7z"]},faMinus:Vb,faSubtract:yb,faChess:{prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H60.2C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h4L60 384H196L180 256h4c13.3 0 24-10.7 24-24s-10.7-24-24-24h-1.8l32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24H232c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416H48zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24H488c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416H336zM304 208v51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384H462.5l-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7V208c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16v16H424V208c0-8.8-7.2-16-16-16H392c-8.8 0-16 7.2-16 16v16H352V208c0-8.8-7.2-16-16-16H320c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16v32H384V304z"]},faArrowLeftLong:Lb,faLongArrowLeft:Sb,faPlugCircleCheck:{prefix:"fas",iconName:"plug-circle-check",icon:[576,512,[],"e55c","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faStreetView:{prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"]},faFrancSign:{prefix:"fas",iconName:"franc-sign",icon:[320,512,[],"e18f","M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},faVolumeOff:{prefix:"fas",iconName:"volume-off",icon:[320,512,[],"f026","M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z"]},faHandsAslInterpreting:xb,faAmericanSignLanguageInterpreting:Pb,faAslInterpreting:wb,faHandsAmericanSignLanguageInterpreting:kb,faGear:Ab,faCog:Eb,faDropletSlash:Nb,faTintSlash:Tb,faMosque:{prefix:"fas",iconName:"mosque",icon:[640,512,[128332],"f678","M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z"]},faMosquito:{prefix:"fas",iconName:"mosquito",icon:[640,512,[],"e52b","M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z"]},faStarOfDavid:{prefix:"fas",iconName:"star-of-david",icon:[512,512,[10017],"f69a","M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z"]},faPersonMilitaryRifle:{prefix:"fas",iconName:"person-military-rifle",icon:[512,512,[],"e54b","M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faCartShopping:Db,faShoppingCart:Rb,faVials:{prefix:"fas",iconName:"vials",icon:[512,512,[],"f493","M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z"]},faPlugCirclePlus:{prefix:"fas",iconName:"plug-circle-plus",icon:[576,512,[],"e55f","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faPlaceOfWorship:{prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z"]},faGripVertical:{prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z"]},faArrowTurnUp:_b,faLevelUp:Ob,faU:{prefix:"fas",iconName:"u",icon:[384,512,[117],"55","M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z"]},faSquareRootVariable:Ib,faSquareRootAlt:jb,faClock:Fb,faClockFour:Bb,faBackwardStep:$b,faStepBackward:qb,faPallet:{prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z"]},faFaucet:{prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z"]},faBaseballBatBall:{prefix:"fas",iconName:"baseball-bat-ball",icon:[512,512,[],"f432","M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z"]},faS:{prefix:"fas",iconName:"s",icon:[320,512,[115],"53","M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z"]},faTimeline:{prefix:"fas",iconName:"timeline",icon:[640,512,[],"e29c","M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faKeyboard:{prefix:"fas",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z"]},faCaretDown:{prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]},faHouseChimneyMedical:Gb,faClinicMedical:Wb,faTemperatureThreeQuarters:Ub,faTemperature3:Kb,faThermometer3:Zb,faThermometerThreeQuarters:Yb,faMobileScreen:Xb,faMobileAndroidAlt:Jb,faPlaneUp:{prefix:"fas",iconName:"plane-up",icon:[512,512,[],"e22d","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z"]},faPiggyBank:{prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h11.5c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faBatteryHalf:Qb,faBattery3:eC,faMountainCity:{prefix:"fas",iconName:"mountain-city",icon:[640,512,[],"e52e","M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z"]},faCoins:{prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"]},faKhanda:{prefix:"fas",iconName:"khanda",icon:[512,512,[9772],"f66d","M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z"]},faSliders:tC,faSlidersH:cC,faFolderTree:{prefix:"fas",iconName:"folder-tree",icon:[576,512,[],"f802","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z"]},faNetworkWired:{prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z"]},faMapPin:{prefix:"fas",iconName:"map-pin",icon:[320,512,[128205],"f276","M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},faHamsa:{prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faCentSign:{prefix:"fas",iconName:"cent-sign",icon:[384,512,[],"e3f5","M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z"]},faFlask:{prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z"]},faPersonPregnant:{prefix:"fas",iconName:"person-pregnant",icon:[384,512,[],"e31e","M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z"]},faWandSparkles:{prefix:"fas",iconName:"wand-sparkles",icon:[512,512,[],"f72b","M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"]},faEllipsisVertical:aC,faEllipsisV:iC,faTicket:{prefix:"fas",iconName:"ticket",icon:[576,512,[127903],"f145","M64 64C28.7 64 0 92.7 0 128v64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V320c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6V128c0-35.3-28.7-64-64-64H64zm64 112l0 160c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z"]},faPowerOff:{prefix:"fas",iconName:"power-off",icon:[512,512,[9211],"f011","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"]},faRightLong:nC,faLongArrowAltRight:sC,faFlagUsa:{prefix:"fas",iconName:"flag-usa",icon:[448,512,[],"f74d","M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1v36.1l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9v32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3v33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V416 345.5 312.8 249.5 216.8 153.5 120.8 64 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faLaptopFile:{prefix:"fas",iconName:"laptop-file",icon:[640,512,[],"e51d","M128 0C92.7 0 64 28.7 64 64V288H19.2C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384H320V288H128V64H448V96h64V64c0-35.3-28.7-64-64-64H128zM512 128H400c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V256H544c-17.7 0-32-14.3-32-32V128zm32 0v96h96l-96-96z"]},faTty:rC,faTeletype:oC,faDiagramNext:{prefix:"fas",iconName:"diagram-next",icon:[512,512,[],"e476","M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z"]},faPersonRifle:{prefix:"fas",iconName:"person-rifle",icon:[576,512,[],"e54e","M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z"]},faHouseMedicalCircleExclamation:{prefix:"fas",iconName:"house-medical-circle-exclamation",icon:[640,512,[],"e512","M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faClosedCaptioning:{prefix:"fas",iconName:"closed-captioning",icon:[576,512,[],"f20a","M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},faPersonHiking:lC,faHiking:uC,faVenusDouble:{prefix:"fas",iconName:"venus-double",icon:[640,512,[9890],"f226","M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z"]},faImages:{prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z"]},faCalculator:{prefix:"fas",iconName:"calculator",icon:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},faPeoplePulling:{prefix:"fas",iconName:"people-pulling",icon:[576,512,[],"e535","M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z"]},faN:{prefix:"fas",iconName:"n",icon:[384,512,[110],"4e","M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V448c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 50.5 8.4 38.5 21.1 33.9z"]},faCableCar:pC,faTram:fC,faCloudRain:{prefix:"fas",iconName:"cloud-rain",icon:[512,512,[127783,9926],"f73d","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z"]},faBuildingCircleXmark:{prefix:"fas",iconName:"building-circle-xmark",icon:[640,512,[],"e4d4","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faShip:{prefix:"fas",iconName:"ship",icon:[576,512,[128674],"f21a","M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},faArrowsDownToLine:{prefix:"fas",iconName:"arrows-down-to-line",icon:[576,512,[],"e4b8","M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z"]},faDownload:{prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faFaceGrin:mC,faGrin:dC,faDeleteLeft:hC,faBackspace:vC,faEyeDropper:gC,faEyeDropperEmpty:zC,faEyedropper:bC,faFileCircleCheck:{prefix:"fas",iconName:"file-circle-check",icon:[576,512,[],"e5a0","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faForward:{prefix:"fas",iconName:"forward",icon:[512,512,[9193],"f04e","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z"]},faMobile:CC,faMobileAndroid:MC,faMobilePhone:HC,faFaceMeh:VC,faMeh:yC,faAlignCenter:{prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"]},faBookSkull:LC,faBookDead:SC,faIdCard:xC,faDriversLicense:PC,faOutdent:wC,faDedent:kC,faHeartCircleExclamation:{prefix:"fas",iconName:"heart-circle-exclamation",icon:[576,512,[],"e4fe","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faHouse:AC,faHome:EC,faHomeAlt:NC,faHomeLgAlt:TC,faCalendarWeek:{prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z"]},faLaptopMedical:{prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z"]},faB:{prefix:"fas",iconName:"b",icon:[320,512,[98],"42","M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H64zm96 192H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z"]},faFileMedical:{prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z"]},faDiceOne:{prefix:"fas",iconName:"dice-one",icon:[448,512,[9856],"f525","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faKiwiBird:{prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faArrowRightArrowLeft:DC,faExchange:RC,faRotateRight:_C,faRedoAlt:OC,faRotateForward:IC,faUtensils:jC,faCutlery:FC,faArrowUpWideShort:BC,faSortAmountUp:$C,faMillSign:{prefix:"fas",iconName:"mill-sign",icon:[384,512,[],"e1ed","M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z"]},faBowlRice:{prefix:"fas",iconName:"bowl-rice",icon:[512,512,[],"e2eb","M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},faSkull:{prefix:"fas",iconName:"skull",icon:[512,512,[128128],"f54c","M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},faTowerBroadcast:qC,faBroadcastTower:GC,faTruckPickup:{prefix:"fas",iconName:"truck-pickup",icon:[640,512,[128763],"f63c","M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z"]},faUpLong:WC,faLongArrowAltUp:UC,faStop:{prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},faCodeMerge:{prefix:"fas",iconName:"code-merge",icon:[448,512,[],"f387","M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faUpload:{prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faHurricane:{prefix:"fas",iconName:"hurricane",icon:[384,512,[],"f751","M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faMound:{prefix:"fas",iconName:"mound",icon:[576,512,[],"e52d","M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z"]},faToiletPortable:{prefix:"fas",iconName:"toilet-portable",icon:[320,512,[],"e583","M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},faCompactDisc:{prefix:"fas",iconName:"compact-disc",icon:[512,512,[128191,128192,128440],"f51f","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z"]},faFileArrowDown:KC,faFileDownload:ZC,faCaravan:{prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faShieldCat:{prefix:"fas",iconName:"shield-cat",icon:[512,512,[],"e572","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faBolt:YC,faZap:XC,faGlassWater:{prefix:"fas",iconName:"glass-water",icon:[384,512,[],"e4f4","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM73 156.5L66.4 64H317.6L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z"]},faOilWell:{prefix:"fas",iconName:"oil-well",icon:[576,512,[],"e532","M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z"]},faVault:{prefix:"fas",iconName:"vault",icon:[576,512,[],"e2c5","M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z"]},faMars:{prefix:"fas",iconName:"mars",icon:[448,512,[9794],"f222","M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"]},faToilet:{prefix:"fas",iconName:"toilet",icon:[448,512,[128701],"f7d8","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faPlaneCircleXmark:{prefix:"fas",iconName:"plane-circle-xmark",icon:[640,512,[],"e557","M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faYenSign:JC,faCny:QC,faJpy:eM,faRmb:tM,faYen:cM,faRubleSign:aM,faRouble:iM,faRub:nM,faRuble:sM,faSun:{prefix:"fas",iconName:"sun",icon:[512,512,[9728],"f185","M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},faGuitar:{prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faFaceLaughWink:rM,faLaughWink:oM,faHorseHead:{prefix:"fas",iconName:"horse-head",icon:[640,512,[],"f7ab","M64 464V316.9c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H112c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},faBoreHole:{prefix:"fas",iconName:"bore-hole",icon:[512,512,[],"e4c3","M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H384c-17.7 0-32 14.3-32 32V352c0 53-43 96-96 96s-96-43-96-96V160c0-17.7-14.3-32-32-32H48z"]},faIndustry:{prefix:"fas",iconName:"industry",icon:[576,512,[],"f275","M64 32C46.3 32 32 46.3 32 64V304v48 80c0 26.5 21.5 48 48 48H496c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L352 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4V64c0-17.7-14.3-32-32-32H64z"]},faCircleDown:lM,faArrowAltCircleDown:uM,faArrowsTurnToDots:{prefix:"fas",iconName:"arrows-turn-to-dots",icon:[512,512,[],"e4c1","M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z"]},faFlorinSign:{prefix:"fas",iconName:"florin-sign",icon:[384,512,[],"e184","M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z"]},faArrowDownShortWide:pM,faSortAmountDesc:fM,faSortAmountDownAlt:mM,faLessThan:{prefix:"fas",iconName:"less-than",icon:[384,512,[62774],"3c","M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z"]},faAngleDown:{prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},faCarTunnel:{prefix:"fas",iconName:"car-tunnel",icon:[512,512,[],"e4de","M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h42.8c-6.6-5.9-10.8-14.4-10.8-24V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V488c0 9.6-4.2 18.1-10.8 24H448c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24V448H160v40c0 9.6-4.2 18.1-10.8 24H362.8zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},faHeadSideCough:{prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416v16c0 26.5-21.5 48-48 48H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faGripLines:{prefix:"fas",iconName:"grip-lines",icon:[448,512,[],"f7a4","M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]},faThumbsDown:{prefix:"fas",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384H96c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H32C14.3 96 0 110.3 0 128V352c0 17.7 14.3 32 32 32z"]},faUserLock:{prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faArrowRightLong:dM,faLongArrowRight:hM,faAnchorCircleXmark:{prefix:"fas",iconName:"anchor-circle-xmark",icon:[640,512,[],"e4ac","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faEllipsis:vM,faEllipsisH:gM,faChessPawn:{prefix:"fas",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88H96c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400H240L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32h-8.5zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H281.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432H64L22.6 473.4z"]},faKitMedical:zM,faFirstAid:bM,faPersonThroughWindow:{prefix:"fas",iconName:"person-through-window",icon:[640,512,[],"e5a9","M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faToolbox:{prefix:"fas",iconName:"toolbox",icon:[512,512,[129520],"f552","M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"]},faHandsHoldingCircle:{prefix:"fas",iconName:"hands-holding-circle",icon:[640,512,[],"e4fb","M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z"]},faBug:{prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]},faCreditCard:CM,faCreditCardAlt:MM,faCar:HM,faAutomobile:VM,faHandHoldingHand:{prefix:"fas",iconName:"hand-holding-hand",icon:[576,512,[],"e4f7","M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z"]},faBookOpenReader:yM,faBookReader:LM,faMountainSun:{prefix:"fas",iconName:"mountain-sun",icon:[640,512,[],"e52f","M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z"]},faArrowsLeftRightToLine:{prefix:"fas",iconName:"arrows-left-right-to-line",icon:[640,512,[],"e4ba","M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faDiceD20:{prefix:"fas",iconName:"dice-d20",icon:[512,512,[],"f6cf","M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H183.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176H337.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z"]},faTruckDroplet:{prefix:"fas",iconName:"truck-droplet",icon:[640,512,[],"e58c","M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z"]},faFileCircleXmark:{prefix:"fas",iconName:"file-circle-xmark",icon:[576,512,[],"e5a1","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},faTemperatureArrowUp:SM,faTemperatureUp:xM,faMedal:{prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0H133.9c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0H487.4C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z"]},faBed:{prefix:"fas",iconName:"bed",icon:[640,512,[128716],"f236","M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},faSquareH:PM,faHSquare:wM,faPodcast:{prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},faTemperatureFull:kM,faTemperature4:AM,faThermometer4:EM,faThermometerFull:NM,faBell:{prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},faSuperscript:{prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z"]},faPlugCircleXmark:{prefix:"fas",iconName:"plug-circle-xmark",icon:[576,512,[],"e560","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},faStarOfLife:{prefix:"fas",iconName:"star-of-life",icon:[512,512,[],"f621","M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z"]},faPhoneSlash:{prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z"]},faPaintRoller:{prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z"]},faHandshakeAngle:TM,faHandsHelping:DM,faLocationDot:RM,faMapMarkerAlt:_M,faFile:{prefix:"fas",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z"]},faGreaterThan:{prefix:"fas",iconName:"greater-than",icon:[384,512,[62769],"3e","M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z"]},faPersonSwimming:OM,faSwimmer:IM,faArrowDown:{prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},faDroplet:jM,faTint:FM,faEraser:{prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"]},faEarthAmericas:BM,faEarth:$M,faEarthAmerica:qM,faGlobeAmericas:GM,faPersonBurst:{prefix:"fas",iconName:"person-burst",icon:[640,512,[],"e53b","M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},faDove:{prefix:"fas",iconName:"dove",icon:[512,512,[128330],"f4ba","M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faBatteryEmpty:WM,faBattery0:UM,faSocks:{prefix:"fas",iconName:"socks",icon:[512,512,[129510],"f696","M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z"]},faInbox:{prefix:"fas",iconName:"inbox",icon:[512,512,[],"f01c","M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z"]},faSection:{prefix:"fas",iconName:"section",icon:[256,512,[],"e447","M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z"]},faGaugeHigh:KM,faTachometerAlt:ZM,faTachometerAltFast:YM,faEnvelopeOpenText:{prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faHospital:XM,faHospitalAlt:JM,faHospitalWide:QM,faWineBottle:{prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z"]},faChessRook:{prefix:"fas",iconName:"chess-rook",icon:[448,512,[9820],"f447","M32 192V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V192c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144H80L96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96h32c8.8 0 16-7.2 16-16V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432H384l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H38.6C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z"]},faBarsStaggered:eH,faReorder:tH,faStream:cH,faDharmachakra:{prefix:"fas",iconName:"dharmachakra",icon:[512,512,[9784],"f655","M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faHotdog:{prefix:"fas",iconName:"hotdog",icon:[512,512,[127789],"f80f","M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z"]},faPersonWalkingWithCane:aH,faBlind:iH,faDrum:{prefix:"fas",iconName:"drum",icon:[512,512,[129345],"f569","M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z"]},faIceCream:{prefix:"fas",iconName:"ice-cream",icon:[448,512,[127848],"f810","M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16H80c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H368c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288H96z"]},faHeartCircleBolt:{prefix:"fas",iconName:"heart-circle-bolt",icon:[576,512,[],"e4fc","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},faFax:{prefix:"fas",iconName:"fax",icon:[512,512,[128224,128439],"f1ac","M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faParagraph:{prefix:"fas",iconName:"paragraph",icon:[448,512,[182],"f1dd","M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z"]},faCheckToSlot:nH,faVoteYea:sH,faStarHalf:{prefix:"fas",iconName:"star-half",icon:[576,512,[61731],"f089","M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z"]},faBoxesStacked:rH,faBoxes:oH,faBoxesAlt:lH,faLink:uH,faChain:pH,faEarListen:fH,faAssistiveListeningSystems:mH,faTreeCity:{prefix:"fas",iconName:"tree-city",icon:[640,512,[],"e587","M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z"]},faPlay:{prefix:"fas",iconName:"play",icon:[384,512,[9654],"f04b","M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"]},faFont:{prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"]},faRupiahSign:{prefix:"fas",iconName:"rupiah-sign",icon:[512,512,[],"e23d","M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z"]},faMagnifyingGlass:dH,faSearch:hH,faTableTennisPaddleBall:vH,faPingPongPaddleBall:gH,faTableTennis:zH,faPersonDotsFromLine:bH,faDiagnoses:CH,faTrashCanArrowUp:MH,faTrashRestoreAlt:HH,faNairaSign:{prefix:"fas",iconName:"naira-sign",icon:[448,512,[],"e1f6","M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z"]},faCartArrowDown:{prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H69.5c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H199.7c-11.5 0-21.4-8.2-23.6-19.5L170.7 288H459.2c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32H360V134.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V32H120.1C111 12.8 91.6 0 69.5 0H24zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faWalkieTalkie:{prefix:"fas",iconName:"walkie-talkie",icon:[384,512,[],"f8ef","M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faFilePen:VH,faFileEdit:yH,faReceipt:{prefix:"fas",iconName:"receipt",icon:[384,512,[129534],"f543","M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z"]},faSquarePen:LH,faPenSquare:SH,faPencilSquare:xH,faSuitcaseRolling:{prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faPersonCircleExclamation:{prefix:"fas",iconName:"person-circle-exclamation",icon:[576,512,[],"e53f","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faChevronDown:{prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},faBatteryFull:PH,faBattery:wH,faBattery5:kH,faSkullCrossbones:{prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[128369,9760],"f714","M368 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H176c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z"]},faCodeCompare:{prefix:"fas",iconName:"code-compare",icon:[512,512,[],"e13a","M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z"]},faListUl:AH,faListDots:EH,faSchoolLock:{prefix:"fas",iconName:"school-lock",icon:[640,512,[],"e56f","M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96H592c26.5 0 48 21.5 48 48V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H166.3L302.2 5.4zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z"]},faTowerCell:{prefix:"fas",iconName:"tower-cell",icon:[576,512,[],"e585","M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z"]},faDownLong:NH,faLongArrowAltDown:TH,faRankingStar:{prefix:"fas",iconName:"ranking-star",icon:[640,512,[],"e561","M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z"]},faChessKing:{prefix:"fas",iconName:"chess-king",icon:[448,512,[9818],"f43f","M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H408c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400H80L3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM38.6 473.4L80 432H368l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H54.6C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z"]},faPersonHarassing:{prefix:"fas",iconName:"person-harassing",icon:[576,512,[],"e549","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z"]},faBrazilianRealSign:{prefix:"fas",iconName:"brazilian-real-sign",icon:[512,512,[],"e46c","M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z"]},faLandmarkDome:DH,faLandmarkAlt:RH,faArrowUp:{prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"]},faTv:_H,faTelevision:OH,faTvAlt:IH,faShrimp:{prefix:"fas",iconName:"shrimp",icon:[512,512,[129424],"e448","M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faListCheck:jH,faTasks:FH,faJugDetergent:{prefix:"fas",iconName:"jug-detergent",icon:[384,512,[],"e519","M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faCircleUser:BH,faUserCircle:$H,faUserShield:{prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z"]},faWind:{prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},faCarBurst:qH,faCarCrash:GH,faY:{prefix:"fas",iconName:"y",icon:[384,512,[121],"59","M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z"]},faPersonSnowboarding:WH,faSnowboarding:UH,faTruckFast:KH,faShippingFast:ZH,faFish:{prefix:"fas",iconName:"fish",icon:[576,512,[128031],"f578","M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},faUserGraduate:{prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z"]},faCircleHalfStroke:YH,faAdjust:XH,faClapperboard:{prefix:"fas",iconName:"clapperboard",icon:[512,512,[],"e131","M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z"]},faCircleRadiation:JH,faRadiationAlt:QH,faBaseball:eV,faBaseballBall:tV,faJetFighterUp:{prefix:"fas",iconName:"jet-fighter-up",icon:[512,512,[],"e518","M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z"]},faDiagramProject:cV,faProjectDiagram:aV,faCopy:{prefix:"fas",iconName:"copy",icon:[512,512,[],"f0c5","M272 0H396.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128H192v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"]},faVolumeXmark:iV,faVolumeMute:nV,faVolumeTimes:sV,faHandSparkles:{prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z"]},faGrip:rV,faGripHorizontal:oV,faShareFromSquare:lV,faShareSquare:uV,faChildCombatant:pV,faChildRifle:fV,faGun:{prefix:"fas",iconName:"gun",icon:[576,512,[],"e19b","M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faSquarePhone:mV,faPhoneSquare:dV,faPlus:hV,faAdd:vV,faExpand:{prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z"]},faComputer:{prefix:"fas",iconName:"computer",icon:[640,512,[],"e4e5","M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faXmark:gV,faClose:zV,faMultiply:bV,faRemove:CV,faTimes:MV,faArrowsUpDownLeftRight:HV,faArrows:VV,faChalkboardUser:yV,faChalkboardTeacher:LV,faPesoSign:{prefix:"fas",iconName:"peso-sign",icon:[384,512,[],"e222","M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z"]},faBuildingShield:{prefix:"fas",iconName:"building-shield",icon:[576,512,[],"e4d8","M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z"]},faBaby:{prefix:"fas",iconName:"baby",icon:[448,512,[],"f77c","M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z"]},faUsersLine:{prefix:"fas",iconName:"users-line",icon:[640,512,[],"e592","M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faQuoteLeft:SV,faQuoteLeftAlt:xV,faTractor:{prefix:"fas",iconName:"tractor",icon:[640,512,[128668],"f722","M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z"]},faTrashArrowUp:PV,faTrashRestore:wV,faArrowDownUpLock:{prefix:"fas",iconName:"arrow-down-up-lock",icon:[640,512,[],"e4b0","M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},faLinesLeaning:{prefix:"fas",iconName:"lines-leaning",icon:[384,512,[],"e51e","M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z"]},faRulerCombined:{prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z"]},faCopyright:{prefix:"fas",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z"]},faEquals:{prefix:"fas",iconName:"equals",icon:[448,512,[62764],"3d","M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z"]},faBlender:{prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faTeeth:{prefix:"fas",iconName:"teeth",icon:[576,512,[],"f62e","M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z"]},faShekelSign:kV,faIls:AV,faShekel:EV,faSheqel:NV,faSheqelSign:TV,faMap:{prefix:"fas",iconName:"map",icon:[576,512,[128506,62072],"f279","M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z"]},faRocket:{prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faPhotoFilm:DV,faPhotoVideo:RV,faFolderMinus:{prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z"]},faStore:{prefix:"fas",iconName:"store",icon:[576,512,[],"f54e","M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z"]},faArrowTrendUp:{prefix:"fas",iconName:"arrow-trend-up",icon:[576,512,[],"e098","M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z"]},faPlugCircleMinus:{prefix:"fas",iconName:"plug-circle-minus",icon:[576,512,[],"e55e","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z"]},faSignHanging:_V,faSign:OV,faBezierCurve:{prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z"]},faBellSlash:{prefix:"fas",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},faTablet:IV,faTabletAndroid:jV,faSchoolFlag:{prefix:"fas",iconName:"school-flag",icon:[576,512,[],"e56e","M288 0H400c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H320.7l89.6 64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z"]},faFill:{prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288H67.5c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z"]},faAngleUp:{prefix:"fas",iconName:"angle-up",icon:[448,512,[8963],"f106","M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"]},faDrumstickBite:{prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z"]},faHollyBerry:{prefix:"fas",iconName:"holly-berry",icon:[512,512,[],"f7aa","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},faChevronLeft:{prefix:"fas",iconName:"chevron-left",icon:[320,512,[9001],"f053","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},faBacteria:{prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1l-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1l.1 0 29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5l0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z"]},faHandLizard:{prefix:"fas",iconName:"hand-lizard",icon:[512,512,[],"f258","M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z"]},faNotdef:{prefix:"fas",iconName:"notdef",icon:[384,512,[],"e1fe","M64 390.3L153.5 256 64 121.7V390.3zM102.5 448H281.5L192 313.7 102.5 448zm128-192L320 390.3V121.7L230.5 256zM281.5 64H102.5L192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z"]},faDisease:{prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6h10c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBriefcaseMedical:{prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z"]},faGenderless:{prefix:"fas",iconName:"genderless",icon:[384,512,[],"f22d","M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z"]},faChevronRight:{prefix:"fas",iconName:"chevron-right",icon:[320,512,[9002],"f054","M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},faRetweet:{prefix:"fas",iconName:"retweet",icon:[576,512,[],"f079","M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z"]},faCarRear:FV,faCarAlt:BV,faPumpSoap:{prefix:"fas",iconName:"pump-soap",icon:[448,512,[],"e06b","M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z"]},faVideoSlash:{prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z"]},faBatteryQuarter:$V,faBattery2:qV,faRadio:{prefix:"fas",iconName:"radio",icon:[512,512,[128251],"f8d7","M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z"]},faBabyCarriage:GV,faCarriageBaby:WV,faTrafficLight:{prefix:"fas",iconName:"traffic-light",icon:[320,512,[128678],"f637","M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"]},faThermometer:{prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z"]},faVrCardboard:{prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},faHandMiddleFinger:{prefix:"fas",iconName:"hand-middle-finger",icon:[448,512,[128405],"f806","M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z"]},faPercent:UV,faPercentage:KV,faTruckMoving:{prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faGlassWaterDroplet:{prefix:"fas",iconName:"glass-water-droplet",icon:[384,512,[],"e4f5","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM83 297.5L66.4 64H317.6L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z"]},faDisplay:{prefix:"fas",iconName:"display",icon:[576,512,[],"e163","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z"]},faFaceSmile:ZV,faSmile:YV,faThumbtack:XV,faThumbTack:JV,faTrophy:{prefix:"fas",iconName:"trophy",icon:[576,512,[127942],"f091","M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z"]},faPersonPraying:QV,faPray:ey,faHammer:{prefix:"fas",iconName:"hammer",icon:[576,512,[128296],"f6e3","M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z"]},faHandPeace:{prefix:"fas",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z"]},faRotate:ty,faSyncAlt:cy,faSpinner:{prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"]},faRobot:{prefix:"fas",iconName:"robot",icon:[640,512,[129302],"f544","M320 0c17.7 0 32 14.3 32 32V96H472c39.8 0 72 32.2 72 72V440c0 39.8-32.2 72-72 72H168c-39.8 0-72-32.2-72-72V168c0-39.8 32.2-72 72-72H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z"]},faPeace:{prefix:"fas",iconName:"peace",icon:[512,512,[9774],"f67c","M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},faGears:ay,faCogs:iy,faWarehouse:{prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z"]},faArrowUpRightDots:{prefix:"fas",iconName:"arrow-up-right-dots",icon:[576,512,[],"e4b7","M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},faSplotch:{prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z"]},faFaceGrinHearts:ny,faGrinHearts:sy,faDiceFour:{prefix:"fas",iconName:"dice-four",icon:[448,512,[9859],"f524","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faSimCard:{prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z"]},faTransgender:ry,faTransgenderAlt:oy,faMercury:{prefix:"fas",iconName:"mercury",icon:[384,512,[9791],"f223","M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z"]},faArrowTurnDown:ly,faLevelDown:uy,faPersonFallingBurst:{prefix:"fas",iconName:"person-falling-burst",icon:[640,512,[],"e547","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z"]},faAward:{prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z"]},faTicketSimple:py,faTicketAlt:fy,faBuilding:{prefix:"fas",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z"]},faAnglesLeft:my,faAngleDoubleLeft:dy,faQrcode:{prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80zM64 96v64h64V96H64zM0 336c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336zm64 16v64h64V352H64zM304 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H304c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm80 64H320v64h64V96zM256 304c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16v96c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16v64c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V304zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"]},faClockRotateLeft:hy,faHistory:vy,faFaceGrinBeamSweat:gy,faGrinBeamSweat:zy,faFileExport:by,faArrowRightFromFile:Cy,faShield:My,faShieldBlank:Hy,faArrowUpShortWide:Vy,faSortAmountUpAlt:yy,faHouseMedical:{prefix:"fas",iconName:"house-medical",icon:[576,512,[],"e3b2","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z"]},faGolfBallTee:Ly,faGolfBall:Sy,faCircleChevronLeft:xy,faChevronCircleLeft:Py,faHouseChimneyWindow:{prefix:"fas",iconName:"house-chimney-window",icon:[576,512,[],"e00d","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z"]},faPenNib:{prefix:"fas",iconName:"pen-nib",icon:[512,512,[10001],"f5ad","M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z"]},faTentArrowTurnLeft:{prefix:"fas",iconName:"tent-arrow-turn-left",icon:[576,512,[],"e580","M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faTents:{prefix:"fas",iconName:"tents",icon:[640,512,[],"e582","M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faWandMagic:wy,faMagic:ky,faDog:{prefix:"fas",iconName:"dog",icon:[576,512,[128021],"f6d3","M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},faCarrot:{prefix:"fas",iconName:"carrot",icon:[512,512,[129365],"f787","M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z"]},faMoon:{prefix:"fas",iconName:"moon",icon:[384,512,[127769,9214],"f186","M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]},faWineGlassEmpty:Ay,faWineGlassAlt:Ey,faCheese:{prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z"]},faYinYang:{prefix:"fas",iconName:"yin-yang",icon:[512,512,[9775],"f6ad","M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},faMusic:{prefix:"fas",iconName:"music",icon:[512,512,[127925],"f001","M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"]},faCodeCommit:{prefix:"fas",iconName:"code-commit",icon:[640,512,[],"f386","M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z"]},faTemperatureLow:{prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z"]},faPersonBiking:Ny,faBiking:Ty,faBroom:{prefix:"fas",iconName:"broom",icon:[576,512,[129529],"f51a","M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6v29.1L364.3 320h29.1c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z"]},faShieldHeart:{prefix:"fas",iconName:"shield-heart",icon:[512,512,[],"e574","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z"]},faGopuram:{prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faEarthOceania:Dy,faGlobeOceania:Ry,faSquareXmark:_y,faTimesSquare:Oy,faXmarkSquare:Iy,faHashtag:{prefix:"fas",iconName:"hashtag",icon:[448,512,[62098],"23","M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z"]},faUpRightAndDownLeftFromCenter:jy,faExpandAlt:Fy,faOilCan:{prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z"]},faT:{prefix:"fas",iconName:"t",icon:[384,512,[116],"54","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z"]},faHippo:{prefix:"fas",iconName:"hippo",icon:[640,512,[129435],"f6ed","M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},faChartColumn:{prefix:"fas",iconName:"chart-column",icon:[512,512,[],"e0e3","M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},faInfinity:{prefix:"fas",iconName:"infinity",icon:[640,512,[8734,9854],"f534","M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z"]},faVialCircleCheck:{prefix:"fas",iconName:"vial-circle-check",icon:[512,512,[],"e596","M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faPersonArrowDownToLine:{prefix:"fas",iconName:"person-arrow-down-to-line",icon:[640,512,[],"e538","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},faVoicemail:{prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},faFan:{prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faPersonWalkingLuggage:{prefix:"fas",iconName:"person-walking-luggage",icon:[576,512,[],"e554","M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z"]},faUpDown:By,faArrowsAltV:$y,faCloudMoonRain:{prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H367.9zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z"]},faCalendar:{prefix:"fas",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"]},faTrailer:{prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBahai:qy,faHaykal:Gy,faSdCard:{prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},faDragon:{prefix:"fas",iconName:"dragon",icon:[640,512,[128009],"f6d5","M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z"]},faShoePrints:{prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z"]},faCirclePlus:Wy,faPlusCircle:Uy,faFaceGrinTongueWink:Ky,faGrinTongueWink:Zy,faHandHolding:{prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-366.1-8.3a.5 .5 0 1 1 -.9 .1 .5 .5 0 1 1 .9-.1z"]},faPlugCircleExclamation:{prefix:"fas",iconName:"plug-circle-exclamation",icon:[576,512,[],"e55d","M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z"]},faLinkSlash:Yy,faChainBroken:Xy,faChainSlash:Jy,faUnlink:Qy,faClone:{prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448H64V224h64V160H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64zm-64-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z"]},faPersonWalkingArrowLoopLeft:{prefix:"fas",iconName:"person-walking-arrow-loop-left",icon:[640,512,[],"e551","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"]},faArrowUpZA:eL,faSortAlphaUpAlt:tL,faFireFlameCurved:cL,faFireAlt:aL,faTornado:{prefix:"fas",iconName:"tornado",icon:[448,512,[127786],"f76f","M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z"]},faFileCirclePlus:{prefix:"fas",iconName:"file-circle-plus",icon:[576,512,[58606],"e494","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z"]},faBookQuran:iL,faQuran:nL,faAnchor:{prefix:"fas",iconName:"anchor",icon:[576,512,[9875],"f13d","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z"]},faBorderAll:{prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"]},faFaceAngry:sL,faAngry:rL,faCookieBite:{prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faArrowTrendDown:{prefix:"fas",iconName:"arrow-trend-down",icon:[576,512,[],"e097","M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z"]},faRss:oL,faFeed:lL,faDrawPolygon:{prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z"]},faScaleBalanced:uL,faBalanceScale:pL,faGaugeSimpleHigh:fL,faTachometer:mL,faTachometerFast:dL,faShower:{prefix:"fas",iconName:"shower",icon:[512,512,[128703],"f2cc","M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faDesktop:hL,faDesktopAlt:vL,faM:{prefix:"fas",iconName:"m",icon:[448,512,[109],"4d","M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.2c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V169.7L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 49.9 9.2 37.5 22.7 33.4z"]},faTableList:gL,faThList:zL,faCommentSms:bL,faSms:CL,faBook:{prefix:"fas",iconName:"book",icon:[448,512,[128212],"f02d","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faUserPlus:{prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},faCheck:{prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},faBatteryThreeQuarters:ML,faBattery4:HL,faHouseCircleCheck:{prefix:"fas",iconName:"house-circle-check",icon:[640,512,[],"e509","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},faAngleLeft:{prefix:"fas",iconName:"angle-left",icon:[320,512,[8249],"f104","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},faDiagramSuccessor:{prefix:"fas",iconName:"diagram-successor",icon:[512,512,[],"e47a","M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z"]},faTruckArrowRight:{prefix:"fas",iconName:"truck-arrow-right",icon:[640,512,[],"e58b","M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z"]},faArrowsSplitUpAndLeft:{prefix:"fas",iconName:"arrows-split-up-and-left",icon:[512,512,[],"e4bc","M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z"]},faHandFist:VL,faFistRaised:yL,faCloudMoon:{prefix:"fas",iconName:"cloud-moon",icon:[640,512,[],"f6c3","M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},faBriefcase:{prefix:"fas",iconName:"briefcase",icon:[512,512,[128188],"f0b1","M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z"]},faPersonFalling:{prefix:"fas",iconName:"person-falling",icon:[512,512,[],"e546","M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},faImagePortrait:LL,faPortrait:SL,faUserTag:{prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},faRug:{prefix:"fas",iconName:"rug",icon:[640,512,[],"e569","M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z"]},faEarthEurope:xL,faGlobeEurope:PL,faCartFlatbedSuitcase:wL,faLuggageCart:kL,faRectangleXmark:AL,faRectangleTimes:EL,faTimesRectangle:NL,faWindowClose:TL,faBahtSign:{prefix:"fas",iconName:"baht-sign",icon:[320,512,[],"e0ac","M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z"]},faBookOpen:{prefix:"fas",iconName:"book-open",icon:[576,512,[128214,128366],"f518","M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z"]},faBookJournalWhills:DL,faJournalWhills:RL,faHandcuffs:{prefix:"fas",iconName:"handcuffs",icon:[640,512,[],"e4f8","M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faTriangleExclamation:_L,faExclamationTriangle:OL,faWarning:IL,faDatabase:{prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z"]},faShare:jL,faArrowTurnRight:FL,faMailForward:BL,faBottleDroplet:{prefix:"fas",iconName:"bottle-droplet",icon:[320,512,[],"e4c4","M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H104l0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z"]},faMaskFace:{prefix:"fas",iconName:"mask-face",icon:[640,512,[],"e1d7","M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z"]},faHillRockslide:{prefix:"fas",iconName:"hill-rockslide",icon:[576,512,[],"e508","M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faRightLeft:$L,faExchangeAlt:qL,faPaperPlane:{prefix:"fas",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"]},faRoadCircleExclamation:{prefix:"fas",iconName:"road-circle-exclamation",icon:[640,512,[],"e565","M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z"]},faDungeon:{prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z"]},faAlignRight:{prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},faMoneyBill1Wave:GL,faMoneyBillWaveAlt:WL,faLifeRing:{prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},faHands:UL,faSignLanguage:KL,faSigning:ZL,faCalendarDay:{prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z"]},faWaterLadder:YL,faLadderWater:XL,faSwimmingPool:JL,faArrowsUpDown:QL,faArrowsV:eS,faFaceGrimace:tS,faGrimace:cS,faWheelchairMove:aS,faWheelchairAlt:iS,faTurnDown:nS,faLevelDownAlt:sS,faPersonWalkingArrowRight:{prefix:"fas",iconName:"person-walking-arrow-right",icon:[640,512,[],"e552","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"]},faSquareEnvelope:rS,faEnvelopeSquare:oS,faDice:{prefix:"fas",iconName:"dice",icon:[640,512,[127922],"f522","M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H461.7c11.6 36 3.1 77-25.4 105.5L320 413.8V448zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faBowlingBall:{prefix:"fas",iconName:"bowling-ball",icon:[512,512,[],"f436","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},faBrain:{prefix:"fas",iconName:"brain",icon:[512,512,[129504],"f5dc","M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z"]},faBandage:lS,faBandAid:uS,faCalendarMinus:{prefix:"fas",iconName:"calendar-minus",icon:[512,512,[],"f272","M160 0c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H32V112c0-26.5 21.5-48 48-48h48V32c0-17.7 14.3-32 32-32zM32 192H480V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V192zM344 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H168c-13.3 0-24 10.7-24 24s10.7 24 24 24H344z"]},faCircleXmark:pS,faTimesCircle:fS,faXmarkCircle:mS,faGifts:{prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z"]},faHotel:{prefix:"fas",iconName:"hotel",icon:[512,512,[127976],"f594","M0 32C0 14.3 14.3 0 32 0H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64C14.3 64 0 49.7 0 32zm96 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H240zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H112zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H368zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8H328z"]},faEarthAsia:dS,faGlobeAsia:hS,faIdCardClip:vS,faIdCardAlt:gS,faMagnifyingGlassPlus:zS,faSearchPlus:bS,faThumbsUp:{prefix:"fas",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"]},faUserClock:{prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z"]},faHandDots:CS,faAllergies:MS,faFileInvoice:{prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},faWindowMinimize:{prefix:"fas",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"]},faMugSaucer:HS,faCoffee:VS,faBrush:{prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M162.4 6c-1.5-3.6-5-6-8.9-6h-19c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6H48C21.5 0 0 21.5 0 48V224v22.4V256H9.6 374.4 384v-9.6V224 48c0-26.5-21.5-48-48-48H230.5c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},faMask:{prefix:"fas",iconName:"mask",icon:[576,512,[],"f6fa","M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},faMagnifyingGlassMinus:yS,faSearchMinus:LS,faRulerVertical:{prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z"]},faUserLarge:SS,faUserAlt:xS,faTrainTram:{prefix:"fas",iconName:"train-tram",icon:[448,512,[128650],"e5b4","M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},faUserNurse:{prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z"]},faSyringe:{prefix:"fas",iconName:"syringe",icon:[512,512,[128137],"f48e","M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z"]},faCloudSun:{prefix:"fas",iconName:"cloud-sun",icon:[640,512,[9925],"f6c4","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},faStopwatch20:{prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z"]},faSquareFull:{prefix:"fas",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M0 0H512V512H0V0z"]},faMagnet:{prefix:"fas",iconName:"magnet",icon:[448,512,[129522],"f076","M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z"]},faJar:{prefix:"fas",iconName:"jar",icon:[320,512,[],"e516","M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z"]},faNoteSticky:PS,faStickyNote:wS,faBugSlash:{prefix:"fas",iconName:"bug-slash",icon:[640,512,[],"e490","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z"]},faArrowUpFromWaterPump:{prefix:"fas",iconName:"arrow-up-from-water-pump",icon:[576,512,[],"e4b6","M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z"]},faBone:{prefix:"fas",iconName:"bone",icon:[576,512,[129460],"f5d7","M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"]},faUserInjured:{prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z"]},faFaceSadTear:kS,faSadTear:AS,faPlane:{prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z"]},faTentArrowsDown:{prefix:"fas",iconName:"tent-arrows-down",icon:[576,512,[],"e581","M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},faExclamation:{prefix:"fas",iconName:"exclamation",icon:[64,512,[10069,10071,61738],"21","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},faArrowsSpin:{prefix:"fas",iconName:"arrows-spin",icon:[512,512,[],"e4bb","M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H448c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H64c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32H99.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224H412.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H448c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H64c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z"]},faPrint:{prefix:"fas",iconName:"print",icon:[512,512,[128424,128438,9113],"f02f","M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},faTurkishLiraSign:ES,faTry:NS,faTurkishLira:TS,faDollarSign:DS,faDollar:RS,faUsd:_S,faX:{prefix:"fas",iconName:"x",icon:[384,512,[120],"58","M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"]},faMagnifyingGlassDollar:OS,faSearchDollar:IS,faUsersGear:jS,faUsersCog:FS,faPersonMilitaryPointing:{prefix:"fas",iconName:"person-military-pointing",icon:[576,512,[],"e54a","M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z"]},faBuildingColumns:BS,faBank:$S,faInstitution:qS,faMuseum:GS,faUniversity:WS,faUmbrella:{prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M288 0c17.7 0 32 14.3 32 32V49.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z"]},faTrowel:{prefix:"fas",iconName:"trowel",icon:[512,512,[],"e589","M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z"]},faD:{prefix:"fas",iconName:"d",icon:[384,512,[100],"44","M0 96C0 60.7 28.7 32 64 32h96c123.7 0 224 100.3 224 224s-100.3 224-224 224H64c-35.3 0-64-28.7-64-64V96zm160 0H64V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160z"]},faStapler:{prefix:"fas",iconName:"stapler",icon:[640,512,[],"e5af","M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z"]},faMasksTheater:US,faTheaterMasks:KS,faKipSign:{prefix:"fas",iconName:"kip-sign",icon:[384,512,[],"e1c4","M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z"]},faHandPointLeft:{prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z"]},faHandshakeSimple:ZS,faHandshakeAlt:YS,faJetFighter:XS,faFighterJet:JS,faSquareShareNodes:QS,faShareAltSquare:ex,faBarcode:{prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},faPlusMinus:{prefix:"fas",iconName:"plus-minus",icon:[384,512,[],"e43c","M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z"]},faVideo:tx,faVideoCamera:cx,faGraduationCap:ax,faMortarBoard:ix,faHandHoldingMedical:{prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z"]},faPersonCircleCheck:{prefix:"fas",iconName:"person-circle-check",icon:[576,512,[],"e53e","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},faTurnUp:nx,faLevelUpAlt:sx},ox={prefix:"fab",iconName:"square-js",icon:[448,512,["js-square"],"f3b9","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"]},lx=ox,ux={prefix:"fab",iconName:"square-reddit",icon:[448,512,["reddit-square"],"f1a2","M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"]},px=ux,fx={prefix:"fab",iconName:"square-instagram",icon:[448,512,["instagram-square"],"e055","M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z"]},mx=fx,dx={prefix:"fab",iconName:"square-hacker-news",icon:[448,512,["hacker-news-square"],"f3af","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"]},hx=dx,vx={prefix:"fab",iconName:"square-snapchat",icon:[448,512,["snapchat-square"],"f2ad","M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z"]},gx=vx,zx={prefix:"fab",iconName:"square-font-awesome-stroke",icon:[448,512,["font-awesome-alt"],"f35c","M201.6,152c-25.4,0-37.4,10.4-57.6,14.4V160c0-8.8-7.2-16-16-16s-16,7.2-16,16v192c0,0.8,0.1,1.6,0.2,2.4 c0.1,0.4,0.1,0.8,0.2,1.2c1.6,7.1,8,12.4,15.6,12.4s14-5.3,15.6-12.4c0.1-0.4,0.2-0.8,0.2-1.2c0.1-0.8,0.2-1.6,0.2-2.4V198.4 c4-0.8,7.7-1.8,11.2-3c14.3-4.7,26-11.4,46.4-11.4c31.4,0,43.2,16,74.6,16c8.9,0,15.9-1.1,24.2-3.5c1.2-0.3,2.4-0.7,3.6-1.1v96 c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.4-16-74.6-16c-10.2,0-18.2,1.8-25.6,4v32c7.4-2.4,15.4-4,25.6-4c31.4,0,43.2,16,74.6,16 c18.6,0,28.2-4.8,59.8-16V152c-31.6,11.2-41.2,16-59.8,16C244.8,168,232.8,152,201.6,152z M384,32H64C28.7,32,0,60.7,0,96v320 c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64V96C448,60.7,419.3,32,384,32z M416,416c0,17.6-14.4,32-32,32H64 c-17.6,0-32-14.4-32-32V96c0-17.6,14.4-32,32-32h320c17.6,0,32,14.4,32,32V416z"]},bx=zx,Cx={prefix:"fab",iconName:"square-viadeo",icon:[448,512,["viadeo-square"],"f2aa","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"]},Mx=Cx,Hx={prefix:"fab",iconName:"square-dribbble",icon:[448,512,["dribbble-square"],"f397","M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"]},Vx=Hx,yx={prefix:"fab",iconName:"square-twitter",icon:[448,512,["twitter-square"],"f081","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"]},Lx=yx,Sx={prefix:"fab",iconName:"square-youtube",icon:[448,512,[61798,"youtube-square"],"f431","M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"]},xx=Sx,Px={prefix:"fab",iconName:"wpressr",icon:[496,512,["rendact"],"f3e4","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z"]},wx=Px,kx={prefix:"fab",iconName:"square-steam",icon:[448,512,["steam-square"],"f1b7","M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"]},Ax=kx,Ex={prefix:"fab",iconName:"square-vimeo",icon:[448,512,["vimeo-square"],"f194","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"]},Nx=Ex,Tx={prefix:"fab",iconName:"font-awesome",icon:[448,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M448 48V384C385 407 366 416 329 416C266 416 242 384 179 384C159 384 143 388 128 392V328C143 324 159 320 179 320C242 320 266 352 329 352C349 352 364 349 384 343V135C364 141 349 144 329 144C266 144 242 112 179 112C128 112 104 133 64 141V448C64 466 50 480 32 480S0 466 0 448V64C0 46 14 32 32 32S64 46 64 64V77C104 69 128 48 179 48C242 48 266 80 329 80C366 80 385 71 448 48Z"]},Dx=Tx,Rx=Tx,_x={prefix:"fab",iconName:"square-github",icon:[448,512,["github-square"],"f092","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"]},Ox=_x,Ix={prefix:"fab",iconName:"square-gitlab",icon:[448,512,["gitlab-square"],"e5ae","M48 32H400C426.5 32 448 53.5 448 80V432C448 458.5 426.5 480 400 480H48C21.5 480 0 458.5 0 432V80C0 53.5 21.5 32 48 32zM382.1 224.9L337.5 108.5C336.6 106.2 334.9 104.2 332.9 102.9C331.3 101.9 329.5 101.3 327.7 101.1C325.9 100.9 324 101.2 322.3 101.8C320.6 102.5 319 103.5 317.8 104.9C316.6 106.3 315.7 107.9 315.2 109.7L285 201.9H162.1L132.9 109.7C132.4 107.9 131.4 106.3 130.2 104.9C128.1 103.6 127.4 102.5 125.7 101.9C123.1 101.2 122.1 100.1 120.3 101.1C118.5 101.3 116.7 101.9 115.1 102.9C113.1 104.2 111.5 106.2 110.6 108.5L65.94 224.9L65.47 226.1C59.05 242.9 58.26 261.3 63.22 278.6C68.18 295.9 78.62 311.1 92.97 321.9L93.14 322L93.52 322.3L161.4 373.2L215.6 414.1C217.1 415.1 220.9 416.9 223.9 416.9C226.9 416.9 229.9 415.1 232.3 414.1L286.4 373.2L354.8 322L355 321.9C369.4 311 379.8 295.8 384.8 278.6C389.7 261.3 388.1 242.9 382.5 226.1L382.1 224.9z"]},jx=Ix,Fx={prefix:"fab",iconName:"square-odnoklassniki",icon:[448,512,["odnoklassniki-square"],"f264","M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"]},Bx=Fx,$x={prefix:"fab",iconName:"square-pinterest",icon:[448,512,["pinterest-square"],"f0d3","M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"]},qx=$x,Gx={prefix:"fab",iconName:"square-google-plus",icon:[448,512,["google-plus-square"],"f0d4","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"]},Wx=Gx,Ux={prefix:"fab",iconName:"square-xing",icon:[448,512,["xing-square"],"f169","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"]},Kx=Ux,Zx={prefix:"fab",iconName:"42-group",icon:[640,512,["innosoft"],"e080","M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z"]},Yx={prefix:"fab",iconName:"square-pied-piper",icon:[448,512,["pied-piper-square"],"e01e","M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"]},Xx={prefix:"fab",iconName:"square-facebook",icon:[448,512,["facebook-square"],"f082","M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"]},Jx={prefix:"fab",iconName:"square-lastfm",icon:[448,512,["lastfm-square"],"f203","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"]},Qx={prefix:"fab",iconName:"wirsindhandwerk",icon:[512,512,["wsh"],"e2d0","M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z"]},eP={prefix:"fab",iconName:"snapchat",icon:[512,512,[62124,"snapchat-ghost"],"f2ab","M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z"]},tP={prefix:"fab",iconName:"square-behance",icon:[448,512,["behance-square"],"f1b5","M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"]},cP={prefix:"fab",iconName:"square-git",icon:[448,512,["git-square"],"f1d2","M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z"]},aP={prefix:"fab",iconName:"square-tumblr",icon:[448,512,["tumblr-square"],"f174","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"]},iP={prefix:"fab",iconName:"telegram",icon:[496,512,[62462,"telegram-plane"],"f2c6","M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z"]},nP={prefix:"fab",iconName:"square-whatsapp",icon:[448,512,["whatsapp-square"],"f40c","M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"]},sP={prefix:"fab",iconName:"slack",icon:[448,512,[62447,"slack-hash"],"f198","M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"]},rP={prefix:"fab",iconName:"medium",icon:[640,512,[62407,"medium-m"],"f23a","M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z"]},oP={faMonero:{prefix:"fab",iconName:"monero",icon:[496,512,[],"f3d0","M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"]},faHooli:{prefix:"fab",iconName:"hooli",icon:[640,512,[],"f427","M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z"]},faYelp:{prefix:"fab",iconName:"yelp",icon:[384,512,[],"f1e9","M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z"]},faCcVisa:{prefix:"fab",iconName:"cc-visa",icon:[576,512,[],"f1f0","M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"]},faLastfm:{prefix:"fab",iconName:"lastfm",icon:[512,512,[],"f202","M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"]},faShopware:{prefix:"fab",iconName:"shopware",icon:[512,512,[],"f5b5","M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z"]},faCreativeCommonsNc:{prefix:"fab",iconName:"creative-commons-nc",icon:[496,512,[],"f4e8","M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"]},faAws:{prefix:"fab",iconName:"aws",icon:[640,512,[],"f375","M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"]},faRedhat:{prefix:"fab",iconName:"redhat",icon:[512,512,[],"f7bc","M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24"]},faYoast:{prefix:"fab",iconName:"yoast",icon:[448,512,[],"f2b1","M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"]},faCloudflare:{prefix:"fab",iconName:"cloudflare",icon:[640,512,[],"e07d","M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z"]},faUps:{prefix:"fab",iconName:"ups",icon:[384,512,[],"f7e0","M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z"]},faWpexplorer:{prefix:"fab",iconName:"wpexplorer",icon:[512,512,[],"f2de","M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"]},faDyalog:{prefix:"fab",iconName:"dyalog",icon:[416,512,[],"f399","M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"]},faBity:{prefix:"fab",iconName:"bity",icon:[496,512,[],"f37a","M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"]},faStackpath:{prefix:"fab",iconName:"stackpath",icon:[448,512,[],"f842","M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z"]},faBuysellads:{prefix:"fab",iconName:"buysellads",icon:[448,512,[],"f20d","M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"]},faFirstOrder:{prefix:"fab",iconName:"first-order",icon:[448,512,[],"f2b0","M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"]},faModx:{prefix:"fab",iconName:"modx",icon:[448,512,[],"f285","M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"]},faGuilded:{prefix:"fab",iconName:"guilded",icon:[448,512,[],"e07e","M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z"]},faVnv:{prefix:"fab",iconName:"vnv",icon:[640,512,[],"f40b","M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"]},faSquareJs:ox,faJsSquare:lx,faMicrosoft:{prefix:"fab",iconName:"microsoft",icon:[448,512,[],"f3ca","M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"]},faQq:{prefix:"fab",iconName:"qq",icon:[448,512,[],"f1d6","M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"]},faOrcid:{prefix:"fab",iconName:"orcid",icon:[512,512,[],"f8d2","M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z"]},faJava:{prefix:"fab",iconName:"java",icon:[384,512,[],"f4e4","M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z"]},faInvision:{prefix:"fab",iconName:"invision",icon:[448,512,[],"f7b0","M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z"]},faCreativeCommonsPdAlt:{prefix:"fab",iconName:"creative-commons-pd-alt",icon:[496,512,[],"f4ed","M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z"]},faCentercode:{prefix:"fab",iconName:"centercode",icon:[512,512,[],"f380","M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"]},faGlideG:{prefix:"fab",iconName:"glide-g",icon:[448,512,[],"f2a6","M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"]},faDrupal:{prefix:"fab",iconName:"drupal",icon:[448,512,[],"f1a9","M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z"]},faHireAHelper:{prefix:"fab",iconName:"hire-a-helper",icon:[512,512,[],"f3b0","M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"]},faCreativeCommonsBy:{prefix:"fab",iconName:"creative-commons-by",icon:[496,512,[],"f4e7","M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"]},faUnity:{prefix:"fab",iconName:"unity",icon:[448,512,[],"e049","M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z"]},faWhmcs:{prefix:"fab",iconName:"whmcs",icon:[448,512,[],"f40d","M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"]},faRocketchat:{prefix:"fab",iconName:"rocketchat",icon:[576,512,[],"f3e8","M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z"]},faVk:{prefix:"fab",iconName:"vk",icon:[448,512,[],"f189","M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z"]},faUntappd:{prefix:"fab",iconName:"untappd",icon:[640,512,[],"f405","M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"]},faMailchimp:{prefix:"fab",iconName:"mailchimp",icon:[448,512,[],"f59e","M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z"]},faCss3Alt:{prefix:"fab",iconName:"css3-alt",icon:[384,512,[],"f38b","M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"]},faSquareReddit:ux,faRedditSquare:px,faVimeoV:{prefix:"fab",iconName:"vimeo-v",icon:[448,512,[],"f27d","M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"]},faContao:{prefix:"fab",iconName:"contao",icon:[512,512,[],"f26d","M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"]},faSquareFontAwesome:{prefix:"fab",iconName:"square-font-awesome",icon:[448,512,[],"e5ad","M384.5,32.5h-320c-35.3,0-64,28.7-64,64v320c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64v-320 C448.5,61.2,419.8,32.5,384.5,32.5z M336.5,312.5c-31.6,11.2-41.2,16-59.8,16c-31.4,0-43.2-16-74.6-16c-10.2,0-18.2,1.6-25.6,4v-32 c7.4-2.2,15.4-4,25.6-4c31.2,0,43.2,16,74.6,16c10.2,0,17.8-1.4,27.8-4.6v-96c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.2-16-74.6-16 c-25.4,0-37.4,10.4-57.6,14.4v153.6c0,8.8-7.2,16-16,16c-8.8,0-16-7.2-16-16v-192c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16v6.4 c20.2-4,32.2-14.4,57.6-14.4c31.2,0,43.2,16,74.6,16c18.6,0,28.2-4.8,59.8-16V312.5z"]},faDeskpro:{prefix:"fab",iconName:"deskpro",icon:[480,512,[],"f38f","M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"]},faSistrix:{prefix:"fab",iconName:"sistrix",icon:[448,512,[],"f3ee","M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"]},faSquareInstagram:fx,faInstagramSquare:mx,faBattleNet:{prefix:"fab",iconName:"battle-net",icon:[512,512,[],"f835","M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8"]},faTheRedYeti:{prefix:"fab",iconName:"the-red-yeti",icon:[512,512,[],"f69d","M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z"]},faSquareHackerNews:dx,faHackerNewsSquare:hx,faEdge:{prefix:"fab",iconName:"edge",icon:[512,512,[],"f282","M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z"]},faNapster:{prefix:"fab",iconName:"napster",icon:[496,512,[],"f3d2","M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"]},faSquareSnapchat:vx,faSnapchatSquare:gx,faGooglePlusG:{prefix:"fab",iconName:"google-plus-g",icon:[640,512,[],"f0d5","M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"]},faArtstation:{prefix:"fab",iconName:"artstation",icon:[512,512,[],"f77a","M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z"]},faMarkdown:{prefix:"fab",iconName:"markdown",icon:[640,512,[],"f60f","M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"]},faSourcetree:{prefix:"fab",iconName:"sourcetree",icon:[448,512,[],"f7d3","M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z"]},faGooglePlus:{prefix:"fab",iconName:"google-plus",icon:[512,512,[],"f2b3","M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z"]},faDiaspora:{prefix:"fab",iconName:"diaspora",icon:[512,512,[],"f791","M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z"]},faFoursquare:{prefix:"fab",iconName:"foursquare",icon:[368,512,[],"f180","M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"]},faStackOverflow:{prefix:"fab",iconName:"stack-overflow",icon:[384,512,[],"f16c","M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"]},faGithubAlt:{prefix:"fab",iconName:"github-alt",icon:[480,512,[],"f113","M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"]},faPhoenixSquadron:{prefix:"fab",iconName:"phoenix-squadron",icon:[512,512,[],"f511","M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z"]},faPagelines:{prefix:"fab",iconName:"pagelines",icon:[384,512,[],"f18c","M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"]},faAlgolia:{prefix:"fab",iconName:"algolia",icon:[512,512,[],"f36c","M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z"]},faRedRiver:{prefix:"fab",iconName:"red-river",icon:[448,512,[],"f3e3","M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"]},faCreativeCommonsSa:{prefix:"fab",iconName:"creative-commons-sa",icon:[496,512,[],"f4ef","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"]},faSafari:{prefix:"fab",iconName:"safari",icon:[512,512,[],"f267","M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z"]},faGoogle:{prefix:"fab",iconName:"google",icon:[488,512,[],"f1a0","M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"]},faSquareFontAwesomeStroke:zx,faFontAwesomeAlt:bx,faAtlassian:{prefix:"fab",iconName:"atlassian",icon:[512,512,[],"f77b","M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z"]},faLinkedinIn:{prefix:"fab",iconName:"linkedin-in",icon:[448,512,[],"f0e1","M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"]},faDigitalOcean:{prefix:"fab",iconName:"digital-ocean",icon:[512,512,[],"f391","M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z"]},faNimblr:{prefix:"fab",iconName:"nimblr",icon:[384,512,[],"f5a8","M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z"]},faChromecast:{prefix:"fab",iconName:"chromecast",icon:[512,512,[],"f838","M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z"]},faEvernote:{prefix:"fab",iconName:"evernote",icon:[384,512,[],"f839","M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z"]},faHackerNews:{prefix:"fab",iconName:"hacker-news",icon:[448,512,[],"f1d4","M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"]},faCreativeCommonsSampling:{prefix:"fab",iconName:"creative-commons-sampling",icon:[496,512,[],"f4f0","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"]},faAdversal:{prefix:"fab",iconName:"adversal",icon:[512,512,[],"f36a","M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"]},faCreativeCommons:{prefix:"fab",iconName:"creative-commons",icon:[496,512,[],"f25e","M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"]},faWatchmanMonitoring:{prefix:"fab",iconName:"watchman-monitoring",icon:[512,512,[],"e087","M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z"]},faFonticons:{prefix:"fab",iconName:"fonticons",icon:[448,512,[],"f280","M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z"]},faWeixin:{prefix:"fab",iconName:"weixin",icon:[576,512,[],"f1d7","M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"]},faShirtsinbulk:{prefix:"fab",iconName:"shirtsinbulk",icon:[448,512,[],"f214","M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z"]},faCodepen:{prefix:"fab",iconName:"codepen",icon:[512,512,[],"f1cb","M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"]},faGitAlt:{prefix:"fab",iconName:"git-alt",icon:[448,512,[],"f841","M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"]},faLyft:{prefix:"fab",iconName:"lyft",icon:[512,512,[],"f3c3","M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"]},faRev:{prefix:"fab",iconName:"rev",icon:[448,512,[],"f5b2","M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z"]},faWindows:{prefix:"fab",iconName:"windows",icon:[448,512,[],"f17a","M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"]},faWizardsOfTheCoast:{prefix:"fab",iconName:"wizards-of-the-coast",icon:[640,512,[],"f730","M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"]},faSquareViadeo:Cx,faViadeoSquare:Mx,faMeetup:{prefix:"fab",iconName:"meetup",icon:[512,512,[],"f2e0","M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"]},faCentos:{prefix:"fab",iconName:"centos",icon:[448,512,[],"f789","M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z"]},faAdn:{prefix:"fab",iconName:"adn",icon:[496,512,[],"f170","M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"]},faCloudsmith:{prefix:"fab",iconName:"cloudsmith",icon:[332,512,[],"f384","M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"]},faPiedPiperAlt:{prefix:"fab",iconName:"pied-piper-alt",icon:[576,512,[],"f1a8","M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z"]},faSquareDribbble:Hx,faDribbbleSquare:Vx,faCodiepie:{prefix:"fab",iconName:"codiepie",icon:[472,512,[],"f284","M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"]},faNode:{prefix:"fab",iconName:"node",icon:[640,512,[],"f419","M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"]},faMix:{prefix:"fab",iconName:"mix",icon:[448,512,[],"f3cb","M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"]},faSteam:{prefix:"fab",iconName:"steam",icon:[496,512,[],"f1b6","M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"]},faCcApplePay:{prefix:"fab",iconName:"cc-apple-pay",icon:[576,512,[],"f416","M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"]},faScribd:{prefix:"fab",iconName:"scribd",icon:[384,512,[],"f28a","M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"]},faOpenid:{prefix:"fab",iconName:"openid",icon:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"]},faInstalod:{prefix:"fab",iconName:"instalod",icon:[512,512,[],"e081","M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z"]},faExpeditedssl:{prefix:"fab",iconName:"expeditedssl",icon:[496,512,[],"f23e","M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"]},faSellcast:{prefix:"fab",iconName:"sellcast",icon:[448,512,[],"f2da","M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"]},faSquareTwitter:yx,faTwitterSquare:Lx,faRProject:{prefix:"fab",iconName:"r-project",icon:[581,512,[],"f4f7","M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"]},faDelicious:{prefix:"fab",iconName:"delicious",icon:[448,512,[],"f1a5","M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z"]},faFreebsd:{prefix:"fab",iconName:"freebsd",icon:[448,512,[],"f3a4","M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"]},faVuejs:{prefix:"fab",iconName:"vuejs",icon:[448,512,[],"f41f","M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"]},faAccusoft:{prefix:"fab",iconName:"accusoft",icon:[640,512,[],"f369","M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"]},faIoxhost:{prefix:"fab",iconName:"ioxhost",icon:[640,512,[],"f208","M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"]},faFonticonsFi:{prefix:"fab",iconName:"fonticons-fi",icon:[384,512,[],"f3a2","M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"]},faAppStore:{prefix:"fab",iconName:"app-store",icon:[512,512,[],"f36f","M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"]},faCcMastercard:{prefix:"fab",iconName:"cc-mastercard",icon:[576,512,[],"f1f1","M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"]},faItunesNote:{prefix:"fab",iconName:"itunes-note",icon:[384,512,[],"f3b5","M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"]},faGolang:{prefix:"fab",iconName:"golang",icon:[640,512,[],"e40f","M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z"]},faKickstarter:{prefix:"fab",iconName:"kickstarter",icon:[448,512,[],"f3bb","M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"]},faGrav:{prefix:"fab",iconName:"grav",icon:[512,512,[],"f2d6","M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"]},faWeibo:{prefix:"fab",iconName:"weibo",icon:[512,512,[],"f18a","M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"]},faUncharted:{prefix:"fab",iconName:"uncharted",icon:[448,512,[],"e084","M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z"]},faFirstdraft:{prefix:"fab",iconName:"firstdraft",icon:[384,512,[],"f3a1","M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"]},faSquareYoutube:Sx,faYoutubeSquare:xx,faWikipediaW:{prefix:"fab",iconName:"wikipedia-w",icon:[640,512,[],"f266","M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"]},faWpressr:Px,faRendact:wx,faAngellist:{prefix:"fab",iconName:"angellist",icon:[448,512,[],"f209","M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"]},faGalacticRepublic:{prefix:"fab",iconName:"galactic-republic",icon:[496,512,[],"f50c","M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"]},faNfcDirectional:{prefix:"fab",iconName:"nfc-directional",icon:[512,512,[],"e530","M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z"]},faSkype:{prefix:"fab",iconName:"skype",icon:[448,512,[],"f17e","M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"]},faJoget:{prefix:"fab",iconName:"joget",icon:[496,512,[],"f3b7","M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z"]},faFedora:{prefix:"fab",iconName:"fedora",icon:[448,512,[],"f798","M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z"]},faStripeS:{prefix:"fab",iconName:"stripe-s",icon:[384,512,[],"f42a","M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z"]},faMeta:{prefix:"fab",iconName:"meta",icon:[640,512,[],"e49b","M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z"]},faLaravel:{prefix:"fab",iconName:"laravel",icon:[512,512,[],"f3bd","M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z"]},faHotjar:{prefix:"fab",iconName:"hotjar",icon:[448,512,[],"f3b1","M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"]},faBluetoothB:{prefix:"fab",iconName:"bluetooth-b",icon:[320,512,[],"f294","M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"]},faStickerMule:{prefix:"fab",iconName:"sticker-mule",icon:[576,512,[],"f3f7","M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z"]},faCreativeCommonsZero:{prefix:"fab",iconName:"creative-commons-zero",icon:[496,512,[],"f4f3","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"]},faHips:{prefix:"fab",iconName:"hips",icon:[640,512,[],"f452","M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z"]},faBehance:{prefix:"fab",iconName:"behance",icon:[576,512,[],"f1b4","M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"]},faReddit:{prefix:"fab",iconName:"reddit",icon:[512,512,[],"f1a1","M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"]},faDiscord:{prefix:"fab",iconName:"discord",icon:[640,512,[],"f392","M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"]},faChrome:{prefix:"fab",iconName:"chrome",icon:[512,512,[],"f268","M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"]},faAppStoreIos:{prefix:"fab",iconName:"app-store-ios",icon:[448,512,[],"f370","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"]},faCcDiscover:{prefix:"fab",iconName:"cc-discover",icon:[576,512,[],"f1f2","M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z"]},faWpbeginner:{prefix:"fab",iconName:"wpbeginner",icon:[512,512,[],"f297","M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"]},faConfluence:{prefix:"fab",iconName:"confluence",icon:[512,512,[],"f78d","M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z"]},faMdb:{prefix:"fab",iconName:"mdb",icon:[576,512,[],"f8ca","M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z"]},faDochub:{prefix:"fab",iconName:"dochub",icon:[416,512,[],"f394","M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"]},faAccessibleIcon:{prefix:"fab",iconName:"accessible-icon",icon:[448,512,[62107],"f368","M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"]},faEbay:{prefix:"fab",iconName:"ebay",icon:[640,512,[],"f4f4","M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z"]},faAmazon:{prefix:"fab",iconName:"amazon",icon:[448,512,[],"f270","M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"]},faUnsplash:{prefix:"fab",iconName:"unsplash",icon:[448,512,[],"e07c","M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z"]},faYarn:{prefix:"fab",iconName:"yarn",icon:[496,512,[],"f7e3","M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z"]},faSquareSteam:kx,faSteamSquare:Ax,fa500px:{prefix:"fab",iconName:"500px",icon:[448,512,[],"f26e","M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"]},faSquareVimeo:Ex,faVimeoSquare:Nx,faAsymmetrik:{prefix:"fab",iconName:"asymmetrik",icon:[576,512,[],"f372","M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"]},faFontAwesome:Tx,faFontAwesomeFlag:Dx,faFontAwesomeLogoFull:Rx,faGratipay:{prefix:"fab",iconName:"gratipay",icon:[496,512,[],"f184","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"]},faApple:{prefix:"fab",iconName:"apple",icon:[384,512,[],"f179","M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"]},faHive:{prefix:"fab",iconName:"hive",icon:[512,512,[],"e07f","M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z"]},faGitkraken:{prefix:"fab",iconName:"gitkraken",icon:[592,512,[],"f3a6","M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"]},faKeybase:{prefix:"fab",iconName:"keybase",icon:[448,512,[],"f4f5","M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"]},faApplePay:{prefix:"fab",iconName:"apple-pay",icon:[640,512,[],"f415","M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"]},faPadlet:{prefix:"fab",iconName:"padlet",icon:[640,512,[],"e4a0","M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z"]},faAmazonPay:{prefix:"fab",iconName:"amazon-pay",icon:[640,512,[],"f42c","M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"]},faSquareGithub:_x,faGithubSquare:Ox,faStumbleupon:{prefix:"fab",iconName:"stumbleupon",icon:[512,512,[],"f1a4","M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"]},faFedex:{prefix:"fab",iconName:"fedex",icon:[640,512,[],"f797","M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z"]},faPhoenixFramework:{prefix:"fab",iconName:"phoenix-framework",icon:[640,512,[],"f3dc","M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"]},faShopify:{prefix:"fab",iconName:"shopify",icon:[448,512,[],"e057","M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z"]},faNeos:{prefix:"fab",iconName:"neos",icon:[512,512,[],"f612","M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z"]},faHackerrank:{prefix:"fab",iconName:"hackerrank",icon:[512,512,[],"f5f7","M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"]},faResearchgate:{prefix:"fab",iconName:"researchgate",icon:[448,512,[],"f4f8","M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"]},faSwift:{prefix:"fab",iconName:"swift",icon:[448,512,[],"f8e1","M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z"]},faAngular:{prefix:"fab",iconName:"angular",icon:[448,512,[],"f420","M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z"]},faSpeakap:{prefix:"fab",iconName:"speakap",icon:[448,512,[],"f3f3","M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"]},faAngrycreative:{prefix:"fab",iconName:"angrycreative",icon:[640,512,[],"f36e","M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"]},faYCombinator:{prefix:"fab",iconName:"y-combinator",icon:[448,512,[],"f23b","M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"]},faEmpire:{prefix:"fab",iconName:"empire",icon:[496,512,[],"f1d1","M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"]},faEnvira:{prefix:"fab",iconName:"envira",icon:[448,512,[],"f299","M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"]},faSquareGitlab:Ix,faGitlabSquare:jx,faStudiovinari:{prefix:"fab",iconName:"studiovinari",icon:[512,512,[],"f3f8","M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"]},faPiedPiper:{prefix:"fab",iconName:"pied-piper",icon:[480,512,[],"f2ae","M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z"]},faWordpress:{prefix:"fab",iconName:"wordpress",icon:[512,512,[],"f19a","M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"]},faProductHunt:{prefix:"fab",iconName:"product-hunt",icon:[512,512,[],"f288","M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"]},faFirefox:{prefix:"fab",iconName:"firefox",icon:[512,512,[],"f269","M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z"]},faLinode:{prefix:"fab",iconName:"linode",icon:[448,512,[],"f2b8","M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z"]},faGoodreads:{prefix:"fab",iconName:"goodreads",icon:[448,512,[],"f3a8","M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"]},faSquareOdnoklassniki:Fx,faOdnoklassnikiSquare:Bx,faJsfiddle:{prefix:"fab",iconName:"jsfiddle",icon:[576,512,[],"f1cc","M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"]},faSith:{prefix:"fab",iconName:"sith",icon:[448,512,[],"f512","M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"]},faThemeisle:{prefix:"fab",iconName:"themeisle",icon:[512,512,[],"f2b2","M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"]},faPage4:{prefix:"fab",iconName:"page4",icon:[496,512,[],"f3d7","M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"]},faHashnode:{prefix:"fab",iconName:"hashnode",icon:[512,512,[],"e499","M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z"]},faReact:{prefix:"fab",iconName:"react",icon:[512,512,[],"f41b","M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z"]},faCcPaypal:{prefix:"fab",iconName:"cc-paypal",icon:[576,512,[],"f1f4","M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"]},faSquarespace:{prefix:"fab",iconName:"squarespace",icon:[512,512,[],"f5be","M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"]},faCcStripe:{prefix:"fab",iconName:"cc-stripe",icon:[576,512,[],"f1f5","M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z"]},faCreativeCommonsShare:{prefix:"fab",iconName:"creative-commons-share",icon:[496,512,[],"f4f2","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"]},faBitcoin:{prefix:"fab",iconName:"bitcoin",icon:[512,512,[],"f379","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"]},faKeycdn:{prefix:"fab",iconName:"keycdn",icon:[512,512,[],"f3ba","M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"]},faOpera:{prefix:"fab",iconName:"opera",icon:[496,512,[],"f26a","M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"]},faItchIo:{prefix:"fab",iconName:"itch-io",icon:[512,512,[],"f83a","M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z"]},faUmbraco:{prefix:"fab",iconName:"umbraco",icon:[510,512,[],"f8e8","M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z"]},faGalacticSenate:{prefix:"fab",iconName:"galactic-senate",icon:[512,512,[],"f50d","M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"]},faUbuntu:{prefix:"fab",iconName:"ubuntu",icon:[496,512,[],"f7df","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z"]},faDraft2digital:{prefix:"fab",iconName:"draft2digital",icon:[480,512,[],"f396","M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z"]},faStripe:{prefix:"fab",iconName:"stripe",icon:[640,512,[],"f429","M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z"]},faHouzz:{prefix:"fab",iconName:"houzz",icon:[448,512,[],"f27c","M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z"]},faGg:{prefix:"fab",iconName:"gg",icon:[512,512,[],"f260","M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"]},faDhl:{prefix:"fab",iconName:"dhl",icon:[640,512,[],"f790","M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z"]},faSquarePinterest:$x,faPinterestSquare:qx,faXing:{prefix:"fab",iconName:"xing",icon:[384,512,[],"f168","M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"]},faBlackberry:{prefix:"fab",iconName:"blackberry",icon:[512,512,[],"f37b","M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"]},faCreativeCommonsPd:{prefix:"fab",iconName:"creative-commons-pd",icon:[496,512,[],"f4ec","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"]},faPlaystation:{prefix:"fab",iconName:"playstation",icon:[576,512,[],"f3df","M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"]},faQuinscape:{prefix:"fab",iconName:"quinscape",icon:[512,512,[],"f459","M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z"]},faLess:{prefix:"fab",iconName:"less",icon:[640,512,[],"f41d","M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"]},faBloggerB:{prefix:"fab",iconName:"blogger-b",icon:[448,512,[],"f37d","M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"]},faOpencart:{prefix:"fab",iconName:"opencart",icon:[640,512,[],"f23d","M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"]},faVine:{prefix:"fab",iconName:"vine",icon:[384,512,[],"f1ca","M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"]},faPaypal:{prefix:"fab",iconName:"paypal",icon:[384,512,[],"f1ed","M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"]},faGitlab:{prefix:"fab",iconName:"gitlab",icon:[512,512,[],"f296","M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z"]},faTypo3:{prefix:"fab",iconName:"typo3",icon:[448,512,[],"f42b","M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z"]},faRedditAlien:{prefix:"fab",iconName:"reddit-alien",icon:[512,512,[],"f281","M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"]},faYahoo:{prefix:"fab",iconName:"yahoo",icon:[512,512,[],"f19e","M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z"]},faDailymotion:{prefix:"fab",iconName:"dailymotion",icon:[448,512,[],"e052","M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z"]},faAffiliatetheme:{prefix:"fab",iconName:"affiliatetheme",icon:[512,512,[],"f36b","M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"]},faPiedPiperPp:{prefix:"fab",iconName:"pied-piper-pp",icon:[448,512,[],"f1a7","M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"]},faBootstrap:{prefix:"fab",iconName:"bootstrap",icon:[576,512,[],"f836","M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z"]},faOdnoklassniki:{prefix:"fab",iconName:"odnoklassniki",icon:[320,512,[],"f263","M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"]},faNfcSymbol:{prefix:"fab",iconName:"nfc-symbol",icon:[576,512,[],"e531","M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z"]},faEthereum:{prefix:"fab",iconName:"ethereum",icon:[320,512,[],"f42e","M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"]},faSpeakerDeck:{prefix:"fab",iconName:"speaker-deck",icon:[512,512,[],"f83c","M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z"]},faCreativeCommonsNcEu:{prefix:"fab",iconName:"creative-commons-nc-eu",icon:[496,512,[],"f4e9","M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"]},faPatreon:{prefix:"fab",iconName:"patreon",icon:[512,512,[],"f3d9","M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"]},faAvianex:{prefix:"fab",iconName:"avianex",icon:[512,512,[],"f374","M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"]},faEllo:{prefix:"fab",iconName:"ello",icon:[496,512,[],"f5f1","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"]},faGofore:{prefix:"fab",iconName:"gofore",icon:[400,512,[],"f3a7","M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"]},faBimobject:{prefix:"fab",iconName:"bimobject",icon:[448,512,[],"f378","M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"]},faFacebookF:{prefix:"fab",iconName:"facebook-f",icon:[320,512,[],"f39e","M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"]},faSquareGooglePlus:Gx,faGooglePlusSquare:Wx,faMandalorian:{prefix:"fab",iconName:"mandalorian",icon:[448,512,[],"f50f","M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z"]},faFirstOrderAlt:{prefix:"fab",iconName:"first-order-alt",icon:[496,512,[],"f50a","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"]},faOsi:{prefix:"fab",iconName:"osi",icon:[512,512,[],"f41a","M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z"]},faGoogleWallet:{prefix:"fab",iconName:"google-wallet",icon:[448,512,[],"f1ee","M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"]},faDAndDBeyond:{prefix:"fab",iconName:"d-and-d-beyond",icon:[640,512,[],"f6ca","M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z"]},faPeriscope:{prefix:"fab",iconName:"periscope",icon:[448,512,[],"f3da","M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"]},faFulcrum:{prefix:"fab",iconName:"fulcrum",icon:[320,512,[],"f50b","M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z"]},faCloudscale:{prefix:"fab",iconName:"cloudscale",icon:[448,512,[],"f383","M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"]},faForumbee:{prefix:"fab",iconName:"forumbee",icon:[448,512,[],"f211","M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"]},faMizuni:{prefix:"fab",iconName:"mizuni",icon:[496,512,[],"f3cc","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"]},faSchlix:{prefix:"fab",iconName:"schlix",icon:[448,512,[],"f3ea","M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"]},faSquareXing:Ux,faXingSquare:Kx,faBandcamp:{prefix:"fab",iconName:"bandcamp",icon:[512,512,[],"f2d5","M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z"]},faWpforms:{prefix:"fab",iconName:"wpforms",icon:[448,512,[],"f298","M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"]},faCloudversify:{prefix:"fab",iconName:"cloudversify",icon:[616,512,[],"f385","M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"]},faUsps:{prefix:"fab",iconName:"usps",icon:[576,512,[],"f7e1","M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z"]},faMegaport:{prefix:"fab",iconName:"megaport",icon:[496,512,[],"f5a3","M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z"]},faMagento:{prefix:"fab",iconName:"magento",icon:[448,512,[],"f3c4","M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"]},faSpotify:{prefix:"fab",iconName:"spotify",icon:[496,512,[],"f1bc","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"]},faOptinMonster:{prefix:"fab",iconName:"optin-monster",icon:[576,512,[],"f23c","M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z"]},faFly:{prefix:"fab",iconName:"fly",icon:[384,512,[],"f417","M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"]},faAviato:{prefix:"fab",iconName:"aviato",icon:[640,512,[],"f421","M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"]},faItunes:{prefix:"fab",iconName:"itunes",icon:[448,512,[],"f3b4","M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"]},faCuttlefish:{prefix:"fab",iconName:"cuttlefish",icon:[440,512,[],"f38c","M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"]},faBlogger:{prefix:"fab",iconName:"blogger",icon:[448,512,[],"f37c","M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"]},faFlickr:{prefix:"fab",iconName:"flickr",icon:[448,512,[],"f16e","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"]},faViber:{prefix:"fab",iconName:"viber",icon:[512,512,[],"f409","M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"]},faSoundcloud:{prefix:"fab",iconName:"soundcloud",icon:[640,512,[],"f1be","M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"]},faDigg:{prefix:"fab",iconName:"digg",icon:[512,512,[],"f1a6","M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"]},faTencentWeibo:{prefix:"fab",iconName:"tencent-weibo",icon:[384,512,[],"f1d5","M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"]},faSymfony:{prefix:"fab",iconName:"symfony",icon:[512,512,[],"f83d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z"]},faMaxcdn:{prefix:"fab",iconName:"maxcdn",icon:[512,512,[],"f136","M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"]},faEtsy:{prefix:"fab",iconName:"etsy",icon:[384,512,[],"f2d7","M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"]},faFacebookMessenger:{prefix:"fab",iconName:"facebook-messenger",icon:[512,512,[],"f39f","M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z"]},faAudible:{prefix:"fab",iconName:"audible",icon:[640,512,[],"f373","M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"]},faThinkPeaks:{prefix:"fab",iconName:"think-peaks",icon:[576,512,[],"f731","M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z"]},faBilibili:{prefix:"fab",iconName:"bilibili",icon:[512,512,[],"e3d9","M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z"]},faErlang:{prefix:"fab",iconName:"erlang",icon:[640,512,[],"f39d","M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z"]},faCottonBureau:{prefix:"fab",iconName:"cotton-bureau",icon:[512,512,[],"f89e","M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z"]},faDashcube:{prefix:"fab",iconName:"dashcube",icon:[448,512,[],"f210","M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"]},fa42Group:Zx,faInnosoft:Zx,faStackExchange:{prefix:"fab",iconName:"stack-exchange",icon:[448,512,[],"f18d","M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"]},faElementor:{prefix:"fab",iconName:"elementor",icon:[512,512,[],"f430","M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z"]},faSquarePiedPiper:Yx,faPiedPiperSquare:Yx,faCreativeCommonsNd:{prefix:"fab",iconName:"creative-commons-nd",icon:[496,512,[],"f4eb","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"]},faPalfed:{prefix:"fab",iconName:"palfed",icon:[576,512,[],"f3d8","M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"]},faSuperpowers:{prefix:"fab",iconName:"superpowers",icon:[448,512,[],"f2dd","M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"]},faResolving:{prefix:"fab",iconName:"resolving",icon:[496,512,[],"f3e7","M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"]},faXbox:{prefix:"fab",iconName:"xbox",icon:[512,512,[],"f412","M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"]},faSearchengin:{prefix:"fab",iconName:"searchengin",icon:[460,512,[],"f3eb","M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"]},faTiktok:{prefix:"fab",iconName:"tiktok",icon:[448,512,[],"e07b","M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"]},faSquareFacebook:Xx,faFacebookSquare:Xx,faRenren:{prefix:"fab",iconName:"renren",icon:[512,512,[],"f18b","M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"]},faLinux:{prefix:"fab",iconName:"linux",icon:[448,512,[],"f17c","M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"]},faGlide:{prefix:"fab",iconName:"glide",icon:[448,512,[],"f2a5","M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"]},faLinkedin:{prefix:"fab",iconName:"linkedin",icon:[448,512,[],"f08c","M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"]},faHubspot:{prefix:"fab",iconName:"hubspot",icon:[512,512,[],"f3b2","M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"]},faDeploydog:{prefix:"fab",iconName:"deploydog",icon:[512,512,[],"f38e","M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"]},faTwitch:{prefix:"fab",iconName:"twitch",icon:[512,512,[],"f1e8","M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"]},faRavelry:{prefix:"fab",iconName:"ravelry",icon:[512,512,[],"f2d9","M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z"]},faMixer:{prefix:"fab",iconName:"mixer",icon:[512,512,[],"e056","M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z"]},faSquareLastfm:Jx,faLastfmSquare:Jx,faVimeo:{prefix:"fab",iconName:"vimeo",icon:[448,512,[],"f40a","M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"]},faMendeley:{prefix:"fab",iconName:"mendeley",icon:[640,512,[],"f7b3","M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z"]},faUniregistry:{prefix:"fab",iconName:"uniregistry",icon:[384,512,[],"f404","M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z"]},faFigma:{prefix:"fab",iconName:"figma",icon:[384,512,[],"f799","M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z"]},faCreativeCommonsRemix:{prefix:"fab",iconName:"creative-commons-remix",icon:[496,512,[],"f4ee","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"]},faCcAmazonPay:{prefix:"fab",iconName:"cc-amazon-pay",icon:[576,512,[],"f42d","M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"]},faDropbox:{prefix:"fab",iconName:"dropbox",icon:[528,512,[],"f16b","M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"]},faInstagram:{prefix:"fab",iconName:"instagram",icon:[448,512,[],"f16d","M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"]},faCmplid:{prefix:"fab",iconName:"cmplid",icon:[640,512,[],"e360","M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z"]},faFacebook:{prefix:"fab",iconName:"facebook",icon:[512,512,[62e3],"f09a","M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"]},faGripfire:{prefix:"fab",iconName:"gripfire",icon:[384,512,[],"f3ac","M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z"]},faJediOrder:{prefix:"fab",iconName:"jedi-order",icon:[448,512,[],"f50e","M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z"]},faUikit:{prefix:"fab",iconName:"uikit",icon:[448,512,[],"f403","M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"]},faFortAwesomeAlt:{prefix:"fab",iconName:"fort-awesome-alt",icon:[512,512,[],"f3a3","M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z"]},faPhabricator:{prefix:"fab",iconName:"phabricator",icon:[496,512,[],"f3db","M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"]},faUssunnah:{prefix:"fab",iconName:"ussunnah",icon:[482,512,[],"f407","M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z"]},faEarlybirds:{prefix:"fab",iconName:"earlybirds",icon:[480,512,[],"f39a","M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"]},faTradeFederation:{prefix:"fab",iconName:"trade-federation",icon:[496,512,[],"f513","M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z"]},faAutoprefixer:{prefix:"fab",iconName:"autoprefixer",icon:[640,512,[],"f41c","M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"]},faWhatsapp:{prefix:"fab",iconName:"whatsapp",icon:[448,512,[],"f232","M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"]},faSlideshare:{prefix:"fab",iconName:"slideshare",icon:[512,512,[],"f1e7","M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z"]},faGooglePlay:{prefix:"fab",iconName:"google-play",icon:[512,512,[],"f3ab","M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"]},faViadeo:{prefix:"fab",iconName:"viadeo",icon:[448,512,[],"f2a9","M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"]},faLine:{prefix:"fab",iconName:"line",icon:[512,512,[],"f3c0","M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z"]},faGoogleDrive:{prefix:"fab",iconName:"google-drive",icon:[512,512,[],"f3aa","M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"]},faServicestack:{prefix:"fab",iconName:"servicestack",icon:[496,512,[],"f3ec","M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"]},faSimplybuilt:{prefix:"fab",iconName:"simplybuilt",icon:[512,512,[],"f215","M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"]},faBitbucket:{prefix:"fab",iconName:"bitbucket",icon:[512,512,[61810],"f171","M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z"]},faImdb:{prefix:"fab",iconName:"imdb",icon:[448,512,[],"f2d8","M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z"]},faDeezer:{prefix:"fab",iconName:"deezer",icon:[576,512,[],"e077","M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z"]},faRaspberryPi:{prefix:"fab",iconName:"raspberry-pi",icon:[407,512,[],"f7bb","M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z"]},faJira:{prefix:"fab",iconName:"jira",icon:[496,512,[],"f7b1","M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z"]},faDocker:{prefix:"fab",iconName:"docker",icon:[640,512,[],"f395","M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"]},faScreenpal:{prefix:"fab",iconName:"screenpal",icon:[512,512,[],"e570","M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z"]},faBluetooth:{prefix:"fab",iconName:"bluetooth",icon:[448,512,[],"f293","M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"]},faGitter:{prefix:"fab",iconName:"gitter",icon:[384,512,[],"f426","M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"]},faDAndD:{prefix:"fab",iconName:"d-and-d",icon:[576,512,[],"f38d","M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"]},faMicroblog:{prefix:"fab",iconName:"microblog",icon:[448,512,[],"e01a","M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z"]},faCcDinersClub:{prefix:"fab",iconName:"cc-diners-club",icon:[576,512,[],"f24c","M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"]},faGgCircle:{prefix:"fab",iconName:"gg-circle",icon:[512,512,[],"f261","M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"]},faPiedPiperHat:{prefix:"fab",iconName:"pied-piper-hat",icon:[640,512,[],"f4e5","M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"]},faKickstarterK:{prefix:"fab",iconName:"kickstarter-k",icon:[384,512,[],"f3bc","M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"]},faYandex:{prefix:"fab",iconName:"yandex",icon:[256,512,[],"f413","M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"]},faReadme:{prefix:"fab",iconName:"readme",icon:[576,512,[],"f4d5","M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"]},faHtml5:{prefix:"fab",iconName:"html5",icon:[384,512,[],"f13b","M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"]},faSellsy:{prefix:"fab",iconName:"sellsy",icon:[640,512,[],"f213","M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"]},faSass:{prefix:"fab",iconName:"sass",icon:[640,512,[],"f41e","M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z"]},faWirsindhandwerk:Qx,faWsh:Qx,faBuromobelexperte:{prefix:"fab",iconName:"buromobelexperte",icon:[448,512,[],"f37f","M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"]},faSalesforce:{prefix:"fab",iconName:"salesforce",icon:[640,512,[],"f83b","M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z"]},faOctopusDeploy:{prefix:"fab",iconName:"octopus-deploy",icon:[512,512,[],"e082","M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z"]},faMedapps:{prefix:"fab",iconName:"medapps",icon:[320,512,[],"f3c6","M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"]},faNs8:{prefix:"fab",iconName:"ns8",icon:[640,512,[],"f3d5","M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z"]},faPinterestP:{prefix:"fab",iconName:"pinterest-p",icon:[384,512,[],"f231","M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"]},faApper:{prefix:"fab",iconName:"apper",icon:[640,512,[],"f371","M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"]},faFortAwesome:{prefix:"fab",iconName:"fort-awesome",icon:[512,512,[],"f286","M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"]},faWaze:{prefix:"fab",iconName:"waze",icon:[512,512,[],"f83f","M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z"]},faCcJcb:{prefix:"fab",iconName:"cc-jcb",icon:[576,512,[],"f24b","M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"]},faSnapchat:eP,faSnapchatGhost:eP,faFantasyFlightGames:{prefix:"fab",iconName:"fantasy-flight-games",icon:[512,512,[],"f6dc","M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"]},faRust:{prefix:"fab",iconName:"rust",icon:[512,512,[],"e07a","M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z"]},faWix:{prefix:"fab",iconName:"wix",icon:[640,512,[],"f5cf","M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"]},faSquareBehance:tP,faBehanceSquare:tP,faSupple:{prefix:"fab",iconName:"supple",icon:[640,512,[],"f3f9","M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"]},faRebel:{prefix:"fab",iconName:"rebel",icon:[512,512,[],"f1d0","M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"]},faCss3:{prefix:"fab",iconName:"css3",icon:[512,512,[],"f13c","M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"]},faStaylinked:{prefix:"fab",iconName:"staylinked",icon:[440,512,[],"f3f5","M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z"]},faKaggle:{prefix:"fab",iconName:"kaggle",icon:[320,512,[],"f5fa","M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z"]},faSpaceAwesome:{prefix:"fab",iconName:"space-awesome",icon:[512,512,[],"e5ac","M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z"]},faDeviantart:{prefix:"fab",iconName:"deviantart",icon:[320,512,[],"f1bd","M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"]},faCpanel:{prefix:"fab",iconName:"cpanel",icon:[640,512,[],"f388","M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z"]},faGoodreadsG:{prefix:"fab",iconName:"goodreads-g",icon:[384,512,[],"f3a9","M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"]},faSquareGit:cP,faGitSquare:cP,faSquareTumblr:aP,faTumblrSquare:aP,faTrello:{prefix:"fab",iconName:"trello",icon:[448,512,[],"f181","M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z"]},faCreativeCommonsNcJp:{prefix:"fab",iconName:"creative-commons-nc-jp",icon:[496,512,[],"f4ea","M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"]},faGetPocket:{prefix:"fab",iconName:"get-pocket",icon:[448,512,[],"f265","M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"]},faPerbyte:{prefix:"fab",iconName:"perbyte",icon:[448,512,[],"e083","M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z"]},faGrunt:{prefix:"fab",iconName:"grunt",icon:[384,512,[],"f3ad","M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z"]},faWeebly:{prefix:"fab",iconName:"weebly",icon:[512,512,[],"f5cc","M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"]},faConnectdevelop:{prefix:"fab",iconName:"connectdevelop",icon:[576,512,[],"f20e","M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"]},faLeanpub:{prefix:"fab",iconName:"leanpub",icon:[576,512,[],"f212","M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"]},faBlackTie:{prefix:"fab",iconName:"black-tie",icon:[448,512,[],"f27e","M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"]},faThemeco:{prefix:"fab",iconName:"themeco",icon:[448,512,[],"f5c6","M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z"]},faPython:{prefix:"fab",iconName:"python",icon:[448,512,[],"f3e2","M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"]},faAndroid:{prefix:"fab",iconName:"android",icon:[576,512,[],"f17b","M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"]},faBots:{prefix:"fab",iconName:"bots",icon:[640,512,[],"e340","M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z"]},faFreeCodeCamp:{prefix:"fab",iconName:"free-code-camp",icon:[576,512,[],"f2c5","M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z"]},faHornbill:{prefix:"fab",iconName:"hornbill",icon:[512,512,[],"f592","M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z"]},faJs:{prefix:"fab",iconName:"js",icon:[448,512,[],"f3b8","M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"]},faIdeal:{prefix:"fab",iconName:"ideal",icon:[576,512,[],"e013","M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z"]},faGit:{prefix:"fab",iconName:"git",icon:[512,512,[],"f1d3","M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z"]},faDev:{prefix:"fab",iconName:"dev",icon:[448,512,[],"f6cc","M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"]},faSketch:{prefix:"fab",iconName:"sketch",icon:[512,512,[],"f7c6","M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z"]},faYandexInternational:{prefix:"fab",iconName:"yandex-international",icon:[320,512,[],"f414","M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"]},faCcAmex:{prefix:"fab",iconName:"cc-amex",icon:[576,512,[],"f1f3","M48 480C21.49 480 0 458.5 0 432V80C0 53.49 21.49 32 48 32H528C554.5 32 576 53.49 576 80V82.43H500.5L483.5 130L466.6 82.43H369.4V145.6L341.3 82.43H262.7L181 267.1H246.8V430.9H450.5L482.4 395.8L514.3 430.9H576V432C576 458.5 554.5 480 528 480H48zM482.6 364L440.4 410.3H390.5L458 338.6L390.5 266.1H441.9L483.4 312.8L525.4 266.1H576L508 338.2L576 410.3H524.6L482.6 364zM576 296.9V380.2L536.7 338.3L576 296.9zM307.6 377.1H390.6V410.3H268.6V267.1H390.6V300.2H307.6V322.6H388.5V354.9H307.6V377.2V377.1zM537.3 145.7L500.4 246.3H466L429.2 146V246.3H390.5V103H451.7L483.6 192.3L515.8 103H576V246.3H537.3V145.7zM334.5 217.6H268.6L256.7 246.3H213.7L276.1 103H327.3L390.6 246.3H346.5L334.5 217.6zM301.5 138.5L282 185.4H320.9L301.5 138.5z"]},faUber:{prefix:"fab",iconName:"uber",icon:[448,512,[],"f402","M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"]},faGithub:{prefix:"fab",iconName:"github",icon:[496,512,[],"f09b","M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"]},faPhp:{prefix:"fab",iconName:"php",icon:[640,512,[],"f457","M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"]},faAlipay:{prefix:"fab",iconName:"alipay",icon:[448,512,[],"f642","M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"]},faYoutube:{prefix:"fab",iconName:"youtube",icon:[576,512,[61802],"f167","M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"]},faSkyatlas:{prefix:"fab",iconName:"skyatlas",icon:[640,512,[],"f216","M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"]},faFirefoxBrowser:{prefix:"fab",iconName:"firefox-browser",icon:[512,512,[],"e007","M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z"]},faReplyd:{prefix:"fab",iconName:"replyd",icon:[448,512,[],"f3e6","M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"]},faSuse:{prefix:"fab",iconName:"suse",icon:[640,512,[],"f7d6","M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z"]},faJenkins:{prefix:"fab",iconName:"jenkins",icon:[512,512,[],"f3b6","M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"]},faTwitter:{prefix:"fab",iconName:"twitter",icon:[512,512,[],"f099","M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"]},faRockrms:{prefix:"fab",iconName:"rockrms",icon:[496,512,[],"f3e9","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"]},faPinterest:{prefix:"fab",iconName:"pinterest",icon:[496,512,[],"f0d2","M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"]},faBuffer:{prefix:"fab",iconName:"buffer",icon:[448,512,[],"f837","M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z"]},faNpm:{prefix:"fab",iconName:"npm",icon:[576,512,[],"f3d4","M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"]},faYammer:{prefix:"fab",iconName:"yammer",icon:[512,512,[],"f840","M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z"]},faBtc:{prefix:"fab",iconName:"btc",icon:[384,512,[],"f15a","M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"]},faDribbble:{prefix:"fab",iconName:"dribbble",icon:[512,512,[],"f17d","M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"]},faStumbleuponCircle:{prefix:"fab",iconName:"stumbleupon-circle",icon:[496,512,[],"f1a3","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"]},faInternetExplorer:{prefix:"fab",iconName:"internet-explorer",icon:[512,512,[],"f26b","M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"]},faStubber:{prefix:"fab",iconName:"stubber",icon:[448,512,[],"e5c7","M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z"]},faTelegram:iP,faTelegramPlane:iP,faOldRepublic:{prefix:"fab",iconName:"old-republic",icon:[496,512,[],"f510","M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"]},faOdysee:{prefix:"fab",iconName:"odysee",icon:[512,512,[],"e5c6","M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z"]},faSquareWhatsapp:nP,faWhatsappSquare:nP,faNodeJs:{prefix:"fab",iconName:"node-js",icon:[448,512,[],"f3d3","M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"]},faEdgeLegacy:{prefix:"fab",iconName:"edge-legacy",icon:[512,512,[],"e078","M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z"]},faSlack:sP,faSlackHash:sP,faMedrt:{prefix:"fab",iconName:"medrt",icon:[544,512,[],"f3c8","M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"]},faUsb:{prefix:"fab",iconName:"usb",icon:[640,512,[],"f287","M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"]},faTumblr:{prefix:"fab",iconName:"tumblr",icon:[320,512,[],"f173","M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"]},faVaadin:{prefix:"fab",iconName:"vaadin",icon:[448,512,[],"f408","M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"]},faQuora:{prefix:"fab",iconName:"quora",icon:[448,512,[],"f2c4","M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"]},faReacteurope:{prefix:"fab",iconName:"reacteurope",icon:[576,512,[],"f75d","M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z"]},faMedium:rP,faMediumM:rP,faAmilia:{prefix:"fab",iconName:"amilia",icon:[448,512,[],"f36d","M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z"]},faMixcloud:{prefix:"fab",iconName:"mixcloud",icon:[640,512,[],"f289","M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z"]},faFlipboard:{prefix:"fab",iconName:"flipboard",icon:[448,512,[],"f44d","M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"]},faViacoin:{prefix:"fab",iconName:"viacoin",icon:[384,512,[],"f237","M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"]},faCriticalRole:{prefix:"fab",iconName:"critical-role",icon:[448,512,[],"f6c9","M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z"]},faSitrox:{prefix:"fab",iconName:"sitrox",icon:[448,512,[],"e44a","M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z"]},faDiscourse:{prefix:"fab",iconName:"discourse",icon:[448,512,[],"f393","M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"]},faJoomla:{prefix:"fab",iconName:"joomla",icon:[448,512,[],"f1aa","M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"]},faMastodon:{prefix:"fab",iconName:"mastodon",icon:[448,512,[],"f4f6","M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"]},faAirbnb:{prefix:"fab",iconName:"airbnb",icon:[448,512,[],"f834","M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z"]},faWolfPackBattalion:{prefix:"fab",iconName:"wolf-pack-battalion",icon:[512,512,[],"f514","M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z"]},faBuyNLarge:{prefix:"fab",iconName:"buy-n-large",icon:[576,512,[],"f8a6","M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z"]},faGulp:{prefix:"fab",iconName:"gulp",icon:[256,512,[],"f3ae","M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"]},faCreativeCommonsSamplingPlus:{prefix:"fab",iconName:"creative-commons-sampling-plus",icon:[496,512,[],"f4f1","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"]},faStrava:{prefix:"fab",iconName:"strava",icon:[384,512,[],"f428","M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"]},faEmber:{prefix:"fab",iconName:"ember",icon:[640,512,[],"f423","M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"]},faCanadianMapleLeaf:{prefix:"fab",iconName:"canadian-maple-leaf",icon:[512,512,[],"f785","M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z"]},faTeamspeak:{prefix:"fab",iconName:"teamspeak",icon:[576,512,[],"f4f9","M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z"]},faPushed:{prefix:"fab",iconName:"pushed",icon:[432,512,[],"f3e1","M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"]},faWordpressSimple:{prefix:"fab",iconName:"wordpress-simple",icon:[512,512,[],"f411","M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"]},faNutritionix:{prefix:"fab",iconName:"nutritionix",icon:[400,512,[],"f3d6","M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"]},faWodu:{prefix:"fab",iconName:"wodu",icon:[640,512,[],"e088","M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z"]},faGooglePay:{prefix:"fab",iconName:"google-pay",icon:[640,512,[],"e079","M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z"]},faIntercom:{prefix:"fab",iconName:"intercom",icon:[448,512,[],"f7af","M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z"]},faZhihu:{prefix:"fab",iconName:"zhihu",icon:[640,512,[],"f63f","M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"]},faKorvue:{prefix:"fab",iconName:"korvue",icon:[446,512,[],"f42f","M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"]},faPix:{prefix:"fab",iconName:"pix",icon:[512,512,[],"e43a","M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z"]},faSteamSymbol:{prefix:"fab",iconName:"steam-symbol",icon:[448,512,[],"f3f6","M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"]}};function lP(e,t){var c=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),c.push.apply(c,a)}return c}function uP(e){for(var t=1;t=0||(i[c]=e[c]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,c)&&(i[c]=e[c])}return i}function dP(e){return function(e){if(Array.isArray(e))return hP(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return hP(e,t);var c=Object.prototype.toString.call(e).slice(8,-1);"Object"===c&&e.constructor&&(c=e.constructor.name);if("Map"===c||"Set"===c)return Array.from(e);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return hP(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hP(e,t){(null==t||t>e.length)&&(t=e.length);for(var c=0,a=new Array(t);c2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(t.children||[]).map(VP.bind(null,e)),n=Object.keys(t.attributes||{}).reduce((function(e,c){var a=t.attributes[c];switch(c){case"class":e.class=MP(a);break;case"style":e.style=CP(a);break;default:e.attrs[c]=a}return e}),{class:{},style:{},attrs:{}}),s=a.class,r=void 0===s?{}:s,o=a.style,l=void 0===o?{}:o,u=a.attrs,p=void 0===u?{}:u,f=mP(a,bP);return"string"==typeof t?t:e(t.tag,uP(uP({class:HP(n.class,r),style:uP(uP({},n.style),l),attrs:uP(uP({},n.attrs),p)},f),{},{props:c}),i)}var yP=!1;try{yP=!0}catch(e){}function LP(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?fP({},e,t):{}}function SP(e){return e&&"object"===pP(e)&&e.prefix&&e.iconName&&e.icon?e:xi.icon?xi.icon(e):null===e?null:"object"===pP(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}var xP={name:"FontAwesomeIcon",functional:!0,props:{beat:{type:Boolean,default:!1},border:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(e){return[!0,!1,"horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1}},render:function(e,t){var c=t.props,a=c.icon,i=c.mask,n=c.symbol,s=c.title,r=SP(a),o=LP("classes",function(e){var t,c=(fP(t={"fa-spin":e.spin,"fa-spin-pulse":e.spinPulse,"fa-spin-reverse":e.spinReverse,"fa-pulse":e.pulse,"fa-beat":e.beat,"fa-fade":e.fade,"fa-flash":e.flash,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":!0===e.flip,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},"fa-".concat(e.size),null!==e.size),fP(t,"fa-rotate-".concat(e.rotation),null!==e.rotation),fP(t,"fa-pull-".concat(e.pull),null!==e.pull),fP(t,"fa-swap-opacity",e.swapOpacity),fP(t,"fa-bounce",e.bounce),fP(t,"fa-shake",e.shake),fP(t,"fa-beat-fade",e.beatFade),t);return Object.keys(c).map((function(e){return c[e]?e:null})).filter((function(e){return e}))}(c)),l=LP("transform","string"==typeof c.transform?xi.transform(c.transform):c.transform),u=LP("mask",SP(i)),p=Pi(r,uP(uP(uP(uP({},o),l),u),{},{symbol:n,title:s}));if(!p)return function(){var e;!yP&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find one or more icon(s)",r,u);var f=p.abstract;return VP.bind(null,e)(f[0],{},t.data)}},PP={name:"FontAwesomeLayers",functional:!0,props:{fixedWidth:{type:Boolean,default:!1}},render:function(e,t){var c,a,i=Li.familyPrefix,n=t.data.staticClass,s=["".concat(i,"-layers")].concat(dP(t.props.fixedWidth?["".concat(i,"-fw")]:[]));return e("div",uP(uP({},t.data),{},{staticClass:(c=n,a=s,(0===(c||"").length?[]:[c]).concat(a).join(" "))}),t.children)}},wP={name:"FontAwesomeLayersText",functional:!0,props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(e){return["bottom-left","bottom-right","top-left","top-right"].indexOf(e)>-1}}},render:function(e,t){var c=Li.familyPrefix,a=t.props,i=LP("classes",[].concat(dP(a.counter?["".concat(c,"-layers-counter")]:[]),dP(a.position?["".concat(c,"-layers-").concat(a.position)]:[]))),n=LP("transform","string"==typeof a.transform?xi.transform(a.transform):a.transform),s=wi(a.value.toString(),uP(uP({},n),i)).abstract;return a.counter&&(s[0].attributes.class=s[0].attributes.class.replace("fa-layers-text","")),VP.bind(null,e)(s[0],{},t.data)}};Si.add(rx,Zr,oP),a.default.component("font-awesome-icon",xP),a.default.component("font-awesome-layers",PP),a.default.component("font-awesome-layers-text",wP),a.default.config.productionTip=!1;var kP=c(109),AP=c.n(kP);c(256);a.default.use(AP.a);var EP=c(8);a.default.use(EP.a);const NP={dark:!1,settings:{component:"PageSettings",display:!1}},TP={host:{secure:"https://127.0.0.1:8083",default:"http://127.0.0.1:8081"}},DP={host:{default:"http://webacs.asterics.eu/"}},RP={host:{default:"https://grid.asterics.eu/#grid"}},_P=new EP.a.Store({state:{settings:{page:{...NP},are:{host:TP.host.default},webacs:{host:DP.host.default},grid:{host:RP.host.default}},search:{plugins:"",filter:""}},mutations:{load(e){localStorage&&(e.settings=Object.assign(e.settings,JSON.parse(localStorage.getItem("asterics-docs-settings")))||{...settingsDefaults},e.settings.page.settings.display=!1)},save(e){localStorage&&localStorage.setItem("asterics-docs-settings",JSON.stringify(e.settings))},toggleDarkMode(e){e.settings.page.dark=!e.settings.page.dark},showSettings(e){e.settings.page.settings.display=!0},hideSettings(e){e.settings.page.settings.display=!1},setSettingsView(e,t){e.settings.page.settings.component=t},updateARE(e,t){e.settings.are.host=t},updateWebACS(e,t){e.settings.webacs.host=t},updateGrid(e,t){e.settings.grid.host=t},updatePluginSearch(e,t){e.search.plugins=t},updatePluginFilter(e,t){e.search.filter=t}}});var OP=c(110),IP=c.n(OP),jP={name:"Close",methods:{onClose(e){this.$emit("click-close",e)}}},FP=(c(257),Object(Vt.a)(jP,(function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"settings-close"}},[t("font-awesome-icon",{attrs:{id:"toolbar-close-icon",icon:"times",tabindex:"0"},on:{click:e.onClose,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:(t.preventDefault(),e.onClose.apply(null,arguments))}}})],1)}),[],!1,null,"4140cd12",null).exports),BP={name:"Settings",components:{Close:FP},methods:{onClose(){this.$store.commit("hideSettings")}}},$P=(c(258),Object(Vt.a)(BP,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"settings-page"},[t("div",{staticClass:"toolbar"},[t("div",{staticClass:"title"},[e._t("title",(function(){return[e._v("Settings")]}))],2),e._v(" "),t("Close",{on:{"click-close":e.onClose}})],1),e._v(" "),t("div",{key:"setting-scroll",staticClass:"settings"},[e._t("default")],2)])}),[],!1,null,"dfb1e88e",null).exports),qP={name:"DarkMode",computed:{...Object(EP.b)(["settings"]),darkMode(){return this.settings.page.dark}},methods:{onClickOn(){this.$store.commit("toggleDarkMode"),this.$store.commit("save")},onClickOff(){this.$store.commit("toggleDarkMode"),this.$store.commit("save")}},watch:{darkMode(e){document&&e?document.documentElement.classList.add("dark-mode"):document.documentElement.classList.remove("dark-mode")}},created(){this.darkMode&&document.documentElement.classList.add("dark-mode")}},GP=(c(259),{name:"PageSettings",components:{Settings:$P,DarkMode:Object(Vt.a)(qP,(function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"dark-mode"}},[t("div",[t("span",[e._t("default",(function(){return[e._v("Dark Mode")]}))],2)]),e._v(" "),t("div",{attrs:{id:"dark-mode-buttons"}},[t("button",{attrs:{disabled:!e.darkMode,id:"dark-mode-off"},on:{click:e.onClickOff}},[e._v("Light")]),e._v(" "),t("button",{attrs:{disabled:e.darkMode,id:"dark-mode-on"},on:{click:e.onClickOn}},[e._v("Dark")])])])}),[],!1,null,"000b9ec2",null).exports}}),WP=Object(Vt.a)(GP,(function(){var e=this._self._c;return e("Settings",[e("span",{staticClass:"settings-title",attrs:{slot:"title"},slot:"title"},[this._v("Page Settings")]),this._v(" "),e("DarkMode",[this._v("Theme")])],1)}),[],!1,null,"28165873",null).exports,UP={name:"URL",props:{value:{type:String,default:""}},methods:{onSubmit(){},onInput(e){this.$emit("input-url",e.target.value)},onRestore(){this.$emit("restore-url")}}},KP=(c(260),{name:"SolutionsSettings",components:{Settings:$P,URL:Object(Vt.a)(UP,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"url"},[t("div",{staticClass:"title"},[e._t("default",(function(){return[e._v("URL")]}))],2),e._v(" "),t("div",[t("form",{staticClass:"input",on:{submit:function(t){return t.preventDefault(),e.onSubmit.apply(null,arguments)}}},[t("input",{attrs:{type:"text","aria-label":"Change URL",autocomplete:"off",spellcheck:"false"},domProps:{value:e.value},on:{input:function(t){return e.onInput(t)}}}),e._v(" "),t("div",{staticClass:"controls"},[t("font-awesome-icon",{attrs:{tabindex:"0",icon:"undo"},on:{click:e.onRestore,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:(t.preventDefault(),e.onRestore.apply(null,arguments))}}})],1)])])])}),[],!1,null,"3fbaee58",null).exports},computed:Object(EP.b)(["settings"]),methods:{onInputARE(e){this.$store.commit("updateARE",e),this.$store.commit("save")},onInputWebACS(e){this.$store.commit("updateWebACS",e),this.$store.commit("save")},onInputGrid(e){this.$store.commit("updateGrid",e),this.$store.commit("save")},onRestoreARE(){this.$store.commit("updateARE",TP.host.default),this.$store.commit("save")},onRestoreWebACS(){this.$store.commit("updateWebACS",DP.host.default),this.$store.commit("save")},onRestoreGrid(){this.$store.commit("updateGrid",RP.host.default),this.$store.commit("save")}}}),ZP={name:"SettingsView",components:{PageSettings:WP,SolutionSettings:Object(Vt.a)(KP,(function(){var e=this,t=e._self._c;return t("Settings",[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("Solution Settings")]),e._v(" "),t("URL",{attrs:{value:e.settings.are.host},on:{"input-url":e.onInputARE,"restore-url":e.onRestoreARE}},[e._v("AsTeRICS Runtime Environment")]),e._v(" "),t("URL",{attrs:{value:e.settings.webacs.host},on:{"input-url":e.onInputWebACS,"restore-url":e.onRestoreWebACS}},[e._v("WebACS")]),e._v(" "),t("URL",{attrs:{value:e.settings.grid.host},on:{"input-url":e.onInputGrid,"restore-url":e.onRestoreGrid}},[e._v("AsTeRICS Grid")])],1)}),[],!1,null,"c57b1654",null).exports},data:()=>({browser:"default"}),computed:{...Object(EP.b)(["settings"]),display(){return this.settings.page.settings.display},view(){return this.settings.page.settings.component}},methods:{isAREConfigured(){if(!localStorage)return!1;const e=JSON.parse(localStorage.getItem("asterics-docs-settings"));return!(!e||void 0===e.are.host)},isSecureConnection(){return!(!this.isAREConfigured()&&"Firefox"===this.browser)}},created(){this.$store.commit("load")},mounted(){this.isSecureConnection()||(console.log(`Detected Firefox browser. Setting default ARE URL from ${this.settings.are.host} to ${TP.host.secure}.\nOpen the solution settings to configure the URL manually.`),this.$store.commit("updateARE",TP.host.secure))},beforeMount(){this.browser=IP.a.getParser(window.navigator.userAgent).getBrowserName()}},YP=(c(261),Object(Vt.a)(ZP,(function(){var e=this._self._c;return e("div",{directives:[{name:"show",rawName:"v-show",value:this.display,expression:"display"}],staticClass:"settings-view"},[e(this.view,{key:this.view,tag:"component"})],1)}),[],!1,null,null,null).exports),XP=c(15),JP={name:"Toast",components:{Close:FP},methods:{onClose(e){this.$emit("delete-toast")}}},QP=(c(262),Object(Vt.a)(JP,(function(){var e=this,t=e._self._c;return t("li",{staticClass:"toast"},[t("div",{staticClass:"toast-header"},[e._t("title",(function(){return[e._v("Message")]})),e._v(" "),t("Close",{on:{"click-close":e.onClose}})],2),e._v(" "),t("div",{staticClass:"toast-content"},[e._t("default",(function(){return[e._v("\n Toast\n ")]}))],2)])}),[],!1,null,"004f2b8f",null).exports),ew={name:"InternalServerError",components:{Toast:QP},props:{supportedOS:{type:String,default:""}},computed:{os(){return this.supportedOS.split(",")}}},tw=(c(263),Object(Vt.a)(ew,(function(){var e=this,t=e._self._c;return t("Toast",{on:{"delete-toast":function(t){return e.$emit("delete-toast")}}},[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("Internal Server Error")]),e._v(" "),t("div",{staticClass:"internal-server-error"},[e._v("\n Make sure to run the "),t("abbr",{attrs:{title:"AsTeRICS Runtime Environment"}},[e._v("ARE")]),e._v(" on a supported\n platform:\n "),e._l(e.os,(function(c,a){return t("span",{key:a},[e._v(e._s(`${c}${a===e.os.length-1?".":", "}`))])}))],2)])}),[],!1,null,"613826d5",null).exports),cw={name:"NetworkError",components:{Toast:QP},props:{host:{type:String,required:!0}},computed:{secure(){return this.host.startsWith("https://")}}},aw=(c(264),{name:"Toaster",components:{Toast:QP,InternalServerError:tw,NetworkError:Object(Vt.a)(cw,(function(){var e=this,t=e._self._c;return t("Toast",{on:{"delete-toast":function(t){return e.$emit("delete-toast")}}},[t("div",{attrs:{slot:"title"},slot:"title"},[e._v("Network Error")]),e._v(" "),t("div",{staticClass:"network-error"},[e.secure?t("div",[e._v("\n Your browser cannot access the "),t("abbr",{attrs:{title:"AsTeRICS Runtime Environment"}},[e._v("ARE")]),e._v(" at\n "),t("a",{attrs:{href:e.host,rel:"noopener",target:"_blank"}},[e._v(e._s(e.host)+" "),t("OutboundLink")],1),e._v(". To grant\n access, execute following steps:\n "),t("ol",[t("li",[e._v("\n Open link "),t("a",{attrs:{href:e.host,rel:"noopener",target:"_blank"}},[e._v(e._s(e.host)+" "),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Add exception")])])]):t("div",[e._v("\n Your browser cannot access the "),t("abbr",{attrs:{title:"AsTeRICS Runtime Environment"}},[e._v("ARE")]),e._v(" at\n "),t("a",{attrs:{href:e.host,rel:"noopener",target:"_blank"}},[e._v(e._s(e.host)+" "),t("OutboundLink")],1),e._v(". Make sure it\n is running and available at the configured domain.\n ")])])])}),[],!1,null,"f7aa2bf6",null).exports},props:{items:{type:Array,default:()=>[]}},methods:{onDelete(e){this.$emit("delete-toast",e)}}}),iw=(c(265),{name:"ToastsView",components:{Toaster:Object(Vt.a)(aw,(function(){var e=this,t=e._self._c;return t("div",[t("transition-group",{attrs:{name:"list",tag:"ul",id:"toaster"}},e._l(e.items,(function(c,a){return t(c.component,e._b({key:c.key,tag:"Toast",staticClass:"list-item",on:{"delete-toast":function(t){return e.onDelete(a)}}},"Toast",c,!1))})),1)],1)}),[],!1,null,"40409937",null).exports},data:()=>({items:[]}),computed:{list(){return this.items.reverse()}},methods:{handleToasterPush(e){this.items.unshift({...e,key:Date.now()})},onDelete(e){e>=0&&e0?e("div",{attrs:{id:"toasts-view"}},[e("Toaster",{staticClass:"toaster",attrs:{items:this.items},on:{"delete-toast":this.onDelete}})],1):this._e()}),[],!1,null,"93e8c1e2",null).exports),sw={name:"SSRSettingsView"},rw=Object(Vt.a)(sw,(function(){return(0,this._self._c)("div")}),[],!1,null,"5eebb96a",null).exports,ow={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null,container:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),XP.a.$on("scroll-y",this.onScrollY)},beforeDestroy(){XP.a.$off("scroll-y",this.onScrollY)},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){this.container&&this.container.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0},onScrollY({ps:e,$refs:t}){this.scrollTop=e.scrollbarYTop,this.container=t.container}}},lw=(c(267),Object(Vt.a)(ow,(function(){var e=this,t=e._self._c;return t("transition",{attrs:{name:"fade"}},[e.show?t("svg",{staticClass:"go-to-top",attrs:{tabindex:"0",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:e.scrollToTop,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:e.scrollToTop.apply(null,arguments)}}},[t("g",{attrs:{transform:"translate(-229 -126.358)"}},[t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),e._v(" "),t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):e._e()])}),[],!1,null,"02efbe36",null).exports),uw={name:"SSRBackToTop"},pw=Object(Vt.a)(uw,(function(){return(0,this._self._c)("div")}),[],!1,null,"0876c064",null).exports,fw=async({Vue:e,options:t,router:c,siteData:a,isServer:i})=>{e.prototype.$store=_P,i?(e.component("BackToTop",pw),e.component("SettingsView",rw)):(e.component("SettingsView",YP),e.component("BackToTop",lw)),e.component("ToastsView",nw)};c(268);a.default.component("AstericsSWUpdatePopup",()=>Promise.all([c.e(0),c.e(48)]).then(c.bind(null,909))),a.default.component("Action",()=>Promise.all([c.e(0),c.e(49)]).then(c.bind(null,910))),a.default.component("ActionGroup",()=>Promise.all([c.e(0),c.e(50)]).then(c.bind(null,911))),a.default.component("Actions",()=>Promise.all([c.e(0),c.e(51)]).then(c.bind(null,912))),a.default.component("Funding",()=>Promise.all([c.e(0),c.e(52)]).then(c.bind(null,913))),a.default.component("Header",()=>Promise.all([c.e(0),c.e(53)]).then(c.bind(null,914))),a.default.component("Label",()=>c.e(285).then(c.bind(null,915))),a.default.component("Partner",()=>Promise.all([c.e(0),c.e(17)]).then(c.bind(null,916))),a.default.component("PluginsSearch",()=>Promise.all([c.e(0),c.e(8)]).then(c.bind(null,902))),a.default.component("Solution",()=>Promise.all([c.e(0),c.e(2),c.e(7)]).then(c.bind(null,903))),a.default.component("Solutions",()=>Promise.all([c.e(0),c.e(32)]).then(c.bind(null,917))),a.default.component("Subtitle",()=>Promise.all([c.e(0),c.e(54)]).then(c.bind(null,918))),a.default.component("UseCase",()=>Promise.all([c.e(0),c.e(2),c.e(33)]).then(c.bind(null,906))),a.default.component("UseCases",()=>c.e(286).then(c.bind(null,919))),a.default.component("Video",()=>Promise.all([c.e(0),c.e(9)]).then(c.bind(null,920))),a.default.component("CodeBlock",()=>Promise.all([c.e(0),c.e(56)]).then(c.bind(null,921))),a.default.component("CodeGroup",()=>Promise.all([c.e(0),c.e(57)]).then(c.bind(null,922))),a.default.component("Badge",()=>Promise.all([c.e(0),c.e(55)]).then(c.bind(null,1285)));c(269),c(270);function mw(e){const t=document.documentElement.getBoundingClientRect(),c=e.getBoundingClientRect();return{x:c.left-t.left,y:c.top-t.top}}var dw=c(105),hw=c(7),vw={name:"AutoSWUpdatePopup",components:{SWUpdatePopup:dw.a},data:()=>({updateTimer:0,cancel:!1,interval:0}),computed:{countDown(){return this.cancel?"":` (${this.updateTimer})`},showCancel(){return!Boolean(this.cancel)}},methods:{clickUpdate(){if("undefined"!=typeof window){window.document.getElementById("auto-sw-update-popup").click()}},clickCancel(){this.cancel=!0,"undefined"!=typeof window&&this.interval&&window.clearInterval(this.interval)}},created(){const e=this;hw.a.$on("sw-updated",(function(){"undefined"!=typeof window&&(e.updateTimer=3,e.interval=window.setInterval(()=>{e.updateTimer<=0&&(window.clearInterval(e.interval),e.clickUpdate()),e.updateTimer--},1e3))}))},beforeDestroy(){"undefined"!=typeof window&&this.interval&&window.clearInterval(this.interval)}},gw=Object(Vt.a)(vw,(function(){var e=this,t=e._self._c;return t("SWUpdatePopup",{scopedSlots:e._u([{key:"default",fn:function({enabled:c,reload:a,message:i,buttonText:n}){return[c?t("div",{staticClass:"sw-update-popup"},[e._v("\n "+e._s(i)+"\n "),t("br"),e._v(" "),t("button",{attrs:{id:"auto-sw-update-popup"},on:{click:a}},[e._v(e._s(n+e.countDown))]),e._v(" "),e.showCancel?t("button",{staticClass:"cancel",on:{click:e.clickCancel}},[e._v("Cancel")]):e._e()]):e._e()]}}])})}),[],!1,null,"10918b5a",null).exports;class zw{constructor(e){Object.defineProperty(this,"registration",{value:e,configurable:!0,writable:!0})}update(){return this.registration.update()}skipWaiting(){const e=this.registration.waiting;return e?(console.log("[vuepress:sw] Doing worker.skipWaiting()."),new Promise((t,c)=>{const a=new MessageChannel;a.port1.onmessage=e=>{console.log("[vuepress:sw] Done worker.skipWaiting()."),e.data.error?c(e.data.error):t(e.data)},e.postMessage({type:"skip-waiting"},[a.port2])})):Promise.resolve()}}var bw=[async({Vue:e,options:t,router:c,siteData:a,isServer:i})=>{0},fw,{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:e,router:t})=>{t.options.scrollBehavior=(t,c,a)=>{if(a)return window.scrollTo({top:a.y,behavior:"smooth"});if(t.hash){if(e.$vuepress.$get("disableScrollBehavior"))return!1;const c=document.querySelector(t.hash);return!!c&&window.scrollTo({top:mw(c).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},fw,({Vue:e})=>{e.component("AutoSWUpdatePopup",gw)},async({router:e,isServer:t})=>{if(!t){const{register:t}=await c.e(389).then(c.bind(null,900));e.onReady(()=>{t("/service-worker.js",{registrationOptions:{},ready(){console.log("[vuepress:sw] Service worker is active."),hw.a.$emit("sw-ready")},cached(e){console.log("[vuepress:sw] Content has been cached for offline use."),hw.a.$emit("sw-cached",new zw(e))},updated(e){console.log("[vuepress:sw] Content updated."),hw.a.$emit("sw-updated",new zw(e))},offline(){console.log("[vuepress:sw] No internet connection found. App is running in offline mode."),hw.a.$emit("sw-offline")},error(e){console.error("[vuepress:sw] Error during service worker registration:",e),hw.a.$emit("sw-error",e),GA_ID&&ga("send","exception",{exDescription:e.message,exFatal:!1})}})})}}],Cw=["SettingsView","BackToTop","ToastsView","AutoSWUpdatePopup","AutoSWUpdatePopup"];class Mw extends class{constructor(){this.store=new a.default({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){a.default.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(Mw.prototype,{getPageAsyncComponent:Ke.d,getLayoutAsyncComponent:Ke.c,getAsyncComponent:Ke.b,getVueComponent:Ke.e});var Hw={install(e){const t=new Mw;e.$vuepress=t,e.prototype.$vuepress=t}};function Vw(e,t){const c=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===c)}var yw={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return Object(Ke.h)("pageKey",t),a.default.component(t)||a.default.component(t,Object(Ke.d)(t)),a.default.component(t)?e(t):e("")}},Lw={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:c})=>e("div",{class:["content__"+t.slotKey]},c()[t.slotKey])},Sw={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},xw=(c(272),c(273),Object(Vt.a)(Sw,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Pw={functional:!0,render(e,{parent:t,children:c}){if(t._isMounted)return c;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};a.default.config.productionTip=!1,a.default.use(We),a.default.use(Hw),a.default.mixin(function(e,t,c=a.default){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),c.$vuepress.$set("siteData",t);const i=new(e(c.$vuepress.$get("siteData"))),n=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(i)),s={};return Object.keys(n).reduce((e,t)=>(t.startsWith("$")&&(e[t]=n[t].get),e),s),{computed:s}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,c;for(const a in e)"/"===a?c=e[a]:0===this.$page.path.indexOf(a)&&(t=e[a]);return t||c||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const c=this.$siteTitle,a=e.frontmatter.home?null:e.frontmatter.title||e.title;return c?a?a+" | "+c:c:a||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let c=0;cc||(e.hash?!a.default.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,c,a)=>{if(Vw(e,t.path))a();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const c=t.path.replace(/\/$/,"")+".html";Vw(e,c)?a(c):a()}else a();else{const c=t.path+"/",i=t.path+".html";Vw(e,i)?a(i):Vw(e,c)?a(c):a()}})}(c);const i={};try{await Promise.all(bw.filter(e=>"function"==typeof e).map(t=>t({Vue:a.default,options:i,router:c,siteData:St,isServer:e})))}catch(e){console.error(e)}return{app:new a.default(Object.assign(i,{router:c,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},Cw.map(t=>e(t)))])})),router:c}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})},function(e,t,c){"use strict";function a(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function i(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((function(c){void 0===e[c]?e[c]=t[c]:a(t[c])&&a(e[c])&&Object.keys(t[c]).length>0&&i(e[c],t[c])}))}c.r(t);var n="undefined"!=typeof document?document:{},s={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};i(n,s);var r="undefined"!=typeof window?window:{};i(r,{document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}}});class o{constructor(e){const t=this;for(let c=0;c=0&&r.indexOf(">")>=0){let e="div";for(0===r.indexOf(":~]/)?(t||n).querySelectorAll(e.trim()):[n.getElementById(e.trim().split("#")[1])],a=0;a0&&e[0].nodeType)for(a=0;a=0;e-=1){const c=s[e];a&&c.listener===a||a&&c.listener&&c.listener.dom7proxy&&c.listener.dom7proxy===a?(n.removeEventListener(t,c.proxyListener,i),s.splice(e,1)):a||(n.removeEventListener(t,c.proxyListener,i),s.splice(e,1))}}}return this},trigger:function(...e){const t=e[0].split(" "),c=e[1];for(let a=0;at>0),a.dispatchEvent(s),a.dom7EventData=[],delete a.dom7EventData}}return this},transitionEnd:function(e){const t=["webkitTransitionEnd","transitionend"],c=this;let a;function i(n){if(n.target===this)for(e.call(this,n),a=0;a0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},offset:function(){if(this.length>0){const e=this[0],t=e.getBoundingClientRect(),c=n.body,a=e.clientTop||c.clientTop||0,i=e.clientLeft||c.clientLeft||0,s=e===r?r.scrollY:e.scrollTop,o=e===r?r.scrollX:e.scrollLeft;return{top:t.top+s-a,left:t.left+o-i}}return null},css:function(e,t){let c;if(1===arguments.length){if("string"!=typeof e){for(c=0;ct-1?new o([]):e<0?(c=t+e,new o(c<0?[]:[this[c]])):new o([this[e]])},append:function(...e){let t;for(let c=0;c=0;c-=1)this[t].insertBefore(a.childNodes[c],this[t].childNodes[0])}else if(e instanceof o)for(c=0;c0?e?this[0].nextElementSibling&&l(this[0].nextElementSibling).is(e)?new o([this[0].nextElementSibling]):new o([]):this[0].nextElementSibling?new o([this[0].nextElementSibling]):new o([]):new o([])},nextAll:function(e){const t=[];let c=this[0];if(!c)return new o([]);for(;c.nextElementSibling;){const a=c.nextElementSibling;e?l(a).is(e)&&t.push(a):t.push(a),c=a}return new o(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&l(t.previousElementSibling).is(e)?new o([t.previousElementSibling]):new o([]):t.previousElementSibling?new o([t.previousElementSibling]):new o([])}return new o([])},prevAll:function(e){const t=[];let c=this[0];if(!c)return new o([]);for(;c.previousElementSibling;){const a=c.previousElementSibling;e?l(a).is(e)&&t.push(a):t.push(a),c=a}return new o(t)},parent:function(e){const t=[];for(let c=0;c{l.fn[e]=l.fn[e]||p[e]});const f={deleteProps(e){const t=e;Object.keys(t).forEach(e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})},nextTick:(e,t=0)=>setTimeout(e,t),now:()=>Date.now(),getTranslate(e,t="x"){let c,a,i;const n=r.getComputedStyle(e,null);return r.WebKitCSSMatrix?(a=n.transform||n.webkitTransform,a.split(",").length>6&&(a=a.split(", ").map(e=>e.replace(",",".")).join(", ")),i=new r.WebKitCSSMatrix("none"===a?"":a)):(i=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),c=i.toString().split(",")),"x"===t&&(a=r.WebKitCSSMatrix?i.m41:16===c.length?parseFloat(c[12]):parseFloat(c[4])),"y"===t&&(a=r.WebKitCSSMatrix?i.m42:16===c.length?parseFloat(c[13]):parseFloat(c[5])),a||0},parseUrlQuery(e){const t={};let c,a,i,n,s=e||r.location.href;if("string"==typeof s&&s.length)for(s=s.indexOf("?")>-1?s.replace(/\S*\?/,""):"",a=s.split("&").filter(e=>""!==e),n=a.length,c=0;c"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object,extend(...e){const t=Object(e[0]);for(let c=1;c=0,observer:"MutationObserver"in r||"WebkitMutationObserver"in r,passiveListener:function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get(){e=!0}});r.addEventListener("testPassiveListener",null,t)}catch(e){}return e}(),gestures:"ongesturestart"in r};class d{constructor(e={}){const t=this;t.params=e,t.eventsListeners={},t.params&&t.params.on&&Object.keys(t.params.on).forEach(e=>{t.on(e,t.params.on[e])})}on(e,t,c){const a=this;if("function"!=typeof t)return a;const i=c?"unshift":"push";return e.split(" ").forEach(e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)}),a}once(e,t,c){const a=this;if("function"!=typeof t)return a;function i(...c){a.off(e,i),i.f7proxy&&delete i.f7proxy,t.apply(a,c)}return i.f7proxy=t,a.on(e,i,c)}off(e,t){const c=this;return c.eventsListeners?(e.split(" ").forEach(e=>{void 0===t?c.eventsListeners[e]=[]:c.eventsListeners[e]&&c.eventsListeners[e].length&&c.eventsListeners[e].forEach((a,i)=>{(a===t||a.f7proxy&&a.f7proxy===t)&&c.eventsListeners[e].splice(i,1)})}),c):c}emit(...e){const t=this;if(!t.eventsListeners)return t;let c,a,i;"string"==typeof e[0]||Array.isArray(e[0])?(c=e[0],a=e.slice(1,e.length),i=t):(c=e[0].events,a=e[0].data,i=e[0].context||t);return(Array.isArray(c)?c:c.split(" ")).forEach(e=>{if(t.eventsListeners&&t.eventsListeners[e]){const c=[];t.eventsListeners[e].forEach(e=>{c.push(e)}),c.forEach(e=>{e.apply(i,a)})}}),t}useModulesParams(e){const t=this;t.modules&&Object.keys(t.modules).forEach(c=>{const a=t.modules[c];a.params&&f.extend(e,a.params)})}useModules(e={}){const t=this;t.modules&&Object.keys(t.modules).forEach(c=>{const a=t.modules[c],i=e[c]||{};a.instance&&Object.keys(a.instance).forEach(e=>{const c=a.instance[e];t[e]="function"==typeof c?c.bind(t):c}),a.on&&t.on&&Object.keys(a.on).forEach(e=>{t.on(e,a.on[e])}),a.create&&a.create.bind(t)(i)})}static set components(e){this.use&&this.use(e)}static installModule(e,...t){const c=this;c.prototype.modules||(c.prototype.modules={});const a=e.name||`${Object.keys(c.prototype.modules).length}_${f.now()}`;return c.prototype.modules[a]=e,e.proto&&Object.keys(e.proto).forEach(t=>{c.prototype[t]=e.proto[t]}),e.static&&Object.keys(e.static).forEach(t=>{c[t]=e.static[t]}),e.install&&e.install.apply(c,t),c}static use(e,...t){const c=this;return Array.isArray(e)?(e.forEach(e=>c.installModule(e)),c):c.installModule(e,...t)}}var h={updateSize:function(){const e=this;let t,c;const a=e.$el;t=void 0!==e.params.width?e.params.width:a[0].clientWidth,c=void 0!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===c&&e.isVertical()||(t=t-parseInt(a.css("padding-left"),10)-parseInt(a.css("padding-right"),10),c=c-parseInt(a.css("padding-top"),10)-parseInt(a.css("padding-bottom"),10),f.extend(e,{width:t,height:c,size:e.isHorizontal()?t:c}))},updateSlides:function(){const e=this,t=e.params,{$wrapperEl:c,size:a,rtlTranslate:i,wrongRTL:n}=e,s=e.virtual&&t.virtual.enabled,o=s?e.virtual.slides.length:e.slides.length,l=c.children("."+e.params.slideClass),u=s?e.virtual.slides.length:l.length;let p=[];const m=[],d=[];function h(e){return!t.cssMode||e!==l.length-1}let v=t.slidesOffsetBefore;"function"==typeof v&&(v=t.slidesOffsetBefore.call(e));let g=t.slidesOffsetAfter;"function"==typeof g&&(g=t.slidesOffsetAfter.call(e));const z=e.snapGrid.length,b=e.snapGrid.length;let C,M,H=t.spaceBetween,V=-v,y=0,L=0;if(void 0===a)return;"string"==typeof H&&H.indexOf("%")>=0&&(H=parseFloat(H.replace("%",""))/100*a),e.virtualSize=-H,i?l.css({marginLeft:"",marginTop:""}):l.css({marginRight:"",marginBottom:""}),t.slidesPerColumn>1&&(C=Math.floor(u/t.slidesPerColumn)===u/e.params.slidesPerColumn?u:Math.ceil(u/t.slidesPerColumn)*t.slidesPerColumn,"auto"!==t.slidesPerView&&"row"===t.slidesPerColumnFill&&(C=Math.max(C,t.slidesPerView*t.slidesPerColumn)));const S=t.slidesPerColumn,x=C/S,P=Math.floor(u/t.slidesPerColumn);for(let c=0;c1){let a,n,s;if("row"===t.slidesPerColumnFill&&t.slidesPerGroup>1){const e=Math.floor(c/(t.slidesPerGroup*t.slidesPerColumn)),r=c-t.slidesPerColumn*t.slidesPerGroup*e,o=0===e?t.slidesPerGroup:Math.min(Math.ceil((u-e*S*t.slidesPerGroup)/S),t.slidesPerGroup);s=Math.floor(r/o),n=r-s*o+e*t.slidesPerGroup,a=n+s*C/S,i.css({"-webkit-box-ordinal-group":a,"-moz-box-ordinal-group":a,"-ms-flex-order":a,"-webkit-order":a,order:a})}else"column"===t.slidesPerColumnFill?(n=Math.floor(c/S),s=c-n*S,(n>P||n===P&&s===S-1)&&(s+=1,s>=S&&(s=0,n+=1))):(s=Math.floor(c/x),n=c-s*x);i.css("margin-"+(e.isHorizontal()?"top":"left"),0!==s&&t.spaceBetween&&t.spaceBetween+"px")}if("none"!==i.css("display")){if("auto"===t.slidesPerView){const c=r.getComputedStyle(i[0],null),a=i[0].style.transform,n=i[0].style.webkitTransform;if(a&&(i[0].style.transform="none"),n&&(i[0].style.webkitTransform="none"),t.roundLengths)M=e.isHorizontal()?i.outerWidth(!0):i.outerHeight(!0);else if(e.isHorizontal()){const e=parseFloat(c.getPropertyValue("width")),t=parseFloat(c.getPropertyValue("padding-left")),a=parseFloat(c.getPropertyValue("padding-right")),i=parseFloat(c.getPropertyValue("margin-left")),n=parseFloat(c.getPropertyValue("margin-right")),s=c.getPropertyValue("box-sizing");M=s&&"border-box"===s?e+i+n:e+t+a+i+n}else{const e=parseFloat(c.getPropertyValue("height")),t=parseFloat(c.getPropertyValue("padding-top")),a=parseFloat(c.getPropertyValue("padding-bottom")),i=parseFloat(c.getPropertyValue("margin-top")),n=parseFloat(c.getPropertyValue("margin-bottom")),s=c.getPropertyValue("box-sizing");M=s&&"border-box"===s?e+i+n:e+t+a+i+n}a&&(i[0].style.transform=a),n&&(i[0].style.webkitTransform=n),t.roundLengths&&(M=Math.floor(M))}else M=(a-(t.slidesPerView-1)*H)/t.slidesPerView,t.roundLengths&&(M=Math.floor(M)),l[c]&&(e.isHorizontal()?l[c].style.width=M+"px":l[c].style.height=M+"px");l[c]&&(l[c].swiperSlideSize=M),d.push(M),t.centeredSlides?(V=V+M/2+y/2+H,0===y&&0!==c&&(V=V-a/2-H),0===c&&(V=V-a/2-H),Math.abs(V)<.001&&(V=0),t.roundLengths&&(V=Math.floor(V)),L%t.slidesPerGroup==0&&p.push(V),m.push(V)):(t.roundLengths&&(V=Math.floor(V)),(L-Math.min(e.params.slidesPerGroupSkip,L))%e.params.slidesPerGroup==0&&p.push(V),m.push(V),V=V+M+H),e.virtualSize+=M+H,y=M,L+=1}}let w;if(e.virtualSize=Math.max(e.virtualSize,a)+g,i&&n&&("slide"===t.effect||"coverflow"===t.effect)&&c.css({width:e.virtualSize+t.spaceBetween+"px"}),t.setWrapperSize&&(e.isHorizontal()?c.css({width:e.virtualSize+t.spaceBetween+"px"}):c.css({height:e.virtualSize+t.spaceBetween+"px"})),t.slidesPerColumn>1&&(e.virtualSize=(M+t.spaceBetween)*C,e.virtualSize=Math.ceil(e.virtualSize/t.slidesPerColumn)-t.spaceBetween,e.isHorizontal()?c.css({width:e.virtualSize+t.spaceBetween+"px"}):c.css({height:e.virtualSize+t.spaceBetween+"px"}),t.centeredSlides)){w=[];for(let c=0;c1&&p.push(e.virtualSize-a)}if(0===p.length&&(p=[0]),0!==t.spaceBetween&&(e.isHorizontal()?i?l.filter(h).css({marginLeft:H+"px"}):l.filter(h).css({marginRight:H+"px"}):l.filter(h).css({marginBottom:H+"px"})),t.centeredSlides&&t.centeredSlidesBounds){let e=0;d.forEach(c=>{e+=c+(t.spaceBetween?t.spaceBetween:0)}),e-=t.spaceBetween;const c=e-a;p=p.map(e=>e<0?-v:e>c?c+g:e)}if(t.centerInsufficientSlides){let e=0;if(d.forEach(c=>{e+=c+(t.spaceBetween?t.spaceBetween:0)}),e-=t.spaceBetween,e{p[c]=e-t}),m.forEach((e,c)=>{m[c]=e+t})}}f.extend(e,{slides:l,snapGrid:p,slidesGrid:m,slidesSizesGrid:d}),u!==o&&e.emit("slidesLengthChange"),p.length!==z&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),m.length!==b&&e.emit("slidesGridLengthChange"),(t.watchSlidesProgress||t.watchSlidesVisibility)&&e.updateSlidesOffset()},updateAutoHeight:function(e){const t=this,c=[];let a,i=0;if("number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed),"auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)t.visibleSlides.each((e,t)=>{c.push(t)});else for(a=0;at.slides.length)break;c.push(t.slides.eq(e)[0])}else c.push(t.slides.eq(t.activeIndex)[0]);for(a=0;ai?e:i}i&&t.$wrapperEl.css("height",i+"px")},updateSlidesOffset:function(){const e=this,t=e.slides;for(let c=0;c=0&&i1&&r<=t.size||i<=0&&r>=t.size)&&(t.visibleSlides.push(s),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(c.slideVisibleClass))}s.progress=i?-r:r}t.visibleSlides=l(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const c=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*c||0}const c=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:n,isEnd:s}=t;const r=n,o=s;0===a?(i=0,n=!0,s=!0):(i=(e-t.minTranslate())/a,n=i<=0,s=i>=1),f.extend(t,{progress:i,isBeginning:n,isEnd:s}),(c.watchSlidesProgress||c.watchSlidesVisibility||c.centeredSlides&&c.autoHeight)&&t.updateSlidesProgress(e),n&&!r&&t.emit("reachBeginning toEdge"),s&&!o&&t.emit("reachEnd toEdge"),(r&&!n||o&&!s)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:c,$wrapperEl:a,activeIndex:i,realIndex:n}=e,s=e.virtual&&c.virtual.enabled;let r;t.removeClass(`${c.slideActiveClass} ${c.slideNextClass} ${c.slidePrevClass} ${c.slideDuplicateActiveClass} ${c.slideDuplicateNextClass} ${c.slideDuplicatePrevClass}`),r=s?e.$wrapperEl.find(`.${c.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),r.addClass(c.slideActiveClass),c.loop&&(r.hasClass(c.slideDuplicateClass)?a.children(`.${c.slideClass}:not(.${c.slideDuplicateClass})[data-swiper-slide-index="${n}"]`).addClass(c.slideDuplicateActiveClass):a.children(`.${c.slideClass}.${c.slideDuplicateClass}[data-swiper-slide-index="${n}"]`).addClass(c.slideDuplicateActiveClass));let o=r.nextAll("."+c.slideClass).eq(0).addClass(c.slideNextClass);c.loop&&0===o.length&&(o=t.eq(0),o.addClass(c.slideNextClass));let l=r.prevAll("."+c.slideClass).eq(0).addClass(c.slidePrevClass);c.loop&&0===l.length&&(l=t.eq(-1),l.addClass(c.slidePrevClass)),c.loop&&(o.hasClass(c.slideDuplicateClass)?a.children(`.${c.slideClass}:not(.${c.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicateNextClass):a.children(`.${c.slideClass}.${c.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicateNextClass),l.hasClass(c.slideDuplicateClass)?a.children(`.${c.slideClass}:not(.${c.slideDuplicateClass})[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicatePrevClass):a.children(`.${c.slideClass}.${c.slideDuplicateClass}[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(c.slideDuplicatePrevClass))},updateActiveIndex:function(e){const t=this,c=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:n,activeIndex:s,realIndex:r,snapIndex:o}=t;let l,u=e;if(void 0===u){for(let e=0;e=a[e]&&c=a[e]&&c=a[e]&&(u=e);n.normalizeSlideIndex&&(u<0||void 0===u)&&(u=0)}if(i.indexOf(c)>=0)l=i.indexOf(c);else{const e=Math.min(n.slidesPerGroupSkip,u);l=e+Math.floor((u-e)/n.slidesPerGroup)}if(l>=i.length&&(l=i.length-1),u===s)return void(l!==o&&(t.snapIndex=l,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(u).attr("data-swiper-slide-index")||u,10);f.extend(t,{snapIndex:l,realIndex:p,previousIndex:s,activeIndex:u}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),r!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,c=t.params,a=l(e.target).closest("."+c.slideClass)[0];let i=!1;if(a)for(let e=0;eo?o:a&&en?"next":ai?"next":a=r.length&&(d=r.length-1),(u||s.initialSlide||0)===(l||0)&&c&&i.emit("beforeSlideChangeStart");const h=-r[d];if(i.updateProgress(h),s.normalizeSlideIndex)for(let e=0;e=Math.floor(100*o[e])&&(n=e);if(i.initialized&&n!==u){if(!i.allowSlideNext&&hi.translate&&h>i.maxTranslate()&&(u||0)!==n)return!1}let v;if(v=n>u?"next":nl(e));r.map(e=>l(e)),s[p.indexOf(u)];let f,m=s[p.indexOf(u)-1];return void 0===m&&i.cssMode&&s.forEach(e=>{!m&&u>=e&&(m=e)}),void 0!==m&&(f=r.indexOf(m),f<0&&(f=a.activeIndex-1)),a.slideTo(f,e,t,c)},slideReset:function(e=this.params.speed,t=!0,c){return this.slideTo(this.activeIndex,e,t,c)},slideToClosest:function(e=this.params.speed,t=!0,c,a=.5){const i=this;let n=i.activeIndex;const s=Math.min(i.params.slidesPerGroupSkip,n),r=s+Math.floor((n-s)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[r]){const e=i.snapGrid[r];o-e>(i.snapGrid[r+1]-e)*a&&(n+=i.params.slidesPerGroup)}else{const e=i.snapGrid[r-1];o-e<=(i.snapGrid[r]-e)*a&&(n-=i.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,i.slidesGrid.length-1),i.slideTo(n,e,t,c)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:c}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,n=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(l(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?ne.slides.length-e.loopedSlides+a/2?(e.loopFix(),n=c.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),f.nextTick(()=>{e.slideTo(n)})):e.slideTo(n):n>e.slides.length-a?(e.loopFix(),n=c.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),f.nextTick(()=>{e.slideTo(n)})):e.slideTo(n)}else e.slideTo(n)}};var b={loopCreate:function(){const e=this,{params:t,$wrapperEl:c}=e;c.children(`.${t.slideClass}.${t.slideDuplicateClass}`).remove();let a=c.children("."+t.slideClass);if(t.loopFillGroupWithBlank){const e=t.slidesPerGroup-a.length%t.slidesPerGroup;if(e!==t.slidesPerGroup){for(let a=0;aa.length&&(e.loopedSlides=a.length);const i=[],s=[];a.each((t,c)=>{const n=l(c);t=a.length-e.loopedSlides&&i.push(c),n.attr("data-swiper-slide-index",t)});for(let e=0;e=0;e-=1)c.prepend(l(i[e].cloneNode(!0)).addClass(t.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:c,loopedSlides:a,allowSlidePrev:i,allowSlideNext:n,snapGrid:s,rtlTranslate:r}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const l=-s[t]-e.getTranslate();if(t=c.length-a){o=-c.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==l&&e.setTranslate((r?-e.translate:e.translate)-l)}e.allowSlidePrev=i,e.allowSlideNext=n,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:c}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),c.removeAttr("data-swiper-slide-index")}};var C={setGrabCursor:function(e){if(m.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked||this.params.cssMode)return;const t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){m.touch||this.params.watchOverflow&&this.isLocked||this.params.cssMode||(this.el.style.cursor="")}};var M={appendSlide:function(e){const t=this,{$wrapperEl:c,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t=r)return void c.appendSlide(t);let o=s>e?s+1:s;const l=[];for(let t=r-1;t>=e;t-=1){const e=c.slides.eq(t);e.remove(),l.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?s+t.length:s}else a.append(t);for(let e=0;e=0||t.indexOf("Trident/")>=0,p=t.indexOf("Edge/")>=0,f=t.indexOf("Gecko/")>=0&&t.indexOf("Firefox/")>=0,d="Win32"===e,h=t.toLowerCase().indexOf("electron")>=0;let v="MacIntel"===e;return!s&&v&&m.touch&&(1024===a&&1366===i||834===a&&1194===i||834===a&&1112===i||768===a&&1024===i)&&(s=t.match(/(Version)\/([\d.]+)/),v=!1),c.ie=u,c.edge=p,c.firefox=f,n&&!d&&(c.os="android",c.osVersion=n[2],c.android=!0,c.androidChrome=t.toLowerCase().indexOf("chrome")>=0),(s||l||o)&&(c.os="ios",c.ios=!0),l&&!o&&(c.osVersion=l[2].replace(/_/g,"."),c.iphone=!0),s&&(c.osVersion=s[2].replace(/_/g,"."),c.ipad=!0),o&&(c.osVersion=o[3]?o[3].replace(/_/g,"."):null,c.ipod=!0),c.ios&&c.osVersion&&t.indexOf("Version/")>=0&&"10"===c.osVersion.split(".")[0]&&(c.osVersion=t.toLowerCase().split("version/")[1].split(" ")[0]),c.webView=!(!(l||s||o)||!t.match(/.*AppleWebKit(?!.*Safari)/i)&&!r.navigator.standalone)||r.matchMedia&&r.matchMedia("(display-mode: standalone)").matches,c.webview=c.webView,c.standalone=c.webView,c.desktop=!(c.ios||c.android)||h,c.desktop&&(c.electron=h,c.macos=v,c.windows=d,c.macos&&(c.os="macos"),c.windows&&(c.os="windows")),c.pixelRatio=r.devicePixelRatio||1,c}();function V(e){const t=this,c=t.touchEventsData,{params:a,touches:i}=t;if(t.animating&&a.preventInteractionOnTransition)return;let s=e;s.originalEvent&&(s=s.originalEvent);const o=l(s.target);if("wrapper"===a.touchEventsTarget&&!o.closest(t.wrapperEl).length)return;if(c.isTouchEvent="touchstart"===s.type,!c.isTouchEvent&&"which"in s&&3===s.which)return;if(!c.isTouchEvent&&"button"in s&&s.button>0)return;if(c.isTouched&&c.isMoved)return;if(a.noSwiping&&o.closest(a.noSwipingSelector?a.noSwipingSelector:"."+a.noSwipingClass)[0])return void(t.allowClick=!0);if(a.swipeHandler&&!o.closest(a.swipeHandler)[0])return;i.currentX="touchstart"===s.type?s.targetTouches[0].pageX:s.pageX,i.currentY="touchstart"===s.type?s.targetTouches[0].pageY:s.pageY;const u=i.currentX,p=i.currentY,m=a.edgeSwipeDetection||a.iOSEdgeSwipeDetection,d=a.edgeSwipeThreshold||a.iOSEdgeSwipeThreshold;if(!m||!(u<=d||u>=r.screen.width-d)){if(f.extend(c,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),i.startX=u,i.startY=p,c.touchStartTime=f.now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,a.threshold>0&&(c.allowThresholdMove=!1),"touchstart"!==s.type){let e=!0;o.is(c.formElements)&&(e=!1),n.activeElement&&l(n.activeElement).is(c.formElements)&&n.activeElement!==o[0]&&n.activeElement.blur();const i=e&&t.allowTouchMove&&a.touchStartPreventDefault;(a.touchStartForcePreventDefault||i)&&s.preventDefault()}t.emit("touchStart",s)}}function y(e){const t=this,c=t.touchEventsData,{params:a,touches:i,rtlTranslate:s}=t;let r=e;if(r.originalEvent&&(r=r.originalEvent),!c.isTouched)return void(c.startMoving&&c.isScrolling&&t.emit("touchMoveOpposite",r));if(c.isTouchEvent&&"touchmove"!==r.type)return;const o="touchmove"===r.type&&r.targetTouches&&(r.targetTouches[0]||r.changedTouches[0]),u="touchmove"===r.type?o.pageX:r.pageX,p="touchmove"===r.type?o.pageY:r.pageY;if(r.preventedByNestedSwiper)return i.startX=u,void(i.startY=p);if(!t.allowTouchMove)return t.allowClick=!1,void(c.isTouched&&(f.extend(i,{startX:u,startY:p,currentX:u,currentY:p}),c.touchStartTime=f.now()));if(c.isTouchEvent&&a.touchReleaseOnEdges&&!a.loop)if(t.isVertical()){if(pi.startY&&t.translate>=t.minTranslate())return c.isTouched=!1,void(c.isMoved=!1)}else if(ui.startX&&t.translate>=t.minTranslate())return;if(c.isTouchEvent&&n.activeElement&&r.target===n.activeElement&&l(r.target).is(c.formElements))return c.isMoved=!0,void(t.allowClick=!1);if(c.allowTouchCallbacks&&t.emit("touchMove",r),r.targetTouches&&r.targetTouches.length>1)return;i.currentX=u,i.currentY=p;const m=i.currentX-i.startX,d=i.currentY-i.startY;if(t.params.threshold&&Math.sqrt(m**2+d**2)=25&&(e=180*Math.atan2(Math.abs(d),Math.abs(m))/Math.PI,c.isScrolling=t.isHorizontal()?e>a.touchAngle:90-e>a.touchAngle)}if(c.isScrolling&&t.emit("touchMoveOpposite",r),void 0===c.startMoving&&(i.currentX===i.startX&&i.currentY===i.startY||(c.startMoving=!0)),c.isScrolling)return void(c.isTouched=!1);if(!c.startMoving)return;t.allowClick=!1,!a.cssMode&&r.cancelable&&r.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&r.stopPropagation(),c.isMoved||(a.loop&&t.loopFix(),c.startTranslate=t.getTranslate(),t.setTransition(0),t.animating&&t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),c.allowMomentumBounce=!1,!a.grabCursor||!0!==t.allowSlideNext&&!0!==t.allowSlidePrev||t.setGrabCursor(!0),t.emit("sliderFirstMove",r)),t.emit("sliderMove",r),c.isMoved=!0;let h=t.isHorizontal()?m:d;i.diff=h,h*=a.touchRatio,s&&(h=-h),t.swipeDirection=h>0?"prev":"next",c.currentTranslate=h+c.startTranslate;let v=!0,g=a.resistanceRatio;if(a.touchReleaseOnEdges&&(g=0),h>0&&c.currentTranslate>t.minTranslate()?(v=!1,a.resistance&&(c.currentTranslate=t.minTranslate()-1+(-t.minTranslate()+c.startTranslate+h)**g)):h<0&&c.currentTranslatec.startTranslate&&(c.currentTranslate=c.startTranslate),a.threshold>0){if(!(Math.abs(h)>a.threshold||c.allowThresholdMove))return void(c.currentTranslate=c.startTranslate);if(!c.allowThresholdMove)return c.allowThresholdMove=!0,i.startX=i.currentX,i.startY=i.currentY,c.currentTranslate=c.startTranslate,void(i.diff=t.isHorizontal()?i.currentX-i.startX:i.currentY-i.startY)}a.followFinger&&!a.cssMode&&((a.freeMode||a.watchSlidesProgress||a.watchSlidesVisibility)&&(t.updateActiveIndex(),t.updateSlidesClasses()),a.freeMode&&(0===c.velocities.length&&c.velocities.push({position:i[t.isHorizontal()?"startX":"startY"],time:c.touchStartTime}),c.velocities.push({position:i[t.isHorizontal()?"currentX":"currentY"],time:f.now()})),t.updateProgress(c.currentTranslate),t.setTranslate(c.currentTranslate))}function L(e){const t=this,c=t.touchEventsData,{params:a,touches:i,rtlTranslate:n,$wrapperEl:s,slidesGrid:r,snapGrid:o}=t;let l=e;if(l.originalEvent&&(l=l.originalEvent),c.allowTouchCallbacks&&t.emit("touchEnd",l),c.allowTouchCallbacks=!1,!c.isTouched)return c.isMoved&&a.grabCursor&&t.setGrabCursor(!1),c.isMoved=!1,void(c.startMoving=!1);a.grabCursor&&c.isMoved&&c.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=f.now(),p=u-c.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(l),t.emit("tap click",l),p<300&&u-c.lastClickTime<300&&t.emit("doubleTap doubleClick",l)),c.lastClickTime=f.now(),f.nextTick(()=>{t.destroyed||(t.allowClick=!0)}),!c.isTouched||!c.isMoved||!t.swipeDirection||0===i.diff||c.currentTranslate===c.startTranslate)return c.isTouched=!1,c.isMoved=!1,void(c.startMoving=!1);let m;if(c.isTouched=!1,c.isMoved=!1,c.startMoving=!1,m=a.followFinger?n?t.translate:-t.translate:-c.currentTranslate,a.cssMode)return;if(a.freeMode){if(m<-t.minTranslate())return void t.slideTo(t.activeIndex);if(m>-t.maxTranslate())return void(t.slides.length1){const e=c.velocities.pop(),i=c.velocities.pop(),n=e.position-i.position,s=e.time-i.time;t.velocity=n/s,t.velocity/=2,Math.abs(t.velocity)150||f.now()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=a.freeModeMomentumVelocityRatio,c.velocities.length=0;let e=1e3*a.freeModeMomentumRatio;const i=t.velocity*e;let r=t.translate+i;n&&(r=-r);let l,u=!1;const p=20*Math.abs(t.velocity)*a.freeModeMomentumBounceRatio;let m;if(rt.minTranslate())a.freeModeMomentumBounce?(r-t.minTranslate()>p&&(r=t.minTranslate()+p),l=t.minTranslate(),u=!0,c.allowMomentumBounce=!0):r=t.minTranslate(),a.loop&&a.centeredSlides&&(m=!0);else if(a.freeModeSticky){let e;for(let t=0;t-r){e=t;break}r=Math.abs(o[e]-r){t.loopFix()}),0!==t.velocity){if(e=n?Math.abs((-r-t.translate)/t.velocity):Math.abs((r-t.translate)/t.velocity),a.freeModeSticky){const c=Math.abs((n?-r:r)-t.translate),i=t.slidesSizesGrid[t.activeIndex];e=c{t&&!t.destroyed&&c.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(a.speed),setTimeout(()=>{t.setTranslate(l),s.transitionEnd(()=>{t&&!t.destroyed&&t.transitionEnd()})},0))})):t.velocity?(t.updateProgress(r),t.setTransition(e),t.setTranslate(r),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,s.transitionEnd(()=>{t&&!t.destroyed&&t.transitionEnd()}))):t.updateProgress(r),t.updateActiveIndex(),t.updateSlidesClasses()}else if(a.freeModeSticky)return void t.slideToClosest();return void((!a.freeModeMomentum||p>=a.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses()))}let d=0,h=t.slidesSizesGrid[0];for(let e=0;e=r[e]&&m=r[e]&&(d=e,h=r[r.length-1]-r[r.length-2])}const v=(m-r[d])/h,g=da.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(v>=a.longSwipesRatio?t.slideTo(d+g):t.slideTo(d)),"prev"===t.swipeDirection&&(v>1-a.longSwipesRatio?t.slideTo(d+g):t.slideTo(d))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(l.target===t.navigation.nextEl||l.target===t.navigation.prevEl)?l.target===t.navigation.nextEl?t.slideTo(d+g):t.slideTo(d):("next"===t.swipeDirection&&t.slideTo(d+g),"prev"===t.swipeDirection&&t.slideTo(d))}}function S(){const e=this,{params:t,el:c}=e;if(c&&0===c.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:n}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function x(e){const t=this;t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}function P(){const e=this,{wrapperEl:t,rtlTranslate:c}=e;let a;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=c?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const i=e.maxTranslate()-e.minTranslate();a=0===i?0:(e.translate-e.minTranslate())/i,a!==e.progress&&e.updateProgress(c?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let w=!1;function k(){}var A={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,preventInteractionOnTransition:!1,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0};const E={update:h,translate:v,transition:g,slide:z,loop:b,grabCursor:C,manipulation:M,events:{attachEvents:function(){const e=this,{params:t,touchEvents:c,el:a,wrapperEl:i}=e;e.onTouchStart=V.bind(e),e.onTouchMove=y.bind(e),e.onTouchEnd=L.bind(e),t.cssMode&&(e.onScroll=P.bind(e)),e.onClick=x.bind(e);const s=!!t.nested;if(!m.touch&&m.pointerEvents)a.addEventListener(c.start,e.onTouchStart,!1),n.addEventListener(c.move,e.onTouchMove,s),n.addEventListener(c.end,e.onTouchEnd,!1);else{if(m.touch){const i=!("touchstart"!==c.start||!m.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};a.addEventListener(c.start,e.onTouchStart,i),a.addEventListener(c.move,e.onTouchMove,m.passiveListener?{passive:!1,capture:s}:s),a.addEventListener(c.end,e.onTouchEnd,i),c.cancel&&a.addEventListener(c.cancel,e.onTouchEnd,i),w||(n.addEventListener("touchstart",k),w=!0)}(t.simulateTouch&&!H.ios&&!H.android||t.simulateTouch&&!m.touch&&H.ios)&&(a.addEventListener("mousedown",e.onTouchStart,!1),n.addEventListener("mousemove",e.onTouchMove,s),n.addEventListener("mouseup",e.onTouchEnd,!1))}(t.preventClicks||t.preventClicksPropagation)&&a.addEventListener("click",e.onClick,!0),t.cssMode&&i.addEventListener("scroll",e.onScroll),t.updateOnWindowResize?e.on(H.ios||H.android?"resize orientationchange observerUpdate":"resize observerUpdate",S,!0):e.on("observerUpdate",S,!0)},detachEvents:function(){const e=this,{params:t,touchEvents:c,el:a,wrapperEl:i}=e,s=!!t.nested;if(!m.touch&&m.pointerEvents)a.removeEventListener(c.start,e.onTouchStart,!1),n.removeEventListener(c.move,e.onTouchMove,s),n.removeEventListener(c.end,e.onTouchEnd,!1);else{if(m.touch){const i=!("onTouchStart"!==c.start||!m.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};a.removeEventListener(c.start,e.onTouchStart,i),a.removeEventListener(c.move,e.onTouchMove,s),a.removeEventListener(c.end,e.onTouchEnd,i),c.cancel&&a.removeEventListener(c.cancel,e.onTouchEnd,i)}(t.simulateTouch&&!H.ios&&!H.android||t.simulateTouch&&!m.touch&&H.ios)&&(a.removeEventListener("mousedown",e.onTouchStart,!1),n.removeEventListener("mousemove",e.onTouchMove,s),n.removeEventListener("mouseup",e.onTouchEnd,!1))}(t.preventClicks||t.preventClicksPropagation)&&a.removeEventListener("click",e.onClick,!0),t.cssMode&&i.removeEventListener("scroll",e.onScroll),e.off(H.ios||H.android?"resize orientationchange observerUpdate":"resize observerUpdate",S)}},breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:c,loopedSlides:a=0,params:i,$el:n}=e,s=i.breakpoints;if(!s||s&&0===Object.keys(s).length)return;const r=e.getBreakpoint(s);if(r&&e.currentBreakpoint!==r){const o=r in s?s[r]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach(e=>{const t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});const l=o||e.originalParams,u=i.slidesPerColumn>1,p=l.slidesPerColumn>1;u&&!p?n.removeClass(`${i.containerModifierClass}multirow ${i.containerModifierClass}multirow-column`):!u&&p&&(n.addClass(i.containerModifierClass+"multirow"),"column"===l.slidesPerColumnFill&&n.addClass(i.containerModifierClass+"multirow-column"));const m=l.direction&&l.direction!==i.direction,d=i.loop&&(l.slidesPerView!==i.slidesPerView||m);m&&c&&e.changeDirection(),f.extend(e.params,l),f.extend(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=r,d&&c&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",l)}},getBreakpoint:function(e){if(!e)return;let t=!1;const c=Object.keys(e).map(e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:r.innerHeight*t,point:e}}return{value:e,point:e}});c.sort((e,t)=>parseInt(e.value,10)-parseInt(t.value,10));for(let e=0;e0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&a?e.isLocked=a<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,c!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),c&&c!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}},classes:{addClasses:function(){const{classNames:e,params:t,rtl:c,$el:a}=this,i=[];i.push("initialized"),i.push(t.direction),t.freeMode&&i.push("free-mode"),t.autoHeight&&i.push("autoheight"),c&&i.push("rtl"),t.slidesPerColumn>1&&(i.push("multirow"),"column"===t.slidesPerColumnFill&&i.push("multirow-column")),H.android&&i.push("android"),H.ios&&i.push("ios"),t.cssMode&&i.push("css-mode"),i.forEach(c=>{e.push(t.containerModifierClass+c)}),a.addClass(e.join(" "))},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" "))}},images:{loadImage:function(e,t,c,a,i,n){let s;function o(){n&&n()}l(e).parent("picture")[0]||e.complete&&i?o():t?(s=new r.Image,s.onload=o,s.onerror=o,a&&(s.sizes=a),c&&(s.srcset=c),t&&(s.src=t)):o()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let c=0;c{Object.keys(E[e]).forEach(t=>{T.prototype[t]||(T.prototype[t]=E[e][t])})});const a=this;void 0===a.modules&&(a.modules={}),Object.keys(a.modules).forEach(e=>{const t=a.modules[e];if(t.params){const e=Object.keys(t.params)[0],a=t.params[e];if("object"!=typeof a||null===a)return;if(!(e in c)||!("enabled"in a))return;!0===c[e]&&(c[e]={enabled:!0}),"object"!=typeof c[e]||"enabled"in c[e]||(c[e].enabled=!0),c[e]||(c[e]={enabled:!1})}});const i=f.extend({},A);a.useModulesParams(i),a.params=f.extend({},i,N,c),a.originalParams=f.extend({},a.params),a.passedParams=f.extend({},c),a.$=l;const n=l(a.params.el);if(t=n[0],!t)return;if(n.length>1){const e=[];return n.each((t,a)=>{const i=f.extend({},c,{el:a});e.push(new T(i))}),e}let s;return t.swiper=a,n.data("swiper",a),t&&t.shadowRoot&&t.shadowRoot.querySelector?(s=l(t.shadowRoot.querySelector("."+a.params.wrapperClass)),s.children=e=>n.children(e)):s=n.children("."+a.params.wrapperClass),f.extend(a,{$el:n,el:t,$wrapperEl:s,wrapperEl:s[0],classNames:[],slides:l(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.params.direction,rtl:"rtl"===t.dir.toLowerCase()||"rtl"===n.css("direction"),rtlTranslate:"horizontal"===a.params.direction&&("rtl"===t.dir.toLowerCase()||"rtl"===n.css("direction")),wrongRTL:"-webkit-box"===s.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"];let t=["mousedown","mousemove","mouseup"];return m.pointerEvents&&(t=["pointerdown","pointermove","pointerup"]),a.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},a.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},m.touch||!a.params.simulateTouch?a.touchEventsTouch:a.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video, label",lastClickTime:f.now(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.useModules(),a.params.init&&a.init(),a}slidesPerViewDynamic(){const{params:e,slides:t,slidesGrid:c,size:a,activeIndex:i}=this;let n=1;if(e.centeredSlides){let e,c=t[i].swiperSlideSize;for(let s=i+1;sa&&(e=!0));for(let s=i-1;s>=0;s-=1)t[s]&&!e&&(c+=t[s].swiperSlideSize,n+=1,c>a&&(e=!0))}else for(let e=i+1;e1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),c.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t=!0){const c=this,a=c.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(c.$el.removeClass(`${c.params.containerModifierClass}${a}`).addClass(`${c.params.containerModifierClass}${e}`),c.params.direction=e,c.slides.each((t,c)=>{"vertical"===e?c.style.width="":c.style.height=""}),c.emit("changeDirection"),t&&c.update()),c}init(){const e=this;e.initialized||(e.emit("beforeInit"),e.params.breakpoints&&e.setBreakpoint(),e.addClasses(),e.params.loop&&e.loopCreate(),e.updateSize(),e.updateSlides(),e.params.watchOverflow&&e.checkOverflow(),e.params.grabCursor&&e.setGrabCursor(),e.params.preloadImages&&e.preloadImages(),e.params.loop?e.slideTo(e.params.initialSlide+e.loopedSlides,0,e.params.runCallbacksOnInit):e.slideTo(e.params.initialSlide,0,e.params.runCallbacksOnInit),e.attachEvents(),e.initialized=!0,e.emit("init"))}destroy(e=!0,t=!0){const c=this,{params:a,$el:i,$wrapperEl:n,slides:s}=c;return void 0===c.params||c.destroyed||(c.emit("beforeDestroy"),c.initialized=!1,c.detachEvents(),a.loop&&c.loopDestroy(),t&&(c.removeClasses(),i.removeAttr("style"),n.removeAttr("style"),s&&s.length&&s.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),c.emit("destroy"),Object.keys(c.eventsListeners).forEach(e=>{c.off(e)}),!1!==e&&(c.$el[0].swiper=null,c.$el.data("swiper",null),f.deleteProps(c)),c.destroyed=!0),null}static extendDefaults(e){f.extend(N,e)}static get extendedDefaults(){return N}static get defaults(){return A}static get Class(){return d}static get $(){return l}}var D={name:"device",proto:{device:H},static:{device:H}},R={name:"support",proto:{support:m},static:{support:m}};const _={isEdge:!!r.navigator.userAgent.match(/Edge/g),isSafari:function(){const e=r.navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(r.navigator.userAgent)};var O={name:"browser",proto:{browser:_},static:{browser:_}},I={name:"resize",create(){const e=this;f.extend(e,{resize:{resizeHandler(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init(){r.addEventListener("resize",this.resize.resizeHandler),r.addEventListener("orientationchange",this.resize.orientationChangeHandler)},destroy(){r.removeEventListener("resize",this.resize.resizeHandler),r.removeEventListener("orientationchange",this.resize.orientationChangeHandler)}}};const j={func:r.MutationObserver||r.WebkitMutationObserver,attach(e,t={}){const c=this,a=new(0,j.func)(e=>{if(1===e.length)return void c.emit("observerUpdate",e[0]);const t=function(){c.emit("observerUpdate",e[0])};r.requestAnimationFrame?r.requestAnimationFrame(t):r.setTimeout(t,0)});a.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),c.observer.observers.push(a)},init(){const e=this;if(m.observer&&e.params.observer){if(e.params.observeParents){const t=e.$el.parents();for(let c=0;c{e.disconnect()}),this.observer.observers=[]}};var F={name:"observer",params:{observer:!1,observeParents:!1,observeSlideChildren:!1},create(){f.extend(this,{observer:{init:j.init.bind(this),attach:j.attach.bind(this),destroy:j.destroy.bind(this),observers:[]}})},on:{init(){this.observer.init()},destroy(){this.observer.destroy()}}};const B={update(e){const t=this,{slidesPerView:c,slidesPerGroup:a,centeredSlides:i}=t.params,{addSlidesBefore:n,addSlidesAfter:s}=t.params.virtual,{from:r,to:o,slides:l,slidesGrid:u,renderSlide:p,offset:m}=t.virtual;t.updateActiveIndex();const d=t.activeIndex||0;let h,v,g;h=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",i?(v=Math.floor(c/2)+a+n,g=Math.floor(c/2)+a+s):(v=c+(a-1)+n,g=a+s);const z=Math.max((d||0)-g,0),b=Math.min((d||0)+v,l.length-1),C=(t.slidesGrid[z]||0)-(t.slidesGrid[0]||0);function M(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(f.extend(t.virtual,{from:z,to:b,offset:C,slidesGrid:t.slidesGrid}),r===z&&o===b&&!e)return t.slidesGrid!==u&&C!==m&&t.slides.css(h,C+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:C,from:z,to:b,slides:function(){const e=[];for(let t=z;t<=b;t+=1)e.push(l[t]);return e}()}),void M();const H=[],V=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(let e=r;e<=o;e+=1)(eb)&&t.$wrapperEl.find(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t=z&&t<=b&&(void 0===o||e?V.push(t):(t>o&&V.push(t),t{t.$wrapperEl.append(p(l[e],e))}),H.sort((e,t)=>t-e).forEach(e=>{t.$wrapperEl.prepend(p(l[e],e))}),t.$wrapperEl.children(".swiper-slide").css(h,C+"px"),M()},renderSlide(e,t){const c=this,a=c.params.virtual;if(a.cache&&c.virtual.cache[t])return c.virtual.cache[t];const i=a.renderSlide?l(a.renderSlide.call(c,e,t)):l(`
${e}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(c.virtual.cache[t]=i),i},appendSlide(e){const t=this;if("object"==typeof e&&"length"in e)for(let c=0;c{const a=e[t],n=a.attr("data-swiper-slide-index");n&&a.attr("data-swiper-slide-index",parseInt(n,10)+1),c[parseInt(t,10)+i]=a}),t.virtual.cache=c}t.virtual.update(!0),t.slideTo(a,0)},removeSlide(e){const t=this;if(null==e)return;let c=t.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)t.virtual.slides.splice(e[a],1),t.params.virtual.cache&&delete t.virtual.cache[e[a]],e[a]0&&0===t.$el.parents("."+t.params.slideActiveClass).length)return;const a=r.innerWidth,i=r.innerHeight,n=t.$el.offset();c&&(n.left-=t.$el[0].scrollLeft);const s=[[n.left,n.top],[n.left+t.width,n.top],[n.left,n.top+t.height],[n.left+t.width,n.top+t.height]];for(let t=0;t=0&&c[0]<=a&&c[1]>=0&&c[1]<=i&&(e=!0)}if(!e)return}t.isHorizontal()?((o||l||u||p)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((l||p)&&!c||(o||u)&&c)&&t.slideNext(),((o||u)&&!c||(l||p)&&c)&&t.slidePrev()):((o||l||f||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(l||m)&&t.slideNext(),(o||f)&&t.slidePrev()),t.emit("keyPress",i)}},enable(){this.keyboard.enabled||(l(n).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable(){this.keyboard.enabled&&(l(n).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}};var G={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}},create(){f.extend(this,{keyboard:{enabled:!1,enable:q.enable.bind(this),disable:q.disable.bind(this),handle:q.handle.bind(this)}})},on:{init(){const e=this;e.params.keyboard.enabled&&e.keyboard.enable()},destroy(){const e=this;e.keyboard.enabled&&e.keyboard.disable()}}};const W={lastScrollTime:f.now(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:()=>r.navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){let e="onwheel"in n;if(!e){const t=n.createElement("div");t.setAttribute("onwheel","return;"),e="function"==typeof t.onwheel}return!e&&n.implementation&&n.implementation.hasFeature&&!0!==n.implementation.hasFeature("","")&&(e=n.implementation.hasFeature("Events.wheel","3.0")),e}()?"wheel":"mousewheel",normalize(e){let t=0,c=0,a=0,i=0;return"detail"in e&&(c=e.detail),"wheelDelta"in e&&(c=-e.wheelDelta/120),"wheelDeltaY"in e&&(c=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=c,c=0),a=10*t,i=10*c,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!c&&(c=i<1?-1:1),{spinX:t,spinY:c,pixelX:a,pixelY:i}},handleMouseEnter(){this.mouseEntered=!0},handleMouseLeave(){this.mouseEntered=!1},handle(e){let t=e;const c=this,a=c.params.mousewheel;c.params.cssMode&&t.preventDefault();let i=c.$el;if("container"!==c.params.mousewheel.eventsTarged&&(i=l(c.params.mousewheel.eventsTarged)),!c.mouseEntered&&!i[0].contains(t.target)&&!a.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);let n=0;const s=c.rtlTranslate?-1:1,r=W.normalize(t);if(a.forceToAxis)if(c.isHorizontal()){if(!(Math.abs(r.pixelX)>Math.abs(r.pixelY)))return!0;n=-r.pixelX*s}else{if(!(Math.abs(r.pixelY)>Math.abs(r.pixelX)))return!0;n=-r.pixelY}else n=Math.abs(r.pixelX)>Math.abs(r.pixelY)?-r.pixelX*s:-r.pixelY;if(0===n)return!0;if(a.invert&&(n=-n),c.params.freeMode){const e={time:f.now(),delta:Math.abs(n),direction:Math.sign(n)},{lastEventBeforeSnap:i}=c.mousewheel,s=i&&e.time=c.minTranslate()&&(i=c.minTranslate()),i<=c.maxTranslate()&&(i=c.maxTranslate()),c.setTransition(0),c.setTranslate(i),c.updateProgress(),c.updateActiveIndex(),c.updateSlidesClasses(),(!r&&c.isBeginning||!o&&c.isEnd)&&c.updateSlidesClasses(),c.params.freeModeSticky){clearTimeout(c.mousewheel.timeout),c.mousewheel.timeout=void 0;const t=c.mousewheel.recentWheelEvents;t.length>=15&&t.shift();const a=t.length?t[t.length-1]:void 0,i=t[0];if(t.push(e),a&&(e.delta>a.delta||e.direction!==a.direction))t.splice(0);else if(t.length>=15&&e.time-i.time<500&&i.delta-e.delta>=1&&e.delta<=6){const a=n>0?.8:.2;c.mousewheel.lastEventBeforeSnap=e,t.splice(0),c.mousewheel.timeout=f.nextTick(()=>{c.slideToClosest(c.params.speed,!0,void 0,a)},0)}c.mousewheel.timeout||(c.mousewheel.timeout=f.nextTick(()=>{c.mousewheel.lastEventBeforeSnap=e,t.splice(0),c.slideToClosest(c.params.speed,!0,void 0,.5)},500))}if(s||c.emit("scroll",t),c.params.autoplay&&c.params.autoplayDisableOnInteraction&&c.autoplay.stop(),i===c.minTranslate()||i===c.maxTranslate())return!0}}else{const t={time:f.now(),delta:Math.abs(n),direction:Math.sign(n),raw:e},a=c.mousewheel.recentWheelEvents;a.length>=2&&a.shift();const i=a.length?a[a.length-1]:void 0;if(a.push(t),i?(t.direction!==i.direction||t.delta>i.delta||t.time>i.time+150)&&c.mousewheel.animateSlider(t):c.mousewheel.animateSlider(t),c.mousewheel.releaseScroll(t))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1},animateSlider(e){const t=this;return e.delta>=6&&f.now()-t.mousewheel.lastScrollTime<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),t.emit("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),t.emit("scroll",e.raw)),t.mousewheel.lastScrollTime=(new r.Date).getTime(),!1)},releaseScroll(e){const t=this,c=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&c.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&c.releaseOnEdges)return!0;return!1},enable(){const e=this,t=W.event();if(e.params.cssMode)return e.wrapperEl.removeEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(e.mousewheel.enabled)return!1;let c=e.$el;return"container"!==e.params.mousewheel.eventsTarged&&(c=l(e.params.mousewheel.eventsTarged)),c.on("mouseenter",e.mousewheel.handleMouseEnter),c.on("mouseleave",e.mousewheel.handleMouseLeave),c.on(t,e.mousewheel.handle),e.mousewheel.enabled=!0,!0},disable(){const e=this,t=W.event();if(e.params.cssMode)return e.wrapperEl.addEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(!e.mousewheel.enabled)return!1;let c=e.$el;return"container"!==e.params.mousewheel.eventsTarged&&(c=l(e.params.mousewheel.eventsTarged)),c.off(t,e.mousewheel.handle),e.mousewheel.enabled=!1,!0}};const U={update(){const e=this,t=e.params.navigation;if(e.params.loop)return;const{$nextEl:c,$prevEl:a}=e.navigation;a&&a.length>0&&(e.isBeginning?a.addClass(t.disabledClass):a.removeClass(t.disabledClass),a[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass)),c&&c.length>0&&(e.isEnd?c.addClass(t.disabledClass):c.removeClass(t.disabledClass),c[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass))},onPrevClick(e){e.preventDefault(),this.isBeginning&&!this.params.loop||this.slidePrev()},onNextClick(e){e.preventDefault(),this.isEnd&&!this.params.loop||this.slideNext()},init(){const e=this,t=e.params.navigation;if(!t.nextEl&&!t.prevEl)return;let c,a;t.nextEl&&(c=l(t.nextEl),e.params.uniqueNavElements&&"string"==typeof t.nextEl&&c.length>1&&1===e.$el.find(t.nextEl).length&&(c=e.$el.find(t.nextEl))),t.prevEl&&(a=l(t.prevEl),e.params.uniqueNavElements&&"string"==typeof t.prevEl&&a.length>1&&1===e.$el.find(t.prevEl).length&&(a=e.$el.find(t.prevEl))),c&&c.length>0&&c.on("click",e.navigation.onNextClick),a&&a.length>0&&a.on("click",e.navigation.onPrevClick),f.extend(e.navigation,{$nextEl:c,nextEl:c&&c[0],$prevEl:a,prevEl:a&&a[0]})},destroy(){const e=this,{$nextEl:t,$prevEl:c}=e.navigation;t&&t.length&&(t.off("click",e.navigation.onNextClick),t.removeClass(e.params.navigation.disabledClass)),c&&c.length&&(c.off("click",e.navigation.onPrevClick),c.removeClass(e.params.navigation.disabledClass))}};const K={update(){const e=this,t=e.rtl,c=e.params.pagination;if(!c.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length)return;const a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el;let n;const s=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(n=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup),n>a-1-2*e.loopedSlides&&(n-=a-2*e.loopedSlides),n>s-1&&(n-=s),n<0&&"bullets"!==e.params.paginationType&&(n=s+n)):n=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===c.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const a=e.pagination.bullets;let s,r,o;if(c.dynamicBullets&&(e.pagination.bulletSize=a.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),i.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(c.dynamicMainBullets+4)+"px"),c.dynamicMainBullets>1&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=n-e.previousIndex,e.pagination.dynamicBulletIndex>c.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=c.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),s=n-e.pagination.dynamicBulletIndex,r=s+(Math.min(a.length,c.dynamicMainBullets)-1),o=(r+s)/2),a.removeClass(`${c.bulletActiveClass} ${c.bulletActiveClass}-next ${c.bulletActiveClass}-next-next ${c.bulletActiveClass}-prev ${c.bulletActiveClass}-prev-prev ${c.bulletActiveClass}-main`),i.length>1)a.each((e,t)=>{const a=l(t),i=a.index();i===n&&a.addClass(c.bulletActiveClass),c.dynamicBullets&&(i>=s&&i<=r&&a.addClass(c.bulletActiveClass+"-main"),i===s&&a.prev().addClass(c.bulletActiveClass+"-prev").prev().addClass(c.bulletActiveClass+"-prev-prev"),i===r&&a.next().addClass(c.bulletActiveClass+"-next").next().addClass(c.bulletActiveClass+"-next-next"))});else{const t=a.eq(n),i=t.index();if(t.addClass(c.bulletActiveClass),c.dynamicBullets){const t=a.eq(s),n=a.eq(r);for(let e=s;e<=r;e+=1)a.eq(e).addClass(c.bulletActiveClass+"-main");if(e.params.loop)if(i>=a.length-c.dynamicMainBullets){for(let e=c.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(c.bulletActiveClass+"-main");a.eq(a.length-c.dynamicMainBullets-1).addClass(c.bulletActiveClass+"-prev")}else t.prev().addClass(c.bulletActiveClass+"-prev").prev().addClass(c.bulletActiveClass+"-prev-prev"),n.next().addClass(c.bulletActiveClass+"-next").next().addClass(c.bulletActiveClass+"-next-next");else t.prev().addClass(c.bulletActiveClass+"-prev").prev().addClass(c.bulletActiveClass+"-prev-prev"),n.next().addClass(c.bulletActiveClass+"-next").next().addClass(c.bulletActiveClass+"-next-next")}}if(c.dynamicBullets){const i=Math.min(a.length,c.dynamicMainBullets+4),n=(e.pagination.bulletSize*i-e.pagination.bulletSize)/2-o*e.pagination.bulletSize,s=t?"right":"left";a.css(e.isHorizontal()?s:"top",n+"px")}}if("fraction"===c.type&&(i.find("."+c.currentClass).text(c.formatFractionCurrent(n+1)),i.find("."+c.totalClass).text(c.formatFractionTotal(s))),"progressbar"===c.type){let t;t=c.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const a=(n+1)/s;let r=1,o=1;"horizontal"===t?r=a:o=a,i.find("."+c.progressbarFillClass).transform(`translate3d(0,0,0) scaleX(${r}) scaleY(${o})`).transition(e.params.speed)}"custom"===c.type&&c.renderCustom?(i.html(c.renderCustom(e,n+1,s)),e.emit("paginationRender",e,i[0])):e.emit("paginationUpdate",e,i[0]),i[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](c.lockClass)},render(){const e=this,t=e.params.pagination;if(!t.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length)return;const c=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,a=e.pagination.$el;let i="";if("bullets"===t.type){const n=e.params.loop?Math.ceil((c-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;for(let c=0;c`;a.html(i),e.pagination.bullets=a.find("."+t.bulletClass)}"fraction"===t.type&&(i=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):` / `,a.html(i)),"progressbar"===t.type&&(i=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):``,a.html(i)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])},init(){const e=this,t=e.params.pagination;if(!t.el)return;let c=l(t.el);0!==c.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&c.length>1&&(c=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&c.addClass(t.clickableClass),c.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(c.addClass(`${t.modifierClass}${t.type}-dynamic`),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&c.addClass(t.progressbarOppositeClass),t.clickable&&c.on("click","."+t.bulletClass,(function(t){t.preventDefault();let c=l(this).index()*e.params.slidesPerGroup;e.params.loop&&(c+=e.loopedSlides),e.slideTo(c)})),f.extend(e.pagination,{$el:c,el:c[0]}))},destroy(){const e=this.params.pagination;if(!e.el||!this.pagination.el||!this.pagination.$el||0===this.pagination.$el.length)return;const t=this.pagination.$el;t.removeClass(e.hiddenClass),t.removeClass(e.modifierClass+e.type),this.pagination.bullets&&this.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&t.off("click","."+e.bulletClass)}};const Z={setTranslate(){const e=this;if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t,rtlTranslate:c,progress:a}=e,{dragSize:i,trackSize:n,$dragEl:s,$el:r}=t,o=e.params.scrollbar;let l=i,u=(n-i)*a;c?(u=-u,u>0?(l=i-u,u=0):-u+i>n&&(l=n+u)):u<0?(l=i+u,u=0):u+i>n&&(l=n-u),e.isHorizontal()?(s.transform(`translate3d(${u}px, 0, 0)`),s[0].style.width=l+"px"):(s.transform(`translate3d(0px, ${u}px, 0)`),s[0].style.height=l+"px"),o.hide&&(clearTimeout(e.scrollbar.timeout),r[0].style.opacity=1,e.scrollbar.timeout=setTimeout(()=>{r[0].style.opacity=0,r.transition(400)},1e3))},setTransition(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize(){const e=this;if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t}=e,{$dragEl:c,$el:a}=t;c[0].style.width="",c[0].style.height="";const i=e.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,n=e.size/e.virtualSize,s=n*(i/e.size);let r;r="auto"===e.params.scrollbar.dragSize?i*n:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?c[0].style.width=r+"px":c[0].style.height=r+"px",a[0].style.display=n>=1?"none":"",e.params.scrollbar.hide&&(a[0].style.opacity=0),f.extend(t,{trackSize:i,divider:n,moveDivider:s,dragSize:r}),t.$el[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)},getPointerPosition(e){return this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY},setDragPosition(e){const{scrollbar:t,rtlTranslate:c}=this,{$el:a,dragSize:i,trackSize:n,dragStartPos:s}=t;let r;r=(t.getPointerPosition(e)-a.offset()[this.isHorizontal()?"left":"top"]-(null!==s?s:i/2))/(n-i),r=Math.max(Math.min(r,1),0),c&&(r=1-r);const o=this.minTranslate()+(this.maxTranslate()-this.minTranslate())*r;this.updateProgress(o),this.setTranslate(o),this.updateActiveIndex(),this.updateSlidesClasses()},onDragStart(e){const t=this,c=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:s}=a;t.scrollbar.isTouched=!0,t.scrollbar.dragStartPos=e.target===s[0]||e.target===s?a.getPointerPosition(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),s.transition(100),a.setDragPosition(e),clearTimeout(t.scrollbar.dragTimeout),n.transition(0),c.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),t.emit("scrollbarDragStart",e)},onDragMove(e){const{scrollbar:t,$wrapperEl:c}=this,{$el:a,$dragEl:i}=t;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),c.transition(0),a.transition(0),i.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd(e){const t=this,c=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;t.scrollbar.isTouched&&(t.scrollbar.isTouched=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),c.hide&&(clearTimeout(t.scrollbar.dragTimeout),t.scrollbar.dragTimeout=f.nextTick(()=>{n.css("opacity",0),n.transition(400)},1e3)),t.emit("scrollbarDragEnd",e),c.snapOnRelease&&t.slideToClosest())},enableDraggable(){const e=this;if(!e.params.scrollbar.el)return;const{scrollbar:t,touchEventsTouch:c,touchEventsDesktop:a,params:i}=e,s=t.$el[0],r=!(!m.passiveListener||!i.passiveListeners)&&{passive:!1,capture:!1},o=!(!m.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};m.touch?(s.addEventListener(c.start,e.scrollbar.onDragStart,r),s.addEventListener(c.move,e.scrollbar.onDragMove,r),s.addEventListener(c.end,e.scrollbar.onDragEnd,o)):(s.addEventListener(a.start,e.scrollbar.onDragStart,r),n.addEventListener(a.move,e.scrollbar.onDragMove,r),n.addEventListener(a.end,e.scrollbar.onDragEnd,o))},disableDraggable(){const e=this;if(!e.params.scrollbar.el)return;const{scrollbar:t,touchEventsTouch:c,touchEventsDesktop:a,params:i}=e,s=t.$el[0],r=!(!m.passiveListener||!i.passiveListeners)&&{passive:!1,capture:!1},o=!(!m.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};m.touch?(s.removeEventListener(c.start,e.scrollbar.onDragStart,r),s.removeEventListener(c.move,e.scrollbar.onDragMove,r),s.removeEventListener(c.end,e.scrollbar.onDragEnd,o)):(s.removeEventListener(a.start,e.scrollbar.onDragStart,r),n.removeEventListener(a.move,e.scrollbar.onDragMove,r),n.removeEventListener(a.end,e.scrollbar.onDragEnd,o))},init(){const e=this;if(!e.params.scrollbar.el)return;const{scrollbar:t,$el:c}=e,a=e.params.scrollbar;let i=l(a.el);e.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===c.find(a.el).length&&(i=c.find(a.el));let n=i.find("."+e.params.scrollbar.dragClass);0===n.length&&(n=l(`
`),i.append(n)),f.extend(t,{$el:i,el:i[0],$dragEl:n,dragEl:n[0]}),a.draggable&&t.enableDraggable()},destroy(){this.scrollbar.disableDraggable()}};const Y={setTransform(e,t){const{rtl:c}=this,a=l(e),i=c?-1:1,n=a.attr("data-swiper-parallax")||"0";let s=a.attr("data-swiper-parallax-x"),r=a.attr("data-swiper-parallax-y");const o=a.attr("data-swiper-parallax-scale"),u=a.attr("data-swiper-parallax-opacity");if(s||r?(s=s||"0",r=r||"0"):this.isHorizontal()?(s=n,r="0"):(r=n,s="0"),s=s.indexOf("%")>=0?parseInt(s,10)*t*i+"%":s*t*i+"px",r=r.indexOf("%")>=0?parseInt(r,10)*t+"%":r*t+"px",null!=u){const e=u-(u-1)*(1-Math.abs(t));a[0].style.opacity=e}if(null==o)a.transform(`translate3d(${s}, ${r}, 0px)`);else{const e=o-(o-1)*(1-Math.abs(t));a.transform(`translate3d(${s}, ${r}, 0px) scale(${e})`)}},setTranslate(){const e=this,{$el:t,slides:c,progress:a,snapGrid:i}=e;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,c)=>{e.parallax.setTransform(c,a)}),c.each((t,c)=>{let n=c.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(t/2)-a*(i.length-1)),n=Math.min(Math.max(n,-1),1),l(c).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,c)=>{e.parallax.setTransform(c,n)})})},setTransition(e=this.params.speed){const{$el:t}=this;t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,c)=>{const a=l(c);let i=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),a.transition(i)})}};const X={getDistanceBetweenTouches(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,c=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-c)**2)},onGestureStart(e){const t=this,c=t.params.zoom,a=t.zoom,{gesture:i}=a;if(a.fakeGestureTouched=!1,a.fakeGestureMoved=!1,!m.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;a.fakeGestureTouched=!0,i.scaleStart=X.getDistanceBetweenTouches(e)}i.$slideEl&&i.$slideEl.length||(i.$slideEl=l(e.target).closest("."+t.params.slideClass),0===i.$slideEl.length&&(i.$slideEl=t.slides.eq(t.activeIndex)),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+c.containerClass),i.maxRatio=i.$imageWrapEl.attr("data-swiper-zoom")||c.maxRatio,0!==i.$imageWrapEl.length)?(i.$imageEl&&i.$imageEl.transition(0),t.zoom.isScaling=!0):i.$imageEl=void 0},onGestureChange(e){const t=this.params.zoom,c=this.zoom,{gesture:a}=c;if(!m.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c.fakeGestureMoved=!0,a.scaleMove=X.getDistanceBetweenTouches(e)}a.$imageEl&&0!==a.$imageEl.length&&(c.scale=m.gestures?e.scale*c.currentScale:a.scaleMove/a.scaleStart*c.currentScale,c.scale>a.maxRatio&&(c.scale=a.maxRatio-1+(c.scale-a.maxRatio+1)**.5),c.scalei.touchesStart.x))return void(i.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(i.minY)===Math.floor(i.startY)&&i.touchesCurrent.yi.touchesStart.y))return void(i.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),i.isMoved=!0,i.currentX=i.touchesCurrent.x-i.touchesStart.x+i.startX,i.currentY=i.touchesCurrent.y-i.touchesStart.y+i.startY,i.currentXi.maxX&&(i.currentX=i.maxX-1+(i.currentX-i.maxX+1)**.8),i.currentYi.maxY&&(i.currentY=i.maxY-1+(i.currentY-i.maxY+1)**.8),n.prevPositionX||(n.prevPositionX=i.touchesCurrent.x),n.prevPositionY||(n.prevPositionY=i.touchesCurrent.y),n.prevTime||(n.prevTime=Date.now()),n.x=(i.touchesCurrent.x-n.prevPositionX)/(Date.now()-n.prevTime)/2,n.y=(i.touchesCurrent.y-n.prevPositionY)/(Date.now()-n.prevTime)/2,Math.abs(i.touchesCurrent.x-n.prevPositionX)<2&&(n.x=0),Math.abs(i.touchesCurrent.y-n.prevPositionY)<2&&(n.y=0),n.prevPositionX=i.touchesCurrent.x,n.prevPositionY=i.touchesCurrent.y,n.prevTime=Date.now(),a.$imageWrapEl.transform(`translate3d(${i.currentX}px, ${i.currentY}px,0)`)}},onTouchEnd(){const e=this.zoom,{gesture:t,image:c,velocity:a}=e;if(!t.$imageEl||0===t.$imageEl.length)return;if(!c.isTouched||!c.isMoved)return c.isTouched=!1,void(c.isMoved=!1);c.isTouched=!1,c.isMoved=!1;let i=300,n=300;const s=a.x*i,r=c.currentX+s,o=a.y*n,l=c.currentY+o;0!==a.x&&(i=Math.abs((r-c.currentX)/a.x)),0!==a.y&&(n=Math.abs((l-c.currentY)/a.y));const u=Math.max(i,n);c.currentX=r,c.currentY=l;const p=c.width*e.scale,f=c.height*e.scale;c.minX=Math.min(t.slideWidth/2-p/2,0),c.maxX=-c.minX,c.minY=Math.min(t.slideHeight/2-f/2,0),c.maxY=-c.minY,c.currentX=Math.max(Math.min(c.currentX,c.maxX),c.minX),c.currentY=Math.max(Math.min(c.currentY,c.maxY),c.minY),t.$imageWrapEl.transition(u).transform(`translate3d(${c.currentX}px, ${c.currentY}px,0)`)},onTransitionEnd(){const e=this.zoom,{gesture:t}=e;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl&&t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl&&t.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,e.currentScale=1,t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0)},toggle(e){const t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in(e){const t=this,c=t.zoom,a=t.params.zoom,{gesture:i,image:n}=c;if(i.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?i.$slideEl=t.$wrapperEl.children("."+t.params.slideActiveClass):i.$slideEl=t.slides.eq(t.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+a.containerClass)),!i.$imageEl||0===i.$imageEl.length)return;let s,r,o,l,u,p,f,m,d,h,v,g,z,b,C,M,H,V;i.$slideEl.addClass(""+a.zoomedSlideClass),void 0===n.touchesStart.x&&e?(s="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(s=n.touchesStart.x,r=n.touchesStart.y),c.scale=i.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,c.currentScale=i.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?(H=i.$slideEl[0].offsetWidth,V=i.$slideEl[0].offsetHeight,o=i.$slideEl.offset().left,l=i.$slideEl.offset().top,u=o+H/2-s,p=l+V/2-r,d=i.$imageEl[0].offsetWidth,h=i.$imageEl[0].offsetHeight,v=d*c.scale,g=h*c.scale,z=Math.min(H/2-v/2,0),b=Math.min(V/2-g/2,0),C=-z,M=-b,f=u*c.scale,m=p*c.scale,fC&&(f=C),mM&&(m=M)):(f=0,m=0),i.$imageWrapEl.transition(300).transform(`translate3d(${f}px, ${m}px,0)`),i.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${c.scale})`)},out(){const e=this,t=e.zoom,c=e.params.zoom,{gesture:a}=t;a.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?a.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):a.$slideEl=e.slides.eq(e.activeIndex),a.$imageEl=a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),a.$imageWrapEl=a.$imageEl.parent("."+c.containerClass)),a.$imageEl&&0!==a.$imageEl.length&&(t.scale=1,t.currentScale=1,a.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),a.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),a.$slideEl.removeClass(""+c.zoomedSlideClass),a.$slideEl=void 0)},enable(){const e=this,t=e.zoom;if(t.enabled)return;t.enabled=!0;const c=!("touchstart"!==e.touchEvents.start||!m.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},a=!m.passiveListener||{passive:!1,capture:!0},i="."+e.params.slideClass;m.gestures?(e.$wrapperEl.on("gesturestart",i,t.onGestureStart,c),e.$wrapperEl.on("gesturechange",i,t.onGestureChange,c),e.$wrapperEl.on("gestureend",i,t.onGestureEnd,c)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,i,t.onGestureStart,c),e.$wrapperEl.on(e.touchEvents.move,i,t.onGestureChange,a),e.$wrapperEl.on(e.touchEvents.end,i,t.onGestureEnd,c),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,i,t.onGestureEnd,c)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,a)},disable(){const e=this,t=e.zoom;if(!t.enabled)return;e.zoom.enabled=!1;const c=!("touchstart"!==e.touchEvents.start||!m.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},a=!m.passiveListener||{passive:!1,capture:!0},i="."+e.params.slideClass;m.gestures?(e.$wrapperEl.off("gesturestart",i,t.onGestureStart,c),e.$wrapperEl.off("gesturechange",i,t.onGestureChange,c),e.$wrapperEl.off("gestureend",i,t.onGestureEnd,c)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,i,t.onGestureStart,c),e.$wrapperEl.off(e.touchEvents.move,i,t.onGestureChange,a),e.$wrapperEl.off(e.touchEvents.end,i,t.onGestureEnd,c),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,i,t.onGestureEnd,c)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,a)}};const J={loadInSlide(e,t=!0){const c=this,a=c.params.lazy;if(void 0===e)return;if(0===c.slides.length)return;const i=c.virtual&&c.params.virtual.enabled?c.$wrapperEl.children(`.${c.params.slideClass}[data-swiper-slide-index="${e}"]`):c.slides.eq(e);let n=i.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!i.hasClass(a.elementClass)||i.hasClass(a.loadedClass)||i.hasClass(a.loadingClass)||(n=n.add(i[0])),0!==n.length&&n.each((e,n)=>{const s=l(n);s.addClass(a.loadingClass);const r=s.attr("data-background"),o=s.attr("data-src"),u=s.attr("data-srcset"),p=s.attr("data-sizes"),f=s.parent("picture");c.loadImage(s[0],o||r,u,p,!1,()=>{if(null!=c&&c&&(!c||c.params)&&!c.destroyed){if(r?(s.css("background-image",`url("${r}")`),s.removeAttr("data-background")):(u&&(s.attr("srcset",u),s.removeAttr("data-srcset")),p&&(s.attr("sizes",p),s.removeAttr("data-sizes")),f.length&&f.children("source").each((e,t)=>{const c=l(t);c.attr("data-srcset")&&(c.attr("srcset",c.attr("data-srcset")),c.removeAttr("data-srcset"))}),o&&(s.attr("src",o),s.removeAttr("data-src"))),s.addClass(a.loadedClass).removeClass(a.loadingClass),i.find("."+a.preloaderClass).remove(),c.params.loop&&t){const e=i.attr("data-swiper-slide-index");if(i.hasClass(c.params.slideDuplicateClass)){const t=c.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${c.params.slideDuplicateClass})`);c.lazy.loadInSlide(t.index(),!1)}else{const t=c.$wrapperEl.children(`.${c.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`);c.lazy.loadInSlide(t.index(),!1)}}c.emit("lazyImageReady",i[0],s[0]),c.params.autoHeight&&c.updateAutoHeight()}}),c.emit("lazyImageLoad",i[0],s[0])})},load(){const e=this,{$wrapperEl:t,params:c,slides:a,activeIndex:i}=e,n=e.virtual&&c.virtual.enabled,s=c.lazy;let r=c.slidesPerView;function o(e){if(n){if(t.children(`.${c.slideClass}[data-swiper-slide-index="${e}"]`).length)return!0}else if(a[e])return!0;return!1}function u(e){return n?l(e).attr("data-swiper-slide-index"):l(e).index()}if("auto"===r&&(r=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+c.slideVisibleClass).each((t,c)=>{const a=n?l(c).attr("data-swiper-slide-index"):l(c).index();e.lazy.loadInSlide(a)});else if(r>1)for(let t=i;t1||s.loadPrevNextAmount&&s.loadPrevNextAmount>1){const t=s.loadPrevNextAmount,c=r,n=Math.min(i+c+Math.max(t,c),a.length),l=Math.max(i-Math.max(c,t),0);for(let t=i+r;t0&&e.lazy.loadInSlide(u(a));const i=t.children("."+c.slidePrevClass);i.length>0&&e.lazy.loadInSlide(u(i))}}};const Q={LinearSpline:function(e,t){const c=function(){let e,t,c;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)c=e+t>>1,a[c]<=i?t=c:e=c;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=c(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this},getInterpolateFunction(e){const t=this;t.controller.spline||(t.controller.spline=t.params.loop?new Q.LinearSpline(t.slidesGrid,e.slidesGrid):new Q.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate(e,t){const c=this,a=c.controller.control;let i,n;function s(e){const t=c.rtlTranslate?-c.translate:c.translate;"slide"===c.params.controller.by&&(c.controller.getInterpolateFunction(e),n=-c.controller.spline.interpolate(-t)),n&&"container"!==c.params.controller.by||(i=(e.maxTranslate()-e.minTranslate())/(c.maxTranslate()-c.minTranslate()),n=(t-c.minTranslate())*i+e.minTranslate()),c.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,c),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{t.updateAutoHeight()}),t.$wrapperEl.transitionEnd(()=>{a&&(t.params.loop&&"slide"===c.params.controller.by&&t.loopFix(),t.transitionEnd())}))}if(Array.isArray(a))for(i=0;i(e.attr("tabIndex","0"),e),makeElNotFocusable:e=>(e.attr("tabIndex","-1"),e),addElRole:(e,t)=>(e.attr("role",t),e),addElLabel:(e,t)=>(e.attr("aria-label",t),e),disableEl:e=>(e.attr("aria-disabled",!0),e),enableEl:e=>(e.attr("aria-disabled",!1),e),onEnterKey(e){const t=this,c=t.params.a11y;if(13!==e.keyCode)return;const a=l(e.target);t.navigation&&t.navigation.$nextEl&&a.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?t.a11y.notify(c.lastSlideMessage):t.a11y.notify(c.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&a.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?t.a11y.notify(c.firstSlideMessage):t.a11y.notify(c.prevSlideMessage)),t.pagination&&a.is("."+t.params.pagination.bulletClass)&&a[0].click()},notify(e){const t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation(){const e=this;if(e.params.loop||!e.navigation)return;const{$nextEl:t,$prevEl:c}=e.navigation;c&&c.length>0&&(e.isBeginning?(e.a11y.disableEl(c),e.a11y.makeElNotFocusable(c)):(e.a11y.enableEl(c),e.a11y.makeElFocusable(c))),t&&t.length>0&&(e.isEnd?(e.a11y.disableEl(t),e.a11y.makeElNotFocusable(t)):(e.a11y.enableEl(t),e.a11y.makeElFocusable(t)))},updatePagination(){const e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((c,a)=>{const i=l(a);e.a11y.makeElFocusable(i),e.a11y.addElRole(i,"button"),e.a11y.addElLabel(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,i.index()+1))})},init(){const e=this;e.$el.append(e.a11y.liveRegion);const t=e.params.a11y;let c,a;e.navigation&&e.navigation.$nextEl&&(c=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(a=e.navigation.$prevEl),c&&(e.a11y.makeElFocusable(c),e.a11y.addElRole(c,"button"),e.a11y.addElLabel(c,t.nextSlideMessage),c.on("keydown",e.a11y.onEnterKey)),a&&(e.a11y.makeElFocusable(a),e.a11y.addElRole(a,"button"),e.a11y.addElLabel(a,t.prevSlideMessage),a.on("keydown",e.a11y.onEnterKey)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown","."+e.params.pagination.bulletClass,e.a11y.onEnterKey)},destroy(){const e=this;let t,c;e.a11y.liveRegion&&e.a11y.liveRegion.length>0&&e.a11y.liveRegion.remove(),e.navigation&&e.navigation.$nextEl&&(t=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(c=e.navigation.$prevEl),t&&t.off("keydown",e.a11y.onEnterKey),c&&c.off("keydown",e.a11y.onEnterKey),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.off("keydown","."+e.params.pagination.bulletClass,e.a11y.onEnterKey)}};const te={init(){const e=this;if(!e.params.history)return;if(!r.history||!r.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);const t=e.history;t.initialized=!0,t.paths=te.getPathValues(),(t.paths.key||t.paths.value)&&(t.scrollToSlide(0,t.paths.value,e.params.runCallbacksOnInit),e.params.history.replaceState||r.addEventListener("popstate",e.history.setHistoryPopState))},destroy(){const e=this;e.params.history.replaceState||r.removeEventListener("popstate",e.history.setHistoryPopState)},setHistoryPopState(){this.history.paths=te.getPathValues(),this.history.scrollToSlide(this.params.speed,this.history.paths.value,!1)},getPathValues(){const e=r.location.pathname.slice(1).split("/").filter(e=>""!==e),t=e.length;return{key:e[t-2],value:e[t-1]}},setHistory(e,t){if(!this.history.initialized||!this.params.history.enabled)return;const c=this.slides.eq(t);let a=te.slugify(c.attr("data-history"));r.location.pathname.includes(e)||(a=`${e}/${a}`);const i=r.history.state;i&&i.value===a||(this.params.history.replaceState?r.history.replaceState({value:a},null,a):r.history.pushState({value:a},null,a))},slugify:e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),scrollToSlide(e,t,c){const a=this;if(t)for(let i=0,n=a.slides.length;i{e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")),e.params.cssMode&&e.autoplay.running&&e.autoplay.run()},c)},start(){return void 0===this.autoplay.timeout&&(!this.autoplay.running&&(this.autoplay.running=!0,this.emit("autoplayStart"),this.autoplay.run(),!0))},stop(){const e=this;return!!e.autoplay.running&&(void 0!==e.autoplay.timeout&&(e.autoplay.timeout&&(clearTimeout(e.autoplay.timeout),e.autoplay.timeout=void 0),e.autoplay.running=!1,e.emit("autoplayStop"),!0))},pause(e){const t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?(t.$wrapperEl[0].addEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].addEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd)):(t.autoplay.paused=!1,t.autoplay.run())))}};const ie={setTranslate(){const e=this,{slides:t}=e;for(let c=0;c{if(e)return;if(!t||t.destroyed)return;e=!0,t.animating=!1;const c=["webkitTransitionEnd","transitionend"];for(let e=0;e'),t.append(p)),p.css({height:a+"px"})):(p=e.find(".swiper-cube-shadow"),0===p.length&&(p=l('
'),e.append(p))));for(let e=0;e-1&&(f=90*a+90*m,n&&(f=90*-a-90*m)),t.transform(g),r.slideShadows){let e=o?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),c=o?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=l(`
`),t.append(e)),0===c.length&&(c=l(`
`),t.append(c)),e.length&&(e[0].style.opacity=Math.max(-m,0)),c.length&&(c[0].style.opacity=Math.max(m,0))}}if(t.css({"-webkit-transform-origin":`50% 50% -${s/2}px`,"-moz-transform-origin":`50% 50% -${s/2}px`,"-ms-transform-origin":`50% 50% -${s/2}px`,"transform-origin":`50% 50% -${s/2}px`}),r.shadow)if(o)p.transform(`translate3d(0px, ${a/2+r.shadowOffset}px, ${-a/2}px) rotateX(90deg) rotateZ(0deg) scale(${r.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),c=r.shadowScale,a=r.shadowScale/t,n=r.shadowOffset;p.transform(`scale3d(${c}, 1, ${a}) translate3d(0px, ${i/2+n}px, ${-i/2/a}px) rotateX(-90deg)`)}const m=_.isSafari||_.isWebView?-s/2:0;t.transform(`translate3d(0px,0,${m}px) rotateX(${this.isHorizontal()?0:f}deg) rotateY(${this.isHorizontal()?-f:0}deg)`)},setTransition(e){const{$el:t,slides:c}=this;c.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}};const se={setTranslate(){const e=this,{slides:t,rtlTranslate:c}=e;for(let a=0;a`),i.append(t)),0===c.length&&(c=l(`
`),i.append(c)),t.length&&(t[0].style.opacity=Math.max(-n,0)),c.length&&(c[0].style.opacity=Math.max(n,0))}i.transform(`translate3d(${o}px, ${u}px, 0px) rotateX(${r}deg) rotateY(${s}deg)`)}},setTransition(e){const t=this,{slides:c,activeIndex:a,$wrapperEl:i}=t;if(c.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){let e=!1;c.eq(a).transitionEnd((function(){if(e)return;if(!t||t.destroyed)return;e=!0,t.animating=!1;const c=["webkitTransitionEnd","transitionend"];for(let e=0;e`),t.append(e)),0===c.length&&(c=l(`
`),t.append(c)),e.length&&(e[0].style.opacity=r>0?r:0),c.length&&(c[0].style.opacity=-r>0?-r:0)}}if(m.pointerEvents||m.prefixedPointerEvents){a[0].style.perspectiveOrigin=o+"px 50%"}},setTransition(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}};const oe={init(){const e=this,{thumbs:t}=e.params,c=e.constructor;t.swiper instanceof c?(e.thumbs.swiper=t.swiper,f.extend(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),f.extend(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):f.isObject(t.swiper)&&(e.thumbs.swiper=new c(f.extend({},t.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),e.thumbs.swiperCreated=!0),e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",e.thumbs.onThumbClick)},onThumbClick(){const e=this,t=e.thumbs.swiper;if(!t)return;const c=t.clickedIndex,a=t.clickedSlide;if(a&&l(a).hasClass(e.params.thumbs.slideThumbActiveClass))return;if(null==c)return;let i;if(i=t.params.loop?parseInt(l(t.clickedSlide).attr("data-swiper-slide-index"),10):c,e.params.loop){let t=e.activeIndex;e.slides.eq(t).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,t=e.activeIndex);const c=e.slides.eq(t).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=e.slides.eq(t).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===c?a:void 0===a?c:a-tt.previousIndex?"next":"prev"}else s=t.realIndex,r=s>t.previousIndex?"next":"prev";n&&(s+="next"===r?i:-1*i),c.visibleSlidesIndexes&&c.visibleSlidesIndexes.indexOf(s)<0&&(c.params.centeredSlides?s=s>o?s-Math.floor(a/2)+1:s+Math.floor(a/2)-1:s>o&&(s=s-a+1),c.slideTo(s,e?0:void 0))}let s=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(s=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(s=1),s=Math.floor(s),c.slides.removeClass(r),c.params.loop||c.params.virtual&&c.params.virtual.enabled)for(let e=0;ee,formatFractionTotal:e=>e,bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create(){f.extend(this,{pagination:{init:K.init.bind(this),render:K.render.bind(this),update:K.update.bind(this),destroy:K.destroy.bind(this),dynamicBulletIndex:0}})},on:{init(){this.pagination.init(),this.pagination.render(),this.pagination.update()},activeIndexChange(){const e=this;(e.params.loop||void 0===e.snapIndex)&&e.pagination.update()},snapIndexChange(){const e=this;e.params.loop||e.pagination.update()},slidesLengthChange(){const e=this;e.params.loop&&(e.pagination.render(),e.pagination.update())},snapGridLengthChange(){const e=this;e.params.loop||(e.pagination.render(),e.pagination.update())},destroy(){this.pagination.destroy()},click(e){const t=this;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&t.pagination.$el.length>0&&!l(e.target).hasClass(t.params.pagination.bulletClass)){!0===t.pagination.$el.hasClass(t.params.pagination.hiddenClass)?t.emit("paginationShow",t):t.emit("paginationHide",t),t.pagination.$el.toggleClass(t.params.pagination.hiddenClass)}}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create(){f.extend(this,{scrollbar:{init:Z.init.bind(this),destroy:Z.destroy.bind(this),updateSize:Z.updateSize.bind(this),setTranslate:Z.setTranslate.bind(this),setTransition:Z.setTransition.bind(this),enableDraggable:Z.enableDraggable.bind(this),disableDraggable:Z.disableDraggable.bind(this),setDragPosition:Z.setDragPosition.bind(this),getPointerPosition:Z.getPointerPosition.bind(this),onDragStart:Z.onDragStart.bind(this),onDragMove:Z.onDragMove.bind(this),onDragEnd:Z.onDragEnd.bind(this),isTouched:!1,timeout:null,dragTimeout:null}})},on:{init(){this.scrollbar.init(),this.scrollbar.updateSize(),this.scrollbar.setTranslate()},update(){this.scrollbar.updateSize()},resize(){this.scrollbar.updateSize()},observerUpdate(){this.scrollbar.updateSize()},setTranslate(){this.scrollbar.setTranslate()},setTransition(e){this.scrollbar.setTransition(e)},destroy(){this.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create(){f.extend(this,{parallax:{setTransform:Y.setTransform.bind(this),setTranslate:Y.setTranslate.bind(this),setTransition:Y.setTransition.bind(this)}})},on:{beforeInit(){this.params.parallax.enabled&&(this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},init(){this.params.parallax.enabled&&this.parallax.setTranslate()},setTranslate(){this.params.parallax.enabled&&this.parallax.setTranslate()},setTransition(e){this.params.parallax.enabled&&this.parallax.setTransition(e)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create(){const e=this,t={enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}};"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(c=>{t[c]=X[c].bind(e)}),f.extend(e,{zoom:t});let c=1;Object.defineProperty(e.zoom,"scale",{get:()=>c,set(t){if(c!==t){const c=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,a=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",t,c,a)}c=t}})},on:{init(){const e=this;e.params.zoom.enabled&&e.zoom.enable()},destroy(){this.zoom.disable()},touchStart(e){this.zoom.enabled&&this.zoom.onTouchStart(e)},touchEnd(e){this.zoom.enabled&&this.zoom.onTouchEnd(e)},doubleTap(e){const t=this;t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&t.zoom.toggle(e)},transitionEnd(){const e=this;e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange(){const e=this;e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create(){f.extend(this,{lazy:{initialImageLoaded:!1,load:J.load.bind(this),loadInSlide:J.loadInSlide.bind(this)}})},on:{beforeInit(){const e=this;e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)},init(){const e=this;e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&e.lazy.load()},scroll(){const e=this;e.params.freeMode&&!e.params.freeModeSticky&&e.lazy.load()},resize(){const e=this;e.params.lazy.enabled&&e.lazy.load()},scrollbarDragMove(){const e=this;e.params.lazy.enabled&&e.lazy.load()},transitionStart(){const e=this;e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd(){const e=this;e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&e.lazy.load()},slideChange(){const e=this;e.params.lazy.enabled&&e.params.cssMode&&e.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create(){f.extend(this,{controller:{control:this.params.controller.control,getInterpolateFunction:Q.getInterpolateFunction.bind(this),setTranslate:Q.setTranslate.bind(this),setTransition:Q.setTransition.bind(this)}})},on:{update(){const e=this;e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},resize(){const e=this;e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},observerUpdate(){const e=this;e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},setTranslate(e,t){this.controller.control&&this.controller.setTranslate(e,t)},setTransition(e,t){this.controller.control&&this.controller.setTransition(e,t)}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}"}},create(){const e=this;f.extend(e,{a11y:{liveRegion:l(``)}}),Object.keys(ee).forEach(t=>{e.a11y[t]=ee[t].bind(e)})},on:{init(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create(){f.extend(this,{history:{init:te.init.bind(this),setHistory:te.setHistory.bind(this),setHistoryPopState:te.setHistoryPopState.bind(this),scrollToSlide:te.scrollToSlide.bind(this),destroy:te.destroy.bind(this)}})},on:{init(){const e=this;e.params.history.enabled&&e.history.init()},destroy(){const e=this;e.params.history.enabled&&e.history.destroy()},transitionEnd(){const e=this;e.history.initialized&&e.history.setHistory(e.params.history.key,e.activeIndex)},slideChange(){const e=this;e.history.initialized&&e.params.cssMode&&e.history.setHistory(e.params.history.key,e.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create(){f.extend(this,{hashNavigation:{initialized:!1,init:ce.init.bind(this),destroy:ce.destroy.bind(this),setHash:ce.setHash.bind(this),onHashCange:ce.onHashCange.bind(this)}})},on:{init(){const e=this;e.params.hashNavigation.enabled&&e.hashNavigation.init()},destroy(){const e=this;e.params.hashNavigation.enabled&&e.hashNavigation.destroy()},transitionEnd(){const e=this;e.hashNavigation.initialized&&e.hashNavigation.setHash()},slideChange(){const e=this;e.hashNavigation.initialized&&e.params.cssMode&&e.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create(){const e=this;f.extend(e,{autoplay:{running:!1,paused:!1,run:ae.run.bind(e),start:ae.start.bind(e),stop:ae.stop.bind(e),pause:ae.pause.bind(e),onVisibilityChange(){"hidden"===document.visibilityState&&e.autoplay.running&&e.autoplay.pause(),"visible"===document.visibilityState&&e.autoplay.paused&&(e.autoplay.run(),e.autoplay.paused=!1)},onTransitionEnd(t){e&&!e.destroyed&&e.$wrapperEl&&t.target===this&&(e.$wrapperEl[0].removeEventListener("transitionend",e.autoplay.onTransitionEnd),e.$wrapperEl[0].removeEventListener("webkitTransitionEnd",e.autoplay.onTransitionEnd),e.autoplay.paused=!1,e.autoplay.running?e.autoplay.run():e.autoplay.stop())}}})},on:{init(){const e=this;e.params.autoplay.enabled&&(e.autoplay.start(),document.addEventListener("visibilitychange",e.autoplay.onVisibilityChange))},beforeTransitionStart(e,t){const c=this;c.autoplay.running&&(t||!c.params.autoplay.disableOnInteraction?c.autoplay.pause(e):c.autoplay.stop())},sliderFirstMove(){const e=this;e.autoplay.running&&(e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause())},touchEnd(){const e=this;e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&e.autoplay.run()},destroy(){const e=this;e.autoplay.running&&e.autoplay.stop(),document.removeEventListener("visibilitychange",e.autoplay.onVisibilityChange)}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create(){f.extend(this,{fadeEffect:{setTranslate:ie.setTranslate.bind(this),setTransition:ie.setTransition.bind(this)}})},on:{beforeInit(){if("fade"!==this.params.effect)return;this.classNames.push(this.params.containerModifierClass+"fade");const e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};f.extend(this.params,e),f.extend(this.originalParams,e)},setTranslate(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create(){f.extend(this,{cubeEffect:{setTranslate:ne.setTranslate.bind(this),setTransition:ne.setTransition.bind(this)}})},on:{beforeInit(){if("cube"!==this.params.effect)return;this.classNames.push(this.params.containerModifierClass+"cube"),this.classNames.push(this.params.containerModifierClass+"3d");const e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};f.extend(this.params,e),f.extend(this.originalParams,e)},setTranslate(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create(){f.extend(this,{flipEffect:{setTranslate:se.setTranslate.bind(this),setTransition:se.setTransition.bind(this)}})},on:{beforeInit(){if("flip"!==this.params.effect)return;this.classNames.push(this.params.containerModifierClass+"flip"),this.classNames.push(this.params.containerModifierClass+"3d");const e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};f.extend(this.params,e),f.extend(this.originalParams,e)},setTranslate(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}},create(){f.extend(this,{coverflowEffect:{setTranslate:re.setTranslate.bind(this),setTransition:re.setTransition.bind(this)}})},on:{beforeInit(){"coverflow"===this.params.effect&&(this.classNames.push(this.params.containerModifierClass+"coverflow"),this.classNames.push(this.params.containerModifierClass+"3d"),this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},setTranslate(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}},{name:"thumbs",params:{thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create(){f.extend(this,{thumbs:{swiper:null,init:oe.init.bind(this),update:oe.update.bind(this),onThumbClick:oe.onThumbClick.bind(this)}})},on:{beforeInit(){const{thumbs:e}=this.params;e&&e.swiper&&(this.thumbs.init(),this.thumbs.update(!0))},slideChange(){this.thumbs.swiper&&this.thumbs.update()},update(){this.thumbs.swiper&&this.thumbs.update()},resize(){this.thumbs.swiper&&this.thumbs.update()},observerUpdate(){this.thumbs.swiper&&this.thumbs.update()},setTransition(e){const t=this.thumbs.swiper;t&&t.setTransition(e)},beforeDestroy(){const e=this.thumbs.swiper;e&&this.thumbs.swiperCreated&&e&&e.destroy()}}}];void 0===T.use&&(T.use=T.Class.use,T.installModule=T.Class.installModule),T.use(le);t.default=T}]); \ No newline at end of file diff --git a/customize/bioelectrical-input/index.html b/customize/bioelectrical-input/index.html index 2efeb62f97..05e9dcb0b1 100644 --- a/customize/bioelectrical-input/index.html +++ b/customize/bioelectrical-input/index.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/customize/environmental-control/index.html b/customize/environmental-control/index.html index 4956143432..7c2be7a73b 100644 --- a/customize/environmental-control/index.html +++ b/customize/environmental-control/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/gaming-toys-music/index.html b/customize/gaming-toys-music/index.html index 1c23b037e6..0db83b093f 100644 --- a/customize/gaming-toys-music/index.html +++ b/customize/gaming-toys-music/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/grid/Grid-Creation.html b/customize/grid/Grid-Creation.html index 423a043714..720a1f18f2 100644 --- a/customize/grid/Grid-Creation.html +++ b/customize/grid/Grid-Creation.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/grid/Grid-Customization.html b/customize/grid/Grid-Customization.html index 3ee1e8db9a..feeb7219ef 100644 --- a/customize/grid/Grid-Customization.html +++ b/customize/grid/Grid-Customization.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/grid/index.html b/customize/grid/index.html index 9fcd4020e7..7db1c8bfa8 100644 --- a/customize/grid/index.html +++ b/customize/grid/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/index.html b/customize/index.html index 1ba1218732..854e70cdd1 100644 --- a/customize/index.html +++ b/customize/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/model/Model-Creation.html b/customize/model/Model-Creation.html index 5d11872687..b79c313731 100644 --- a/customize/model/Model-Creation.html +++ b/customize/model/Model-Creation.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/model/Model-Customization.html b/customize/model/Model-Customization.html index dfab6d226c..e1deb11f1b 100644 --- a/customize/model/Model-Customization.html +++ b/customize/model/Model-Customization.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/model/index.html b/customize/model/index.html index 981fb55c3e..1ddadc3339 100644 --- a/customize/model/index.html +++ b/customize/model/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/customize/other/index.html b/customize/other/index.html index b7d3ffe599..6e83813860 100644 --- a/customize/other/index.html +++ b/customize/other/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/APE.html b/develop/APE.html index dcb4837cb1..c7a8352a99 100644 --- a/develop/APE.html +++ b/develop/APE.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/ARE API.html b/develop/ARE API.html index d763a8b28b..57239ef455 100644 --- a/develop/ARE API.html +++ b/develop/ARE API.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/ARE-HW-Interfacing-CIM.html b/develop/ARE-HW-Interfacing-CIM.html index 78bf4236c5..b0df776a22 100644 --- a/develop/ARE-HW-Interfacing-CIM.html +++ b/develop/ARE-HW-Interfacing-CIM.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/ARE-Keyboard-Mouse-Services.html b/develop/ARE-Keyboard-Mouse-Services.html index 9eacaffca4..3c96a437a3 100644 --- a/develop/ARE-Keyboard-Mouse-Services.html +++ b/develop/ARE-Keyboard-Mouse-Services.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/ARE-Webserver.html b/develop/ARE-Webserver.html index eb743e99af..54cabe94e8 100644 --- a/develop/ARE-Webserver.html +++ b/develop/ARE-Webserver.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/ARE.html b/develop/ARE.html index 0925122988..5474ec1854 100644 --- a/develop/ARE.html +++ b/develop/ARE.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/ARE/ARE-Development-Manual.html b/develop/ARE/ARE-Development-Manual.html index 15c81e4d67..81f297e4b5 100644 --- a/develop/ARE/ARE-Development-Manual.html +++ b/develop/ARE/ARE-Development-Manual.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/ARE/index.html b/develop/ARE/index.html index c25727616c..8cdce29c48 100644 --- a/develop/ARE/index.html +++ b/develop/ARE/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/AT-solution-demos.html b/develop/AT-solution-demos.html index 30bce3410f..bebe94950c 100644 --- a/develop/AT-solution-demos.html +++ b/develop/AT-solution-demos.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/AT_solution_development.html b/develop/AT_solution_development.html index 477ee1e92c..c0d662df9a 100644 --- a/develop/AT_solution_development.html +++ b/develop/AT_solution_development.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/Coding-Guidelines.html b/develop/Coding-Guidelines.html index 9e16c13a40..6ab1e50796 100644 --- a/develop/Coding-Guidelines.html +++ b/develop/Coding-Guidelines.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/Development-Environment.html b/develop/Development-Environment.html index 5e4e3c6ed4..5ce942af7c 100644 --- a/develop/Development-Environment.html +++ b/develop/Development-Environment.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/Plugin-Advanced.html b/develop/Plugin-Advanced.html index 10803b8293..8295fce4b4 100644 --- a/develop/Plugin-Advanced.html +++ b/develop/Plugin-Advanced.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/Plugin-Introduction.html b/develop/Plugin-Introduction.html index 6d6072bce2..ff4c0663ca 100644 --- a/develop/Plugin-Introduction.html +++ b/develop/Plugin-Introduction.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/Plugin-Tutorial.html b/develop/Plugin-Tutorial.html index 1b0ef71d02..cae3dde424 100644 --- a/develop/Plugin-Tutorial.html +++ b/develop/Plugin-Tutorial.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/REST-API-java-client.html b/develop/REST-API-java-client.html index 37f7a534f3..a9b4a790e5 100644 --- a/develop/REST-API-java-client.html +++ b/develop/REST-API-java-client.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/REST-API-js-areCommunicator.html b/develop/REST-API-js-areCommunicator.html index 6997a0eb70..f760b9bf57 100644 --- a/develop/REST-API-js-areCommunicator.html +++ b/develop/REST-API-js-areCommunicator.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/REST-API-js-wrapper-ext.html b/develop/REST-API-js-wrapper-ext.html index 2c6c6d06ac..a237799329 100644 --- a/develop/REST-API-js-wrapper-ext.html +++ b/develop/REST-API-js-wrapper-ext.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/REST-API.html b/develop/REST-API.html index 7301e04340..6c7e3863c6 100644 --- a/develop/REST-API.html +++ b/develop/REST-API.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/REST-demos.html b/develop/REST-demos.html index c4ba3ff68b..9012e494b0 100644 --- a/develop/REST-demos.html +++ b/develop/REST-demos.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/Unit-Testing.html b/develop/Unit-Testing.html index 5f73d0c8b7..9210f765c0 100644 --- a/develop/Unit-Testing.html +++ b/develop/Unit-Testing.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/are-remote-apis/REST-API.html b/develop/are-remote-apis/REST-API.html index b46f8a4bba..eecfd891e7 100644 --- a/develop/are-remote-apis/REST-API.html +++ b/develop/are-remote-apis/REST-API.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/are-remote-apis/REST-demos.html b/develop/are-remote-apis/REST-demos.html index cd7e22dea8..dbde62e7fe 100644 --- a/develop/are-remote-apis/REST-demos.html +++ b/develop/are-remote-apis/REST-demos.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/are-remote-apis/Webserver.html b/develop/are-remote-apis/Webserver.html index c1d8d4942d..9543bb2a55 100644 --- a/develop/are-remote-apis/Webserver.html +++ b/develop/are-remote-apis/Webserver.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/are-remote-apis/Websocket.html b/develop/are-remote-apis/Websocket.html index 993983918b..66350d6c7a 100644 --- a/develop/are-remote-apis/Websocket.html +++ b/develop/are-remote-apis/Websocket.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/are-remote-apis/index.html b/develop/are-remote-apis/index.html index 68ad4448aa..cd870ed71a 100644 --- a/develop/are-remote-apis/index.html +++ b/develop/are-remote-apis/index.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-grid/01_structure.html b/develop/asterics-grid/01_structure.html index 49e401deb5..30be2bf8c2 100644 --- a/develop/asterics-grid/01_structure.html +++ b/develop/asterics-grid/01_structure.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/02_tools.html b/develop/asterics-grid/02_tools.html index 34c595732e..38be459ebf 100644 --- a/develop/asterics-grid/02_tools.html +++ b/develop/asterics-grid/02_tools.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/03_grid.html b/develop/asterics-grid/03_grid.html index cdb22ca646..82572558ac 100644 --- a/develop/asterics-grid/03_grid.html +++ b/develop/asterics-grid/03_grid.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/04_vuejs.html b/develop/asterics-grid/04_vuejs.html index 2d0f89b94d..fae7907cf6 100644 --- a/develop/asterics-grid/04_vuejs.html +++ b/develop/asterics-grid/04_vuejs.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/05_datamodel.html b/develop/asterics-grid/05_datamodel.html index 3df85a8112..fea3dfd250 100644 --- a/develop/asterics-grid/05_datamodel.html +++ b/develop/asterics-grid/05_datamodel.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/06_data_storage.html b/develop/asterics-grid/06_data_storage.html index 846fd38b0a..f9a8f3bd5c 100644 --- a/develop/asterics-grid/06_data_storage.html +++ b/develop/asterics-grid/06_data_storage.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/07_i18n.html b/develop/asterics-grid/07_i18n.html index dd55b80b24..9b024090bf 100644 --- a/develop/asterics-grid/07_i18n.html +++ b/develop/asterics-grid/07_i18n.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-grid/collaboration.html b/develop/asterics-grid/collaboration.html index 4a659b9f2c..1c6b6aa341 100644 --- a/develop/asterics-grid/collaboration.html +++ b/develop/asterics-grid/collaboration.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-grid/index.html b/develop/asterics-grid/index.html index 3a605b687d..786953c5c7 100644 --- a/develop/asterics-grid/index.html +++ b/develop/asterics-grid/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-wiki/api/AsTeRICS Websocket.html b/develop/asterics-wiki/api/AsTeRICS Websocket.html index 8b3b3621a1..ec084a0a3e 100644 --- a/develop/asterics-wiki/api/AsTeRICS Websocket.html +++ b/develop/asterics-wiki/api/AsTeRICS Websocket.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-wiki/api/REST-API.html b/develop/asterics-wiki/api/REST-API.html index ae12546259..8843727486 100644 --- a/develop/asterics-wiki/api/REST-API.html +++ b/develop/asterics-wiki/api/REST-API.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-wiki/api/Resource Handling.html b/develop/asterics-wiki/api/Resource Handling.html index ff944615a6..dc155091c1 100644 --- a/develop/asterics-wiki/api/Resource Handling.html +++ b/develop/asterics-wiki/api/Resource Handling.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html b/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html index d3a0cc94c7..3c318e0215 100644 --- a/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html +++ b/develop/asterics-wiki/coding_instructions/AsTeRICS Solutions.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html b/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html index 8153df8a40..e7edaa8cd9 100644 --- a/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html +++ b/develop/asterics-wiki/coding_instructions/AsTeRICS Webserver Document Root.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-wiki/coding_instructions/JavaCV.html b/develop/asterics-wiki/coding_instructions/JavaCV.html index 8a9feb3342..500f41c8b7 100644 --- a/develop/asterics-wiki/coding_instructions/JavaCV.html +++ b/develop/asterics-wiki/coding_instructions/JavaCV.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-wiki/coding_instructions/Unit Tests.html b/develop/asterics-wiki/coding_instructions/Unit Tests.html index e1cc8eb7f5..e7cd6ea520 100644 --- a/develop/asterics-wiki/coding_instructions/Unit Tests.html +++ b/develop/asterics-wiki/coding_instructions/Unit Tests.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/asterics-wiki/components/AsTeRICS Plugins.html b/develop/asterics-wiki/components/AsTeRICS Plugins.html index c51b3c8787..afa9f5665a 100644 --- a/develop/asterics-wiki/components/AsTeRICS Plugins.html +++ b/develop/asterics-wiki/components/AsTeRICS Plugins.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/develop/at-solution/APE.html b/develop/at-solution/APE.html index 1bab6a8e19..a608b709f2 100644 --- a/develop/at-solution/APE.html +++ b/develop/at-solution/APE.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/at-solution/AT-solution-tutorial.html b/develop/at-solution/AT-solution-tutorial.html index 1a32320c56..e5e25b55ec 100644 --- a/develop/at-solution/AT-solution-tutorial.html +++ b/develop/at-solution/AT-solution-tutorial.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/at-solution/index.html b/develop/at-solution/index.html index 9351efc587..4392b033cd 100644 --- a/develop/at-solution/index.html +++ b/develop/at-solution/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/get-started/Coding-Guidelines.html b/develop/get-started/Coding-Guidelines.html index fb5da87d91..f2a8fe56a9 100644 --- a/develop/get-started/Coding-Guidelines.html +++ b/develop/get-started/Coding-Guidelines.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/get-started/Development-Environment.html b/develop/get-started/Development-Environment.html index c866fbf3bb..35284c03ae 100644 --- a/develop/get-started/Development-Environment.html +++ b/develop/get-started/Development-Environment.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/get-started/index.html b/develop/get-started/index.html index 43b1cc33b5..3a169b9902 100644 --- a/develop/get-started/index.html +++ b/develop/get-started/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/index.html b/develop/index.html index ebdff2897e..a6dafa2dda 100644 --- a/develop/index.html +++ b/develop/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/plugin/Computer-Vision.html b/develop/plugin/Computer-Vision.html index bdf25d95b1..cc148b11c9 100644 --- a/develop/plugin/Computer-Vision.html +++ b/develop/plugin/Computer-Vision.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/plugin/Plugin-Advanced.html b/develop/plugin/Plugin-Advanced.html index 1cc1c86383..d0e27baecd 100644 --- a/develop/plugin/Plugin-Advanced.html +++ b/develop/plugin/Plugin-Advanced.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/plugin/Plugin-Averager.html b/develop/plugin/Plugin-Averager.html index 63e2b52a42..80ebdb91af 100644 --- a/develop/plugin/Plugin-Averager.html +++ b/develop/plugin/Plugin-Averager.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/plugin/Resource-Handling.html b/develop/plugin/Resource-Handling.html index f1717a9338..6ae858ca02 100644 --- a/develop/plugin/Resource-Handling.html +++ b/develop/plugin/Resource-Handling.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/develop/plugin/index.html b/develop/plugin/index.html index 0402f80f26..91b713cb04 100644 --- a/develop/plugin/index.html +++ b/develop/plugin/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-involved/About-us.html b/get-involved/About-us.html index 459ba47bde..45ccfcfec2 100644 --- a/get-involved/About-us.html +++ b/get-involved/About-us.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-involved/Contact.html b/get-involved/Contact.html index dcf57f4324..f44fa1b378 100644 --- a/get-involved/Contact.html +++ b/get-involved/Contact.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-involved/Contribute.html b/get-involved/Contribute.html index c37335ab3e..14f0a00f78 100644 --- a/get-involved/Contribute.html +++ b/get-involved/Contribute.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-involved/Legal-Notice.html b/get-involved/Legal-Notice.html index 9af0059841..6bc54152b5 100644 --- a/get-involved/Legal-Notice.html +++ b/get-involved/Legal-Notice.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-involved/index.html b/get-involved/index.html index ba36e7cfda..7cc2992b6e 100644 --- a/get-involved/index.html +++ b/get-involved/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-started/Demos.html b/get-started/Demos.html index ec110a569b..b8089741bb 100644 --- a/get-started/Demos.html +++ b/get-started/Demos.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/get-started/Installation.html b/get-started/Installation.html index 8363b0111c..7314fc01ec 100644 --- a/get-started/Installation.html +++ b/get-started/Installation.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-started/Overview.html b/get-started/Overview.html index 7e806945c2..9bd25d47bc 100644 --- a/get-started/Overview.html +++ b/get-started/Overview.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/get-started/index.html b/get-started/index.html index 29ee1b13b9..2242152c07 100644 --- a/get-started/index.html +++ b/get-started/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/guide/docs.html b/guide/docs.html index 0168c5c756..e64d1c20af 100644 --- a/guide/docs.html +++ b/guide/docs.html @@ -17,8 +17,8 @@ - - + + - + diff --git a/guide/editor.html b/guide/editor.html index b8e56c8084..31d583157f 100644 --- a/guide/editor.html +++ b/guide/editor.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/guide/markdown.html b/guide/markdown.html index 698d3227e3..5bd52c15a7 100644 --- a/guide/markdown.html +++ b/guide/markdown.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/index.html b/index.html index abe3356ef8..6d29945cf4 100644 --- a/index.html +++ b/index.html @@ -17,8 +17,8 @@ - - + +
Accessible Music
Generate sounds or play adapted music instruments.

# Why AsTeRICS?

There are many Assistive Technologies available on the market, but in many cases they are too expensive or not suitable for a certain combination of disabilities.

AsTeRICS

  • provides support for many consumer devices which can be used as input devices (e.g. switches, eye-tracker, webcam, …).
  • let’s you combine several input devices depending on your capabilities (e.g. 2 switches + 1 eye-tracker).
  • provides support for many use cases (e.g. computer control, environmental control).
  • has more than 160 plugins.
  • allows easily customizing existing solutions or designing new ones.
  • is Open Source, which means that it is free forever and others can contribute to the framework.

# Partners & Funding

The AsTeRICS project was funded by international and national research grants. AsTeRICS was initiated by KI-I Linz (opens new window) and the UAS Technikum Wien (opens new window). The creation of this web page was funded by the City of Vienna, MA23, in course of the project StudyATHome Internationally (opens new window) (Grant Nr. 22-07). Please read the About Us section for a full list of contributions.

  • MA23, City of Vienna - Logo
  • UAS Technikum Wien - Logo
  • ToRaDes - Project Logo
  • KI-I
  • StudyATHome Internationally - Project Logo

# AsTeRICS Project Web Page

This is a newly created web page to present AsTeRICS technologies and corresponding documentation. If you are looking for the web page of the original AsTeRICS project, please go to https://project.asterics.eu (opens new window).

- + diff --git a/manuals/ACS/Actuators.html b/manuals/ACS/Actuators.html index 321ed84ca4..39d8108d23 100644 --- a/manuals/ACS/Actuators.html +++ b/manuals/ACS/Actuators.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Channels.html b/manuals/ACS/Channels.html index 0fe240f707..30b8b75aff 100644 --- a/manuals/ACS/Channels.html +++ b/manuals/ACS/Channels.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Colours_settings.html b/manuals/ACS/Colours_settings.html index 09942d07e2..8e33d63bbc 100644 --- a/manuals/ACS/Colours_settings.html +++ b/manuals/ACS/Colours_settings.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Component_Collection_Manager.html b/manuals/ACS/Component_Collection_Manager.html index 0d2adca6e3..327bb841aa 100644 --- a/manuals/ACS/Component_Collection_Manager.html +++ b/manuals/ACS/Component_Collection_Manager.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Component_Context_Menu.html b/manuals/ACS/Component_Context_Menu.html index 253281887b..8c1bed0552 100644 --- a/manuals/ACS/Component_Context_Menu.html +++ b/manuals/ACS/Component_Context_Menu.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Connected.html b/manuals/ACS/Connected.html index 43ff49b773..b4e58a6df1 100644 --- a/manuals/ACS/Connected.html +++ b/manuals/ACS/Connected.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Control_the_ARE.html b/manuals/ACS/Control_the_ARE.html index c83fb2c0ae..48d3f9ab69 100644 --- a/manuals/ACS/Control_the_ARE.html +++ b/manuals/ACS/Control_the_ARE.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Create_and_Edit_a_Model.html b/manuals/ACS/Create_and_Edit_a_Model.html index a0ecc8006d..cb3286bb77 100644 --- a/manuals/ACS/Create_and_Edit_a_Model.html +++ b/manuals/ACS/Create_and_Edit_a_Model.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Dialogs_settings.html b/manuals/ACS/Dialogs_settings.html index e7b6f24933..bd51cd8ca0 100644 --- a/manuals/ACS/Dialogs_settings.html +++ b/manuals/ACS/Dialogs_settings.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Disconnected.html b/manuals/ACS/Disconnected.html index 6cee2b6c3c..1d51d814ca 100644 --- a/manuals/ACS/Disconnected.html +++ b/manuals/ACS/Disconnected.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Events.html b/manuals/ACS/Events.html index b43d985abe..c82d9a313b 100644 --- a/manuals/ACS/Events.html +++ b/manuals/ACS/Events.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/External_Tools.html b/manuals/ACS/External_Tools.html index 015a51e74b..486e58b457 100644 --- a/manuals/ACS/External_Tools.html +++ b/manuals/ACS/External_Tools.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/External_Tools_Options.html b/manuals/ACS/External_Tools_Options.html index 2683273d24..ec50d35266 100644 --- a/manuals/ACS/External_Tools_Options.html +++ b/manuals/ACS/External_Tools_Options.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/GUI_Designer.html b/manuals/ACS/GUI_Designer.html index e13ea4583a..d773c34a20 100644 --- a/manuals/ACS/GUI_Designer.html +++ b/manuals/ACS/GUI_Designer.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/General_settings.html b/manuals/ACS/General_settings.html index 01f0b3b598..993cf3f69b 100644 --- a/manuals/ACS/General_settings.html +++ b/manuals/ACS/General_settings.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Keyboard_control.html b/manuals/ACS/Keyboard_control.html index 6b5e75a408..c1ac11af3b 100644 --- a/manuals/ACS/Keyboard_control.html +++ b/manuals/ACS/Keyboard_control.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Load_and_Save_Models.html b/manuals/ACS/Load_and_Save_Models.html index eae8457ff9..5ba4ec2841 100644 --- a/manuals/ACS/Load_and_Save_Models.html +++ b/manuals/ACS/Load_and_Save_Models.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Miscellaneous.html b/manuals/ACS/Miscellaneous.html index 5082834628..395941d3e2 100644 --- a/manuals/ACS/Miscellaneous.html +++ b/manuals/ACS/Miscellaneous.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Modes.html b/manuals/ACS/Modes.html index 6e4af0a094..cfb5809520 100644 --- a/manuals/ACS/Modes.html +++ b/manuals/ACS/Modes.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Options.html b/manuals/ACS/Options.html index a12c45cec3..49864137db 100644 --- a/manuals/ACS/Options.html +++ b/manuals/ACS/Options.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Pause.html b/manuals/ACS/Pause.html index c4258fbc7d..4b9d5cdde8 100644 --- a/manuals/ACS/Pause.html +++ b/manuals/ACS/Pause.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Print.html b/manuals/ACS/Print.html index 7655b781a9..4f1acaa08e 100644 --- a/manuals/ACS/Print.html +++ b/manuals/ACS/Print.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Processors.html b/manuals/ACS/Processors.html index eb9c36d35c..9ae54698cb 100644 --- a/manuals/ACS/Processors.html +++ b/manuals/ACS/Processors.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Running.html b/manuals/ACS/Running.html index 34cd8f3b7f..f3e599d30d 100644 --- a/manuals/ACS/Running.html +++ b/manuals/ACS/Running.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Sensors.html b/manuals/ACS/Sensors.html index 43aaeb6ac4..fea333036c 100644 --- a/manuals/ACS/Sensors.html +++ b/manuals/ACS/Sensors.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Setting_the_Properties.html b/manuals/ACS/Setting_the_Properties.html index ea021fbc37..4c6e209824 100644 --- a/manuals/ACS/Setting_the_Properties.html +++ b/manuals/ACS/Setting_the_Properties.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Status_Reporting_and_Error_Logging.html b/manuals/ACS/Status_Reporting_and_Error_Logging.html index 5d855b299e..1a628b0477 100644 --- a/manuals/ACS/Status_Reporting_and_Error_Logging.html +++ b/manuals/ACS/Status_Reporting_and_Error_Logging.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Synchronized.html b/manuals/ACS/Synchronized.html index ccaa175c19..5606721aad 100644 --- a/manuals/ACS/Synchronized.html +++ b/manuals/ACS/Synchronized.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/The_Edit_Tab.html b/manuals/ACS/The_Edit_Tab.html index e64098be3d..34c5c57b4f 100644 --- a/manuals/ACS/The_Edit_Tab.html +++ b/manuals/ACS/The_Edit_Tab.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/Tooltips.html b/manuals/ACS/Tooltips.html index 039274fa03..3dc68cd8e1 100644 --- a/manuals/ACS/Tooltips.html +++ b/manuals/ACS/Tooltips.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ACS/index.html b/manuals/ACS/index.html index 43440e9d32..814b76e576 100644 --- a/manuals/ACS/index.html +++ b/manuals/ACS/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/ARE/index.html b/manuals/ARE/index.html index b89cec2472..8fbc9cbc13 100644 --- a/manuals/ARE/index.html +++ b/manuals/ARE/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/AREStatus.html b/manuals/WebACS/AREStatus.html index b146420e49..63d9e1515d 100644 --- a/manuals/WebACS/AREStatus.html +++ b/manuals/WebACS/AREStatus.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Channels.html b/manuals/WebACS/Channels.html index 8eb5f05ed4..05c26e2ac0 100644 --- a/manuals/WebACS/Channels.html +++ b/manuals/WebACS/Channels.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Control_the_ARE.html b/manuals/WebACS/Control_the_ARE.html index b32c85f1a1..a98a967ceb 100644 --- a/manuals/WebACS/Control_the_ARE.html +++ b/manuals/WebACS/Control_the_ARE.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Create_and_Edit_a_Model.html b/manuals/WebACS/Create_and_Edit_a_Model.html index f91fe5e26a..5b25050dfb 100644 --- a/manuals/WebACS/Create_and_Edit_a_Model.html +++ b/manuals/WebACS/Create_and_Edit_a_Model.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Events.html b/manuals/WebACS/Events.html index 23f72db3d1..5d1b3208d0 100644 --- a/manuals/WebACS/Events.html +++ b/manuals/WebACS/Events.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/GUI_Designer.html b/manuals/WebACS/GUI_Designer.html index 6514615cb8..f080cecf5d 100644 --- a/manuals/WebACS/GUI_Designer.html +++ b/manuals/WebACS/GUI_Designer.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Keyboard_control.html b/manuals/WebACS/Keyboard_control.html index 08500bd6f5..a7e88fd6ef 100644 --- a/manuals/WebACS/Keyboard_control.html +++ b/manuals/WebACS/Keyboard_control.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/List_View.html b/manuals/WebACS/List_View.html index ae7c699f8d..8eaa09eabb 100644 --- a/manuals/WebACS/List_View.html +++ b/manuals/WebACS/List_View.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Miscellaneous.html b/manuals/WebACS/Miscellaneous.html index 0e0b612efd..0688d2c35c 100644 --- a/manuals/WebACS/Miscellaneous.html +++ b/manuals/WebACS/Miscellaneous.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Open_and_Save_Models.html b/manuals/WebACS/Open_and_Save_Models.html index 351a80a602..a126164a83 100644 --- a/manuals/WebACS/Open_and_Save_Models.html +++ b/manuals/WebACS/Open_and_Save_Models.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/Setting_the_Properties.html b/manuals/WebACS/Setting_the_Properties.html index e702c36de6..75da9d2bf5 100644 --- a/manuals/WebACS/Setting_the_Properties.html +++ b/manuals/WebACS/Setting_the_Properties.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/The_Edit_Tab.html b/manuals/WebACS/The_Edit_Tab.html index 614c6ef1fb..e3cc0e915a 100644 --- a/manuals/WebACS/The_Edit_Tab.html +++ b/manuals/WebACS/The_Edit_Tab.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/WebACS/index.html b/manuals/WebACS/index.html index 55bdd0052e..cc44fbded4 100644 --- a/manuals/WebACS/index.html +++ b/manuals/WebACS/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/010_settings.html b/manuals/asterics-grid/010_settings.html index 15a9d5e3e2..3c7aeed0c0 100644 --- a/manuals/asterics-grid/010_settings.html +++ b/manuals/asterics-grid/010_settings.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/01_terms.html b/manuals/asterics-grid/01_terms.html index 5358f324d1..6218ddc974 100644 --- a/manuals/asterics-grid/01_terms.html +++ b/manuals/asterics-grid/01_terms.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/02_navigation.html b/manuals/asterics-grid/02_navigation.html index 1a2a2246fd..05f3ec4924 100644 --- a/manuals/asterics-grid/02_navigation.html +++ b/manuals/asterics-grid/02_navigation.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/03_appearance_layout.html b/manuals/asterics-grid/03_appearance_layout.html index 2eff8b98cc..524acb4710 100644 --- a/manuals/asterics-grid/03_appearance_layout.html +++ b/manuals/asterics-grid/03_appearance_layout.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/04_input_options.html b/manuals/asterics-grid/04_input_options.html index 0e80dcdd45..98ea9aa79d 100644 --- a/manuals/asterics-grid/04_input_options.html +++ b/manuals/asterics-grid/04_input_options.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/05_actions.html b/manuals/asterics-grid/05_actions.html index c409fa719a..30fbc13a96 100644 --- a/manuals/asterics-grid/05_actions.html +++ b/manuals/asterics-grid/05_actions.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/06_users.html b/manuals/asterics-grid/06_users.html index cf91fd2f13..7b62b00509 100644 --- a/manuals/asterics-grid/06_users.html +++ b/manuals/asterics-grid/06_users.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/07_dictionaries.html b/manuals/asterics-grid/07_dictionaries.html index 1674ac85f0..4e4e9aa37d 100644 --- a/manuals/asterics-grid/07_dictionaries.html +++ b/manuals/asterics-grid/07_dictionaries.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/08_keyboard_shortcuts.html b/manuals/asterics-grid/08_keyboard_shortcuts.html index e49429be80..7b49b7460e 100644 --- a/manuals/asterics-grid/08_keyboard_shortcuts.html +++ b/manuals/asterics-grid/08_keyboard_shortcuts.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/09_translation.html b/manuals/asterics-grid/09_translation.html index 4c5f100b96..252972740b 100644 --- a/manuals/asterics-grid/09_translation.html +++ b/manuals/asterics-grid/09_translation.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/10_faq.html b/manuals/asterics-grid/10_faq.html index 481ea65088..5d692d3912 100644 --- a/manuals/asterics-grid/10_faq.html +++ b/manuals/asterics-grid/10_faq.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/10_word_forms.html b/manuals/asterics-grid/10_word_forms.html index 7deb8a24a6..f2fa9fc210 100644 --- a/manuals/asterics-grid/10_word_forms.html +++ b/manuals/asterics-grid/10_word_forms.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/513_http-action-tutorials.html b/manuals/asterics-grid/513_http-action-tutorials.html index cf8c07c875..409724d0e1 100644 --- a/manuals/asterics-grid/513_http-action-tutorials.html +++ b/manuals/asterics-grid/513_http-action-tutorials.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/514_uart-action-tutorials.html b/manuals/asterics-grid/514_uart-action-tutorials.html index 43eca076b1..5624cd5db2 100644 --- a/manuals/asterics-grid/514_uart-action-tutorials.html +++ b/manuals/asterics-grid/514_uart-action-tutorials.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/asterics-grid/index.html b/manuals/asterics-grid/index.html index 12d058113d..a2562994b8 100644 --- a/manuals/asterics-grid/index.html +++ b/manuals/asterics-grid/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/fabi/index.html b/manuals/fabi/index.html index f3557f44a7..cc241aad5a 100644 --- a/manuals/fabi/index.html +++ b/manuals/fabi/index.html @@ -17,8 +17,8 @@ - - + +
- + diff --git a/manuals/flipmouse/index.html b/manuals/flipmouse/index.html index 49b5feb57b..78b4c6ea41 100644 --- a/manuals/flipmouse/index.html +++ b/manuals/flipmouse/index.html @@ -17,8 +17,8 @@ - - + +